2022-01-11 11:52:29 +00:00
require ( './sourcemap-register.js' ) ; /******/ ( ( ) => { // webpackBootstrap
/******/ var _ _webpack _modules _ _ = ( {
/***/ 4822 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
2022-03-11 17:46:28 +00:00
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . prototype . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const core = _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ;
const model _1 = _ _nccwpck _require _ _ ( 1359 ) ;
function run ( ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
try {
model _1 . Action . checkCompatibility ( ) ;
2022-03-31 15:03:14 +00:00
const { workspace , actionFolder } = model _1 . Action ;
2022-03-11 17:46:28 +00:00
const { unityVersion , customImage , projectPath , customParameters , testMode , artifactsPath , useHostNetwork , sshAgent , gitPrivateToken , githubToken , checkName , } = model _1 . Input . getFromUser ( ) ;
const baseImage = new model _1 . ImageTag ( { version : unityVersion , customImage } ) ;
const runnerTempPath = process . env . RUNNER _TEMP ;
try {
// Build docker image
// Run docker image
2022-03-29 14:32:59 +00:00
yield model _1 . Docker . run ( baseImage , {
actionFolder ,
2022-03-11 17:46:28 +00:00
unityVersion ,
workspace ,
projectPath ,
customParameters ,
testMode ,
artifactsPath ,
useHostNetwork ,
sshAgent ,
gitPrivateToken ,
githubToken ,
runnerTempPath ,
} ) ;
}
finally {
// Set output
yield model _1 . Output . setArtifactsPath ( artifactsPath ) ;
}
if ( githubToken ) {
const failedTestCount = yield model _1 . ResultsCheck . createCheck ( artifactsPath , githubToken , checkName ) ;
if ( failedTestCount >= 1 ) {
core . setFailed ( ` Test(s) Failed! Check ' ${ checkName } ' for details. ` ) ;
}
}
}
catch ( error ) {
core . setFailed ( error . message ) ;
}
} ) ;
}
run ( ) ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 9088 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
2022-03-11 17:46:28 +00:00
var _ _importDefault = ( this && this . _ _importDefault ) || function ( mod ) {
return ( mod && mod . _ _esModule ) ? mod : { "default" : mod } ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const path _1 = _ _importDefault ( _ _nccwpck _require _ _ ( 1017 ) ) ;
const Action = {
get supportedPlatforms ( ) {
return [ 'linux' ] ;
} ,
get isRunningLocally ( ) {
return process . env . RUNNER _WORKSPACE === undefined ;
} ,
get isRunningFromSource ( ) {
return path _1 . default . basename ( _ _dirname ) === 'model' ;
} ,
get canonicalName ( ) {
return 'unity-test-runner' ;
} ,
get rootFolder ( ) {
if ( Action . isRunningFromSource ) {
return path _1 . default . dirname ( path _1 . default . dirname ( path _1 . default . dirname ( _ _filename ) ) ) ;
}
return path _1 . default . dirname ( path _1 . default . dirname ( _ _filename ) ) ;
} ,
get actionFolder ( ) {
return ` ${ Action . rootFolder } /dist ` ;
} ,
get workspace ( ) {
return process . env . GITHUB _WORKSPACE ;
} ,
checkCompatibility ( ) {
const currentPlatform = process . platform ;
if ( ! Action . supportedPlatforms . includes ( currentPlatform ) ) {
throw new Error ( ` Currently ${ currentPlatform } -platform is not supported ` ) ;
}
} ,
} ;
exports [ "default" ] = Action ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 6934 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
2022-03-11 17:46:28 +00:00
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
var _ _importDefault = ( this && this . _ _importDefault ) || function ( mod ) {
return ( mod && mod . _ _esModule ) ? mod : { "default" : mod } ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const fs _1 = _ _nccwpck _require _ _ ( 7147 ) ;
const exec _1 = _ _nccwpck _require _ _ ( 1514 ) ;
const path _1 = _ _importDefault ( _ _nccwpck _require _ _ ( 1017 ) ) ;
const Docker = {
run ( image , parameters , silent = false ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
2022-03-29 14:32:59 +00:00
const { actionFolder , unityVersion , workspace , projectPath , customParameters , testMode , artifactsPath , useHostNetwork , sshAgent , gitPrivateToken , githubToken , runnerTempPath , } = parameters ;
2022-03-11 17:46:28 +00:00
const githubHome = path _1 . default . join ( runnerTempPath , '_github_home' ) ;
if ( ! ( 0 , fs _1 . existsSync ) ( githubHome ) )
( 0 , fs _1 . mkdirSync ) ( githubHome ) ;
const githubWorkflow = path _1 . default . join ( runnerTempPath , '_github_workflow' ) ;
if ( ! ( 0 , fs _1 . existsSync ) ( githubWorkflow ) )
( 0 , fs _1 . mkdirSync ) ( githubWorkflow ) ;
2022-01-11 11:52:29 +00:00
const command = ` docker run \
-- workdir / github / workspace \
-- rm \
-- env UNITY _LICENSE \
-- env UNITY _LICENSE _FILE \
-- env UNITY _EMAIL \
-- env UNITY _PASSWORD \
-- env UNITY _SERIAL \
-- env UNITY _VERSION = "${unityVersion}" \
-- env PROJECT _PATH = "${projectPath}" \
-- env CUSTOM _PARAMETERS = "${customParameters}" \
-- env TEST _MODE = "${testMode}" \
-- env ARTIFACTS _PATH = "${artifactsPath}" \
-- env GITHUB _REF \
-- env GITHUB _SHA \
-- env GITHUB _REPOSITORY \
-- env GITHUB _ACTOR \
-- env GITHUB _WORKFLOW \
-- env GITHUB _HEAD _REF \
-- env GITHUB _BASE _REF \
-- env GITHUB _EVENT _NAME \
-- env GITHUB _WORKSPACE = / g i t h u b / w o r k s p a c e \
-- env GITHUB _ACTION \
-- env GITHUB _EVENT _PATH \
-- env RUNNER _OS \
-- env RUNNER _TOOL _CACHE \
-- env RUNNER _TEMP \
-- env RUNNER _WORKSPACE \
-- env GIT _PRIVATE _TOKEN = "${gitPrivateToken}" \
$ { sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : '' } \
2022-03-11 17:46:28 +00:00
-- volume "${githubHome}" : "/root:z" \
-- volume "${githubWorkflow}" : "/github/workflow:z" \
-- volume "${workspace}" : "/github/workspace:z" \
2022-03-30 12:27:15 +00:00
-- volume "${actionFolder}/steps" : "/steps:z" \
-- volume "${actionFolder}/entrypoint.sh" : "/entrypoint.sh:z" \
2022-01-11 11:52:29 +00:00
$ { sshAgent ? ` --volume ${ sshAgent } :/ssh-agent ` : '' } \
$ { sshAgent ? '--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro' : '' } \
$ { useHostNetwork ? '--net=host' : '' } \
$ { githubToken ? '--env USE_EXIT_CODE=false' : '--env USE_EXIT_CODE=true' } \
2022-03-29 14:32:59 +00:00
$ { image } \
2022-03-31 15:03:14 +00:00
/ b i n / b a s h / e n t r y p o i n t . s h ` ;
2022-03-11 17:46:28 +00:00
yield ( 0 , exec _1 . exec ) ( command , undefined , { silent } ) ;
} ) ;
} ,
} ;
exports [ "default" ] = Docker ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 7648 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
2022-03-11 17:46:28 +00:00
var _ _importDefault = ( this && this . _ _importDefault ) || function ( mod ) {
return ( mod && mod . _ _esModule ) ? mod : { "default" : mod } ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const platform _1 = _ _importDefault ( _ _nccwpck _require _ _ ( 9707 ) ) ;
class ImageTag {
constructor ( imageProperties ) {
const { repository = 'unityci' , name = 'editor' , version = '2019.2.11f1' , platform = platform _1 . default . types . StandaloneLinux64 , customImage , } = imageProperties ;
if ( ! ImageTag . versionPattern . test ( version ) ) {
throw new Error ( ` Invalid version " ${ version } ". ` ) ;
}
const builderPlatform = ImageTag . getTargetPlatformToImageSuffixMap ( platform , version ) ;
this . repository = repository ;
this . name = name ;
this . version = version ;
this . platform = platform ;
this . builderPlatform = builderPlatform ;
this . customImage = customImage ;
}
static get versionPattern ( ) {
return /^20\d{2}\.\d\.\w{3,4}|3$/ ;
}
static get imageSuffixes ( ) {
return {
generic : '' ,
webgl : 'webgl' ,
mac : 'mac-mono' ,
windows : 'windows-mono' ,
linux : 'base' ,
linuxIl2cpp : 'linux-il2cpp' ,
android : 'android' ,
ios : 'ios' ,
facebook : 'facebook' ,
} ;
}
static getTargetPlatformToImageSuffixMap ( platform , version ) {
const { generic , webgl , mac , windows , linux , linuxIl2cpp , android , ios , facebook } = ImageTag . imageSuffixes ;
const [ major , minor ] = version . split ( '.' ) . map ( digit => Number ( digit ) ) ;
// @see: https://docs.unity3d.com/ScriptReference/BuildTarget.html
switch ( platform ) {
case platform _1 . default . types . StandaloneOSX :
return mac ;
case platform _1 . default . types . StandaloneWindows :
return windows ;
case platform _1 . default . types . StandaloneWindows64 :
return windows ;
case platform _1 . default . types . StandaloneLinux64 : {
// Unity versions before 2019.3 do not support il2cpp
if ( major >= 2020 || ( major === 2019 && minor >= 3 ) ) {
return linuxIl2cpp ;
}
return linux ;
}
case platform _1 . default . types . iOS :
return ios ;
case platform _1 . default . types . Android :
return android ;
case platform _1 . default . types . WebGL :
return webgl ;
case platform _1 . default . types . WSAPlayer :
return windows ;
case platform _1 . default . types . PS4 :
return windows ;
case platform _1 . default . types . XboxOne :
return windows ;
case platform _1 . default . types . tvOS :
return windows ;
case platform _1 . default . types . Switch :
return windows ;
// Unsupported
case platform _1 . default . types . Lumin :
return windows ;
case platform _1 . default . types . BJM :
return windows ;
case platform _1 . default . types . Stadia :
return windows ;
case platform _1 . default . types . Facebook :
return facebook ;
case platform _1 . default . types . NoTarget :
return generic ;
// Test specific
case platform _1 . default . types . Test :
return generic ;
default :
2022-01-11 11:52:29 +00:00
throw new Error ( `
Platform must be one of the ones described in the documentation .
2022-03-11 17:46:28 +00:00
"${platform}" is currently not supported . ` );
}
}
get tag ( ) {
return ` ${ this . version } - ${ this . builderPlatform } ` . replace ( /-+$/ , '' ) ;
}
get image ( ) {
return ` ${ this . repository } / ${ this . name } ` . replace ( /^\/+/ , '' ) ;
}
toString ( ) {
const { image , tag , customImage } = this ;
if ( customImage && customImage !== '' ) {
return customImage ;
}
const dockerRepoVersion = 0 ;
return ` ${ image } : ${ tag } - ${ dockerRepoVersion } ` ;
}
}
exports [ "default" ] = ImageTag ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 1359 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
2022-03-11 17:46:28 +00:00
var _ _importDefault = ( this && this . _ _importDefault ) || function ( mod ) {
return ( mod && mod . _ _esModule ) ? mod : { "default" : mod } ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . ResultsCheck = exports . Output = exports . Input = exports . ImageTag = exports . Docker = exports . Action = void 0 ;
var action _1 = _ _nccwpck _require _ _ ( 9088 ) ;
Object . defineProperty ( exports , "Action" , ( { enumerable : true , get : function ( ) { return _ _importDefault ( action _1 ) . default ; } } ) ) ;
var docker _1 = _ _nccwpck _require _ _ ( 6934 ) ;
Object . defineProperty ( exports , "Docker" , ( { enumerable : true , get : function ( ) { return _ _importDefault ( docker _1 ) . default ; } } ) ) ;
var image _tag _1 = _ _nccwpck _require _ _ ( 7648 ) ;
Object . defineProperty ( exports , "ImageTag" , ( { enumerable : true , get : function ( ) { return _ _importDefault ( image _tag _1 ) . default ; } } ) ) ;
var input _1 = _ _nccwpck _require _ _ ( 1933 ) ;
Object . defineProperty ( exports , "Input" , ( { enumerable : true , get : function ( ) { return _ _importDefault ( input _1 ) . default ; } } ) ) ;
var output _1 = _ _nccwpck _require _ _ ( 5487 ) ;
Object . defineProperty ( exports , "Output" , ( { enumerable : true , get : function ( ) { return _ _importDefault ( output _1 ) . default ; } } ) ) ;
var results _check _1 = _ _nccwpck _require _ _ ( 9183 ) ;
Object . defineProperty ( exports , "ResultsCheck" , ( { enumerable : true , get : function ( ) { return _ _importDefault ( results _check _1 ) . default ; } } ) ) ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 1933 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
2022-03-11 17:46:28 +00:00
var _ _importDefault = ( this && this . _ _importDefault ) || function ( mod ) {
return ( mod && mod . _ _esModule ) ? mod : { "default" : mod } ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const unity _version _parser _1 = _ _importDefault ( _ _nccwpck _require _ _ ( 7049 ) ) ;
const core _1 = _ _nccwpck _require _ _ ( 2186 ) ;
const Input = {
get testModes ( ) {
return [ 'all' , 'playmode' , 'editmode' ] ;
} ,
isValidFolderName ( folderName ) {
const validFolderName = new RegExp ( /^(\.|\.\/)?(\.?[\w~]+([ _-]?[\w~]+)*\/?)*$/ ) ;
return validFolderName . test ( folderName ) ;
} ,
getFromUser ( ) {
// Input variables specified in workflow using "with" prop.
const rawUnityVersion = ( 0 , core _1 . getInput ) ( 'unityVersion' ) || 'auto' ;
const customImage = ( 0 , core _1 . getInput ) ( 'customImage' ) || '' ;
const rawProjectPath = ( 0 , core _1 . getInput ) ( 'projectPath' ) || '.' ;
const customParameters = ( 0 , core _1 . getInput ) ( 'customParameters' ) || '' ;
const testMode = ( ( 0 , core _1 . getInput ) ( 'testMode' ) || 'all' ) . toLowerCase ( ) ;
const rawArtifactsPath = ( 0 , core _1 . getInput ) ( 'artifactsPath' ) || 'artifacts' ;
const rawUseHostNetwork = ( 0 , core _1 . getInput ) ( 'useHostNetwork' ) || 'false' ;
const sshAgent = ( 0 , core _1 . getInput ) ( 'sshAgent' ) || '' ;
const gitPrivateToken = ( 0 , core _1 . getInput ) ( 'gitPrivateToken' ) || '' ;
const githubToken = ( 0 , core _1 . getInput ) ( 'githubToken' ) || '' ;
const checkName = ( 0 , core _1 . getInput ) ( 'checkName' ) || 'Test Results' ;
// Validate input
if ( ! this . testModes . includes ( testMode ) ) {
throw new Error ( ` Invalid testMode ${ testMode } ` ) ;
}
if ( ! this . isValidFolderName ( rawProjectPath ) ) {
throw new Error ( ` Invalid projectPath " ${ rawProjectPath } " ` ) ;
}
if ( ! this . isValidFolderName ( rawArtifactsPath ) ) {
throw new Error ( ` Invalid artifactsPath " ${ rawArtifactsPath } " ` ) ;
}
if ( rawUseHostNetwork !== 'true' && rawUseHostNetwork !== 'false' ) {
throw new Error ( ` Invalid useHostNetwork " ${ rawUseHostNetwork } " ` ) ;
}
// Sanitise input
const projectPath = rawProjectPath . replace ( /\/$/ , '' ) ;
const artifactsPath = rawArtifactsPath . replace ( /\/$/ , '' ) ;
const useHostNetwork = rawUseHostNetwork === 'true' ;
const unityVersion = rawUnityVersion === 'auto' ? unity _version _parser _1 . default . read ( projectPath ) : rawUnityVersion ;
// Return sanitised input
return {
unityVersion ,
customImage ,
projectPath ,
customParameters ,
testMode ,
artifactsPath ,
useHostNetwork ,
sshAgent ,
gitPrivateToken ,
githubToken ,
checkName ,
} ;
} ,
} ;
exports [ "default" ] = Input ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 5487 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
2022-03-11 17:46:28 +00:00
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . prototype . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const core = _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ;
const Output = {
setArtifactsPath ( artifactsPath ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
yield core . setOutput ( 'artifactsPath' , artifactsPath ) ;
} ) ;
} ,
} ;
exports [ "default" ] = Output ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 9707 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
2022-03-11 17:46:28 +00:00
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const Platform = {
get default ( ) {
return Platform . types . StandaloneWindows64 ;
} ,
get types ( ) {
return {
StandaloneOSX : 'StandaloneOSX' ,
StandaloneWindows : 'StandaloneWindows' ,
StandaloneWindows64 : 'StandaloneWindows64' ,
StandaloneLinux64 : 'StandaloneLinux64' ,
iOS : 'iOS' ,
Android : 'Android' ,
WebGL : 'WebGL' ,
WSAPlayer : 'WSAPlayer' ,
PS4 : 'PS4' ,
XboxOne : 'XboxOne' ,
tvOS : 'tvOS' ,
Switch : 'Switch' ,
// Unsupported
Lumin : 'Lumin' ,
BJM : 'BJM' ,
Stadia : 'Stadia' ,
Facebook : 'Facebook' ,
NoTarget : 'NoTarget' ,
// Test specific
Test : 'Test' ,
} ;
} ,
isWindows ( platform ) {
switch ( platform ) {
case Platform . types . StandaloneWindows :
case Platform . types . StandaloneWindows64 :
return true ;
default :
return false ;
}
} ,
isAndroid ( platform ) {
switch ( platform ) {
case Platform . types . Android :
return true ;
default :
return false ;
}
} ,
} ;
exports [ "default" ] = Platform ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 9183 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
2022-03-11 17:46:28 +00:00
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . prototype . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
var _ _importDefault = ( this && this . _ _importDefault ) || function ( mod ) {
return ( mod && mod . _ _esModule ) ? mod : { "default" : mod } ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const core = _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ;
const fs = _ _importStar ( _ _nccwpck _require _ _ ( 7147 ) ) ;
const github = _ _importStar ( _ _nccwpck _require _ _ ( 5438 ) ) ;
const handlebars _1 = _ _importDefault ( _ _nccwpck _require _ _ ( 7492 ) ) ;
const results _parser _1 = _ _importDefault ( _ _nccwpck _require _ _ ( 4552 ) ) ;
const results _meta _1 = _ _nccwpck _require _ _ ( 5552 ) ;
const path _1 = _ _importDefault ( _ _nccwpck _require _ _ ( 1017 ) ) ;
const ResultsCheck = {
createCheck ( artifactsPath , githubToken , checkName ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
// Validate input
if ( ! fs . existsSync ( artifactsPath ) || ! githubToken || ! checkName ) {
throw new Error ( ` Missing input! {"artifactsPath": " ${ artifactsPath } ", "githubToken": " ${ githubToken } , "checkName": " ${ checkName } " ` ) ;
}
// Parse all results files
const runs = [ ] ;
const files = fs . readdirSync ( artifactsPath ) ;
yield Promise . all ( files . map ( ( filepath ) => _ _awaiter ( this , void 0 , void 0 , function * ( ) {
if ( ! filepath . endsWith ( '.xml' ) )
return ;
core . info ( ` Processing file ${ filepath } ... ` ) ;
const fileData = yield results _parser _1 . default . parseResults ( path _1 . default . join ( artifactsPath , filepath ) ) ;
core . info ( fileData . summary ) ;
runs . push ( fileData ) ;
} ) ) ) ;
// Combine all results into a single run summary
const runSummary = new results _meta _1 . RunMeta ( checkName ) ;
for ( const run of runs ) {
runSummary . total += run . total ;
runSummary . passed += run . passed ;
runSummary . skipped += run . skipped ;
runSummary . failed += run . failed ;
runSummary . duration += run . duration ;
for ( const suite of run . suites ) {
runSummary . addTests ( suite . tests ) ;
}
}
// Log
core . info ( '=================' ) ;
core . info ( 'Analyze result:' ) ;
core . info ( runSummary . summary ) ;
// Format output
const title = runSummary . summary ;
const summary = yield ResultsCheck . renderSummary ( runs ) ;
core . debug ( ` Summary view: ${ summary } ` ) ;
const details = yield ResultsCheck . renderDetails ( runs ) ;
core . debug ( ` Details view: ${ details } ` ) ;
const rawAnnotations = runSummary . extractAnnotations ( ) ;
core . debug ( ` Raw annotations: ${ rawAnnotations } ` ) ;
const annotations = rawAnnotations . map ( rawAnnotation => {
const annotation = rawAnnotation ;
annotation . path = rawAnnotation . path . replace ( '/github/workspace/' , '' ) ;
return annotation ;
} ) ;
core . debug ( ` Annotations: ${ annotations } ` ) ;
const output = {
title ,
summary ,
text : details ,
annotations : annotations . slice ( 0 , 50 ) ,
} ;
// Call GitHub API
yield ResultsCheck . requestGitHubCheck ( githubToken , checkName , output ) ;
return runSummary . failed ;
} ) ;
} ,
requestGitHubCheck ( githubToken , checkName , output ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const pullRequest = github . context . payload . pull _request ;
const headSha = ( pullRequest && pullRequest . head . sha ) || github . context . sha ;
core . info ( ` Posting results for ${ headSha } ` ) ;
const createCheckRequest = Object . assign ( Object . assign ( { } , github . context . repo ) , { name : checkName , head _sha : headSha , status : 'completed' , conclusion : 'neutral' , output } ) ;
const octokit = github . getOctokit ( githubToken ) ;
yield octokit . rest . checks . create ( createCheckRequest ) ;
} ) ;
} ,
renderSummary ( runMetas ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
return ResultsCheck . render ( ` ${ _ _dirname } /results-check-summary.hbs ` , runMetas ) ;
} ) ;
} ,
renderDetails ( runMetas ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
return ResultsCheck . render ( ` ${ _ _dirname } /results-check-details.hbs ` , runMetas ) ;
} ) ;
} ,
render ( viewPath , runMetas ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
handlebars _1 . default . registerHelper ( 'indent' , toIndent => toIndent
. split ( '\n' )
. map ( s => ` ${ s . replace ( '/github/workspace/' , '' ) } ` )
. join ( '\n' ) ) ;
const source = yield fs . promises . readFile ( viewPath , 'utf8' ) ;
const template = handlebars _1 . default . compile ( source ) ;
return template ( { runs : runMetas } , {
allowProtoMethodsByDefault : true ,
allowProtoPropertiesByDefault : true ,
} ) ;
} ) ;
} ,
} ;
exports [ "default" ] = ResultsCheck ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 5552 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
2022-03-11 17:46:28 +00:00
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . TestMeta = exports . RunMeta = exports . Meta = exports . timeHelper = void 0 ;
function timeHelper ( seconds ) {
return ` ${ seconds . toFixed ( 3 ) } s ` ;
}
exports . timeHelper = timeHelper ;
class Meta {
constructor ( title ) {
this . duration = 0 ;
this . title = title ;
}
}
exports . Meta = Meta ;
class RunMeta extends Meta {
constructor ( ) {
super ( ... arguments ) ;
this . total = 0 ;
this . passed = 0 ;
this . skipped = 0 ;
this . failed = 0 ;
this . tests = [ ] ;
this . suites = [ ] ;
}
extractAnnotations ( ) {
const result = [ ] ;
for ( const suite of this . suites ) {
result . push ( ... suite . extractAnnotations ( ) ) ;
}
for ( const test of this . tests ) {
if ( test . annotation !== undefined ) {
result . push ( test . annotation ) ;
}
}
return result ;
}
addTests ( testSuite ) {
for ( const test of testSuite ) {
this . addTest ( test ) ;
}
}
addTest ( test ) {
if ( test . suite === undefined ) {
return ;
}
if ( test . suite === this . title ) {
this . total ++ ;
this . duration += test . duration ;
this . tests . push ( test ) ;
if ( test . result === 'Passed' )
this . passed ++ ;
else if ( test . result === 'Failed' )
this . failed ++ ;
else
this . skipped ++ ;
return ;
}
let target = this . suites . find ( s => s . title === test . suite ) ;
if ( target === undefined ) {
target = new RunMeta ( test . suite ) ;
this . suites . push ( target ) ;
}
target . addTest ( test ) ;
}
get summary ( ) {
const result = this . failed > 0 ? 'Failed' : 'Passed' ;
const sPart = this . skipped > 0 ? ` , skipped: ${ this . skipped } ` : '' ;
const fPart = this . failed > 0 ? ` , failed: ${ this . failed } ` : '' ;
const dPart = ` in ${ timeHelper ( this . duration ) } ` ;
return ` ${ this . mark } ${ this . title } - ${ this . passed } / ${ this . total } ${ sPart } ${ fPart } - ${ result } ${ dPart } ` ;
}
get mark ( ) {
if ( this . failed > 0 )
return '❌️' ;
else if ( this . skipped === 0 )
return '✅' ;
return '⚠️' ;
}
}
exports . RunMeta = RunMeta ;
class TestMeta extends Meta {
constructor ( suite , title ) {
super ( title ) ;
this . suite = suite ;
this . result = undefined ;
this . duration = Number . NaN ;
}
isSkipped ( ) {
return this . result === 'Skipped' ;
}
isFailed ( ) {
return this . result === 'Failed' ;
}
get summary ( ) {
const dPart = this . isSkipped ( ) ? '' : ` in ${ timeHelper ( this . duration ) } ` ;
return ` ${ this . mark } ** ${ this . title } ** - ${ this . result } ${ dPart } ` ;
}
get mark ( ) {
if ( this . isFailed ( ) )
return '❌️' ;
else if ( this . isSkipped ( ) )
return '⚠️' ;
return '✅' ;
}
}
exports . TestMeta = TestMeta ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 4552 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
2022-03-11 17:46:28 +00:00
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . prototype . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
var _ _importDefault = ( this && this . _ _importDefault ) || function ( mod ) {
return ( mod && mod . _ _esModule ) ? mod : { "default" : mod } ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const core = _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ;
const fs = _ _importStar ( _ _nccwpck _require _ _ ( 7147 ) ) ;
const xmljs = _ _importStar ( _ _nccwpck _require _ _ ( 8821 ) ) ;
const results _meta _1 = _ _nccwpck _require _ _ ( 5552 ) ;
const path _1 = _ _importDefault ( _ _nccwpck _require _ _ ( 1017 ) ) ;
const ResultsParser = {
parseResults ( filepath ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
if ( ! fs . existsSync ( filepath ) ) {
throw new Error ( ` Missing file! {"filepath": " ${ filepath } "} ` ) ;
}
core . info ( ` Trying to open ${ filepath } ` ) ;
const file = yield fs . promises . readFile ( filepath , 'utf8' ) ;
const results = xmljs . xml2js ( file , { compact : true } ) ;
core . info ( ` File ${ filepath } parsed... ` ) ;
return ResultsParser . convertResults ( path _1 . default . basename ( filepath ) , results ) ;
} ) ;
} ,
convertResults ( filename , filedata ) {
core . info ( ` Start analyzing results: ${ filename } ` ) ;
const run = filedata [ 'test-run' ] ;
const runMeta = new results _meta _1 . RunMeta ( filename ) ;
const tests = ResultsParser . convertSuite ( run [ 'test-suite' ] ) ;
core . debug ( tests . toString ( ) ) ;
runMeta . total = Number ( run . _attributes . total ) ;
runMeta . failed = Number ( run . _attributes . failed ) ;
runMeta . skipped = Number ( run . _attributes . skipped ) ;
runMeta . passed = Number ( run . _attributes . passed ) ;
runMeta . duration = Number ( run . _attributes . duration ) ;
runMeta . addTests ( tests ) ;
return runMeta ;
} ,
convertSuite ( suites ) {
if ( Array . isArray ( suites ) ) {
const innerResult = [ ] ;
for ( const suite of suites ) {
innerResult . push ( ... ResultsParser . convertSuite ( suite ) ) ;
}
return innerResult ;
}
const result = [ ] ;
const innerSuite = suites [ 'test-suite' ] ;
if ( innerSuite ) {
result . push ( ... ResultsParser . convertSuite ( innerSuite ) ) ;
}
const tests = suites [ 'test-case' ] ;
if ( tests ) {
result . push ( ... ResultsParser . convertTests ( suites . _attributes . fullname , tests ) ) ;
}
return result ;
} ,
convertTests ( suite , tests ) {
if ( Array . isArray ( tests ) ) {
const result = [ ] ;
for ( const testCase of tests ) {
result . push ( ResultsParser . convertTestCase ( suite , testCase ) ) ;
}
return result ;
}
return [ ResultsParser . convertTestCase ( suite , tests ) ] ;
} ,
convertTestCase ( suite , testCase ) {
const { _attributes , failure , output } = testCase ;
const { name , fullname , result , duration } = _attributes ;
const testMeta = new results _meta _1 . TestMeta ( suite , name ) ;
testMeta . result = result ;
testMeta . duration = Number ( duration ) ;
if ( ! failure ) {
core . debug ( ` Skip test ${ fullname } without failure data ` ) ;
return testMeta ;
}
core . debug ( ` Convert data for test ${ fullname } ` ) ;
if ( failure [ 'stack-trace' ] === undefined ) {
core . warning ( ` No stack trace for test case: ${ fullname } ` ) ;
return testMeta ;
}
const trace = failure [ 'stack-trace' ] . _cdata ;
const point = ResultsParser . findAnnotationPoint ( trace ) ;
if ( ! point . path || ! point . line ) {
core . warning ( ` Not able to find annotation point for failed test! Test trace: ${ trace } ` ) ;
return testMeta ;
}
const rawDetails = [ trace ] ;
if ( output && output . _cdata ) {
rawDetails . unshift ( output . _cdata ) ;
}
else {
core . debug ( ` No console output for test case: ${ fullname } ` ) ;
}
testMeta . annotation = {
path : point . path ,
start _line : point . line ,
end _line : point . line ,
annotation _level : 'failure' ,
title : fullname ,
message : failure . message . _cdata ? failure . message . _cdata : 'Test Failed!' ,
raw _details : rawDetails . join ( '\n' ) ,
start _column : 0 ,
end _column : 0 ,
blob _href : '' ,
} ;
core . info ( ` - ${ testMeta . annotation . path } : ${ testMeta . annotation . start _line } - ${ testMeta . annotation . title } ` ) ;
return testMeta ;
} ,
findAnnotationPoint ( trace ) {
// Find first entry with non-zero line number in stack trace
const items = trace . match ( /at .* in ((?<path>[^:]+):(?<line>\d+))/g ) ;
if ( Array . isArray ( items ) ) {
const result = [ ] ;
for ( const item of items ) {
const match = item . match ( /at .* in ((?<path>[^:]+):(?<line>\d+))/ ) ;
const point = {
path : match ? match . groups . path : '' ,
line : match ? Number ( match . groups . line ) : 0 ,
} ;
if ( point . line > 0 ) {
result . push ( point ) ;
}
}
if ( result . length > 0 ) {
return result [ 0 ] ;
}
}
// If all entries have zero line number match fallback pattern
const match = trace . match ( /at .* in ((?<path>[^:]+):(?<line>\d+))/ ) ;
return {
path : match ? match . groups . path : '' ,
line : match ? Number ( match . groups . line ) : 0 ,
} ;
} ,
} ;
exports [ "default" ] = ResultsParser ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 7049 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
2022-03-11 17:46:28 +00:00
var _ _importDefault = ( this && this . _ _importDefault ) || function ( mod ) {
return ( mod && mod . _ _esModule ) ? mod : { "default" : mod } ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const fs _1 = _ _importDefault ( _ _nccwpck _require _ _ ( 7147 ) ) ;
const path _1 = _ _importDefault ( _ _nccwpck _require _ _ ( 1017 ) ) ;
const UnityVersionParser = {
get versionPattern ( ) {
return /20\d{2}\.\d\.\w{3,4}|3/ ;
} ,
parse ( projectVersionTxt ) {
const matches = projectVersionTxt . match ( UnityVersionParser . versionPattern ) ;
if ( ! matches || matches . length === 0 ) {
throw new Error ( ` Failed to parse version from " ${ projectVersionTxt } ". ` ) ;
}
return matches [ 0 ] ;
} ,
read ( projectPath ) {
const filePath = path _1 . default . join ( projectPath , 'ProjectSettings' , 'ProjectVersion.txt' ) ;
if ( ! fs _1 . default . existsSync ( filePath ) ) {
throw new Error ( ` Project settings file not found at " ${ filePath } ". Have you correctly set the projectPath? ` ) ;
}
return UnityVersionParser . parse ( fs _1 . default . readFileSync ( filePath , 'utf8' ) ) ;
} ,
} ;
exports [ "default" ] = UnityVersionParser ;
2022-01-11 11:52:29 +00:00
/***/ } ) ,
/***/ 7351 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . issue = exports . issueCommand = void 0 ;
const os = _ _importStar ( _ _nccwpck _require _ _ ( 2037 ) ) ;
const utils _1 = _ _nccwpck _require _ _ ( 5278 ) ;
/ * *
* Commands
*
* Command Format :
* : : name key = value , key = value : : message
*
* Examples :
* : : warning : : This is the message
* : : set - env name = MY _VAR : : some value
* /
function issueCommand ( command , properties , message ) {
const cmd = new Command ( command , properties , message ) ;
process . stdout . write ( cmd . toString ( ) + os . EOL ) ;
}
exports . issueCommand = issueCommand ;
function issue ( name , message = '' ) {
issueCommand ( name , { } , message ) ;
}
exports . issue = issue ;
const CMD _STRING = '::' ;
class Command {
constructor ( command , properties , message ) {
if ( ! command ) {
command = 'missing.command' ;
}
this . command = command ;
this . properties = properties ;
this . message = message ;
}
toString ( ) {
let cmdStr = CMD _STRING + this . command ;
if ( this . properties && Object . keys ( this . properties ) . length > 0 ) {
cmdStr += ' ' ;
let first = true ;
for ( const key in this . properties ) {
if ( this . properties . hasOwnProperty ( key ) ) {
const val = this . properties [ key ] ;
if ( val ) {
if ( first ) {
first = false ;
}
else {
cmdStr += ',' ;
}
cmdStr += ` ${ key } = ${ escapeProperty ( val ) } ` ;
}
}
}
}
cmdStr += ` ${ CMD _STRING } ${ escapeData ( this . message ) } ` ;
return cmdStr ;
}
}
function escapeData ( s ) {
return utils _1 . toCommandValue ( s )
. replace ( /%/g , '%25' )
. replace ( /\r/g , '%0D' )
. replace ( /\n/g , '%0A' ) ;
}
function escapeProperty ( s ) {
return utils _1 . toCommandValue ( s )
. replace ( /%/g , '%25' )
. replace ( /\r/g , '%0D' )
. replace ( /\n/g , '%0A' )
. replace ( /:/g , '%3A' )
. replace ( /,/g , '%2C' ) ;
}
//# sourceMappingURL=command.js.map
/***/ } ) ,
/***/ 2186 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . getIDToken = exports . getState = exports . saveState = exports . group = exports . endGroup = exports . startGroup = exports . info = exports . notice = exports . warning = exports . error = exports . debug = exports . isDebug = exports . setFailed = exports . setCommandEcho = exports . setOutput = exports . getBooleanInput = exports . getMultilineInput = exports . getInput = exports . addPath = exports . setSecret = exports . exportVariable = exports . ExitCode = void 0 ;
const command _1 = _ _nccwpck _require _ _ ( 7351 ) ;
const file _command _1 = _ _nccwpck _require _ _ ( 717 ) ;
const utils _1 = _ _nccwpck _require _ _ ( 5278 ) ;
const os = _ _importStar ( _ _nccwpck _require _ _ ( 2037 ) ) ;
const path = _ _importStar ( _ _nccwpck _require _ _ ( 1017 ) ) ;
const oidc _utils _1 = _ _nccwpck _require _ _ ( 8041 ) ;
/ * *
* The code to exit an action
* /
var ExitCode ;
( function ( ExitCode ) {
/ * *
* A code indicating that the action was successful
* /
ExitCode [ ExitCode [ "Success" ] = 0 ] = "Success" ;
/ * *
* A code indicating that the action was a failure
* /
ExitCode [ ExitCode [ "Failure" ] = 1 ] = "Failure" ;
} ) ( ExitCode = exports . ExitCode || ( exports . ExitCode = { } ) ) ;
//-----------------------------------------------------------------------
// Variables
//-----------------------------------------------------------------------
/ * *
* Sets env variable for this action and future actions in the job
* @ param name the name of the variable to set
* @ param val the value of the variable . Non - string values will be converted to a string via JSON . stringify
* /
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function exportVariable ( name , val ) {
const convertedVal = utils _1 . toCommandValue ( val ) ;
process . env [ name ] = convertedVal ;
const filePath = process . env [ 'GITHUB_ENV' ] || '' ;
if ( filePath ) {
const delimiter = '_GitHubActionsFileCommandDelimeter_' ;
const commandValue = ` ${ name } << ${ delimiter } ${ os . EOL } ${ convertedVal } ${ os . EOL } ${ delimiter } ` ;
file _command _1 . issueCommand ( 'ENV' , commandValue ) ;
}
else {
command _1 . issueCommand ( 'set-env' , { name } , convertedVal ) ;
}
}
exports . exportVariable = exportVariable ;
/ * *
* Registers a secret which will get masked from logs
* @ param secret value of the secret
* /
function setSecret ( secret ) {
command _1 . issueCommand ( 'add-mask' , { } , secret ) ;
}
exports . setSecret = setSecret ;
/ * *
* Prepends inputPath to the PATH ( for this action and future actions )
* @ param inputPath
* /
function addPath ( inputPath ) {
const filePath = process . env [ 'GITHUB_PATH' ] || '' ;
if ( filePath ) {
file _command _1 . issueCommand ( 'PATH' , inputPath ) ;
}
else {
command _1 . issueCommand ( 'add-path' , { } , inputPath ) ;
}
process . env [ 'PATH' ] = ` ${ inputPath } ${ path . delimiter } ${ process . env [ 'PATH' ] } ` ;
}
exports . addPath = addPath ;
/ * *
* Gets the value of an input .
* Unless trimWhitespace is set to false in InputOptions , the value is also trimmed .
* Returns an empty string if the value is not defined .
*
* @ param name name of the input to get
* @ param options optional . See InputOptions .
* @ returns string
* /
function getInput ( name , options ) {
const val = process . env [ ` INPUT_ ${ name . replace ( / /g , '_' ) . toUpperCase ( ) } ` ] || '' ;
if ( options && options . required && ! val ) {
throw new Error ( ` Input required and not supplied: ${ name } ` ) ;
}
if ( options && options . trimWhitespace === false ) {
return val ;
}
return val . trim ( ) ;
}
exports . getInput = getInput ;
/ * *
* Gets the values of an multiline input . Each value is also trimmed .
*
* @ param name name of the input to get
* @ param options optional . See InputOptions .
* @ returns string [ ]
*
* /
function getMultilineInput ( name , options ) {
const inputs = getInput ( name , options )
. split ( '\n' )
. filter ( x => x !== '' ) ;
return inputs ;
}
exports . getMultilineInput = getMultilineInput ;
/ * *
* Gets the input value of the boolean type in the YAML 1.2 "core schema" specification .
* Support boolean input list : ` true | True | TRUE | false | False | FALSE ` .
* The return value is also in boolean type .
* ref : https : //yaml.org/spec/1.2/spec.html#id2804923
*
* @ param name name of the input to get
* @ param options optional . See InputOptions .
* @ returns boolean
* /
function getBooleanInput ( name , options ) {
const trueValue = [ 'true' , 'True' , 'TRUE' ] ;
const falseValue = [ 'false' , 'False' , 'FALSE' ] ;
const val = getInput ( name , options ) ;
if ( trueValue . includes ( val ) )
return true ;
if ( falseValue . includes ( val ) )
return false ;
throw new TypeError ( ` Input does not meet YAML 1.2 "Core Schema" specification: ${ name } \n ` +
` Support boolean input list: \` true | True | TRUE | false | False | FALSE \` ` ) ;
}
exports . getBooleanInput = getBooleanInput ;
/ * *
* Sets the value of an output .
*
* @ param name name of the output to set
* @ param value value to store . Non - string values will be converted to a string via JSON . stringify
* /
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function setOutput ( name , value ) {
process . stdout . write ( os . EOL ) ;
command _1 . issueCommand ( 'set-output' , { name } , value ) ;
}
exports . setOutput = setOutput ;
/ * *
* Enables or disables the echoing of commands into stdout for the rest of the step .
* Echoing is disabled by default if ACTIONS _STEP _DEBUG is not set .
*
* /
function setCommandEcho ( enabled ) {
command _1 . issue ( 'echo' , enabled ? 'on' : 'off' ) ;
}
exports . setCommandEcho = setCommandEcho ;
//-----------------------------------------------------------------------
// Results
//-----------------------------------------------------------------------
/ * *
* Sets the action status to failed .
* When the action exits it will be with an exit code of 1
* @ param message add error issue message
* /
function setFailed ( message ) {
process . exitCode = ExitCode . Failure ;
error ( message ) ;
}
exports . setFailed = setFailed ;
//-----------------------------------------------------------------------
// Logging Commands
//-----------------------------------------------------------------------
/ * *
* Gets whether Actions Step Debug is on or not
* /
function isDebug ( ) {
return process . env [ 'RUNNER_DEBUG' ] === '1' ;
}
exports . isDebug = isDebug ;
/ * *
* Writes debug message to user log
* @ param message debug message
* /
function debug ( message ) {
command _1 . issueCommand ( 'debug' , { } , message ) ;
}
exports . debug = debug ;
/ * *
* Adds an error issue
* @ param message error issue message . Errors will be converted to string via toString ( )
* @ param properties optional properties to add to the annotation .
* /
function error ( message , properties = { } ) {
command _1 . issueCommand ( 'error' , utils _1 . toCommandProperties ( properties ) , message instanceof Error ? message . toString ( ) : message ) ;
}
exports . error = error ;
/ * *
* Adds a warning issue
* @ param message warning issue message . Errors will be converted to string via toString ( )
* @ param properties optional properties to add to the annotation .
* /
function warning ( message , properties = { } ) {
command _1 . issueCommand ( 'warning' , utils _1 . toCommandProperties ( properties ) , message instanceof Error ? message . toString ( ) : message ) ;
}
exports . warning = warning ;
/ * *
* Adds a notice issue
* @ param message notice issue message . Errors will be converted to string via toString ( )
* @ param properties optional properties to add to the annotation .
* /
function notice ( message , properties = { } ) {
command _1 . issueCommand ( 'notice' , utils _1 . toCommandProperties ( properties ) , message instanceof Error ? message . toString ( ) : message ) ;
}
exports . notice = notice ;
/ * *
* Writes info to log with console . log .
* @ param message info message
* /
function info ( message ) {
process . stdout . write ( message + os . EOL ) ;
}
exports . info = info ;
/ * *
* Begin an output group .
*
* Output until the next ` groupEnd ` will be foldable in this group
*
* @ param name The name of the output group
* /
function startGroup ( name ) {
command _1 . issue ( 'group' , name ) ;
}
exports . startGroup = startGroup ;
/ * *
* End an output group .
* /
function endGroup ( ) {
command _1 . issue ( 'endgroup' ) ;
}
exports . endGroup = endGroup ;
/ * *
* Wrap an asynchronous function call in a group .
*
* Returns the same type as the function itself .
*
* @ param name The name of the group
* @ param fn The function to wrap in the group
* /
function group ( name , fn ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
startGroup ( name ) ;
let result ;
try {
result = yield fn ( ) ;
}
finally {
endGroup ( ) ;
}
return result ;
} ) ;
}
exports . group = group ;
//-----------------------------------------------------------------------
// Wrapper action state
//-----------------------------------------------------------------------
/ * *
* Saves state for current action , the state can only be retrieved by this action ' s post job execution .
*
* @ param name name of the state to store
* @ param value value to store . Non - string values will be converted to a string via JSON . stringify
* /
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function saveState ( name , value ) {
command _1 . issueCommand ( 'save-state' , { name } , value ) ;
}
exports . saveState = saveState ;
/ * *
* Gets the value of an state set by this action ' s main execution .
*
* @ param name name of the state to get
* @ returns string
* /
function getState ( name ) {
return process . env [ ` STATE_ ${ name } ` ] || '' ;
}
exports . getState = getState ;
function getIDToken ( aud ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
return yield oidc _utils _1 . OidcClient . getIDToken ( aud ) ;
} ) ;
}
exports . getIDToken = getIDToken ;
//# sourceMappingURL=core.js.map
/***/ } ) ,
/***/ 717 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
// For internal use, subject to change.
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . issueCommand = void 0 ;
// We use any as a valid input type
/* eslint-disable @typescript-eslint/no-explicit-any */
const fs = _ _importStar ( _ _nccwpck _require _ _ ( 7147 ) ) ;
const os = _ _importStar ( _ _nccwpck _require _ _ ( 2037 ) ) ;
const utils _1 = _ _nccwpck _require _ _ ( 5278 ) ;
function issueCommand ( command , message ) {
const filePath = process . env [ ` GITHUB_ ${ command } ` ] ;
if ( ! filePath ) {
throw new Error ( ` Unable to find environment variable for file command ${ command } ` ) ;
}
if ( ! fs . existsSync ( filePath ) ) {
throw new Error ( ` Missing file at path: ${ filePath } ` ) ;
}
fs . appendFileSync ( filePath , ` ${ utils _1 . toCommandValue ( message ) } ${ os . EOL } ` , {
encoding : 'utf8'
} ) ;
}
exports . issueCommand = issueCommand ;
//# sourceMappingURL=file-command.js.map
/***/ } ) ,
/***/ 8041 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . OidcClient = void 0 ;
const http _client _1 = _ _nccwpck _require _ _ ( 9925 ) ;
const auth _1 = _ _nccwpck _require _ _ ( 3702 ) ;
const core _1 = _ _nccwpck _require _ _ ( 2186 ) ;
class OidcClient {
static createHttpClient ( allowRetry = true , maxRetry = 10 ) {
const requestOptions = {
allowRetries : allowRetry ,
maxRetries : maxRetry
} ;
return new http _client _1 . HttpClient ( 'actions/oidc-client' , [ new auth _1 . BearerCredentialHandler ( OidcClient . getRequestToken ( ) ) ] , requestOptions ) ;
}
static getRequestToken ( ) {
const token = process . env [ 'ACTIONS_ID_TOKEN_REQUEST_TOKEN' ] ;
if ( ! token ) {
throw new Error ( 'Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable' ) ;
}
return token ;
}
static getIDTokenUrl ( ) {
const runtimeUrl = process . env [ 'ACTIONS_ID_TOKEN_REQUEST_URL' ] ;
if ( ! runtimeUrl ) {
throw new Error ( 'Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable' ) ;
}
return runtimeUrl ;
}
static getCall ( id _token _url ) {
var _a ;
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const httpclient = OidcClient . createHttpClient ( ) ;
const res = yield httpclient
. getJson ( id _token _url )
. catch ( error => {
throw new Error ( ` Failed to get ID Token. \n
Error Code : $ { error . statusCode } \ n
Error Message : $ { error . result . message } ` );
} ) ;
const id _token = ( _a = res . result ) === null || _a === void 0 ? void 0 : _a . value ;
if ( ! id _token ) {
throw new Error ( 'Response json body do not have ID Token field' ) ;
}
return id _token ;
} ) ;
}
static getIDToken ( audience ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
try {
// New ID Token is requested from action service
let id _token _url = OidcClient . getIDTokenUrl ( ) ;
if ( audience ) {
const encodedAudience = encodeURIComponent ( audience ) ;
id _token _url = ` ${ id _token _url } &audience= ${ encodedAudience } ` ;
}
core _1 . debug ( ` ID token url is ${ id _token _url } ` ) ;
const id _token = yield OidcClient . getCall ( id _token _url ) ;
core _1 . setSecret ( id _token ) ;
return id _token ;
}
catch ( error ) {
throw new Error ( ` Error message: ${ error . message } ` ) ;
}
} ) ;
}
}
exports . OidcClient = OidcClient ;
//# sourceMappingURL=oidc-utils.js.map
/***/ } ) ,
/***/ 5278 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
// We use any as a valid input type
/* eslint-disable @typescript-eslint/no-explicit-any */
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . toCommandProperties = exports . toCommandValue = void 0 ;
/ * *
* Sanitizes an input into a string so it can be passed into issueCommand safely
* @ param input input to sanitize into a string
* /
function toCommandValue ( input ) {
if ( input === null || input === undefined ) {
return '' ;
}
else if ( typeof input === 'string' || input instanceof String ) {
return input ;
}
return JSON . stringify ( input ) ;
}
exports . toCommandValue = toCommandValue ;
/ * *
*
* @ param annotationProperties
* @ returns The command properties to send with the actual annotation command
* See IssueCommandProperties : https : //github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646
* /
function toCommandProperties ( annotationProperties ) {
if ( ! Object . keys ( annotationProperties ) . length ) {
return { } ;
}
return {
title : annotationProperties . title ,
file : annotationProperties . file ,
line : annotationProperties . startLine ,
endLine : annotationProperties . endLine ,
col : annotationProperties . startColumn ,
endColumn : annotationProperties . endColumn
} ;
}
exports . toCommandProperties = toCommandProperties ;
//# sourceMappingURL=utils.js.map
/***/ } ) ,
/***/ 1514 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . getExecOutput = exports . exec = void 0 ;
const string _decoder _1 = _ _nccwpck _require _ _ ( 1576 ) ;
const tr = _ _importStar ( _ _nccwpck _require _ _ ( 8159 ) ) ;
/ * *
* Exec a command .
* Output will be streamed to the live console .
* Returns promise with return code
*
* @ param commandLine command to execute ( can include additional args ) . Must be correctly escaped .
* @ param args optional arguments for tool . Escaping is handled by the lib .
* @ param options optional exec options . See ExecOptions
* @ returns Promise < number > exit code
* /
function exec ( commandLine , args , options ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const commandArgs = tr . argStringToArray ( commandLine ) ;
if ( commandArgs . length === 0 ) {
throw new Error ( ` Parameter 'commandLine' cannot be null or empty. ` ) ;
}
// Path to tool to execute should be first arg
const toolPath = commandArgs [ 0 ] ;
args = commandArgs . slice ( 1 ) . concat ( args || [ ] ) ;
const runner = new tr . ToolRunner ( toolPath , args , options ) ;
return runner . exec ( ) ;
} ) ;
}
exports . exec = exec ;
/ * *
* Exec a command and get the output .
* Output will be streamed to the live console .
* Returns promise with the exit code and collected stdout and stderr
*
* @ param commandLine command to execute ( can include additional args ) . Must be correctly escaped .
* @ param args optional arguments for tool . Escaping is handled by the lib .
* @ param options optional exec options . See ExecOptions
* @ returns Promise < ExecOutput > exit code , stdout , and stderr
* /
function getExecOutput ( commandLine , args , options ) {
var _a , _b ;
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
let stdout = '' ;
let stderr = '' ;
//Using string decoder covers the case where a mult-byte character is split
const stdoutDecoder = new string _decoder _1 . StringDecoder ( 'utf8' ) ;
const stderrDecoder = new string _decoder _1 . StringDecoder ( 'utf8' ) ;
const originalStdoutListener = ( _a = options === null || options === void 0 ? void 0 : options . listeners ) === null || _a === void 0 ? void 0 : _a . stdout ;
const originalStdErrListener = ( _b = options === null || options === void 0 ? void 0 : options . listeners ) === null || _b === void 0 ? void 0 : _b . stderr ;
const stdErrListener = ( data ) => {
stderr += stderrDecoder . write ( data ) ;
if ( originalStdErrListener ) {
originalStdErrListener ( data ) ;
}
} ;
const stdOutListener = ( data ) => {
stdout += stdoutDecoder . write ( data ) ;
if ( originalStdoutListener ) {
originalStdoutListener ( data ) ;
}
} ;
const listeners = Object . assign ( Object . assign ( { } , options === null || options === void 0 ? void 0 : options . listeners ) , { stdout : stdOutListener , stderr : stdErrListener } ) ;
const exitCode = yield exec ( commandLine , args , Object . assign ( Object . assign ( { } , options ) , { listeners } ) ) ;
//flush any remaining characters
stdout += stdoutDecoder . end ( ) ;
stderr += stderrDecoder . end ( ) ;
return {
exitCode ,
stdout ,
stderr
} ;
} ) ;
}
exports . getExecOutput = getExecOutput ;
//# sourceMappingURL=exec.js.map
/***/ } ) ,
/***/ 8159 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . argStringToArray = exports . ToolRunner = void 0 ;
const os = _ _importStar ( _ _nccwpck _require _ _ ( 2037 ) ) ;
const events = _ _importStar ( _ _nccwpck _require _ _ ( 2361 ) ) ;
const child = _ _importStar ( _ _nccwpck _require _ _ ( 2081 ) ) ;
const path = _ _importStar ( _ _nccwpck _require _ _ ( 1017 ) ) ;
const io = _ _importStar ( _ _nccwpck _require _ _ ( 7436 ) ) ;
const ioUtil = _ _importStar ( _ _nccwpck _require _ _ ( 1962 ) ) ;
const timers _1 = _ _nccwpck _require _ _ ( 9512 ) ;
/* eslint-disable @typescript-eslint/unbound-method */
const IS _WINDOWS = process . platform === 'win32' ;
/ *
* Class for running command line tools . Handles quoting and arg parsing in a platform agnostic way .
* /
class ToolRunner extends events . EventEmitter {
constructor ( toolPath , args , options ) {
super ( ) ;
if ( ! toolPath ) {
throw new Error ( "Parameter 'toolPath' cannot be null or empty." ) ;
}
this . toolPath = toolPath ;
this . args = args || [ ] ;
this . options = options || { } ;
}
_debug ( message ) {
if ( this . options . listeners && this . options . listeners . debug ) {
this . options . listeners . debug ( message ) ;
}
}
_getCommandString ( options , noPrefix ) {
const toolPath = this . _getSpawnFileName ( ) ;
const args = this . _getSpawnArgs ( options ) ;
let cmd = noPrefix ? '' : '[command]' ; // omit prefix when piped to a second tool
if ( IS _WINDOWS ) {
// Windows + cmd file
if ( this . _isCmdFile ( ) ) {
cmd += toolPath ;
for ( const a of args ) {
cmd += ` ${ a } ` ;
}
}
// Windows + verbatim
else if ( options . windowsVerbatimArguments ) {
cmd += ` " ${ toolPath } " ` ;
for ( const a of args ) {
cmd += ` ${ a } ` ;
}
}
// Windows (regular)
else {
cmd += this . _windowsQuoteCmdArg ( toolPath ) ;
for ( const a of args ) {
cmd += ` ${ this . _windowsQuoteCmdArg ( a ) } ` ;
}
}
}
else {
// OSX/Linux - this can likely be improved with some form of quoting.
// creating processes on Unix is fundamentally different than Windows.
// on Unix, execvp() takes an arg array.
cmd += toolPath ;
for ( const a of args ) {
cmd += ` ${ a } ` ;
}
}
return cmd ;
}
_processLineBuffer ( data , strBuffer , onLine ) {
try {
let s = strBuffer + data . toString ( ) ;
let n = s . indexOf ( os . EOL ) ;
while ( n > - 1 ) {
const line = s . substring ( 0 , n ) ;
onLine ( line ) ;
// the rest of the string ...
s = s . substring ( n + os . EOL . length ) ;
n = s . indexOf ( os . EOL ) ;
}
return s ;
}
catch ( err ) {
// streaming lines to console is best effort. Don't fail a build.
this . _debug ( ` error processing line. Failed with error ${ err } ` ) ;
return '' ;
}
}
_getSpawnFileName ( ) {
if ( IS _WINDOWS ) {
if ( this . _isCmdFile ( ) ) {
return process . env [ 'COMSPEC' ] || 'cmd.exe' ;
}
}
return this . toolPath ;
}
_getSpawnArgs ( options ) {
if ( IS _WINDOWS ) {
if ( this . _isCmdFile ( ) ) {
let argline = ` /D /S /C " ${ this . _windowsQuoteCmdArg ( this . toolPath ) } ` ;
for ( const a of this . args ) {
argline += ' ' ;
argline += options . windowsVerbatimArguments
? a
: this . _windowsQuoteCmdArg ( a ) ;
}
argline += '"' ;
return [ argline ] ;
}
}
return this . args ;
}
_endsWith ( str , end ) {
return str . endsWith ( end ) ;
}
_isCmdFile ( ) {
const upperToolPath = this . toolPath . toUpperCase ( ) ;
return ( this . _endsWith ( upperToolPath , '.CMD' ) ||
this . _endsWith ( upperToolPath , '.BAT' ) ) ;
}
_windowsQuoteCmdArg ( arg ) {
// for .exe, apply the normal quoting rules that libuv applies
if ( ! this . _isCmdFile ( ) ) {
return this . _uvQuoteCmdArg ( arg ) ;
}
// otherwise apply quoting rules specific to the cmd.exe command line parser.
// the libuv rules are generic and are not designed specifically for cmd.exe
// command line parser.
//
// for a detailed description of the cmd.exe command line parser, refer to
// http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912
// need quotes for empty arg
if ( ! arg ) {
return '""' ;
}
// determine whether the arg needs to be quoted
const cmdSpecialChars = [
' ' ,
'\t' ,
'&' ,
'(' ,
')' ,
'[' ,
']' ,
'{' ,
'}' ,
'^' ,
'=' ,
';' ,
'!' ,
"'" ,
'+' ,
',' ,
'`' ,
'~' ,
'|' ,
'<' ,
'>' ,
'"'
] ;
let needsQuotes = false ;
for ( const char of arg ) {
if ( cmdSpecialChars . some ( x => x === char ) ) {
needsQuotes = true ;
break ;
}
}
// short-circuit if quotes not needed
if ( ! needsQuotes ) {
return arg ;
}
// the following quoting rules are very similar to the rules that by libuv applies.
//
// 1) wrap the string in quotes
//
// 2) double-up quotes - i.e. " => ""
//
// this is different from the libuv quoting rules. libuv replaces " with \", which unfortunately
// doesn't work well with a cmd.exe command line.
//
// note, replacing " with "" also works well if the arg is passed to a downstream .NET console app.
// for example, the command line:
// foo.exe "myarg:""my val"""
// is parsed by a .NET console app into an arg array:
// [ "myarg:\"my val\"" ]
// which is the same end result when applying libuv quoting rules. although the actual
// command line from libuv quoting rules would look like:
// foo.exe "myarg:\"my val\""
//
// 3) double-up slashes that precede a quote,
// e.g. hello \world => "hello \world"
// hello\"world => "hello\\""world"
// hello\\"world => "hello\\\\""world"
// hello world\ => "hello world\\"
//
// technically this is not required for a cmd.exe command line, or the batch argument parser.
// the reasons for including this as a .cmd quoting rule are:
//
// a) this is optimized for the scenario where the argument is passed from the .cmd file to an
// external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.
//
// b) it's what we've been doing previously (by deferring to node default behavior) and we
// haven't heard any complaints about that aspect.
//
// note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be
// escaped when used on the command line directly - even though within a .cmd file % can be escaped
// by using %%.
//
// the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts
// the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.
//
// one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would
// often work, since it is unlikely that var^ would exist, and the ^ character is removed when the
// variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args
// to an external program.
//
// an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.
// % can be escaped within a .cmd file.
let reverse = '"' ;
let quoteHit = true ;
for ( let i = arg . length ; i > 0 ; i -- ) {
// walk the string in reverse
reverse += arg [ i - 1 ] ;
if ( quoteHit && arg [ i - 1 ] === '\\' ) {
reverse += '\\' ; // double the slash
}
else if ( arg [ i - 1 ] === '"' ) {
quoteHit = true ;
reverse += '"' ; // double the quote
}
else {
quoteHit = false ;
}
}
reverse += '"' ;
return reverse
. split ( '' )
. reverse ( )
. join ( '' ) ;
}
_uvQuoteCmdArg ( arg ) {
// Tool runner wraps child_process.spawn() and needs to apply the same quoting as
// Node in certain cases where the undocumented spawn option windowsVerbatimArguments
// is used.
//
// Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,
// see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),
// pasting copyright notice from Node within this function:
//
// Copyright Joyent, Inc. and other Node contributors. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
if ( ! arg ) {
// Need double quotation for empty argument
return '""' ;
}
if ( ! arg . includes ( ' ' ) && ! arg . includes ( '\t' ) && ! arg . includes ( '"' ) ) {
// No quotation needed
return arg ;
}
if ( ! arg . includes ( '"' ) && ! arg . includes ( '\\' ) ) {
// No embedded double quotes or backslashes, so I can just wrap
// quote marks around the whole thing.
return ` " ${ arg } " ` ;
}
// Expected input/output:
// input : hello"world
// output: "hello\"world"
// input : hello""world
// output: "hello\"\"world"
// input : hello\world
// output: hello\world
// input : hello\\world
// output: hello\\world
// input : hello\"world
// output: "hello\\\"world"
// input : hello\\"world
// output: "hello\\\\\"world"
// input : hello world\
// output: "hello world\\" - note the comment in libuv actually reads "hello world\"
// but it appears the comment is wrong, it should be "hello world\\"
let reverse = '"' ;
let quoteHit = true ;
for ( let i = arg . length ; i > 0 ; i -- ) {
// walk the string in reverse
reverse += arg [ i - 1 ] ;
if ( quoteHit && arg [ i - 1 ] === '\\' ) {
reverse += '\\' ;
}
else if ( arg [ i - 1 ] === '"' ) {
quoteHit = true ;
reverse += '\\' ;
}
else {
quoteHit = false ;
}
}
reverse += '"' ;
return reverse
. split ( '' )
. reverse ( )
. join ( '' ) ;
}
_cloneExecOptions ( options ) {
options = options || { } ;
const result = {
cwd : options . cwd || process . cwd ( ) ,
env : options . env || process . env ,
silent : options . silent || false ,
windowsVerbatimArguments : options . windowsVerbatimArguments || false ,
failOnStdErr : options . failOnStdErr || false ,
ignoreReturnCode : options . ignoreReturnCode || false ,
delay : options . delay || 10000
} ;
result . outStream = options . outStream || process . stdout ;
result . errStream = options . errStream || process . stderr ;
return result ;
}
_getSpawnOptions ( options , toolPath ) {
options = options || { } ;
const result = { } ;
result . cwd = options . cwd ;
result . env = options . env ;
result [ 'windowsVerbatimArguments' ] =
options . windowsVerbatimArguments || this . _isCmdFile ( ) ;
if ( options . windowsVerbatimArguments ) {
result . argv0 = ` " ${ toolPath } " ` ;
}
return result ;
}
/ * *
* Exec a tool .
* Output will be streamed to the live console .
* Returns promise with return code
*
* @ param tool path to tool to exec
* @ param options optional exec options . See ExecOptions
* @ returns number
* /
exec ( ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
// root the tool path if it is unrooted and contains relative pathing
if ( ! ioUtil . isRooted ( this . toolPath ) &&
( this . toolPath . includes ( '/' ) ||
( IS _WINDOWS && this . toolPath . includes ( '\\' ) ) ) ) {
// prefer options.cwd if it is specified, however options.cwd may also need to be rooted
this . toolPath = path . resolve ( process . cwd ( ) , this . options . cwd || process . cwd ( ) , this . toolPath ) ;
}
// if the tool is only a file name, then resolve it from the PATH
// otherwise verify it exists (add extension on Windows if necessary)
this . toolPath = yield io . which ( this . toolPath , true ) ;
return new Promise ( ( resolve , reject ) => _ _awaiter ( this , void 0 , void 0 , function * ( ) {
this . _debug ( ` exec tool: ${ this . toolPath } ` ) ;
this . _debug ( 'arguments:' ) ;
for ( const arg of this . args ) {
this . _debug ( ` ${ arg } ` ) ;
}
const optionsNonNull = this . _cloneExecOptions ( this . options ) ;
if ( ! optionsNonNull . silent && optionsNonNull . outStream ) {
optionsNonNull . outStream . write ( this . _getCommandString ( optionsNonNull ) + os . EOL ) ;
}
const state = new ExecState ( optionsNonNull , this . toolPath ) ;
state . on ( 'debug' , ( message ) => {
this . _debug ( message ) ;
} ) ;
if ( this . options . cwd && ! ( yield ioUtil . exists ( this . options . cwd ) ) ) {
return reject ( new Error ( ` The cwd: ${ this . options . cwd } does not exist! ` ) ) ;
}
const fileName = this . _getSpawnFileName ( ) ;
const cp = child . spawn ( fileName , this . _getSpawnArgs ( optionsNonNull ) , this . _getSpawnOptions ( this . options , fileName ) ) ;
let stdbuffer = '' ;
if ( cp . stdout ) {
cp . stdout . on ( 'data' , ( data ) => {
if ( this . options . listeners && this . options . listeners . stdout ) {
this . options . listeners . stdout ( data ) ;
}
if ( ! optionsNonNull . silent && optionsNonNull . outStream ) {
optionsNonNull . outStream . write ( data ) ;
}
stdbuffer = this . _processLineBuffer ( data , stdbuffer , ( line ) => {
if ( this . options . listeners && this . options . listeners . stdline ) {
this . options . listeners . stdline ( line ) ;
}
} ) ;
} ) ;
}
let errbuffer = '' ;
if ( cp . stderr ) {
cp . stderr . on ( 'data' , ( data ) => {
state . processStderr = true ;
if ( this . options . listeners && this . options . listeners . stderr ) {
this . options . listeners . stderr ( data ) ;
}
if ( ! optionsNonNull . silent &&
optionsNonNull . errStream &&
optionsNonNull . outStream ) {
const s = optionsNonNull . failOnStdErr
? optionsNonNull . errStream
: optionsNonNull . outStream ;
s . write ( data ) ;
}
errbuffer = this . _processLineBuffer ( data , errbuffer , ( line ) => {
if ( this . options . listeners && this . options . listeners . errline ) {
this . options . listeners . errline ( line ) ;
}
} ) ;
} ) ;
}
cp . on ( 'error' , ( err ) => {
state . processError = err . message ;
state . processExited = true ;
state . processClosed = true ;
state . CheckComplete ( ) ;
} ) ;
cp . on ( 'exit' , ( code ) => {
state . processExitCode = code ;
state . processExited = true ;
this . _debug ( ` Exit code ${ code } received from tool ' ${ this . toolPath } ' ` ) ;
state . CheckComplete ( ) ;
} ) ;
cp . on ( 'close' , ( code ) => {
state . processExitCode = code ;
state . processExited = true ;
state . processClosed = true ;
this . _debug ( ` STDIO streams have closed for tool ' ${ this . toolPath } ' ` ) ;
state . CheckComplete ( ) ;
} ) ;
state . on ( 'done' , ( error , exitCode ) => {
if ( stdbuffer . length > 0 ) {
this . emit ( 'stdline' , stdbuffer ) ;
}
if ( errbuffer . length > 0 ) {
this . emit ( 'errline' , errbuffer ) ;
}
cp . removeAllListeners ( ) ;
if ( error ) {
reject ( error ) ;
}
else {
resolve ( exitCode ) ;
}
} ) ;
if ( this . options . input ) {
if ( ! cp . stdin ) {
throw new Error ( 'child process missing stdin' ) ;
}
cp . stdin . end ( this . options . input ) ;
}
} ) ) ;
} ) ;
}
}
exports . ToolRunner = ToolRunner ;
/ * *
* Convert an arg string to an array of args . Handles escaping
*
* @ param argString string of arguments
* @ returns string [ ] array of arguments
* /
function argStringToArray ( argString ) {
const args = [ ] ;
let inQuotes = false ;
let escaped = false ;
let arg = '' ;
function append ( c ) {
// we only escape double quotes.
if ( escaped && c !== '"' ) {
arg += '\\' ;
}
arg += c ;
escaped = false ;
}
for ( let i = 0 ; i < argString . length ; i ++ ) {
const c = argString . charAt ( i ) ;
if ( c === '"' ) {
if ( ! escaped ) {
inQuotes = ! inQuotes ;
}
else {
append ( c ) ;
}
continue ;
}
if ( c === '\\' && escaped ) {
append ( c ) ;
continue ;
}
if ( c === '\\' && inQuotes ) {
escaped = true ;
continue ;
}
if ( c === ' ' && ! inQuotes ) {
if ( arg . length > 0 ) {
args . push ( arg ) ;
arg = '' ;
}
continue ;
}
append ( c ) ;
}
if ( arg . length > 0 ) {
args . push ( arg . trim ( ) ) ;
}
return args ;
}
exports . argStringToArray = argStringToArray ;
class ExecState extends events . EventEmitter {
constructor ( options , toolPath ) {
super ( ) ;
this . processClosed = false ; // tracks whether the process has exited and stdio is closed
this . processError = '' ;
this . processExitCode = 0 ;
this . processExited = false ; // tracks whether the process has exited
this . processStderr = false ; // tracks whether stderr was written to
this . delay = 10000 ; // 10 seconds
this . done = false ;
this . timeout = null ;
if ( ! toolPath ) {
throw new Error ( 'toolPath must not be empty' ) ;
}
this . options = options ;
this . toolPath = toolPath ;
if ( options . delay ) {
this . delay = options . delay ;
}
}
CheckComplete ( ) {
if ( this . done ) {
return ;
}
if ( this . processClosed ) {
this . _setResult ( ) ;
}
else if ( this . processExited ) {
this . timeout = timers _1 . setTimeout ( ExecState . HandleTimeout , this . delay , this ) ;
}
}
_debug ( message ) {
this . emit ( 'debug' , message ) ;
}
_setResult ( ) {
// determine whether there is an error
let error ;
if ( this . processExited ) {
if ( this . processError ) {
error = new Error ( ` There was an error when attempting to execute the process ' ${ this . toolPath } '. This may indicate the process failed to start. Error: ${ this . processError } ` ) ;
}
else if ( this . processExitCode !== 0 && ! this . options . ignoreReturnCode ) {
error = new Error ( ` The process ' ${ this . toolPath } ' failed with exit code ${ this . processExitCode } ` ) ;
}
else if ( this . processStderr && this . options . failOnStdErr ) {
error = new Error ( ` The process ' ${ this . toolPath } ' failed because one or more lines were written to the STDERR stream ` ) ;
}
}
// clear the timeout
if ( this . timeout ) {
clearTimeout ( this . timeout ) ;
this . timeout = null ;
}
this . done = true ;
this . emit ( 'done' , error , this . processExitCode ) ;
}
static HandleTimeout ( state ) {
if ( state . done ) {
return ;
}
if ( ! state . processClosed && state . processExited ) {
const message = ` The STDIO streams did not close within ${ state . delay /
1000 } seconds of the exit event from process '${state.toolPath}' . This may indicate a child process inherited the STDIO streams and has not yet exited . ` ;
state . _debug ( message ) ;
}
state . _setResult ( ) ;
}
}
//# sourceMappingURL=toolrunner.js.map
/***/ } ) ,
/***/ 4087 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . Context = void 0 ;
const fs _1 = _ _nccwpck _require _ _ ( 7147 ) ;
const os _1 = _ _nccwpck _require _ _ ( 2037 ) ;
class Context {
/ * *
* Hydrate the context from the environment
* /
constructor ( ) {
2022-01-11 13:44:47 +00:00
var _a , _b , _c ;
2022-01-11 11:52:29 +00:00
this . payload = { } ;
if ( process . env . GITHUB _EVENT _PATH ) {
if ( fs _1 . existsSync ( process . env . GITHUB _EVENT _PATH ) ) {
this . payload = JSON . parse ( fs _1 . readFileSync ( process . env . GITHUB _EVENT _PATH , { encoding : 'utf8' } ) ) ;
}
else {
const path = process . env . GITHUB _EVENT _PATH ;
process . stdout . write ( ` GITHUB_EVENT_PATH ${ path } does not exist ${ os _1 . EOL } ` ) ;
}
}
this . eventName = process . env . GITHUB _EVENT _NAME ;
this . sha = process . env . GITHUB _SHA ;
this . ref = process . env . GITHUB _REF ;
this . workflow = process . env . GITHUB _WORKFLOW ;
this . action = process . env . GITHUB _ACTION ;
this . actor = process . env . GITHUB _ACTOR ;
this . job = process . env . GITHUB _JOB ;
this . runNumber = parseInt ( process . env . GITHUB _RUN _NUMBER , 10 ) ;
this . runId = parseInt ( process . env . GITHUB _RUN _ID , 10 ) ;
2022-01-11 13:44:47 +00:00
this . apiUrl = ( _a = process . env . GITHUB _API _URL ) !== null && _a !== void 0 ? _a : ` https://api.github.com ` ;
this . serverUrl = ( _b = process . env . GITHUB _SERVER _URL ) !== null && _b !== void 0 ? _b : ` https://github.com ` ;
this . graphqlUrl = ( _c = process . env . GITHUB _GRAPHQL _URL ) !== null && _c !== void 0 ? _c : ` https://api.github.com/graphql ` ;
2022-01-11 11:52:29 +00:00
}
get issue ( ) {
const payload = this . payload ;
return Object . assign ( Object . assign ( { } , this . repo ) , { number : ( payload . issue || payload . pull _request || payload ) . number } ) ;
}
get repo ( ) {
if ( process . env . GITHUB _REPOSITORY ) {
const [ owner , repo ] = process . env . GITHUB _REPOSITORY . split ( '/' ) ;
return { owner , repo } ;
}
if ( this . payload . repository ) {
return {
owner : this . payload . repository . owner . login ,
repo : this . payload . repository . name
} ;
}
throw new Error ( "context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'" ) ;
}
}
exports . Context = Context ;
//# sourceMappingURL=context.js.map
/***/ } ) ,
/***/ 5438 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
2022-01-11 13:44:47 +00:00
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
2022-01-11 11:52:29 +00:00
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . getOctokit = exports . context = void 0 ;
const Context = _ _importStar ( _ _nccwpck _require _ _ ( 4087 ) ) ;
const utils _1 = _ _nccwpck _require _ _ ( 3030 ) ;
exports . context = new Context . Context ( ) ;
/ * *
* Returns a hydrated octokit ready to use for GitHub Actions
*
* @ param token the repo PAT or GITHUB _TOKEN
* @ param options other options to set
* /
function getOctokit ( token , options ) {
return new utils _1 . GitHub ( utils _1 . getOctokitOptions ( token , options ) ) ;
}
exports . getOctokit = getOctokit ;
//# sourceMappingURL=github.js.map
/***/ } ) ,
/***/ 7914 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
2022-01-11 13:44:47 +00:00
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
2022-01-11 11:52:29 +00:00
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . getApiBaseUrl = exports . getProxyAgent = exports . getAuthString = void 0 ;
const httpClient = _ _importStar ( _ _nccwpck _require _ _ ( 9925 ) ) ;
function getAuthString ( token , options ) {
if ( ! token && ! options . auth ) {
throw new Error ( 'Parameter token or opts.auth is required' ) ;
}
else if ( token && options . auth ) {
throw new Error ( 'Parameters token and opts.auth may not both be specified' ) ;
}
return typeof options . auth === 'string' ? options . auth : ` token ${ token } ` ;
}
exports . getAuthString = getAuthString ;
function getProxyAgent ( destinationUrl ) {
const hc = new httpClient . HttpClient ( ) ;
return hc . getAgent ( destinationUrl ) ;
}
exports . getProxyAgent = getProxyAgent ;
function getApiBaseUrl ( ) {
return process . env [ 'GITHUB_API_URL' ] || 'https://api.github.com' ;
}
exports . getApiBaseUrl = getApiBaseUrl ;
//# sourceMappingURL=utils.js.map
/***/ } ) ,
/***/ 3030 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
2022-01-11 13:44:47 +00:00
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
2022-01-11 11:52:29 +00:00
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . getOctokitOptions = exports . GitHub = exports . context = void 0 ;
const Context = _ _importStar ( _ _nccwpck _require _ _ ( 4087 ) ) ;
const Utils = _ _importStar ( _ _nccwpck _require _ _ ( 7914 ) ) ;
// octokit + plugins
const core _1 = _ _nccwpck _require _ _ ( 6762 ) ;
const plugin _rest _endpoint _methods _1 = _ _nccwpck _require _ _ ( 3044 ) ;
const plugin _paginate _rest _1 = _ _nccwpck _require _ _ ( 4193 ) ;
exports . context = new Context . Context ( ) ;
const baseUrl = Utils . getApiBaseUrl ( ) ;
const defaults = {
baseUrl ,
request : {
agent : Utils . getProxyAgent ( baseUrl )
}
} ;
exports . GitHub = core _1 . Octokit . plugin ( plugin _rest _endpoint _methods _1 . restEndpointMethods , plugin _paginate _rest _1 . paginateRest ) . defaults ( defaults ) ;
/ * *
* Convience function to correctly format Octokit Options to pass into the constructor .
*
* @ param token the repo PAT or GITHUB _TOKEN
* @ param options other options to set
* /
function getOctokitOptions ( token , options ) {
const opts = Object . assign ( { } , options || { } ) ; // Shallow clone - don't mutate the object provided by the caller
// Auth
const auth = Utils . getAuthString ( token , opts ) ;
if ( auth ) {
opts . auth = auth ;
}
return opts ;
}
exports . getOctokitOptions = getOctokitOptions ;
//# sourceMappingURL=utils.js.map
/***/ } ) ,
/***/ 3702 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
class BasicCredentialHandler {
constructor ( username , password ) {
this . username = username ;
this . password = password ;
}
prepareRequest ( options ) {
options . headers [ 'Authorization' ] =
'Basic ' +
Buffer . from ( this . username + ':' + this . password ) . toString ( 'base64' ) ;
}
// This handler cannot handle 401
canHandleAuthentication ( response ) {
return false ;
}
handleAuthentication ( httpClient , requestInfo , objs ) {
return null ;
}
}
exports . BasicCredentialHandler = BasicCredentialHandler ;
class BearerCredentialHandler {
constructor ( token ) {
this . token = token ;
}
// currently implements pre-authorization
// TODO: support preAuth = false where it hooks on 401
prepareRequest ( options ) {
options . headers [ 'Authorization' ] = 'Bearer ' + this . token ;
}
// This handler cannot handle 401
canHandleAuthentication ( response ) {
return false ;
}
handleAuthentication ( httpClient , requestInfo , objs ) {
return null ;
}
}
exports . BearerCredentialHandler = BearerCredentialHandler ;
class PersonalAccessTokenCredentialHandler {
constructor ( token ) {
this . token = token ;
}
// currently implements pre-authorization
// TODO: support preAuth = false where it hooks on 401
prepareRequest ( options ) {
options . headers [ 'Authorization' ] =
'Basic ' + Buffer . from ( 'PAT:' + this . token ) . toString ( 'base64' ) ;
}
// This handler cannot handle 401
canHandleAuthentication ( response ) {
return false ;
}
handleAuthentication ( httpClient , requestInfo , objs ) {
return null ;
}
}
exports . PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler ;
/***/ } ) ,
/***/ 9925 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const http = _ _nccwpck _require _ _ ( 3685 ) ;
const https = _ _nccwpck _require _ _ ( 5687 ) ;
const pm = _ _nccwpck _require _ _ ( 6443 ) ;
let tunnel ;
var HttpCodes ;
( function ( HttpCodes ) {
HttpCodes [ HttpCodes [ "OK" ] = 200 ] = "OK" ;
HttpCodes [ HttpCodes [ "MultipleChoices" ] = 300 ] = "MultipleChoices" ;
HttpCodes [ HttpCodes [ "MovedPermanently" ] = 301 ] = "MovedPermanently" ;
HttpCodes [ HttpCodes [ "ResourceMoved" ] = 302 ] = "ResourceMoved" ;
HttpCodes [ HttpCodes [ "SeeOther" ] = 303 ] = "SeeOther" ;
HttpCodes [ HttpCodes [ "NotModified" ] = 304 ] = "NotModified" ;
HttpCodes [ HttpCodes [ "UseProxy" ] = 305 ] = "UseProxy" ;
HttpCodes [ HttpCodes [ "SwitchProxy" ] = 306 ] = "SwitchProxy" ;
HttpCodes [ HttpCodes [ "TemporaryRedirect" ] = 307 ] = "TemporaryRedirect" ;
HttpCodes [ HttpCodes [ "PermanentRedirect" ] = 308 ] = "PermanentRedirect" ;
HttpCodes [ HttpCodes [ "BadRequest" ] = 400 ] = "BadRequest" ;
HttpCodes [ HttpCodes [ "Unauthorized" ] = 401 ] = "Unauthorized" ;
HttpCodes [ HttpCodes [ "PaymentRequired" ] = 402 ] = "PaymentRequired" ;
HttpCodes [ HttpCodes [ "Forbidden" ] = 403 ] = "Forbidden" ;
HttpCodes [ HttpCodes [ "NotFound" ] = 404 ] = "NotFound" ;
HttpCodes [ HttpCodes [ "MethodNotAllowed" ] = 405 ] = "MethodNotAllowed" ;
HttpCodes [ HttpCodes [ "NotAcceptable" ] = 406 ] = "NotAcceptable" ;
HttpCodes [ HttpCodes [ "ProxyAuthenticationRequired" ] = 407 ] = "ProxyAuthenticationRequired" ;
HttpCodes [ HttpCodes [ "RequestTimeout" ] = 408 ] = "RequestTimeout" ;
HttpCodes [ HttpCodes [ "Conflict" ] = 409 ] = "Conflict" ;
HttpCodes [ HttpCodes [ "Gone" ] = 410 ] = "Gone" ;
HttpCodes [ HttpCodes [ "TooManyRequests" ] = 429 ] = "TooManyRequests" ;
HttpCodes [ HttpCodes [ "InternalServerError" ] = 500 ] = "InternalServerError" ;
HttpCodes [ HttpCodes [ "NotImplemented" ] = 501 ] = "NotImplemented" ;
HttpCodes [ HttpCodes [ "BadGateway" ] = 502 ] = "BadGateway" ;
HttpCodes [ HttpCodes [ "ServiceUnavailable" ] = 503 ] = "ServiceUnavailable" ;
HttpCodes [ HttpCodes [ "GatewayTimeout" ] = 504 ] = "GatewayTimeout" ;
} ) ( HttpCodes = exports . HttpCodes || ( exports . HttpCodes = { } ) ) ;
var Headers ;
( function ( Headers ) {
Headers [ "Accept" ] = "accept" ;
Headers [ "ContentType" ] = "content-type" ;
} ) ( Headers = exports . Headers || ( exports . Headers = { } ) ) ;
var MediaTypes ;
( function ( MediaTypes ) {
MediaTypes [ "ApplicationJson" ] = "application/json" ;
} ) ( MediaTypes = exports . MediaTypes || ( exports . MediaTypes = { } ) ) ;
/ * *
* Returns the proxy URL , depending upon the supplied url and proxy environment variables .
* @ param serverUrl The server URL where the request will be sent . For example , https : //api.github.com
* /
function getProxyUrl ( serverUrl ) {
let proxyUrl = pm . getProxyUrl ( new URL ( serverUrl ) ) ;
return proxyUrl ? proxyUrl . href : '' ;
}
exports . getProxyUrl = getProxyUrl ;
const HttpRedirectCodes = [
HttpCodes . MovedPermanently ,
HttpCodes . ResourceMoved ,
HttpCodes . SeeOther ,
HttpCodes . TemporaryRedirect ,
HttpCodes . PermanentRedirect
] ;
const HttpResponseRetryCodes = [
HttpCodes . BadGateway ,
HttpCodes . ServiceUnavailable ,
HttpCodes . GatewayTimeout
] ;
const RetryableHttpVerbs = [ 'OPTIONS' , 'GET' , 'DELETE' , 'HEAD' ] ;
const ExponentialBackoffCeiling = 10 ;
const ExponentialBackoffTimeSlice = 5 ;
class HttpClientError extends Error {
constructor ( message , statusCode ) {
super ( message ) ;
this . name = 'HttpClientError' ;
this . statusCode = statusCode ;
Object . setPrototypeOf ( this , HttpClientError . prototype ) ;
}
}
exports . HttpClientError = HttpClientError ;
class HttpClientResponse {
constructor ( message ) {
this . message = message ;
}
readBody ( ) {
return new Promise ( async ( resolve , reject ) => {
let output = Buffer . alloc ( 0 ) ;
this . message . on ( 'data' , ( chunk ) => {
output = Buffer . concat ( [ output , chunk ] ) ;
} ) ;
this . message . on ( 'end' , ( ) => {
resolve ( output . toString ( ) ) ;
} ) ;
} ) ;
}
}
exports . HttpClientResponse = HttpClientResponse ;
function isHttps ( requestUrl ) {
let parsedUrl = new URL ( requestUrl ) ;
return parsedUrl . protocol === 'https:' ;
}
exports . isHttps = isHttps ;
class HttpClient {
constructor ( userAgent , handlers , requestOptions ) {
this . _ignoreSslError = false ;
this . _allowRedirects = true ;
this . _allowRedirectDowngrade = false ;
this . _maxRedirects = 50 ;
this . _allowRetries = false ;
this . _maxRetries = 1 ;
this . _keepAlive = false ;
this . _disposed = false ;
this . userAgent = userAgent ;
this . handlers = handlers || [ ] ;
this . requestOptions = requestOptions ;
if ( requestOptions ) {
if ( requestOptions . ignoreSslError != null ) {
this . _ignoreSslError = requestOptions . ignoreSslError ;
}
this . _socketTimeout = requestOptions . socketTimeout ;
if ( requestOptions . allowRedirects != null ) {
this . _allowRedirects = requestOptions . allowRedirects ;
}
if ( requestOptions . allowRedirectDowngrade != null ) {
this . _allowRedirectDowngrade = requestOptions . allowRedirectDowngrade ;
}
if ( requestOptions . maxRedirects != null ) {
this . _maxRedirects = Math . max ( requestOptions . maxRedirects , 0 ) ;
}
if ( requestOptions . keepAlive != null ) {
this . _keepAlive = requestOptions . keepAlive ;
}
if ( requestOptions . allowRetries != null ) {
this . _allowRetries = requestOptions . allowRetries ;
}
if ( requestOptions . maxRetries != null ) {
this . _maxRetries = requestOptions . maxRetries ;
}
}
}
options ( requestUrl , additionalHeaders ) {
return this . request ( 'OPTIONS' , requestUrl , null , additionalHeaders || { } ) ;
}
get ( requestUrl , additionalHeaders ) {
return this . request ( 'GET' , requestUrl , null , additionalHeaders || { } ) ;
}
del ( requestUrl , additionalHeaders ) {
return this . request ( 'DELETE' , requestUrl , null , additionalHeaders || { } ) ;
}
post ( requestUrl , data , additionalHeaders ) {
return this . request ( 'POST' , requestUrl , data , additionalHeaders || { } ) ;
}
patch ( requestUrl , data , additionalHeaders ) {
return this . request ( 'PATCH' , requestUrl , data , additionalHeaders || { } ) ;
}
put ( requestUrl , data , additionalHeaders ) {
return this . request ( 'PUT' , requestUrl , data , additionalHeaders || { } ) ;
}
head ( requestUrl , additionalHeaders ) {
return this . request ( 'HEAD' , requestUrl , null , additionalHeaders || { } ) ;
}
sendStream ( verb , requestUrl , stream , additionalHeaders ) {
return this . request ( verb , requestUrl , stream , additionalHeaders ) ;
}
/ * *
* Gets a typed object from an endpoint
* Be aware that not found returns a null . Other errors ( 4 xx , 5 xx ) reject the promise
* /
async getJson ( requestUrl , additionalHeaders = { } ) {
additionalHeaders [ Headers . Accept ] = this . _getExistingOrDefaultHeader ( additionalHeaders , Headers . Accept , MediaTypes . ApplicationJson ) ;
let res = await this . get ( requestUrl , additionalHeaders ) ;
return this . _processResponse ( res , this . requestOptions ) ;
}
async postJson ( requestUrl , obj , additionalHeaders = { } ) {
let data = JSON . stringify ( obj , null , 2 ) ;
additionalHeaders [ Headers . Accept ] = this . _getExistingOrDefaultHeader ( additionalHeaders , Headers . Accept , MediaTypes . ApplicationJson ) ;
additionalHeaders [ Headers . ContentType ] = this . _getExistingOrDefaultHeader ( additionalHeaders , Headers . ContentType , MediaTypes . ApplicationJson ) ;
let res = await this . post ( requestUrl , data , additionalHeaders ) ;
return this . _processResponse ( res , this . requestOptions ) ;
}
async putJson ( requestUrl , obj , additionalHeaders = { } ) {
let data = JSON . stringify ( obj , null , 2 ) ;
additionalHeaders [ Headers . Accept ] = this . _getExistingOrDefaultHeader ( additionalHeaders , Headers . Accept , MediaTypes . ApplicationJson ) ;
additionalHeaders [ Headers . ContentType ] = this . _getExistingOrDefaultHeader ( additionalHeaders , Headers . ContentType , MediaTypes . ApplicationJson ) ;
let res = await this . put ( requestUrl , data , additionalHeaders ) ;
return this . _processResponse ( res , this . requestOptions ) ;
}
async patchJson ( requestUrl , obj , additionalHeaders = { } ) {
let data = JSON . stringify ( obj , null , 2 ) ;
additionalHeaders [ Headers . Accept ] = this . _getExistingOrDefaultHeader ( additionalHeaders , Headers . Accept , MediaTypes . ApplicationJson ) ;
additionalHeaders [ Headers . ContentType ] = this . _getExistingOrDefaultHeader ( additionalHeaders , Headers . ContentType , MediaTypes . ApplicationJson ) ;
let res = await this . patch ( requestUrl , data , additionalHeaders ) ;
return this . _processResponse ( res , this . requestOptions ) ;
}
/ * *
* Makes a raw http request .
* All other methods such as get , post , patch , and request ultimately call this .
* Prefer get , del , post and patch
* /
async request ( verb , requestUrl , data , headers ) {
if ( this . _disposed ) {
throw new Error ( 'Client has already been disposed.' ) ;
}
let parsedUrl = new URL ( requestUrl ) ;
let info = this . _prepareRequest ( verb , parsedUrl , headers ) ;
// Only perform retries on reads since writes may not be idempotent.
let maxTries = this . _allowRetries && RetryableHttpVerbs . indexOf ( verb ) != - 1
? this . _maxRetries + 1
: 1 ;
let numTries = 0 ;
let response ;
while ( numTries < maxTries ) {
response = await this . requestRaw ( info , data ) ;
// Check if it's an authentication challenge
if ( response &&
response . message &&
response . message . statusCode === HttpCodes . Unauthorized ) {
let authenticationHandler ;
for ( let i = 0 ; i < this . handlers . length ; i ++ ) {
if ( this . handlers [ i ] . canHandleAuthentication ( response ) ) {
authenticationHandler = this . handlers [ i ] ;
break ;
}
}
if ( authenticationHandler ) {
return authenticationHandler . handleAuthentication ( this , info , data ) ;
}
else {
// We have received an unauthorized response but have no handlers to handle it.
// Let the response return to the caller.
return response ;
}
}
let redirectsRemaining = this . _maxRedirects ;
while ( HttpRedirectCodes . indexOf ( response . message . statusCode ) != - 1 &&
this . _allowRedirects &&
redirectsRemaining > 0 ) {
const redirectUrl = response . message . headers [ 'location' ] ;
if ( ! redirectUrl ) {
// if there's no location to redirect to, we won't
break ;
}
let parsedRedirectUrl = new URL ( redirectUrl ) ;
if ( parsedUrl . protocol == 'https:' &&
parsedUrl . protocol != parsedRedirectUrl . protocol &&
! this . _allowRedirectDowngrade ) {
throw new Error ( 'Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.' ) ;
}
// we need to finish reading the response before reassigning response
// which will leak the open socket.
await response . readBody ( ) ;
// strip authorization header if redirected to a different hostname
if ( parsedRedirectUrl . hostname !== parsedUrl . hostname ) {
for ( let header in headers ) {
// header names are case insensitive
if ( header . toLowerCase ( ) === 'authorization' ) {
delete headers [ header ] ;
}
}
}
// let's make the request with the new redirectUrl
info = this . _prepareRequest ( verb , parsedRedirectUrl , headers ) ;
response = await this . requestRaw ( info , data ) ;
redirectsRemaining -- ;
}
if ( HttpResponseRetryCodes . indexOf ( response . message . statusCode ) == - 1 ) {
// If not a retry code, return immediately instead of retrying
return response ;
}
numTries += 1 ;
if ( numTries < maxTries ) {
await response . readBody ( ) ;
await this . _performExponentialBackoff ( numTries ) ;
}
}
return response ;
}
/ * *
* Needs to be called if keepAlive is set to true in request options .
* /
dispose ( ) {
if ( this . _agent ) {
this . _agent . destroy ( ) ;
}
this . _disposed = true ;
}
/ * *
* Raw request .
* @ param info
* @ param data
* /
requestRaw ( info , data ) {
return new Promise ( ( resolve , reject ) => {
let callbackForResult = function ( err , res ) {
if ( err ) {
reject ( err ) ;
}
resolve ( res ) ;
} ;
this . requestRawWithCallback ( info , data , callbackForResult ) ;
} ) ;
}
/ * *
* Raw request with callback .
* @ param info
* @ param data
* @ param onResult
* /
requestRawWithCallback ( info , data , onResult ) {
let socket ;
if ( typeof data === 'string' ) {
info . options . headers [ 'Content-Length' ] = Buffer . byteLength ( data , 'utf8' ) ;
}
let callbackCalled = false ;
let handleResult = ( err , res ) => {
if ( ! callbackCalled ) {
callbackCalled = true ;
onResult ( err , res ) ;
}
} ;
let req = info . httpModule . request ( info . options , ( msg ) => {
let res = new HttpClientResponse ( msg ) ;
handleResult ( null , res ) ;
} ) ;
req . on ( 'socket' , sock => {
socket = sock ;
} ) ;
// If we ever get disconnected, we want the socket to timeout eventually
req . setTimeout ( this . _socketTimeout || 3 * 60000 , ( ) => {
if ( socket ) {
socket . end ( ) ;
}
handleResult ( new Error ( 'Request timeout: ' + info . options . path ) , null ) ;
} ) ;
req . on ( 'error' , function ( err ) {
// err has statusCode property
// res should have headers
handleResult ( err , null ) ;
} ) ;
if ( data && typeof data === 'string' ) {
req . write ( data , 'utf8' ) ;
}
if ( data && typeof data !== 'string' ) {
data . on ( 'close' , function ( ) {
req . end ( ) ;
} ) ;
data . pipe ( req ) ;
}
else {
req . end ( ) ;
}
}
/ * *
* Gets an http agent . This function is useful when you need an http agent that handles
* routing through a proxy server - depending upon the url and proxy environment variables .
* @ param serverUrl The server URL where the request will be sent . For example , https : //api.github.com
* /
getAgent ( serverUrl ) {
let parsedUrl = new URL ( serverUrl ) ;
return this . _getAgent ( parsedUrl ) ;
}
_prepareRequest ( method , requestUrl , headers ) {
const info = { } ;
info . parsedUrl = requestUrl ;
const usingSsl = info . parsedUrl . protocol === 'https:' ;
info . httpModule = usingSsl ? https : http ;
const defaultPort = usingSsl ? 443 : 80 ;
info . options = { } ;
info . options . host = info . parsedUrl . hostname ;
info . options . port = info . parsedUrl . port
? parseInt ( info . parsedUrl . port )
: defaultPort ;
info . options . path =
( info . parsedUrl . pathname || '' ) + ( info . parsedUrl . search || '' ) ;
info . options . method = method ;
info . options . headers = this . _mergeHeaders ( headers ) ;
if ( this . userAgent != null ) {
info . options . headers [ 'user-agent' ] = this . userAgent ;
}
info . options . agent = this . _getAgent ( info . parsedUrl ) ;
// gives handlers an opportunity to participate
if ( this . handlers ) {
this . handlers . forEach ( handler => {
handler . prepareRequest ( info . options ) ;
} ) ;
}
return info ;
}
_mergeHeaders ( headers ) {
const lowercaseKeys = obj => Object . keys ( obj ) . reduce ( ( c , k ) => ( ( c [ k . toLowerCase ( ) ] = obj [ k ] ) , c ) , { } ) ;
if ( this . requestOptions && this . requestOptions . headers ) {
return Object . assign ( { } , lowercaseKeys ( this . requestOptions . headers ) , lowercaseKeys ( headers ) ) ;
}
return lowercaseKeys ( headers || { } ) ;
}
_getExistingOrDefaultHeader ( additionalHeaders , header , _default ) {
const lowercaseKeys = obj => Object . keys ( obj ) . reduce ( ( c , k ) => ( ( c [ k . toLowerCase ( ) ] = obj [ k ] ) , c ) , { } ) ;
let clientHeader ;
if ( this . requestOptions && this . requestOptions . headers ) {
clientHeader = lowercaseKeys ( this . requestOptions . headers ) [ header ] ;
}
return additionalHeaders [ header ] || clientHeader || _default ;
}
_getAgent ( parsedUrl ) {
let agent ;
let proxyUrl = pm . getProxyUrl ( parsedUrl ) ;
let useProxy = proxyUrl && proxyUrl . hostname ;
if ( this . _keepAlive && useProxy ) {
agent = this . _proxyAgent ;
}
if ( this . _keepAlive && ! useProxy ) {
agent = this . _agent ;
}
// if agent is already assigned use that agent.
if ( ! ! agent ) {
return agent ;
}
const usingSsl = parsedUrl . protocol === 'https:' ;
let maxSockets = 100 ;
if ( ! ! this . requestOptions ) {
maxSockets = this . requestOptions . maxSockets || http . globalAgent . maxSockets ;
}
if ( useProxy ) {
// If using proxy, need tunnel
if ( ! tunnel ) {
tunnel = _ _nccwpck _require _ _ ( 4294 ) ;
}
const agentOptions = {
maxSockets : maxSockets ,
keepAlive : this . _keepAlive ,
proxy : {
... ( ( proxyUrl . username || proxyUrl . password ) && {
proxyAuth : ` ${ proxyUrl . username } : ${ proxyUrl . password } `
} ) ,
host : proxyUrl . hostname ,
port : proxyUrl . port
}
} ;
let tunnelAgent ;
const overHttps = proxyUrl . protocol === 'https:' ;
if ( usingSsl ) {
tunnelAgent = overHttps ? tunnel . httpsOverHttps : tunnel . httpsOverHttp ;
}
else {
tunnelAgent = overHttps ? tunnel . httpOverHttps : tunnel . httpOverHttp ;
}
agent = tunnelAgent ( agentOptions ) ;
this . _proxyAgent = agent ;
}
// if reusing agent across request and tunneling agent isn't assigned create a new agent
if ( this . _keepAlive && ! agent ) {
const options = { keepAlive : this . _keepAlive , maxSockets : maxSockets } ;
agent = usingSsl ? new https . Agent ( options ) : new http . Agent ( options ) ;
this . _agent = agent ;
}
// if not using private agent and tunnel agent isn't setup then use global agent
if ( ! agent ) {
agent = usingSsl ? https . globalAgent : http . globalAgent ;
}
if ( usingSsl && this . _ignoreSslError ) {
// we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process
// http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options
// we have to cast it to any and change it directly
agent . options = Object . assign ( agent . options || { } , {
rejectUnauthorized : false
} ) ;
}
return agent ;
}
_performExponentialBackoff ( retryNumber ) {
retryNumber = Math . min ( ExponentialBackoffCeiling , retryNumber ) ;
const ms = ExponentialBackoffTimeSlice * Math . pow ( 2 , retryNumber ) ;
return new Promise ( resolve => setTimeout ( ( ) => resolve ( ) , ms ) ) ;
}
static dateTimeDeserializer ( key , value ) {
if ( typeof value === 'string' ) {
let a = new Date ( value ) ;
if ( ! isNaN ( a . valueOf ( ) ) ) {
return a ;
}
}
return value ;
}
async _processResponse ( res , options ) {
return new Promise ( async ( resolve , reject ) => {
const statusCode = res . message . statusCode ;
const response = {
statusCode : statusCode ,
result : null ,
headers : { }
} ;
// not found leads to null obj returned
if ( statusCode == HttpCodes . NotFound ) {
resolve ( response ) ;
}
let obj ;
let contents ;
// get the result from the body
try {
contents = await res . readBody ( ) ;
if ( contents && contents . length > 0 ) {
if ( options && options . deserializeDates ) {
obj = JSON . parse ( contents , HttpClient . dateTimeDeserializer ) ;
}
else {
obj = JSON . parse ( contents ) ;
}
response . result = obj ;
}
response . headers = res . message . headers ;
}
catch ( err ) {
// Invalid resource (contents not json); leaving result obj null
}
// note that 3xx redirects are handled by the http layer.
if ( statusCode > 299 ) {
let msg ;
// if exception/error in body, attempt to get better error
if ( obj && obj . message ) {
msg = obj . message ;
}
else if ( contents && contents . length > 0 ) {
// it may be the case that the exception is in the body message as string
msg = contents ;
}
else {
msg = 'Failed request: (' + statusCode + ')' ;
}
let err = new HttpClientError ( msg , statusCode ) ;
err . result = response . result ;
reject ( err ) ;
}
else {
resolve ( response ) ;
}
} ) ;
}
}
exports . HttpClient = HttpClient ;
/***/ } ) ,
/***/ 6443 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
function getProxyUrl ( reqUrl ) {
let usingSsl = reqUrl . protocol === 'https:' ;
let proxyUrl ;
if ( checkBypass ( reqUrl ) ) {
return proxyUrl ;
}
let proxyVar ;
if ( usingSsl ) {
proxyVar = process . env [ 'https_proxy' ] || process . env [ 'HTTPS_PROXY' ] ;
}
else {
proxyVar = process . env [ 'http_proxy' ] || process . env [ 'HTTP_PROXY' ] ;
}
if ( proxyVar ) {
proxyUrl = new URL ( proxyVar ) ;
}
return proxyUrl ;
}
exports . getProxyUrl = getProxyUrl ;
function checkBypass ( reqUrl ) {
if ( ! reqUrl . hostname ) {
return false ;
}
let noProxy = process . env [ 'no_proxy' ] || process . env [ 'NO_PROXY' ] || '' ;
if ( ! noProxy ) {
return false ;
}
// Determine the request port
let reqPort ;
if ( reqUrl . port ) {
reqPort = Number ( reqUrl . port ) ;
}
else if ( reqUrl . protocol === 'http:' ) {
reqPort = 80 ;
}
else if ( reqUrl . protocol === 'https:' ) {
reqPort = 443 ;
}
// Format the request hostname and hostname with port
let upperReqHosts = [ reqUrl . hostname . toUpperCase ( ) ] ;
if ( typeof reqPort === 'number' ) {
upperReqHosts . push ( ` ${ upperReqHosts [ 0 ] } : ${ reqPort } ` ) ;
}
// Compare request host against noproxy
for ( let upperNoProxyItem of noProxy
. split ( ',' )
. map ( x => x . trim ( ) . toUpperCase ( ) )
. filter ( x => x ) ) {
if ( upperReqHosts . some ( x => x === upperNoProxyItem ) ) {
return true ;
}
}
return false ;
}
exports . checkBypass = checkBypass ;
/***/ } ) ,
/***/ 1962 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
var _a ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . getCmdPath = exports . tryGetExecutablePath = exports . isRooted = exports . isDirectory = exports . exists = exports . IS _WINDOWS = exports . unlink = exports . symlink = exports . stat = exports . rmdir = exports . rename = exports . readlink = exports . readdir = exports . mkdir = exports . lstat = exports . copyFile = exports . chmod = void 0 ;
const fs = _ _importStar ( _ _nccwpck _require _ _ ( 7147 ) ) ;
const path = _ _importStar ( _ _nccwpck _require _ _ ( 1017 ) ) ;
_a = fs . promises , exports . chmod = _a . chmod , exports . copyFile = _a . copyFile , exports . lstat = _a . lstat , exports . mkdir = _a . mkdir , exports . readdir = _a . readdir , exports . readlink = _a . readlink , exports . rename = _a . rename , exports . rmdir = _a . rmdir , exports . stat = _a . stat , exports . symlink = _a . symlink , exports . unlink = _a . unlink ;
exports . IS _WINDOWS = process . platform === 'win32' ;
function exists ( fsPath ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
try {
yield exports . stat ( fsPath ) ;
}
catch ( err ) {
if ( err . code === 'ENOENT' ) {
return false ;
}
throw err ;
}
return true ;
} ) ;
}
exports . exists = exists ;
function isDirectory ( fsPath , useStat = false ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const stats = useStat ? yield exports . stat ( fsPath ) : yield exports . lstat ( fsPath ) ;
return stats . isDirectory ( ) ;
} ) ;
}
exports . isDirectory = isDirectory ;
/ * *
* On OSX / Linux , true if path starts with '/' . On Windows , true for paths like :
* \ , \ hello , \ \ hello \ share , C : , and C : \ hello ( and corresponding alternate separator cases ) .
* /
function isRooted ( p ) {
p = normalizeSeparators ( p ) ;
if ( ! p ) {
throw new Error ( 'isRooted() parameter "p" cannot be empty' ) ;
}
if ( exports . IS _WINDOWS ) {
return ( p . startsWith ( '\\' ) || /^[A-Z]:/i . test ( p ) // e.g. \ or \hello or \\hello
) ; // e.g. C: or C:\hello
}
return p . startsWith ( '/' ) ;
}
exports . isRooted = isRooted ;
/ * *
* Best effort attempt to determine whether a file exists and is executable .
* @ param filePath file path to check
* @ param extensions additional file extensions to try
* @ return if file exists and is executable , returns the file path . otherwise empty string .
* /
function tryGetExecutablePath ( filePath , extensions ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
let stats = undefined ;
try {
// test file exists
stats = yield exports . stat ( filePath ) ;
}
catch ( err ) {
if ( err . code !== 'ENOENT' ) {
// eslint-disable-next-line no-console
console . log ( ` Unexpected error attempting to determine if executable file exists ' ${ filePath } ': ${ err } ` ) ;
}
}
if ( stats && stats . isFile ( ) ) {
if ( exports . IS _WINDOWS ) {
// on Windows, test for valid extension
const upperExt = path . extname ( filePath ) . toUpperCase ( ) ;
if ( extensions . some ( validExt => validExt . toUpperCase ( ) === upperExt ) ) {
return filePath ;
}
}
else {
if ( isUnixExecutable ( stats ) ) {
return filePath ;
}
}
}
// try each extension
const originalFilePath = filePath ;
for ( const extension of extensions ) {
filePath = originalFilePath + extension ;
stats = undefined ;
try {
stats = yield exports . stat ( filePath ) ;
}
catch ( err ) {
if ( err . code !== 'ENOENT' ) {
// eslint-disable-next-line no-console
console . log ( ` Unexpected error attempting to determine if executable file exists ' ${ filePath } ': ${ err } ` ) ;
}
}
if ( stats && stats . isFile ( ) ) {
if ( exports . IS _WINDOWS ) {
// preserve the case of the actual file (since an extension was appended)
try {
const directory = path . dirname ( filePath ) ;
const upperName = path . basename ( filePath ) . toUpperCase ( ) ;
for ( const actualName of yield exports . readdir ( directory ) ) {
if ( upperName === actualName . toUpperCase ( ) ) {
filePath = path . join ( directory , actualName ) ;
break ;
}
}
}
catch ( err ) {
// eslint-disable-next-line no-console
console . log ( ` Unexpected error attempting to determine the actual case of the file ' ${ filePath } ': ${ err } ` ) ;
}
return filePath ;
}
else {
if ( isUnixExecutable ( stats ) ) {
return filePath ;
}
}
}
}
return '' ;
} ) ;
}
exports . tryGetExecutablePath = tryGetExecutablePath ;
function normalizeSeparators ( p ) {
p = p || '' ;
if ( exports . IS _WINDOWS ) {
// convert slashes on Windows
p = p . replace ( /\//g , '\\' ) ;
// remove redundant slashes
return p . replace ( /\\\\+/g , '\\' ) ;
}
// remove redundant slashes
return p . replace ( /\/\/+/g , '/' ) ;
}
// on Mac/Linux, test the execute bit
// R W X R W X R W X
// 256 128 64 32 16 8 4 2 1
function isUnixExecutable ( stats ) {
return ( ( stats . mode & 1 ) > 0 ||
( ( stats . mode & 8 ) > 0 && stats . gid === process . getgid ( ) ) ||
( ( stats . mode & 64 ) > 0 && stats . uid === process . getuid ( ) ) ) ;
}
// Get the path of cmd.exe in windows
function getCmdPath ( ) {
var _a ;
return ( _a = process . env [ 'COMSPEC' ] ) !== null && _a !== void 0 ? _a : ` cmd.exe ` ;
}
exports . getCmdPath = getCmdPath ;
//# sourceMappingURL=io-util.js.map
/***/ } ) ,
/***/ 7436 :
/***/ ( function ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) {
"use strict" ;
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . findInPath = exports . which = exports . mkdirP = exports . rmRF = exports . mv = exports . cp = void 0 ;
const assert _1 = _ _nccwpck _require _ _ ( 9491 ) ;
const childProcess = _ _importStar ( _ _nccwpck _require _ _ ( 2081 ) ) ;
const path = _ _importStar ( _ _nccwpck _require _ _ ( 1017 ) ) ;
const util _1 = _ _nccwpck _require _ _ ( 3837 ) ;
const ioUtil = _ _importStar ( _ _nccwpck _require _ _ ( 1962 ) ) ;
const exec = util _1 . promisify ( childProcess . exec ) ;
const execFile = util _1 . promisify ( childProcess . execFile ) ;
/ * *
* Copies a file or folder .
* Based off of shelljs - https : //github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js
*
* @ param source source path
* @ param dest destination path
* @ param options optional . See CopyOptions .
* /
function cp ( source , dest , options = { } ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const { force , recursive , copySourceDirectory } = readCopyOptions ( options ) ;
const destStat = ( yield ioUtil . exists ( dest ) ) ? yield ioUtil . stat ( dest ) : null ;
// Dest is an existing file, but not forcing
if ( destStat && destStat . isFile ( ) && ! force ) {
return ;
}
// If dest is an existing directory, should copy inside.
const newDest = destStat && destStat . isDirectory ( ) && copySourceDirectory
? path . join ( dest , path . basename ( source ) )
: dest ;
if ( ! ( yield ioUtil . exists ( source ) ) ) {
throw new Error ( ` no such file or directory: ${ source } ` ) ;
}
const sourceStat = yield ioUtil . stat ( source ) ;
if ( sourceStat . isDirectory ( ) ) {
if ( ! recursive ) {
throw new Error ( ` Failed to copy. ${ source } is a directory, but tried to copy without recursive flag. ` ) ;
}
else {
yield cpDirRecursive ( source , newDest , 0 , force ) ;
}
}
else {
if ( path . relative ( source , newDest ) === '' ) {
// a file cannot be copied to itself
throw new Error ( ` ' ${ newDest } ' and ' ${ source } ' are the same file ` ) ;
}
yield copyFile ( source , newDest , force ) ;
}
} ) ;
}
exports . cp = cp ;
/ * *
* Moves a path .
*
* @ param source source path
* @ param dest destination path
* @ param options optional . See MoveOptions .
* /
function mv ( source , dest , options = { } ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
if ( yield ioUtil . exists ( dest ) ) {
let destExists = true ;
if ( yield ioUtil . isDirectory ( dest ) ) {
// If dest is directory copy src into dest
dest = path . join ( dest , path . basename ( source ) ) ;
destExists = yield ioUtil . exists ( dest ) ;
}
if ( destExists ) {
if ( options . force == null || options . force ) {
yield rmRF ( dest ) ;
}
else {
throw new Error ( 'Destination already exists' ) ;
}
}
}
yield mkdirP ( path . dirname ( dest ) ) ;
yield ioUtil . rename ( source , dest ) ;
} ) ;
}
exports . mv = mv ;
/ * *
* Remove a path recursively with force
*
* @ param inputPath path to remove
* /
function rmRF ( inputPath ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
if ( ioUtil . IS _WINDOWS ) {
// Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another
// program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del.
// Check for invalid characters
// https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
if ( /[*"<>|]/ . test ( inputPath ) ) {
throw new Error ( 'File path must not contain `*`, `"`, `<`, `>` or `|` on Windows' ) ;
}
try {
const cmdPath = ioUtil . getCmdPath ( ) ;
if ( yield ioUtil . isDirectory ( inputPath , true ) ) {
yield exec ( ` ${ cmdPath } /s /c "rd /s /q "%inputPath%"" ` , {
env : { inputPath }
} ) ;
}
else {
yield exec ( ` ${ cmdPath } /s /c "del /f /a "%inputPath%"" ` , {
env : { inputPath }
} ) ;
}
}
catch ( err ) {
// if you try to delete a file that doesn't exist, desired result is achieved
// other errors are valid
if ( err . code !== 'ENOENT' )
throw err ;
}
// Shelling out fails to remove a symlink folder with missing source, this unlink catches that
try {
yield ioUtil . unlink ( inputPath ) ;
}
catch ( err ) {
// if you try to delete a file that doesn't exist, desired result is achieved
// other errors are valid
if ( err . code !== 'ENOENT' )
throw err ;
}
}
else {
let isDir = false ;
try {
isDir = yield ioUtil . isDirectory ( inputPath ) ;
}
catch ( err ) {
// if you try to delete a file that doesn't exist, desired result is achieved
// other errors are valid
if ( err . code !== 'ENOENT' )
throw err ;
return ;
}
if ( isDir ) {
yield execFile ( ` rm ` , [ ` -rf ` , ` ${ inputPath } ` ] ) ;
}
else {
yield ioUtil . unlink ( inputPath ) ;
}
}
} ) ;
}
exports . rmRF = rmRF ;
/ * *
* Make a directory . Creates the full path with folders in between
* Will throw if it fails
*
* @ param fsPath path to create
* @ returns Promise < void >
* /
function mkdirP ( fsPath ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
assert _1 . ok ( fsPath , 'a path argument must be provided' ) ;
yield ioUtil . mkdir ( fsPath , { recursive : true } ) ;
} ) ;
}
exports . mkdirP = mkdirP ;
/ * *
* Returns path of a tool had the tool actually been invoked . Resolves via paths .
* If you check and the tool does not exist , it will throw .
*
* @ param tool name of the tool
* @ param check whether to check if tool exists
* @ returns Promise < string > path to tool
* /
function which ( tool , check ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
if ( ! tool ) {
throw new Error ( "parameter 'tool' is required" ) ;
}
// recursive when check=true
if ( check ) {
const result = yield which ( tool , false ) ;
if ( ! result ) {
if ( ioUtil . IS _WINDOWS ) {
throw new Error ( ` Unable to locate executable file: ${ tool } . Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file. ` ) ;
}
else {
throw new Error ( ` Unable to locate executable file: ${ tool } . Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable. ` ) ;
}
}
return result ;
}
const matches = yield findInPath ( tool ) ;
if ( matches && matches . length > 0 ) {
return matches [ 0 ] ;
}
return '' ;
} ) ;
}
exports . which = which ;
/ * *
* Returns a list of all occurrences of the given tool on the system path .
*
* @ returns Promise < string [ ] > the paths of the tool
* /
function findInPath ( tool ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
if ( ! tool ) {
throw new Error ( "parameter 'tool' is required" ) ;
}
// build the list of extensions to try
const extensions = [ ] ;
if ( ioUtil . IS _WINDOWS && process . env [ 'PATHEXT' ] ) {
for ( const extension of process . env [ 'PATHEXT' ] . split ( path . delimiter ) ) {
if ( extension ) {
extensions . push ( extension ) ;
}
}
}
// if it's rooted, return it if exists. otherwise return empty.
if ( ioUtil . isRooted ( tool ) ) {
const filePath = yield ioUtil . tryGetExecutablePath ( tool , extensions ) ;
if ( filePath ) {
return [ filePath ] ;
}
return [ ] ;
}
// if any path separators, return empty
if ( tool . includes ( path . sep ) ) {
return [ ] ;
}
// build the list of directories
//
// Note, technically "where" checks the current directory on Windows. From a toolkit perspective,
// it feels like we should not do this. Checking the current directory seems like more of a use
// case of a shell, and the which() function exposed by the toolkit should strive for consistency
// across platforms.
const directories = [ ] ;
if ( process . env . PATH ) {
for ( const p of process . env . PATH . split ( path . delimiter ) ) {
if ( p ) {
directories . push ( p ) ;
}
}
}
// find all matches
const matches = [ ] ;
for ( const directory of directories ) {
const filePath = yield ioUtil . tryGetExecutablePath ( path . join ( directory , tool ) , extensions ) ;
if ( filePath ) {
matches . push ( filePath ) ;
}
}
return matches ;
} ) ;
}
exports . findInPath = findInPath ;
function readCopyOptions ( options ) {
const force = options . force == null ? true : options . force ;
const recursive = Boolean ( options . recursive ) ;
const copySourceDirectory = options . copySourceDirectory == null
? true
: Boolean ( options . copySourceDirectory ) ;
return { force , recursive , copySourceDirectory } ;
}
function cpDirRecursive ( sourceDir , destDir , currentDepth , force ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
// Ensure there is not a run away recursive copy
if ( currentDepth >= 255 )
return ;
currentDepth ++ ;
yield mkdirP ( destDir ) ;
const files = yield ioUtil . readdir ( sourceDir ) ;
for ( const fileName of files ) {
const srcFile = ` ${ sourceDir } / ${ fileName } ` ;
const destFile = ` ${ destDir } / ${ fileName } ` ;
const srcFileStat = yield ioUtil . lstat ( srcFile ) ;
if ( srcFileStat . isDirectory ( ) ) {
// Recurse
yield cpDirRecursive ( srcFile , destFile , currentDepth , force ) ;
}
else {
yield copyFile ( srcFile , destFile , force ) ;
}
}
// Change the mode for the newly created directory
yield ioUtil . chmod ( destDir , ( yield ioUtil . stat ( sourceDir ) ) . mode ) ;
} ) ;
}
// Buffered file copy
function copyFile ( srcFile , destFile , force ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
if ( ( yield ioUtil . lstat ( srcFile ) ) . isSymbolicLink ( ) ) {
// unlink/re-link it
try {
yield ioUtil . lstat ( destFile ) ;
yield ioUtil . unlink ( destFile ) ;
}
catch ( e ) {
// Try to override file permission
if ( e . code === 'EPERM' ) {
yield ioUtil . chmod ( destFile , '0666' ) ;
yield ioUtil . unlink ( destFile ) ;
}
// other errors = it doesn't exist, no work to do
}
// Copy over symlink
const symlinkFull = yield ioUtil . readlink ( srcFile ) ;
yield ioUtil . symlink ( symlinkFull , destFile , ioUtil . IS _WINDOWS ? 'junction' : null ) ;
}
else if ( ! ( yield ioUtil . exists ( destFile ) ) || force ) {
yield ioUtil . copyFile ( srcFile , destFile ) ;
}
} ) ;
}
//# sourceMappingURL=io.js.map
/***/ } ) ,
/***/ 334 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const REGEX _IS _INSTALLATION _LEGACY = /^v1\./ ;
const REGEX _IS _INSTALLATION = /^ghs_/ ;
const REGEX _IS _USER _TO _SERVER = /^ghu_/ ;
async function auth ( token ) {
const isApp = token . split ( /\./ ) . length === 3 ;
const isInstallation = REGEX _IS _INSTALLATION _LEGACY . test ( token ) || REGEX _IS _INSTALLATION . test ( token ) ;
const isUserToServer = REGEX _IS _USER _TO _SERVER . test ( token ) ;
const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth" ;
return {
type : "token" ,
token : token ,
tokenType
} ;
}
/ * *
* Prefix token for usage in the Authorization header
*
* @ param token OAuth token or JSON Web Token
* /
function withAuthorizationPrefix ( token ) {
if ( token . split ( /\./ ) . length === 3 ) {
return ` bearer ${ token } ` ;
}
return ` token ${ token } ` ;
}
async function hook ( token , request , route , parameters ) {
const endpoint = request . endpoint . merge ( route , parameters ) ;
endpoint . headers . authorization = withAuthorizationPrefix ( token ) ;
return request ( endpoint ) ;
}
const createTokenAuth = function createTokenAuth ( token ) {
if ( ! token ) {
throw new Error ( "[@octokit/auth-token] No token passed to createTokenAuth" ) ;
}
if ( typeof token !== "string" ) {
throw new Error ( "[@octokit/auth-token] Token passed to createTokenAuth is not a string" ) ;
}
token = token . replace ( /^(token|bearer) +/i , "" ) ;
return Object . assign ( auth . bind ( null , token ) , {
hook : hook . bind ( null , token )
} ) ;
} ;
exports . createTokenAuth = createTokenAuth ;
//# sourceMappingURL=index.js.map
/***/ } ) ,
/***/ 6762 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
var universalUserAgent = _ _nccwpck _require _ _ ( 5030 ) ;
var beforeAfterHook = _ _nccwpck _require _ _ ( 3682 ) ;
var request = _ _nccwpck _require _ _ ( 6234 ) ;
var graphql = _ _nccwpck _require _ _ ( 8467 ) ;
var authToken = _ _nccwpck _require _ _ ( 334 ) ;
function _objectWithoutPropertiesLoose ( source , excluded ) {
if ( source == null ) return { } ;
var target = { } ;
var sourceKeys = Object . keys ( source ) ;
var key , i ;
for ( i = 0 ; i < sourceKeys . length ; i ++ ) {
key = sourceKeys [ i ] ;
if ( excluded . indexOf ( key ) >= 0 ) continue ;
target [ key ] = source [ key ] ;
}
return target ;
}
function _objectWithoutProperties ( source , excluded ) {
if ( source == null ) return { } ;
var target = _objectWithoutPropertiesLoose ( source , excluded ) ;
var key , i ;
if ( Object . getOwnPropertySymbols ) {
var sourceSymbolKeys = Object . getOwnPropertySymbols ( source ) ;
for ( i = 0 ; i < sourceSymbolKeys . length ; i ++ ) {
key = sourceSymbolKeys [ i ] ;
if ( excluded . indexOf ( key ) >= 0 ) continue ;
if ( ! Object . prototype . propertyIsEnumerable . call ( source , key ) ) continue ;
target [ key ] = source [ key ] ;
}
}
return target ;
}
const VERSION = "3.5.1" ;
const _excluded = [ "authStrategy" ] ;
class Octokit {
constructor ( options = { } ) {
const hook = new beforeAfterHook . Collection ( ) ;
const requestDefaults = {
baseUrl : request . request . endpoint . DEFAULTS . baseUrl ,
headers : { } ,
request : Object . assign ( { } , options . request , {
// @ts-ignore internal usage only, no need to type
hook : hook . bind ( null , "request" )
} ) ,
mediaType : {
previews : [ ] ,
format : ""
}
} ; // prepend default user agent with `options.userAgent` if set
requestDefaults . headers [ "user-agent" ] = [ options . userAgent , ` octokit-core.js/ ${ VERSION } ${ universalUserAgent . getUserAgent ( ) } ` ] . filter ( Boolean ) . join ( " " ) ;
if ( options . baseUrl ) {
requestDefaults . baseUrl = options . baseUrl ;
}
if ( options . previews ) {
requestDefaults . mediaType . previews = options . previews ;
}
if ( options . timeZone ) {
requestDefaults . headers [ "time-zone" ] = options . timeZone ;
}
this . request = request . request . defaults ( requestDefaults ) ;
this . graphql = graphql . withCustomRequest ( this . request ) . defaults ( requestDefaults ) ;
this . log = Object . assign ( {
debug : ( ) => { } ,
info : ( ) => { } ,
warn : console . warn . bind ( console ) ,
error : console . error . bind ( console )
} , options . log ) ;
this . hook = hook ; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance
// is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.
// (2) If only `options.auth` is set, use the default token authentication strategy.
// (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.
// TODO: type `options.auth` based on `options.authStrategy`.
if ( ! options . authStrategy ) {
if ( ! options . auth ) {
// (1)
this . auth = async ( ) => ( {
type : "unauthenticated"
} ) ;
} else {
// (2)
const auth = authToken . createTokenAuth ( options . auth ) ; // @ts-ignore ¯\_(ツ)_/¯
hook . wrap ( "request" , auth . hook ) ;
this . auth = auth ;
}
} else {
const {
authStrategy
} = options ,
otherOptions = _objectWithoutProperties ( options , _excluded ) ;
const auth = authStrategy ( Object . assign ( {
request : this . request ,
log : this . log ,
// we pass the current octokit instance as well as its constructor options
// to allow for authentication strategies that return a new octokit instance
// that shares the same internal state as the current one. The original
// requirement for this was the "event-octokit" authentication strategy
// of https://github.com/probot/octokit-auth-probot.
octokit : this ,
octokitOptions : otherOptions
} , options . auth ) ) ; // @ts-ignore ¯\_(ツ)_/¯
hook . wrap ( "request" , auth . hook ) ;
this . auth = auth ;
} // apply plugins
// https://stackoverflow.com/a/16345172
const classConstructor = this . constructor ;
classConstructor . plugins . forEach ( plugin => {
Object . assign ( this , plugin ( this , options ) ) ;
} ) ;
}
static defaults ( defaults ) {
const OctokitWithDefaults = class extends this {
constructor ( ... args ) {
const options = args [ 0 ] || { } ;
if ( typeof defaults === "function" ) {
super ( defaults ( options ) ) ;
return ;
}
super ( Object . assign ( { } , defaults , options , options . userAgent && defaults . userAgent ? {
userAgent : ` ${ options . userAgent } ${ defaults . userAgent } `
} : null ) ) ;
}
} ;
return OctokitWithDefaults ;
}
/ * *
* Attach a plugin ( or many ) to your Octokit instance .
*
* @ example
* const API = Octokit . plugin ( plugin1 , plugin2 , plugin3 , ... )
* /
static plugin ( ... newPlugins ) {
var _a ;
const currentPlugins = this . plugins ;
const NewOctokit = ( _a = class extends this { } , _a . plugins = currentPlugins . concat ( newPlugins . filter ( plugin => ! currentPlugins . includes ( plugin ) ) ) , _a ) ;
return NewOctokit ;
}
}
Octokit . VERSION = VERSION ;
Octokit . plugins = [ ] ;
exports . Octokit = Octokit ;
//# sourceMappingURL=index.js.map
/***/ } ) ,
/***/ 9440 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
var isPlainObject = _ _nccwpck _require _ _ ( 558 ) ;
var universalUserAgent = _ _nccwpck _require _ _ ( 5030 ) ;
function lowercaseKeys ( object ) {
if ( ! object ) {
return { } ;
}
return Object . keys ( object ) . reduce ( ( newObj , key ) => {
newObj [ key . toLowerCase ( ) ] = object [ key ] ;
return newObj ;
} , { } ) ;
}
function mergeDeep ( defaults , options ) {
const result = Object . assign ( { } , defaults ) ;
Object . keys ( options ) . forEach ( key => {
if ( isPlainObject . isPlainObject ( options [ key ] ) ) {
if ( ! ( key in defaults ) ) Object . assign ( result , {
[ key ] : options [ key ]
} ) ; else result [ key ] = mergeDeep ( defaults [ key ] , options [ key ] ) ;
} else {
Object . assign ( result , {
[ key ] : options [ key ]
} ) ;
}
} ) ;
return result ;
}
function removeUndefinedProperties ( obj ) {
for ( const key in obj ) {
if ( obj [ key ] === undefined ) {
delete obj [ key ] ;
}
}
return obj ;
}
function merge ( defaults , route , options ) {
if ( typeof route === "string" ) {
let [ method , url ] = route . split ( " " ) ;
options = Object . assign ( url ? {
method ,
url
} : {
url : method
} , options ) ;
} else {
options = Object . assign ( { } , route ) ;
} // lowercase header names before merging with defaults to avoid duplicates
options . headers = lowercaseKeys ( options . headers ) ; // remove properties with undefined values before merging
removeUndefinedProperties ( options ) ;
removeUndefinedProperties ( options . headers ) ;
const mergedOptions = mergeDeep ( defaults || { } , options ) ; // mediaType.previews arrays are merged, instead of overwritten
if ( defaults && defaults . mediaType . previews . length ) {
mergedOptions . mediaType . previews = defaults . mediaType . previews . filter ( preview => ! mergedOptions . mediaType . previews . includes ( preview ) ) . concat ( mergedOptions . mediaType . previews ) ;
}
mergedOptions . mediaType . previews = mergedOptions . mediaType . previews . map ( preview => preview . replace ( /-preview/ , "" ) ) ;
return mergedOptions ;
}
function addQueryParameters ( url , parameters ) {
const separator = /\?/ . test ( url ) ? "&" : "?" ;
const names = Object . keys ( parameters ) ;
if ( names . length === 0 ) {
return url ;
}
return url + separator + names . map ( name => {
if ( name === "q" ) {
return "q=" + parameters . q . split ( "+" ) . map ( encodeURIComponent ) . join ( "+" ) ;
}
return ` ${ name } = ${ encodeURIComponent ( parameters [ name ] ) } ` ;
} ) . join ( "&" ) ;
}
const urlVariableRegex = /\{[^}]+\}/g ;
function removeNonChars ( variableName ) {
return variableName . replace ( /^\W+|\W+$/g , "" ) . split ( /,/ ) ;
}
function extractUrlVariableNames ( url ) {
const matches = url . match ( urlVariableRegex ) ;
if ( ! matches ) {
return [ ] ;
}
return matches . map ( removeNonChars ) . reduce ( ( a , b ) => a . concat ( b ) , [ ] ) ;
}
function omit ( object , keysToOmit ) {
return Object . keys ( object ) . filter ( option => ! keysToOmit . includes ( option ) ) . reduce ( ( obj , key ) => {
obj [ key ] = object [ key ] ;
return obj ;
} , { } ) ;
}
// Based on https://github.com/bramstein/url-template, licensed under BSD
// TODO: create separate package.
//
// Copyright (c) 2012-2014, Bram Stein
// All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// 3. The name of the author may not be used to endorse or promote products
// derived from this software without specific prior written permission.
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/* istanbul ignore file */
function encodeReserved ( str ) {
return str . split ( /(%[0-9A-Fa-f]{2})/g ) . map ( function ( part ) {
if ( ! /%[0-9A-Fa-f]/ . test ( part ) ) {
part = encodeURI ( part ) . replace ( /%5B/g , "[" ) . replace ( /%5D/g , "]" ) ;
}
return part ;
} ) . join ( "" ) ;
}
function encodeUnreserved ( str ) {
return encodeURIComponent ( str ) . replace ( /[!'()*]/g , function ( c ) {
return "%" + c . charCodeAt ( 0 ) . toString ( 16 ) . toUpperCase ( ) ;
} ) ;
}
function encodeValue ( operator , value , key ) {
value = operator === "+" || operator === "#" ? encodeReserved ( value ) : encodeUnreserved ( value ) ;
if ( key ) {
return encodeUnreserved ( key ) + "=" + value ;
} else {
return value ;
}
}
function isDefined ( value ) {
return value !== undefined && value !== null ;
}
function isKeyOperator ( operator ) {
return operator === ";" || operator === "&" || operator === "?" ;
}
function getValues ( context , operator , key , modifier ) {
var value = context [ key ] ,
result = [ ] ;
if ( isDefined ( value ) && value !== "" ) {
if ( typeof value === "string" || typeof value === "number" || typeof value === "boolean" ) {
value = value . toString ( ) ;
if ( modifier && modifier !== "*" ) {
value = value . substring ( 0 , parseInt ( modifier , 10 ) ) ;
}
result . push ( encodeValue ( operator , value , isKeyOperator ( operator ) ? key : "" ) ) ;
} else {
if ( modifier === "*" ) {
if ( Array . isArray ( value ) ) {
value . filter ( isDefined ) . forEach ( function ( value ) {
result . push ( encodeValue ( operator , value , isKeyOperator ( operator ) ? key : "" ) ) ;
} ) ;
} else {
Object . keys ( value ) . forEach ( function ( k ) {
if ( isDefined ( value [ k ] ) ) {
result . push ( encodeValue ( operator , value [ k ] , k ) ) ;
}
} ) ;
}
} else {
const tmp = [ ] ;
if ( Array . isArray ( value ) ) {
value . filter ( isDefined ) . forEach ( function ( value ) {
tmp . push ( encodeValue ( operator , value ) ) ;
} ) ;
} else {
Object . keys ( value ) . forEach ( function ( k ) {
if ( isDefined ( value [ k ] ) ) {
tmp . push ( encodeUnreserved ( k ) ) ;
tmp . push ( encodeValue ( operator , value [ k ] . toString ( ) ) ) ;
}
} ) ;
}
if ( isKeyOperator ( operator ) ) {
result . push ( encodeUnreserved ( key ) + "=" + tmp . join ( "," ) ) ;
} else if ( tmp . length !== 0 ) {
result . push ( tmp . join ( "," ) ) ;
}
}
}
} else {
if ( operator === ";" ) {
if ( isDefined ( value ) ) {
result . push ( encodeUnreserved ( key ) ) ;
}
} else if ( value === "" && ( operator === "&" || operator === "?" ) ) {
result . push ( encodeUnreserved ( key ) + "=" ) ;
} else if ( value === "" ) {
result . push ( "" ) ;
}
}
return result ;
}
function parseUrl ( template ) {
return {
expand : expand . bind ( null , template )
} ;
}
function expand ( template , context ) {
var operators = [ "+" , "#" , "." , "/" , ";" , "?" , "&" ] ;
return template . replace ( /\{([^\{\}]+)\}|([^\{\}]+)/g , function ( _ , expression , literal ) {
if ( expression ) {
let operator = "" ;
const values = [ ] ;
if ( operators . indexOf ( expression . charAt ( 0 ) ) !== - 1 ) {
operator = expression . charAt ( 0 ) ;
expression = expression . substr ( 1 ) ;
}
expression . split ( /,/g ) . forEach ( function ( variable ) {
var tmp = /([^:\*]*)(?::(\d+)|(\*))?/ . exec ( variable ) ;
values . push ( getValues ( context , operator , tmp [ 1 ] , tmp [ 2 ] || tmp [ 3 ] ) ) ;
} ) ;
if ( operator && operator !== "+" ) {
var separator = "," ;
if ( operator === "?" ) {
separator = "&" ;
} else if ( operator !== "#" ) {
separator = operator ;
}
return ( values . length !== 0 ? operator : "" ) + values . join ( separator ) ;
} else {
return values . join ( "," ) ;
}
} else {
return encodeReserved ( literal ) ;
}
} ) ;
}
function parse ( options ) {
// https://fetch.spec.whatwg.org/#methods
let method = options . method . toUpperCase ( ) ; // replace :varname with {varname} to make it RFC 6570 compatible
let url = ( options . url || "/" ) . replace ( /:([a-z]\w+)/g , "{$1}" ) ;
let headers = Object . assign ( { } , options . headers ) ;
let body ;
let parameters = omit ( options , [ "method" , "baseUrl" , "url" , "headers" , "request" , "mediaType" ] ) ; // extract variable names from URL to calculate remaining variables later
const urlVariableNames = extractUrlVariableNames ( url ) ;
url = parseUrl ( url ) . expand ( parameters ) ;
if ( ! /^http/ . test ( url ) ) {
url = options . baseUrl + url ;
}
const omittedParameters = Object . keys ( options ) . filter ( option => urlVariableNames . includes ( option ) ) . concat ( "baseUrl" ) ;
const remainingParameters = omit ( parameters , omittedParameters ) ;
const isBinaryRequest = /application\/octet-stream/i . test ( headers . accept ) ;
if ( ! isBinaryRequest ) {
if ( options . mediaType . format ) {
// e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw
headers . accept = headers . accept . split ( /,/ ) . map ( preview => preview . replace ( /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/ , ` application/vnd $ 1 $ 2. ${ options . mediaType . format } ` ) ) . join ( "," ) ;
}
if ( options . mediaType . previews . length ) {
const previewsFromAcceptHeader = headers . accept . match ( /[\w-]+(?=-preview)/g ) || [ ] ;
headers . accept = previewsFromAcceptHeader . concat ( options . mediaType . previews ) . map ( preview => {
const format = options . mediaType . format ? ` . ${ options . mediaType . format } ` : "+json" ;
return ` application/vnd.github. ${ preview } -preview ${ format } ` ;
} ) . join ( "," ) ;
}
} // for GET/HEAD requests, set URL query parameters from remaining parameters
// for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters
if ( [ "GET" , "HEAD" ] . includes ( method ) ) {
url = addQueryParameters ( url , remainingParameters ) ;
} else {
if ( "data" in remainingParameters ) {
body = remainingParameters . data ;
} else {
if ( Object . keys ( remainingParameters ) . length ) {
body = remainingParameters ;
} else {
headers [ "content-length" ] = 0 ;
}
}
} // default content-type for JSON if body is set
if ( ! headers [ "content-type" ] && typeof body !== "undefined" ) {
headers [ "content-type" ] = "application/json; charset=utf-8" ;
} // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.
// fetch does not allow to set `content-length` header, but we can set body to an empty string
if ( [ "PATCH" , "PUT" ] . includes ( method ) && typeof body === "undefined" ) {
body = "" ;
} // Only return body/request keys if present
return Object . assign ( {
method ,
url ,
headers
} , typeof body !== "undefined" ? {
body
} : null , options . request ? {
request : options . request
} : null ) ;
}
function endpointWithDefaults ( defaults , route , options ) {
return parse ( merge ( defaults , route , options ) ) ;
}
function withDefaults ( oldDefaults , newDefaults ) {
const DEFAULTS = merge ( oldDefaults , newDefaults ) ;
const endpoint = endpointWithDefaults . bind ( null , DEFAULTS ) ;
return Object . assign ( endpoint , {
DEFAULTS ,
defaults : withDefaults . bind ( null , DEFAULTS ) ,
merge : merge . bind ( null , DEFAULTS ) ,
parse
} ) ;
}
const VERSION = "6.0.12" ;
const userAgent = ` octokit-endpoint.js/ ${ VERSION } ${ universalUserAgent . getUserAgent ( ) } ` ; // DEFAULTS has all properties set that EndpointOptions has, except url.
// So we use RequestParameters and add method as additional required property.
const DEFAULTS = {
method : "GET" ,
baseUrl : "https://api.github.com" ,
headers : {
accept : "application/vnd.github.v3+json" ,
"user-agent" : userAgent
} ,
mediaType : {
format : "" ,
previews : [ ]
}
} ;
const endpoint = withDefaults ( null , DEFAULTS ) ;
exports . endpoint = endpoint ;
//# sourceMappingURL=index.js.map
/***/ } ) ,
/***/ 558 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
/ * !
* is - plain - object < https : //github.com/jonschlinkert/is-plain-object>
*
* Copyright ( c ) 2014 - 2017 , Jon Schlinkert .
* Released under the MIT License .
* /
function isObject ( o ) {
return Object . prototype . toString . call ( o ) === '[object Object]' ;
}
function isPlainObject ( o ) {
var ctor , prot ;
if ( isObject ( o ) === false ) return false ;
// If has modified constructor
ctor = o . constructor ;
if ( ctor === undefined ) return true ;
// If has modified prototype
prot = ctor . prototype ;
if ( isObject ( prot ) === false ) return false ;
// If constructor does not have an Object-specific method
if ( prot . hasOwnProperty ( 'isPrototypeOf' ) === false ) {
return false ;
}
// Most likely a plain Object
return true ;
}
exports . isPlainObject = isPlainObject ;
/***/ } ) ,
/***/ 8467 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
var request = _ _nccwpck _require _ _ ( 6234 ) ;
var universalUserAgent = _ _nccwpck _require _ _ ( 5030 ) ;
const VERSION = "4.8.0" ;
function _buildMessageForResponseErrors ( data ) {
return ` Request failed due to following response errors: \n ` + data . errors . map ( e => ` - ${ e . message } ` ) . join ( "\n" ) ;
}
class GraphqlResponseError extends Error {
constructor ( request , headers , response ) {
super ( _buildMessageForResponseErrors ( response ) ) ;
this . request = request ;
this . headers = headers ;
this . response = response ;
this . name = "GraphqlResponseError" ; // Expose the errors and response data in their shorthand properties.
this . errors = response . errors ;
this . data = response . data ; // Maintains proper stack trace (only available on V8)
/* istanbul ignore next */
if ( Error . captureStackTrace ) {
Error . captureStackTrace ( this , this . constructor ) ;
}
}
}
const NON _VARIABLE _OPTIONS = [ "method" , "baseUrl" , "url" , "headers" , "request" , "query" , "mediaType" ] ;
const FORBIDDEN _VARIABLE _OPTIONS = [ "query" , "method" , "url" ] ;
const GHES _V3 _SUFFIX _REGEX = /\/api\/v3\/?$/ ;
function graphql ( request , query , options ) {
if ( options ) {
if ( typeof query === "string" && "query" in options ) {
return Promise . reject ( new Error ( ` [@octokit/graphql] "query" cannot be used as variable name ` ) ) ;
}
for ( const key in options ) {
if ( ! FORBIDDEN _VARIABLE _OPTIONS . includes ( key ) ) continue ;
return Promise . reject ( new Error ( ` [@octokit/graphql] " ${ key } " cannot be used as variable name ` ) ) ;
}
}
const parsedOptions = typeof query === "string" ? Object . assign ( {
query
} , options ) : query ;
const requestOptions = Object . keys ( parsedOptions ) . reduce ( ( result , key ) => {
if ( NON _VARIABLE _OPTIONS . includes ( key ) ) {
result [ key ] = parsedOptions [ key ] ;
return result ;
}
if ( ! result . variables ) {
result . variables = { } ;
}
result . variables [ key ] = parsedOptions [ key ] ;
return result ;
} , { } ) ; // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix
// https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451
const baseUrl = parsedOptions . baseUrl || request . endpoint . DEFAULTS . baseUrl ;
if ( GHES _V3 _SUFFIX _REGEX . test ( baseUrl ) ) {
requestOptions . url = baseUrl . replace ( GHES _V3 _SUFFIX _REGEX , "/api/graphql" ) ;
}
return request ( requestOptions ) . then ( response => {
if ( response . data . errors ) {
const headers = { } ;
for ( const key of Object . keys ( response . headers ) ) {
headers [ key ] = response . headers [ key ] ;
}
throw new GraphqlResponseError ( requestOptions , headers , response . data ) ;
}
return response . data . data ;
} ) ;
}
function withDefaults ( request$1 , newDefaults ) {
const newRequest = request$1 . defaults ( newDefaults ) ;
const newApi = ( query , options ) => {
return graphql ( newRequest , query , options ) ;
} ;
return Object . assign ( newApi , {
defaults : withDefaults . bind ( null , newRequest ) ,
endpoint : request . request . endpoint
} ) ;
}
const graphql$1 = withDefaults ( request . request , {
headers : {
"user-agent" : ` octokit-graphql.js/ ${ VERSION } ${ universalUserAgent . getUserAgent ( ) } `
} ,
method : "POST" ,
url : "/graphql"
} ) ;
function withCustomRequest ( customRequest ) {
return withDefaults ( customRequest , {
method : "POST" ,
url : "/graphql"
} ) ;
}
exports . GraphqlResponseError = GraphqlResponseError ;
exports . graphql = graphql$1 ;
exports . withCustomRequest = withCustomRequest ;
//# sourceMappingURL=index.js.map
/***/ } ) ,
/***/ 4193 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
const VERSION = "2.17.0" ;
function ownKeys ( object , enumerableOnly ) {
var keys = Object . keys ( object ) ;
if ( Object . getOwnPropertySymbols ) {
var symbols = Object . getOwnPropertySymbols ( object ) ;
if ( enumerableOnly ) {
symbols = symbols . filter ( function ( sym ) {
return Object . getOwnPropertyDescriptor ( object , sym ) . enumerable ;
} ) ;
}
keys . push . apply ( keys , symbols ) ;
}
return keys ;
}
function _objectSpread2 ( target ) {
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var source = arguments [ i ] != null ? arguments [ i ] : { } ;
if ( i % 2 ) {
ownKeys ( Object ( source ) , true ) . forEach ( function ( key ) {
_defineProperty ( target , key , source [ key ] ) ;
} ) ;
} else if ( Object . getOwnPropertyDescriptors ) {
Object . defineProperties ( target , Object . getOwnPropertyDescriptors ( source ) ) ;
} else {
ownKeys ( Object ( source ) ) . forEach ( function ( key ) {
Object . defineProperty ( target , key , Object . getOwnPropertyDescriptor ( source , key ) ) ;
} ) ;
}
}
return target ;
}
function _defineProperty ( obj , key , value ) {
if ( key in obj ) {
Object . defineProperty ( obj , key , {
value : value ,
enumerable : true ,
configurable : true ,
writable : true
} ) ;
} else {
obj [ key ] = value ;
}
return obj ;
}
/ * *
* Some “ list ” response that can be paginated have a different response structure
*
* They have a ` total_count ` key in the response ( search also has ` incomplete_results ` ,
* / i n s t a l l a t i o n / r e p o s i t o r i e s a l s o h a s ` r e p o s i t o r y _ s e l e c t i o n ` ) , a s w e l l a s a k e y w i t h
* the list of the items which name varies from endpoint to endpoint .
*
* Octokit normalizes these responses so that paginated results are always returned following
* the same structure . One challenge is that if the list response has only one page , no Link
* header is provided , so this header alone is not sufficient to check wether a response is
* paginated or not .
*
* We check if a "total_count" key is present in the response data , but also make sure that
* a "url" property is not , as the "Get the combined status for a specific ref" endpoint would
* otherwise match : https : //developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref
* /
function normalizePaginatedListResponse ( response ) {
// endpoints can respond with 204 if repository is empty
if ( ! response . data ) {
return _objectSpread2 ( _objectSpread2 ( { } , response ) , { } , {
data : [ ]
} ) ;
}
const responseNeedsNormalization = "total_count" in response . data && ! ( "url" in response . data ) ;
if ( ! responseNeedsNormalization ) return response ; // keep the additional properties intact as there is currently no other way
// to retrieve the same information.
const incompleteResults = response . data . incomplete _results ;
const repositorySelection = response . data . repository _selection ;
const totalCount = response . data . total _count ;
delete response . data . incomplete _results ;
delete response . data . repository _selection ;
delete response . data . total _count ;
const namespaceKey = Object . keys ( response . data ) [ 0 ] ;
const data = response . data [ namespaceKey ] ;
response . data = data ;
if ( typeof incompleteResults !== "undefined" ) {
response . data . incomplete _results = incompleteResults ;
}
if ( typeof repositorySelection !== "undefined" ) {
response . data . repository _selection = repositorySelection ;
}
response . data . total _count = totalCount ;
return response ;
}
function iterator ( octokit , route , parameters ) {
const options = typeof route === "function" ? route . endpoint ( parameters ) : octokit . request . endpoint ( route , parameters ) ;
const requestMethod = typeof route === "function" ? route : octokit . request ;
const method = options . method ;
const headers = options . headers ;
let url = options . url ;
return {
[ Symbol . asyncIterator ] : ( ) => ( {
async next ( ) {
if ( ! url ) return {
done : true
} ;
try {
const response = await requestMethod ( {
method ,
url ,
headers
} ) ;
const normalizedResponse = normalizePaginatedListResponse ( response ) ; // `response.headers.link` format:
// '<https://api.github.com/users/aseemk/followers?page=2>; rel="next", <https://api.github.com/users/aseemk/followers?page=2>; rel="last"'
// sets `url` to undefined if "next" URL is not present or `link` header is not set
url = ( ( normalizedResponse . headers . link || "" ) . match ( /<([^>]+)>;\s*rel="next"/ ) || [ ] ) [ 1 ] ;
return {
value : normalizedResponse
} ;
} catch ( error ) {
if ( error . status !== 409 ) throw error ;
url = "" ;
return {
value : {
status : 200 ,
headers : { } ,
data : [ ]
}
} ;
}
}
} )
} ;
}
function paginate ( octokit , route , parameters , mapFn ) {
if ( typeof parameters === "function" ) {
mapFn = parameters ;
parameters = undefined ;
}
return gather ( octokit , [ ] , iterator ( octokit , route , parameters ) [ Symbol . asyncIterator ] ( ) , mapFn ) ;
}
function gather ( octokit , results , iterator , mapFn ) {
return iterator . next ( ) . then ( result => {
if ( result . done ) {
return results ;
}
let earlyExit = false ;
function done ( ) {
earlyExit = true ;
}
results = results . concat ( mapFn ? mapFn ( result . value , done ) : result . value . data ) ;
if ( earlyExit ) {
return results ;
}
return gather ( octokit , results , iterator , mapFn ) ;
} ) ;
}
const composePaginateRest = Object . assign ( paginate , {
iterator
} ) ;
const paginatingEndpoints = [ "GET /app/hook/deliveries" , "GET /app/installations" , "GET /applications/grants" , "GET /authorizations" , "GET /enterprises/{enterprise}/actions/permissions/organizations" , "GET /enterprises/{enterprise}/actions/runner-groups" , "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations" , "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners" , "GET /enterprises/{enterprise}/actions/runners" , "GET /enterprises/{enterprise}/actions/runners/downloads" , "GET /events" , "GET /gists" , "GET /gists/public" , "GET /gists/starred" , "GET /gists/{gist_id}/comments" , "GET /gists/{gist_id}/commits" , "GET /gists/{gist_id}/forks" , "GET /installation/repositories" , "GET /issues" , "GET /marketplace_listing/plans" , "GET /marketplace_listing/plans/{plan_id}/accounts" , "GET /marketplace_listing/stubbed/plans" , "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" , "GET /networks/{owner}/{repo}/events" , "GET /notifications" , "GET /organizations" , "GET /orgs/{org}/actions/permissions/repositories" , "GET /orgs/{org}/actions/runner-groups" , "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories" , "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners" , "GET /orgs/{org}/actions/runners" , "GET /orgs/{org}/actions/runners/downloads" , "GET /orgs/{org}/actions/secrets" , "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" , "GET /orgs/{org}/blocks" , "GET /orgs/{org}/credential-authorizations" , "GET /orgs/{org}/events" , "GET /orgs/{org}/failed_invitations" , "GET /orgs/{org}/hooks" , "GET /orgs/{org}/hooks/{hook_id}/deliveries" , "GET /orgs/{org}/installations" , "GET /orgs/{org}/invitations" , "GET /orgs/{org}/invitations/{invitation_id}/teams" , "GET /orgs/{org}/issues" , "GET /orgs/{org}/members" , "GET /orgs/{org}/migrations" , "GET /orgs/{org}/migrations/{migration_id}/repositories" , "GET /orgs/{org}/outside_collaborators" , "GET /orgs/{org}/packages" , "GET /orgs/{org}/projects" , "GET /orgs/{org}/public_members" , "GET /orgs/{org}/repos" , "GET /orgs/{org}/secret-scanning/alerts" , "GET /orgs/{org}/team-sync/groups" , "GET /orgs/{org}/teams" , "GET /orgs/{org}/teams/{team_slug}/discussions" , "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" , "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" , "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" , "GET /orgs/{org}/teams/{team_slug}/invitations" , "GET /orgs/{org}/teams/{team_slug}/members" , "GET /orgs/{org}/teams/{team_slug}/projects" , "GET /orgs/{org}/teams/{team_slug}/repos" , "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings" , "GET /orgs/{org}/teams/{team_slug}/teams" , "GET /projects/columns/{column_id}/cards" , "GET /projects/{project_id}/collaborators" , "GET /projects/{project_id}/columns" , "GET /repos/{owner}/{repo}/actions/artifacts" , "GET /repos/{owner}/{repo}/actions/runners" , "GET /repos/{owner}/{repo}/actions/runners/downloads" , "GET /repos/{owner}/{repo}/actions/runs" , "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" , "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" , "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" , "GET /repos/{owner}/{repo}/actions/secrets" , "GET /repos/{owner}/{repo}/actions/workflows" , "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" , "GET /repos/{owner}/{repo}/assignees" , "GET /repos/{owner}/{repo}/autolinks" , "GET /repos/{owner}/{repo}/branches" , "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" , "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" , "GET /repos/{owner}/{repo}/code-scanning/alerts" , "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" , "GET /repos/{owner}/{repo}/code-scanning/analyses" , "GET /repos/{owner}/{repo}/collaborators" , "GET /repos/{owner}/{repo}/comments" , "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" , "GET /repos/{owner}/{repo}/commits" , " GET / repos / { owner } / { repo } / commits / { commit _sha } / branches - where -
function isPaginatingEndpoint ( arg ) {
if ( typeof arg === "string" ) {
return paginatingEndpoints . includes ( arg ) ;
} else {
return false ;
}
}
/ * *
* @ param octokit Octokit instance
* @ param options Options passed to Octokit constructor
* /
function paginateRest ( octokit ) {
return {
paginate : Object . assign ( paginate . bind ( null , octokit ) , {
iterator : iterator . bind ( null , octokit )
} )
} ;
}
paginateRest . VERSION = VERSION ;
exports . composePaginateRest = composePaginateRest ;
exports . isPaginatingEndpoint = isPaginatingEndpoint ;
exports . paginateRest = paginateRest ;
exports . paginatingEndpoints = paginatingEndpoints ;
//# sourceMappingURL=index.js.map
/***/ } ) ,
/***/ 3044 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
function ownKeys ( object , enumerableOnly ) {
var keys = Object . keys ( object ) ;
if ( Object . getOwnPropertySymbols ) {
var symbols = Object . getOwnPropertySymbols ( object ) ;
2022-01-11 13:44:47 +00:00
if ( enumerableOnly ) {
symbols = symbols . filter ( function ( sym ) {
return Object . getOwnPropertyDescriptor ( object , sym ) . enumerable ;
} ) ;
}
2022-01-11 11:52:29 +00:00
keys . push . apply ( keys , symbols ) ;
}
return keys ;
}
function _objectSpread2 ( target ) {
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var source = arguments [ i ] != null ? arguments [ i ] : { } ;
if ( i % 2 ) {
ownKeys ( Object ( source ) , true ) . forEach ( function ( key ) {
_defineProperty ( target , key , source [ key ] ) ;
} ) ;
} else if ( Object . getOwnPropertyDescriptors ) {
Object . defineProperties ( target , Object . getOwnPropertyDescriptors ( source ) ) ;
} else {
ownKeys ( Object ( source ) ) . forEach ( function ( key ) {
Object . defineProperty ( target , key , Object . getOwnPropertyDescriptor ( source , key ) ) ;
} ) ;
}
}
return target ;
}
2022-01-11 13:44:47 +00:00
function _defineProperty ( obj , key , value ) {
if ( key in obj ) {
Object . defineProperty ( obj , key , {
value : value ,
enumerable : true ,
configurable : true ,
writable : true
} ) ;
} else {
obj [ key ] = value ;
}
return obj ;
}
2022-01-11 11:52:29 +00:00
const Endpoints = {
actions : {
addSelectedRepoToOrgSecret : [ "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" ] ,
2022-01-11 13:44:47 +00:00
approveWorkflowRun : [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" ] ,
2022-01-11 11:52:29 +00:00
cancelWorkflowRun : [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" ] ,
createOrUpdateEnvironmentSecret : [ "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" ] ,
createOrUpdateOrgSecret : [ "PUT /orgs/{org}/actions/secrets/{secret_name}" ] ,
createOrUpdateRepoSecret : [ "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" ] ,
createRegistrationTokenForOrg : [ "POST /orgs/{org}/actions/runners/registration-token" ] ,
createRegistrationTokenForRepo : [ "POST /repos/{owner}/{repo}/actions/runners/registration-token" ] ,
createRemoveTokenForOrg : [ "POST /orgs/{org}/actions/runners/remove-token" ] ,
createRemoveTokenForRepo : [ "POST /repos/{owner}/{repo}/actions/runners/remove-token" ] ,
createWorkflowDispatch : [ "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" ] ,
deleteArtifact : [ "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" ] ,
deleteEnvironmentSecret : [ "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" ] ,
deleteOrgSecret : [ "DELETE /orgs/{org}/actions/secrets/{secret_name}" ] ,
deleteRepoSecret : [ "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" ] ,
deleteSelfHostedRunnerFromOrg : [ "DELETE /orgs/{org}/actions/runners/{runner_id}" ] ,
deleteSelfHostedRunnerFromRepo : [ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" ] ,
deleteWorkflowRun : [ "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}" ] ,
deleteWorkflowRunLogs : [ "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" ] ,
disableSelectedRepositoryGithubActionsOrganization : [ "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" ] ,
disableWorkflow : [ "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" ] ,
downloadArtifact : [ "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" ] ,
downloadJobLogsForWorkflowRun : [ "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" ] ,
2022-01-11 13:44:47 +00:00
downloadWorkflowRunAttemptLogs : [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" ] ,
2022-01-11 11:52:29 +00:00
downloadWorkflowRunLogs : [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" ] ,
enableSelectedRepositoryGithubActionsOrganization : [ "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" ] ,
enableWorkflow : [ "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" ] ,
getAllowedActionsOrganization : [ "GET /orgs/{org}/actions/permissions/selected-actions" ] ,
getAllowedActionsRepository : [ "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" ] ,
getArtifact : [ "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" ] ,
getEnvironmentPublicKey : [ "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" ] ,
getEnvironmentSecret : [ "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" ] ,
getGithubActionsPermissionsOrganization : [ "GET /orgs/{org}/actions/permissions" ] ,
getGithubActionsPermissionsRepository : [ "GET /repos/{owner}/{repo}/actions/permissions" ] ,
getJobForWorkflowRun : [ "GET /repos/{owner}/{repo}/actions/jobs/{job_id}" ] ,
getOrgPublicKey : [ "GET /orgs/{org}/actions/secrets/public-key" ] ,
getOrgSecret : [ "GET /orgs/{org}/actions/secrets/{secret_name}" ] ,
getPendingDeploymentsForRun : [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" ] ,
getRepoPermissions : [ "GET /repos/{owner}/{repo}/actions/permissions" , { } , {
renamed : [ "actions" , "getGithubActionsPermissionsRepository" ]
} ] ,
getRepoPublicKey : [ "GET /repos/{owner}/{repo}/actions/secrets/public-key" ] ,
getRepoSecret : [ "GET /repos/{owner}/{repo}/actions/secrets/{secret_name}" ] ,
getReviewsForRun : [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" ] ,
getSelfHostedRunnerForOrg : [ "GET /orgs/{org}/actions/runners/{runner_id}" ] ,
getSelfHostedRunnerForRepo : [ "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" ] ,
getWorkflow : [ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}" ] ,
getWorkflowRun : [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}" ] ,
2022-01-11 13:44:47 +00:00
getWorkflowRunAttempt : [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" ] ,
2022-01-11 11:52:29 +00:00
getWorkflowRunUsage : [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" ] ,
getWorkflowUsage : [ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" ] ,
listArtifactsForRepo : [ "GET /repos/{owner}/{repo}/actions/artifacts" ] ,
listEnvironmentSecrets : [ "GET /repositories/{repository_id}/environments/{environment_name}/secrets" ] ,
listJobsForWorkflowRun : [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" ] ,
2022-01-11 13:44:47 +00:00
listJobsForWorkflowRunAttempt : [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" ] ,
2022-01-11 11:52:29 +00:00
listOrgSecrets : [ "GET /orgs/{org}/actions/secrets" ] ,
listRepoSecrets : [ "GET /repos/{owner}/{repo}/actions/secrets" ] ,
listRepoWorkflows : [ "GET /repos/{owner}/{repo}/actions/workflows" ] ,
listRunnerApplicationsForOrg : [ "GET /orgs/{org}/actions/runners/downloads" ] ,
listRunnerApplicationsForRepo : [ "GET /repos/{owner}/{repo}/actions/runners/downloads" ] ,
listSelectedReposForOrgSecret : [ "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" ] ,
listSelectedRepositoriesEnabledGithubActionsOrganization : [ "GET /orgs/{org}/actions/permissions/repositories" ] ,
listSelfHostedRunnersForOrg : [ "GET /orgs/{org}/actions/runners" ] ,
listSelfHostedRunnersForRepo : [ "GET /repos/{owner}/{repo}/actions/runners" ] ,
listWorkflowRunArtifacts : [ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" ] ,
listWorkflowRuns : [ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" ] ,
listWorkflowRunsForRepo : [ "GET /repos/{owner}/{repo}/actions/runs" ] ,
removeSelectedRepoFromOrgSecret : [ "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" ] ,
reviewPendingDeploymentsForRun : [ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" ] ,
setAllowedActionsOrganization : [ "PUT /orgs/{org}/actions/permissions/selected-actions" ] ,
setAllowedActionsRepository : [ "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" ] ,
setGithubActionsPermissionsOrganization : [ "PUT /orgs/{org}/actions/permissions" ] ,
setGithubActionsPermissionsRepository : [ "PUT /repos/{owner}/{repo}/actions/permissions" ] ,
setSelectedReposForOrgSecret : [ "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" ] ,
setSelectedRepositoriesEnabledGithubActionsOrganization : [ "PUT /orgs/{org}/actions/permissions/repositories" ]
} ,
activity : {
checkRepoIsStarredByAuthenticatedUser : [ "GET /user/starred/{owner}/{repo}" ] ,
deleteRepoSubscription : [ "DELETE /repos/{owner}/{repo}/subscription" ] ,
deleteThreadSubscription : [ "DELETE /notifications/threads/{thread_id}/subscription" ] ,
getFeeds : [ "GET /feeds" ] ,
getRepoSubscription : [ "GET /repos/{owner}/{repo}/subscription" ] ,
getThread : [ "GET /notifications/threads/{thread_id}" ] ,
getThreadSubscriptionForAuthenticatedUser : [ "GET /notifications/threads/{thread_id}/subscription" ] ,
listEventsForAuthenticatedUser : [ "GET /users/{username}/events" ] ,
listNotificationsForAuthenticatedUser : [ "GET /notifications" ] ,
listOrgEventsForAuthenticatedUser : [ "GET /users/{username}/events/orgs/{org}" ] ,
listPublicEvents : [ "GET /events" ] ,
listPublicEventsForRepoNetwork : [ "GET /networks/{owner}/{repo}/events" ] ,
listPublicEventsForUser : [ "GET /users/{username}/events/public" ] ,
listPublicOrgEvents : [ "GET /orgs/{org}/events" ] ,
listReceivedEventsForUser : [ "GET /users/{username}/received_events" ] ,
listReceivedPublicEventsForUser : [ "GET /users/{username}/received_events/public" ] ,
listRepoEvents : [ "GET /repos/{owner}/{repo}/events" ] ,
listRepoNotificationsForAuthenticatedUser : [ "GET /repos/{owner}/{repo}/notifications" ] ,
listReposStarredByAuthenticatedUser : [ "GET /user/starred" ] ,
listReposStarredByUser : [ "GET /users/{username}/starred" ] ,
listReposWatchedByUser : [ "GET /users/{username}/subscriptions" ] ,
listStargazersForRepo : [ "GET /repos/{owner}/{repo}/stargazers" ] ,
listWatchedReposForAuthenticatedUser : [ "GET /user/subscriptions" ] ,
listWatchersForRepo : [ "GET /repos/{owner}/{repo}/subscribers" ] ,
markNotificationsAsRead : [ "PUT /notifications" ] ,
markRepoNotificationsAsRead : [ "PUT /repos/{owner}/{repo}/notifications" ] ,
markThreadAsRead : [ "PATCH /notifications/threads/{thread_id}" ] ,
setRepoSubscription : [ "PUT /repos/{owner}/{repo}/subscription" ] ,
setThreadSubscription : [ "PUT /notifications/threads/{thread_id}/subscription" ] ,
starRepoForAuthenticatedUser : [ "PUT /user/starred/{owner}/{repo}" ] ,
unstarRepoForAuthenticatedUser : [ "DELETE /user/starred/{owner}/{repo}" ]
} ,
apps : {
2022-01-11 13:44:47 +00:00
addRepoToInstallation : [ "PUT /user/installations/{installation_id}/repositories/{repository_id}" , { } , {
renamed : [ "apps" , "addRepoToInstallationForAuthenticatedUser" ]
} ] ,
addRepoToInstallationForAuthenticatedUser : [ "PUT /user/installations/{installation_id}/repositories/{repository_id}" ] ,
2022-01-11 11:52:29 +00:00
checkToken : [ "POST /applications/{client_id}/token" ] ,
createContentAttachment : [ "POST /content_references/{content_reference_id}/attachments" , {
mediaType : {
previews : [ "corsair" ]
}
} ] ,
2022-01-11 13:44:47 +00:00
createContentAttachmentForRepo : [ "POST /repos/{owner}/{repo}/content_references/{content_reference_id}/attachments" , {
mediaType : {
previews : [ "corsair" ]
}
} ] ,
2022-01-11 11:52:29 +00:00
createFromManifest : [ "POST /app-manifests/{code}/conversions" ] ,
createInstallationAccessToken : [ "POST /app/installations/{installation_id}/access_tokens" ] ,
deleteAuthorization : [ "DELETE /applications/{client_id}/grant" ] ,
deleteInstallation : [ "DELETE /app/installations/{installation_id}" ] ,
deleteToken : [ "DELETE /applications/{client_id}/token" ] ,
getAuthenticated : [ "GET /app" ] ,
getBySlug : [ "GET /apps/{app_slug}" ] ,
getInstallation : [ "GET /app/installations/{installation_id}" ] ,
getOrgInstallation : [ "GET /orgs/{org}/installation" ] ,
getRepoInstallation : [ "GET /repos/{owner}/{repo}/installation" ] ,
getSubscriptionPlanForAccount : [ "GET /marketplace_listing/accounts/{account_id}" ] ,
getSubscriptionPlanForAccountStubbed : [ "GET /marketplace_listing/stubbed/accounts/{account_id}" ] ,
getUserInstallation : [ "GET /users/{username}/installation" ] ,
getWebhookConfigForApp : [ "GET /app/hook/config" ] ,
2022-01-11 13:44:47 +00:00
getWebhookDelivery : [ "GET /app/hook/deliveries/{delivery_id}" ] ,
2022-01-11 11:52:29 +00:00
listAccountsForPlan : [ "GET /marketplace_listing/plans/{plan_id}/accounts" ] ,
listAccountsForPlanStubbed : [ "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" ] ,
listInstallationReposForAuthenticatedUser : [ "GET /user/installations/{installation_id}/repositories" ] ,
listInstallations : [ "GET /app/installations" ] ,
listInstallationsForAuthenticatedUser : [ "GET /user/installations" ] ,
listPlans : [ "GET /marketplace_listing/plans" ] ,
listPlansStubbed : [ "GET /marketplace_listing/stubbed/plans" ] ,
listReposAccessibleToInstallation : [ "GET /installation/repositories" ] ,
listSubscriptionsForAuthenticatedUser : [ "GET /user/marketplace_purchases" ] ,
listSubscriptionsForAuthenticatedUserStubbed : [ "GET /user/marketplace_purchases/stubbed" ] ,
2022-01-11 13:44:47 +00:00
listWebhookDeliveries : [ "GET /app/hook/deliveries" ] ,
redeliverWebhookDelivery : [ "POST /app/hook/deliveries/{delivery_id}/attempts" ] ,
removeRepoFromInstallation : [ "DELETE /user/installations/{installation_id}/repositories/{repository_id}" , { } , {
renamed : [ "apps" , "removeRepoFromInstallationForAuthenticatedUser" ]
} ] ,
removeRepoFromInstallationForAuthenticatedUser : [ "DELETE /user/installations/{installation_id}/repositories/{repository_id}" ] ,
2022-01-11 11:52:29 +00:00
resetToken : [ "PATCH /applications/{client_id}/token" ] ,
revokeInstallationAccessToken : [ "DELETE /installation/token" ] ,
scopeToken : [ "POST /applications/{client_id}/token/scoped" ] ,
suspendInstallation : [ "PUT /app/installations/{installation_id}/suspended" ] ,
unsuspendInstallation : [ "DELETE /app/installations/{installation_id}/suspended" ] ,
updateWebhookConfigForApp : [ "PATCH /app/hook/config" ]
} ,
billing : {
getGithubActionsBillingOrg : [ "GET /orgs/{org}/settings/billing/actions" ] ,
getGithubActionsBillingUser : [ "GET /users/{username}/settings/billing/actions" ] ,
getGithubPackagesBillingOrg : [ "GET /orgs/{org}/settings/billing/packages" ] ,
getGithubPackagesBillingUser : [ "GET /users/{username}/settings/billing/packages" ] ,
getSharedStorageBillingOrg : [ "GET /orgs/{org}/settings/billing/shared-storage" ] ,
getSharedStorageBillingUser : [ "GET /users/{username}/settings/billing/shared-storage" ]
} ,
checks : {
create : [ "POST /repos/{owner}/{repo}/check-runs" ] ,
createSuite : [ "POST /repos/{owner}/{repo}/check-suites" ] ,
get : [ "GET /repos/{owner}/{repo}/check-runs/{check_run_id}" ] ,
getSuite : [ "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}" ] ,
listAnnotations : [ "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" ] ,
listForRef : [ "GET /repos/{owner}/{repo}/commits/{ref}/check-runs" ] ,
listForSuite : [ "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" ] ,
listSuitesForRef : [ "GET /repos/{owner}/{repo}/commits/{ref}/check-suites" ] ,
2022-01-11 13:44:47 +00:00
rerequestRun : [ "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" ] ,
2022-01-11 11:52:29 +00:00
rerequestSuite : [ "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" ] ,
setSuitesPreferences : [ "PATCH /repos/{owner}/{repo}/check-suites/preferences" ] ,
update : [ "PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}" ]
} ,
codeScanning : {
deleteAnalysis : [ "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" ] ,
getAlert : [ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" , { } , {
renamedParameters : {
alert _id : "alert_number"
}
} ] ,
getAnalysis : [ "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" ] ,
getSarif : [ "GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}" ] ,
2022-01-11 13:44:47 +00:00
listAlertInstances : [ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" ] ,
2022-01-11 11:52:29 +00:00
listAlertsForRepo : [ "GET /repos/{owner}/{repo}/code-scanning/alerts" ] ,
2022-01-11 13:44:47 +00:00
listAlertsInstances : [ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" , { } , {
renamed : [ "codeScanning" , "listAlertInstances" ]
} ] ,
2022-01-11 11:52:29 +00:00
listRecentAnalyses : [ "GET /repos/{owner}/{repo}/code-scanning/analyses" ] ,
updateAlert : [ "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" ] ,
uploadSarif : [ "POST /repos/{owner}/{repo}/code-scanning/sarifs" ]
} ,
codesOfConduct : {
2022-01-11 13:44:47 +00:00
getAllCodesOfConduct : [ "GET /codes_of_conduct" ] ,
getConductCode : [ "GET /codes_of_conduct/{key}" ]
2022-01-11 11:52:29 +00:00
} ,
emojis : {
get : [ "GET /emojis" ]
} ,
enterpriseAdmin : {
disableSelectedOrganizationGithubActionsEnterprise : [ "DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}" ] ,
enableSelectedOrganizationGithubActionsEnterprise : [ "PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}" ] ,
getAllowedActionsEnterprise : [ "GET /enterprises/{enterprise}/actions/permissions/selected-actions" ] ,
getGithubActionsPermissionsEnterprise : [ "GET /enterprises/{enterprise}/actions/permissions" ] ,
listSelectedOrganizationsEnabledGithubActionsEnterprise : [ "GET /enterprises/{enterprise}/actions/permissions/organizations" ] ,
setAllowedActionsEnterprise : [ "PUT /enterprises/{enterprise}/actions/permissions/selected-actions" ] ,
setGithubActionsPermissionsEnterprise : [ "PUT /enterprises/{enterprise}/actions/permissions" ] ,
setSelectedOrganizationsEnabledGithubActionsEnterprise : [ "PUT /enterprises/{enterprise}/actions/permissions/organizations" ]
} ,
gists : {
checkIsStarred : [ "GET /gists/{gist_id}/star" ] ,
create : [ "POST /gists" ] ,
createComment : [ "POST /gists/{gist_id}/comments" ] ,
delete : [ "DELETE /gists/{gist_id}" ] ,
deleteComment : [ "DELETE /gists/{gist_id}/comments/{comment_id}" ] ,
fork : [ "POST /gists/{gist_id}/forks" ] ,
get : [ "GET /gists/{gist_id}" ] ,
getComment : [ "GET /gists/{gist_id}/comments/{comment_id}" ] ,
getRevision : [ "GET /gists/{gist_id}/{sha}" ] ,
list : [ "GET /gists" ] ,
listComments : [ "GET /gists/{gist_id}/comments" ] ,
listCommits : [ "GET /gists/{gist_id}/commits" ] ,
listForUser : [ "GET /users/{username}/gists" ] ,
listForks : [ "GET /gists/{gist_id}/forks" ] ,
listPublic : [ "GET /gists/public" ] ,
listStarred : [ "GET /gists/starred" ] ,
star : [ "PUT /gists/{gist_id}/star" ] ,
unstar : [ "DELETE /gists/{gist_id}/star" ] ,
update : [ "PATCH /gists/{gist_id}" ] ,
updateComment : [ "PATCH /gists/{gist_id}/comments/{comment_id}" ]
} ,
git : {
createBlob : [ "POST /repos/{owner}/{repo}/git/blobs" ] ,
createCommit : [ "POST /repos/{owner}/{repo}/git/commits" ] ,
createRef : [ "POST /repos/{owner}/{repo}/git/refs" ] ,
createTag : [ "POST /repos/{owner}/{repo}/git/tags" ] ,
createTree : [ "POST /repos/{owner}/{repo}/git/trees" ] ,
deleteRef : [ "DELETE /repos/{owner}/{repo}/git/refs/{ref}" ] ,
getBlob : [ "GET /repos/{owner}/{repo}/git/blobs/{file_sha}" ] ,
getCommit : [ "GET /repos/{owner}/{repo}/git/commits/{commit_sha}" ] ,
getRef : [ "GET /repos/{owner}/{repo}/git/ref/{ref}" ] ,
getTag : [ "GET /repos/{owner}/{repo}/git/tags/{tag_sha}" ] ,
getTree : [ "GET /repos/{owner}/{repo}/git/trees/{tree_sha}" ] ,
listMatchingRefs : [ "GET /repos/{owner}/{repo}/git/matching-refs/{ref}" ] ,
updateRef : [ "PATCH /repos/{owner}/{repo}/git/refs/{ref}" ]
} ,
gitignore : {
getAllTemplates : [ "GET /gitignore/templates" ] ,
getTemplate : [ "GET /gitignore/templates/{name}" ]
} ,
interactions : {
getRestrictionsForAuthenticatedUser : [ "GET /user/interaction-limits" ] ,
getRestrictionsForOrg : [ "GET /orgs/{org}/interaction-limits" ] ,
getRestrictionsForRepo : [ "GET /repos/{owner}/{repo}/interaction-limits" ] ,
getRestrictionsForYourPublicRepos : [ "GET /user/interaction-limits" , { } , {
renamed : [ "interactions" , "getRestrictionsForAuthenticatedUser" ]
} ] ,
removeRestrictionsForAuthenticatedUser : [ "DELETE /user/interaction-limits" ] ,
removeRestrictionsForOrg : [ "DELETE /orgs/{org}/interaction-limits" ] ,
removeRestrictionsForRepo : [ "DELETE /repos/{owner}/{repo}/interaction-limits" ] ,
removeRestrictionsForYourPublicRepos : [ "DELETE /user/interaction-limits" , { } , {
renamed : [ "interactions" , "removeRestrictionsForAuthenticatedUser" ]
} ] ,
setRestrictionsForAuthenticatedUser : [ "PUT /user/interaction-limits" ] ,
setRestrictionsForOrg : [ "PUT /orgs/{org}/interaction-limits" ] ,
setRestrictionsForRepo : [ "PUT /repos/{owner}/{repo}/interaction-limits" ] ,
setRestrictionsForYourPublicRepos : [ "PUT /user/interaction-limits" , { } , {
renamed : [ "interactions" , "setRestrictionsForAuthenticatedUser" ]
} ]
} ,
issues : {
addAssignees : [ "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" ] ,
addLabels : [ "POST /repos/{owner}/{repo}/issues/{issue_number}/labels" ] ,
checkUserCanBeAssigned : [ "GET /repos/{owner}/{repo}/assignees/{assignee}" ] ,
create : [ "POST /repos/{owner}/{repo}/issues" ] ,
createComment : [ "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" ] ,
createLabel : [ "POST /repos/{owner}/{repo}/labels" ] ,
createMilestone : [ "POST /repos/{owner}/{repo}/milestones" ] ,
deleteComment : [ "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" ] ,
deleteLabel : [ "DELETE /repos/{owner}/{repo}/labels/{name}" ] ,
deleteMilestone : [ "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" ] ,
get : [ "GET /repos/{owner}/{repo}/issues/{issue_number}" ] ,
getComment : [ "GET /repos/{owner}/{repo}/issues/comments/{comment_id}" ] ,
getEvent : [ "GET /repos/{owner}/{repo}/issues/events/{event_id}" ] ,
getLabel : [ "GET /repos/{owner}/{repo}/labels/{name}" ] ,
getMilestone : [ "GET /repos/{owner}/{repo}/milestones/{milestone_number}" ] ,
list : [ "GET /issues" ] ,
listAssignees : [ "GET /repos/{owner}/{repo}/assignees" ] ,
listComments : [ "GET /repos/{owner}/{repo}/issues/{issue_number}/comments" ] ,
listCommentsForRepo : [ "GET /repos/{owner}/{repo}/issues/comments" ] ,
listEvents : [ "GET /repos/{owner}/{repo}/issues/{issue_number}/events" ] ,
listEventsForRepo : [ "GET /repos/{owner}/{repo}/issues/events" ] ,
2022-01-11 13:44:47 +00:00
listEventsForTimeline : [ "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" ] ,
2022-01-11 11:52:29 +00:00
listForAuthenticatedUser : [ "GET /user/issues" ] ,
listForOrg : [ "GET /orgs/{org}/issues" ] ,
listForRepo : [ "GET /repos/{owner}/{repo}/issues" ] ,
listLabelsForMilestone : [ "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" ] ,
listLabelsForRepo : [ "GET /repos/{owner}/{repo}/labels" ] ,
listLabelsOnIssue : [ "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" ] ,
listMilestones : [ "GET /repos/{owner}/{repo}/milestones" ] ,
lock : [ "PUT /repos/{owner}/{repo}/issues/{issue_number}/lock" ] ,
removeAllLabels : [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" ] ,
removeAssignees : [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" ] ,
removeLabel : [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" ] ,
setLabels : [ "PUT /repos/{owner}/{repo}/issues/{issue_number}/labels" ] ,
unlock : [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock" ] ,
update : [ "PATCH /repos/{owner}/{repo}/issues/{issue_number}" ] ,
updateComment : [ "PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}" ] ,
updateLabel : [ "PATCH /repos/{owner}/{repo}/labels/{name}" ] ,
updateMilestone : [ "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" ]
} ,
licenses : {
get : [ "GET /licenses/{license}" ] ,
getAllCommonlyUsed : [ "GET /licenses" ] ,
getForRepo : [ "GET /repos/{owner}/{repo}/license" ]
} ,
markdown : {
render : [ "POST /markdown" ] ,
renderRaw : [ "POST /markdown/raw" , {
headers : {
"content-type" : "text/plain; charset=utf-8"
}
} ]
} ,
meta : {
get : [ "GET /meta" ] ,
getOctocat : [ "GET /octocat" ] ,
getZen : [ "GET /zen" ] ,
root : [ "GET /" ]
} ,
migrations : {
cancelImport : [ "DELETE /repos/{owner}/{repo}/import" ] ,
2022-01-11 13:44:47 +00:00
deleteArchiveForAuthenticatedUser : [ "DELETE /user/migrations/{migration_id}/archive" ] ,
deleteArchiveForOrg : [ "DELETE /orgs/{org}/migrations/{migration_id}/archive" ] ,
downloadArchiveForOrg : [ "GET /orgs/{org}/migrations/{migration_id}/archive" ] ,
getArchiveForAuthenticatedUser : [ "GET /user/migrations/{migration_id}/archive" ] ,
2022-01-11 11:52:29 +00:00
getCommitAuthors : [ "GET /repos/{owner}/{repo}/import/authors" ] ,
getImportStatus : [ "GET /repos/{owner}/{repo}/import" ] ,
getLargeFiles : [ "GET /repos/{owner}/{repo}/import/large_files" ] ,
2022-01-11 13:44:47 +00:00
getStatusForAuthenticatedUser : [ "GET /user/migrations/{migration_id}" ] ,
getStatusForOrg : [ "GET /orgs/{org}/migrations/{migration_id}" ] ,
listForAuthenticatedUser : [ "GET /user/migrations" ] ,
listForOrg : [ "GET /orgs/{org}/migrations" ] ,
listReposForAuthenticatedUser : [ "GET /user/migrations/{migration_id}/repositories" ] ,
listReposForOrg : [ "GET /orgs/{org}/migrations/{migration_id}/repositories" ] ,
listReposForUser : [ "GET /user/migrations/{migration_id}/repositories" , { } , {
renamed : [ "migrations" , "listReposForAuthenticatedUser" ]
2022-01-11 11:52:29 +00:00
} ] ,
mapCommitAuthor : [ "PATCH /repos/{owner}/{repo}/import/authors/{author_id}" ] ,
setLfsPreference : [ "PATCH /repos/{owner}/{repo}/import/lfs" ] ,
startForAuthenticatedUser : [ "POST /user/migrations" ] ,
startForOrg : [ "POST /orgs/{org}/migrations" ] ,
startImport : [ "PUT /repos/{owner}/{repo}/import" ] ,
2022-01-11 13:44:47 +00:00
unlockRepoForAuthenticatedUser : [ "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" ] ,
unlockRepoForOrg : [ "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" ] ,
2022-01-11 11:52:29 +00:00
updateImport : [ "PATCH /repos/{owner}/{repo}/import" ]
} ,
orgs : {
blockUser : [ "PUT /orgs/{org}/blocks/{username}" ] ,
cancelInvitation : [ "DELETE /orgs/{org}/invitations/{invitation_id}" ] ,
checkBlockedUser : [ "GET /orgs/{org}/blocks/{username}" ] ,
checkMembershipForUser : [ "GET /orgs/{org}/members/{username}" ] ,
checkPublicMembershipForUser : [ "GET /orgs/{org}/public_members/{username}" ] ,
convertMemberToOutsideCollaborator : [ "PUT /orgs/{org}/outside_collaborators/{username}" ] ,
createInvitation : [ "POST /orgs/{org}/invitations" ] ,
createWebhook : [ "POST /orgs/{org}/hooks" ] ,
deleteWebhook : [ "DELETE /orgs/{org}/hooks/{hook_id}" ] ,
get : [ "GET /orgs/{org}" ] ,
getMembershipForAuthenticatedUser : [ "GET /user/memberships/orgs/{org}" ] ,
getMembershipForUser : [ "GET /orgs/{org}/memberships/{username}" ] ,
getWebhook : [ "GET /orgs/{org}/hooks/{hook_id}" ] ,
getWebhookConfigForOrg : [ "GET /orgs/{org}/hooks/{hook_id}/config" ] ,
2022-01-11 13:44:47 +00:00
getWebhookDelivery : [ "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" ] ,
2022-01-11 11:52:29 +00:00
list : [ "GET /organizations" ] ,
listAppInstallations : [ "GET /orgs/{org}/installations" ] ,
listBlockedUsers : [ "GET /orgs/{org}/blocks" ] ,
listFailedInvitations : [ "GET /orgs/{org}/failed_invitations" ] ,
listForAuthenticatedUser : [ "GET /user/orgs" ] ,
listForUser : [ "GET /users/{username}/orgs" ] ,
listInvitationTeams : [ "GET /orgs/{org}/invitations/{invitation_id}/teams" ] ,
listMembers : [ "GET /orgs/{org}/members" ] ,
listMembershipsForAuthenticatedUser : [ "GET /user/memberships/orgs" ] ,
listOutsideCollaborators : [ "GET /orgs/{org}/outside_collaborators" ] ,
listPendingInvitations : [ "GET /orgs/{org}/invitations" ] ,
listPublicMembers : [ "GET /orgs/{org}/public_members" ] ,
2022-01-11 13:44:47 +00:00
listWebhookDeliveries : [ "GET /orgs/{org}/hooks/{hook_id}/deliveries" ] ,
2022-01-11 11:52:29 +00:00
listWebhooks : [ "GET /orgs/{org}/hooks" ] ,
pingWebhook : [ "POST /orgs/{org}/hooks/{hook_id}/pings" ] ,
2022-01-11 13:44:47 +00:00
redeliverWebhookDelivery : [ "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" ] ,
2022-01-11 11:52:29 +00:00
removeMember : [ "DELETE /orgs/{org}/members/{username}" ] ,
removeMembershipForUser : [ "DELETE /orgs/{org}/memberships/{username}" ] ,
removeOutsideCollaborator : [ "DELETE /orgs/{org}/outside_collaborators/{username}" ] ,
removePublicMembershipForAuthenticatedUser : [ "DELETE /orgs/{org}/public_members/{username}" ] ,
setMembershipForUser : [ "PUT /orgs/{org}/memberships/{username}" ] ,
setPublicMembershipForAuthenticatedUser : [ "PUT /orgs/{org}/public_members/{username}" ] ,
unblockUser : [ "DELETE /orgs/{org}/blocks/{username}" ] ,
update : [ "PATCH /orgs/{org}" ] ,
updateMembershipForAuthenticatedUser : [ "PATCH /user/memberships/orgs/{org}" ] ,
updateWebhook : [ "PATCH /orgs/{org}/hooks/{hook_id}" ] ,
updateWebhookConfigForOrg : [ "PATCH /orgs/{org}/hooks/{hook_id}/config" ]
} ,
packages : {
deletePackageForAuthenticatedUser : [ "DELETE /user/packages/{package_type}/{package_name}" ] ,
deletePackageForOrg : [ "DELETE /orgs/{org}/packages/{package_type}/{package_name}" ] ,
2022-01-11 13:44:47 +00:00
deletePackageForUser : [ "DELETE /users/{username}/packages/{package_type}/{package_name}" ] ,
2022-01-11 11:52:29 +00:00
deletePackageVersionForAuthenticatedUser : [ "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" ] ,
deletePackageVersionForOrg : [ "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" ] ,
2022-01-11 13:44:47 +00:00
deletePackageVersionForUser : [ "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" ] ,
2022-01-11 11:52:29 +00:00
getAllPackageVersionsForAPackageOwnedByAnOrg : [ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" , { } , {
renamed : [ "packages" , "getAllPackageVersionsForPackageOwnedByOrg" ]
} ] ,
getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser : [ "GET /user/packages/{package_type}/{package_name}/versions" , { } , {
renamed : [ "packages" , "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" ]
} ] ,
getAllPackageVersionsForPackageOwnedByAuthenticatedUser : [ "GET /user/packages/{package_type}/{package_name}/versions" ] ,
getAllPackageVersionsForPackageOwnedByOrg : [ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" ] ,
getAllPackageVersionsForPackageOwnedByUser : [ "GET /users/{username}/packages/{package_type}/{package_name}/versions" ] ,
getPackageForAuthenticatedUser : [ "GET /user/packages/{package_type}/{package_name}" ] ,
getPackageForOrganization : [ "GET /orgs/{org}/packages/{package_type}/{package_name}" ] ,
getPackageForUser : [ "GET /users/{username}/packages/{package_type}/{package_name}" ] ,
getPackageVersionForAuthenticatedUser : [ "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" ] ,
getPackageVersionForOrganization : [ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" ] ,
getPackageVersionForUser : [ "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" ] ,
2022-01-11 13:44:47 +00:00
listPackagesForAuthenticatedUser : [ "GET /user/packages" ] ,
listPackagesForOrganization : [ "GET /orgs/{org}/packages" ] ,
listPackagesForUser : [ "GET /users/{username}/packages" ] ,
2022-01-11 11:52:29 +00:00
restorePackageForAuthenticatedUser : [ "POST /user/packages/{package_type}/{package_name}/restore{?token}" ] ,
restorePackageForOrg : [ "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" ] ,
2022-01-11 13:44:47 +00:00
restorePackageForUser : [ "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" ] ,
2022-01-11 11:52:29 +00:00
restorePackageVersionForAuthenticatedUser : [ "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" ] ,
2022-01-11 13:44:47 +00:00
restorePackageVersionForOrg : [ "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" ] ,
restorePackageVersionForUser : [ "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" ]
2022-01-11 11:52:29 +00:00
} ,
projects : {
2022-01-11 13:44:47 +00:00
addCollaborator : [ "PUT /projects/{project_id}/collaborators/{username}" ] ,
createCard : [ "POST /projects/columns/{column_id}/cards" ] ,
createColumn : [ "POST /projects/{project_id}/columns" ] ,
createForAuthenticatedUser : [ "POST /user/projects" ] ,
createForOrg : [ "POST /orgs/{org}/projects" ] ,
createForRepo : [ "POST /repos/{owner}/{repo}/projects" ] ,
delete : [ "DELETE /projects/{project_id}" ] ,
deleteCard : [ "DELETE /projects/columns/cards/{card_id}" ] ,
deleteColumn : [ "DELETE /projects/columns/{column_id}" ] ,
get : [ "GET /projects/{project_id}" ] ,
getCard : [ "GET /projects/columns/cards/{card_id}" ] ,
getColumn : [ "GET /projects/columns/{column_id}" ] ,
getPermissionForUser : [ "GET /projects/{project_id}/collaborators/{username}/permission" ] ,
listCards : [ "GET /projects/columns/{column_id}/cards" ] ,
listCollaborators : [ "GET /projects/{project_id}/collaborators" ] ,
listColumns : [ "GET /projects/{project_id}/columns" ] ,
listForOrg : [ "GET /orgs/{org}/projects" ] ,
listForRepo : [ "GET /repos/{owner}/{repo}/projects" ] ,
listForUser : [ "GET /users/{username}/projects" ] ,
moveCard : [ "POST /projects/columns/cards/{card_id}/moves" ] ,
moveColumn : [ "POST /projects/columns/{column_id}/moves" ] ,
removeCollaborator : [ "DELETE /projects/{project_id}/collaborators/{username}" ] ,
update : [ "PATCH /projects/{project_id}" ] ,
updateCard : [ "PATCH /projects/columns/cards/{card_id}" ] ,
updateColumn : [ "PATCH /projects/columns/{column_id}" ]
2022-01-11 11:52:29 +00:00
} ,
pulls : {
checkIfMerged : [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/merge" ] ,
create : [ "POST /repos/{owner}/{repo}/pulls" ] ,
createReplyForReviewComment : [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" ] ,
createReview : [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews" ] ,
createReviewComment : [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" ] ,
deletePendingReview : [ "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" ] ,
deleteReviewComment : [ "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" ] ,
dismissReview : [ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" ] ,
get : [ "GET /repos/{owner}/{repo}/pulls/{pull_number}" ] ,
getReview : [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" ] ,
getReviewComment : [ "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}" ] ,
list : [ "GET /repos/{owner}/{repo}/pulls" ] ,
listCommentsForReview : [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" ] ,
listCommits : [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits" ] ,
listFiles : [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/files" ] ,
listRequestedReviewers : [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" ] ,
listReviewComments : [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" ] ,
listReviewCommentsForRepo : [ "GET /repos/{owner}/{repo}/pulls/comments" ] ,
listReviews : [ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews" ] ,
merge : [ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge" ] ,
removeRequestedReviewers : [ "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" ] ,
requestReviewers : [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" ] ,
submitReview : [ "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" ] ,
update : [ "PATCH /repos/{owner}/{repo}/pulls/{pull_number}" ] ,
2022-01-11 13:44:47 +00:00
updateBranch : [ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" ] ,
2022-01-11 11:52:29 +00:00
updateReview : [ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" ] ,
updateReviewComment : [ "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" ]
} ,
rateLimit : {
get : [ "GET /rate_limit" ]
} ,
reactions : {
2022-01-11 13:44:47 +00:00
createForCommitComment : [ "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" ] ,
createForIssue : [ "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" ] ,
createForIssueComment : [ "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" ] ,
createForPullRequestReviewComment : [ "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" ] ,
createForRelease : [ "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" ] ,
createForTeamDiscussionCommentInOrg : [ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" ] ,
createForTeamDiscussionInOrg : [ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" ] ,
deleteForCommitComment : [ "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" ] ,
deleteForIssue : [ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" ] ,
deleteForIssueComment : [ "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" ] ,
deleteForPullRequestComment : [ "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" ] ,
deleteForTeamDiscussion : [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" ] ,
deleteForTeamDiscussionComment : [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" ] ,
listForCommitComment : [ "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" ] ,
listForIssue : [ "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions" ] ,
listForIssueComment : [ "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" ] ,
listForPullRequestReviewComment : [ "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" ] ,
listForTeamDiscussionCommentInOrg : [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" ] ,
listForTeamDiscussionInOrg : [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" ]
2022-01-11 11:52:29 +00:00
} ,
repos : {
2022-01-11 13:44:47 +00:00
acceptInvitation : [ "PATCH /user/repository_invitations/{invitation_id}" , { } , {
renamed : [ "repos" , "acceptInvitationForAuthenticatedUser" ]
} ] ,
acceptInvitationForAuthenticatedUser : [ "PATCH /user/repository_invitations/{invitation_id}" ] ,
2022-01-11 11:52:29 +00:00
addAppAccessRestrictions : [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" , { } , {
mapToData : "apps"
} ] ,
addCollaborator : [ "PUT /repos/{owner}/{repo}/collaborators/{username}" ] ,
addStatusCheckContexts : [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" , { } , {
mapToData : "contexts"
} ] ,
addTeamAccessRestrictions : [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" , { } , {
mapToData : "teams"
} ] ,
addUserAccessRestrictions : [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" , { } , {
mapToData : "users"
} ] ,
checkCollaborator : [ "GET /repos/{owner}/{repo}/collaborators/{username}" ] ,
2022-01-11 13:44:47 +00:00
checkVulnerabilityAlerts : [ "GET /repos/{owner}/{repo}/vulnerability-alerts" ] ,
2022-01-11 11:52:29 +00:00
compareCommits : [ "GET /repos/{owner}/{repo}/compare/{base}...{head}" ] ,
2022-01-11 13:44:47 +00:00
compareCommitsWithBasehead : [ "GET /repos/{owner}/{repo}/compare/{basehead}" ] ,
createAutolink : [ "POST /repos/{owner}/{repo}/autolinks" ] ,
2022-01-11 11:52:29 +00:00
createCommitComment : [ "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" ] ,
2022-01-11 13:44:47 +00:00
createCommitSignatureProtection : [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" ] ,
2022-01-11 11:52:29 +00:00
createCommitStatus : [ "POST /repos/{owner}/{repo}/statuses/{sha}" ] ,
createDeployKey : [ "POST /repos/{owner}/{repo}/keys" ] ,
createDeployment : [ "POST /repos/{owner}/{repo}/deployments" ] ,
createDeploymentStatus : [ "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" ] ,
createDispatchEvent : [ "POST /repos/{owner}/{repo}/dispatches" ] ,
createForAuthenticatedUser : [ "POST /user/repos" ] ,
createFork : [ "POST /repos/{owner}/{repo}/forks" ] ,
createInOrg : [ "POST /orgs/{org}/repos" ] ,
createOrUpdateEnvironment : [ "PUT /repos/{owner}/{repo}/environments/{environment_name}" ] ,
createOrUpdateFileContents : [ "PUT /repos/{owner}/{repo}/contents/{path}" ] ,
2022-01-11 13:44:47 +00:00
createPagesSite : [ "POST /repos/{owner}/{repo}/pages" ] ,
2022-01-11 11:52:29 +00:00
createRelease : [ "POST /repos/{owner}/{repo}/releases" ] ,
2022-01-11 13:44:47 +00:00
createUsingTemplate : [ "POST /repos/{template_owner}/{template_repo}/generate" ] ,
2022-01-11 11:52:29 +00:00
createWebhook : [ "POST /repos/{owner}/{repo}/hooks" ] ,
2022-01-11 13:44:47 +00:00
declineInvitation : [ "DELETE /user/repository_invitations/{invitation_id}" , { } , {
renamed : [ "repos" , "declineInvitationForAuthenticatedUser" ]
} ] ,
declineInvitationForAuthenticatedUser : [ "DELETE /user/repository_invitations/{invitation_id}" ] ,
2022-01-11 11:52:29 +00:00
delete : [ "DELETE /repos/{owner}/{repo}" ] ,
deleteAccessRestrictions : [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" ] ,
deleteAdminBranchProtection : [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" ] ,
deleteAnEnvironment : [ "DELETE /repos/{owner}/{repo}/environments/{environment_name}" ] ,
2022-01-11 13:44:47 +00:00
deleteAutolink : [ "DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}" ] ,
2022-01-11 11:52:29 +00:00
deleteBranchProtection : [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" ] ,
deleteCommitComment : [ "DELETE /repos/{owner}/{repo}/comments/{comment_id}" ] ,
2022-01-11 13:44:47 +00:00
deleteCommitSignatureProtection : [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" ] ,
2022-01-11 11:52:29 +00:00
deleteDeployKey : [ "DELETE /repos/{owner}/{repo}/keys/{key_id}" ] ,
deleteDeployment : [ "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" ] ,
deleteFile : [ "DELETE /repos/{owner}/{repo}/contents/{path}" ] ,
deleteInvitation : [ "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" ] ,
2022-01-11 13:44:47 +00:00
deletePagesSite : [ "DELETE /repos/{owner}/{repo}/pages" ] ,
2022-01-11 11:52:29 +00:00
deletePullRequestReviewProtection : [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" ] ,
deleteRelease : [ "DELETE /repos/{owner}/{repo}/releases/{release_id}" ] ,
deleteReleaseAsset : [ "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" ] ,
deleteWebhook : [ "DELETE /repos/{owner}/{repo}/hooks/{hook_id}" ] ,
2022-01-11 13:44:47 +00:00
disableAutomatedSecurityFixes : [ "DELETE /repos/{owner}/{repo}/automated-security-fixes" ] ,
disableLfsForRepo : [ "DELETE /repos/{owner}/{repo}/lfs" ] ,
disableVulnerabilityAlerts : [ "DELETE /repos/{owner}/{repo}/vulnerability-alerts" ] ,
2022-01-11 11:52:29 +00:00
downloadArchive : [ "GET /repos/{owner}/{repo}/zipball/{ref}" , { } , {
renamed : [ "repos" , "downloadZipballArchive" ]
} ] ,
downloadTarballArchive : [ "GET /repos/{owner}/{repo}/tarball/{ref}" ] ,
downloadZipballArchive : [ "GET /repos/{owner}/{repo}/zipball/{ref}" ] ,
2022-01-11 13:44:47 +00:00
enableAutomatedSecurityFixes : [ "PUT /repos/{owner}/{repo}/automated-security-fixes" ] ,
enableLfsForRepo : [ "PUT /repos/{owner}/{repo}/lfs" ] ,
enableVulnerabilityAlerts : [ "PUT /repos/{owner}/{repo}/vulnerability-alerts" ] ,
generateReleaseNotes : [ "POST /repos/{owner}/{repo}/releases/generate-notes" ] ,
2022-01-11 11:52:29 +00:00
get : [ "GET /repos/{owner}/{repo}" ] ,
getAccessRestrictions : [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" ] ,
getAdminBranchProtection : [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" ] ,
getAllEnvironments : [ "GET /repos/{owner}/{repo}/environments" ] ,
getAllStatusCheckContexts : [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" ] ,
getAllTopics : [ "GET /repos/{owner}/{repo}/topics" , {
mediaType : {
previews : [ "mercy" ]
}
} ] ,
getAppsWithAccessToProtectedBranch : [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" ] ,
2022-01-11 13:44:47 +00:00
getAutolink : [ "GET /repos/{owner}/{repo}/autolinks/{autolink_id}" ] ,
2022-01-11 11:52:29 +00:00
getBranch : [ "GET /repos/{owner}/{repo}/branches/{branch}" ] ,
getBranchProtection : [ "GET /repos/{owner}/{repo}/branches/{branch}/protection" ] ,
getClones : [ "GET /repos/{owner}/{repo}/traffic/clones" ] ,
getCodeFrequencyStats : [ "GET /repos/{owner}/{repo}/stats/code_frequency" ] ,
getCollaboratorPermissionLevel : [ "GET /repos/{owner}/{repo}/collaborators/{username}/permission" ] ,
getCombinedStatusForRef : [ "GET /repos/{owner}/{repo}/commits/{ref}/status" ] ,
getCommit : [ "GET /repos/{owner}/{repo}/commits/{ref}" ] ,
getCommitActivityStats : [ "GET /repos/{owner}/{repo}/stats/commit_activity" ] ,
getCommitComment : [ "GET /repos/{owner}/{repo}/comments/{comment_id}" ] ,
2022-01-11 13:44:47 +00:00
getCommitSignatureProtection : [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" ] ,
2022-01-11 11:52:29 +00:00
getCommunityProfileMetrics : [ "GET /repos/{owner}/{repo}/community/profile" ] ,
getContent : [ "GET /repos/{owner}/{repo}/contents/{path}" ] ,
getContributorsStats : [ "GET /repos/{owner}/{repo}/stats/contributors" ] ,
getDeployKey : [ "GET /repos/{owner}/{repo}/keys/{key_id}" ] ,
getDeployment : [ "GET /repos/{owner}/{repo}/deployments/{deployment_id}" ] ,
getDeploymentStatus : [ "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" ] ,
getEnvironment : [ "GET /repos/{owner}/{repo}/environments/{environment_name}" ] ,
getLatestPagesBuild : [ "GET /repos/{owner}/{repo}/pages/builds/latest" ] ,
getLatestRelease : [ "GET /repos/{owner}/{repo}/releases/latest" ] ,
getPages : [ "GET /repos/{owner}/{repo}/pages" ] ,
getPagesBuild : [ "GET /repos/{owner}/{repo}/pages/builds/{build_id}" ] ,
2022-01-11 13:44:47 +00:00
getPagesHealthCheck : [ "GET /repos/{owner}/{repo}/pages/health" ] ,
2022-01-11 11:52:29 +00:00
getParticipationStats : [ "GET /repos/{owner}/{repo}/stats/participation" ] ,
getPullRequestReviewProtection : [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" ] ,
getPunchCardStats : [ "GET /repos/{owner}/{repo}/stats/punch_card" ] ,
getReadme : [ "GET /repos/{owner}/{repo}/readme" ] ,
getReadmeInDirectory : [ "GET /repos/{owner}/{repo}/readme/{dir}" ] ,
getRelease : [ "GET /repos/{owner}/{repo}/releases/{release_id}" ] ,
getReleaseAsset : [ "GET /repos/{owner}/{repo}/releases/assets/{asset_id}" ] ,
getReleaseByTag : [ "GET /repos/{owner}/{repo}/releases/tags/{tag}" ] ,
getStatusChecksProtection : [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" ] ,
getTeamsWithAccessToProtectedBranch : [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" ] ,
getTopPaths : [ "GET /repos/{owner}/{repo}/traffic/popular/paths" ] ,
getTopReferrers : [ "GET /repos/{owner}/{repo}/traffic/popular/referrers" ] ,
getUsersWithAccessToProtectedBranch : [ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" ] ,
getViews : [ "GET /repos/{owner}/{repo}/traffic/views" ] ,
getWebhook : [ "GET /repos/{owner}/{repo}/hooks/{hook_id}" ] ,
getWebhookConfigForRepo : [ "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" ] ,
2022-01-11 13:44:47 +00:00
getWebhookDelivery : [ "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" ] ,
listAutolinks : [ "GET /repos/{owner}/{repo}/autolinks" ] ,
2022-01-11 11:52:29 +00:00
listBranches : [ "GET /repos/{owner}/{repo}/branches" ] ,
2022-01-11 13:44:47 +00:00
listBranchesForHeadCommit : [ "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" ] ,
2022-01-11 11:52:29 +00:00
listCollaborators : [ "GET /repos/{owner}/{repo}/collaborators" ] ,
listCommentsForCommit : [ "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" ] ,
listCommitCommentsForRepo : [ "GET /repos/{owner}/{repo}/comments" ] ,
listCommitStatusesForRef : [ "GET /repos/{owner}/{repo}/commits/{ref}/statuses" ] ,
listCommits : [ "GET /repos/{owner}/{repo}/commits" ] ,
listContributors : [ "GET /repos/{owner}/{repo}/contributors" ] ,
listDeployKeys : [ "GET /repos/{owner}/{repo}/keys" ] ,
listDeploymentStatuses : [ "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" ] ,
listDeployments : [ "GET /repos/{owner}/{repo}/deployments" ] ,
listForAuthenticatedUser : [ "GET /user/repos" ] ,
listForOrg : [ "GET /orgs/{org}/repos" ] ,
listForUser : [ "GET /users/{username}/repos" ] ,
listForks : [ "GET /repos/{owner}/{repo}/forks" ] ,
listInvitations : [ "GET /repos/{owner}/{repo}/invitations" ] ,
listInvitationsForAuthenticatedUser : [ "GET /user/repository_invitations" ] ,
listLanguages : [ "GET /repos/{owner}/{repo}/languages" ] ,
listPagesBuilds : [ "GET /repos/{owner}/{repo}/pages/builds" ] ,
listPublic : [ "GET /repositories" ] ,
2022-01-11 13:44:47 +00:00
listPullRequestsAssociatedWithCommit : [ "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" ] ,
2022-01-11 11:52:29 +00:00
listReleaseAssets : [ "GET /repos/{owner}/{repo}/releases/{release_id}/assets" ] ,
listReleases : [ "GET /repos/{owner}/{repo}/releases" ] ,
listTags : [ "GET /repos/{owner}/{repo}/tags" ] ,
listTeams : [ "GET /repos/{owner}/{repo}/teams" ] ,
2022-01-11 13:44:47 +00:00
listWebhookDeliveries : [ "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" ] ,
2022-01-11 11:52:29 +00:00
listWebhooks : [ "GET /repos/{owner}/{repo}/hooks" ] ,
merge : [ "POST /repos/{owner}/{repo}/merges" ] ,
2022-01-11 13:44:47 +00:00
mergeUpstream : [ "POST /repos/{owner}/{repo}/merge-upstream" ] ,
2022-01-11 11:52:29 +00:00
pingWebhook : [ "POST /repos/{owner}/{repo}/hooks/{hook_id}/pings" ] ,
2022-01-11 13:44:47 +00:00
redeliverWebhookDelivery : [ "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" ] ,
2022-01-11 11:52:29 +00:00
removeAppAccessRestrictions : [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" , { } , {
mapToData : "apps"
} ] ,
removeCollaborator : [ "DELETE /repos/{owner}/{repo}/collaborators/{username}" ] ,
removeStatusCheckContexts : [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" , { } , {
mapToData : "contexts"
} ] ,
removeStatusCheckProtection : [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" ] ,
removeTeamAccessRestrictions : [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" , { } , {
mapToData : "teams"
} ] ,
removeUserAccessRestrictions : [ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" , { } , {
mapToData : "users"
} ] ,
renameBranch : [ "POST /repos/{owner}/{repo}/branches/{branch}/rename" ] ,
replaceAllTopics : [ "PUT /repos/{owner}/{repo}/topics" , {
mediaType : {
previews : [ "mercy" ]
}
} ] ,
requestPagesBuild : [ "POST /repos/{owner}/{repo}/pages/builds" ] ,
setAdminBranchProtection : [ "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" ] ,
setAppAccessRestrictions : [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" , { } , {
mapToData : "apps"
} ] ,
setStatusCheckContexts : [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" , { } , {
mapToData : "contexts"
} ] ,
setTeamAccessRestrictions : [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" , { } , {
mapToData : "teams"
} ] ,
setUserAccessRestrictions : [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" , { } , {
mapToData : "users"
} ] ,
testPushWebhook : [ "POST /repos/{owner}/{repo}/hooks/{hook_id}/tests" ] ,
transfer : [ "POST /repos/{owner}/{repo}/transfer" ] ,
update : [ "PATCH /repos/{owner}/{repo}" ] ,
updateBranchProtection : [ "PUT /repos/{owner}/{repo}/branches/{branch}/protection" ] ,
updateCommitComment : [ "PATCH /repos/{owner}/{repo}/comments/{comment_id}" ] ,
updateInformationAboutPagesSite : [ "PUT /repos/{owner}/{repo}/pages" ] ,
updateInvitation : [ "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" ] ,
updatePullRequestReviewProtection : [ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" ] ,
updateRelease : [ "PATCH /repos/{owner}/{repo}/releases/{release_id}" ] ,
updateReleaseAsset : [ "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" ] ,
updateStatusCheckPotection : [ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" , { } , {
renamed : [ "repos" , "updateStatusCheckProtection" ]
} ] ,
updateStatusCheckProtection : [ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" ] ,
updateWebhook : [ "PATCH /repos/{owner}/{repo}/hooks/{hook_id}" ] ,
updateWebhookConfigForRepo : [ "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" ] ,
uploadReleaseAsset : [ "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}" , {
baseUrl : "https://uploads.github.com"
} ]
} ,
search : {
code : [ "GET /search/code" ] ,
2022-01-11 13:44:47 +00:00
commits : [ "GET /search/commits" ] ,
2022-01-11 11:52:29 +00:00
issuesAndPullRequests : [ "GET /search/issues" ] ,
labels : [ "GET /search/labels" ] ,
repos : [ "GET /search/repositories" ] ,
topics : [ "GET /search/topics" , {
mediaType : {
previews : [ "mercy" ]
}
} ] ,
users : [ "GET /search/users" ]
} ,
secretScanning : {
getAlert : [ "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" ] ,
2022-01-11 13:44:47 +00:00
listAlertsForOrg : [ "GET /orgs/{org}/secret-scanning/alerts" ] ,
2022-01-11 11:52:29 +00:00
listAlertsForRepo : [ "GET /repos/{owner}/{repo}/secret-scanning/alerts" ] ,
updateAlert : [ "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" ]
} ,
teams : {
addOrUpdateMembershipForUserInOrg : [ "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" ] ,
2022-01-11 13:44:47 +00:00
addOrUpdateProjectPermissionsInOrg : [ "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" ] ,
2022-01-11 11:52:29 +00:00
addOrUpdateRepoPermissionsInOrg : [ "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" ] ,
2022-01-11 13:44:47 +00:00
checkPermissionsForProjectInOrg : [ "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" ] ,
2022-01-11 11:52:29 +00:00
checkPermissionsForRepoInOrg : [ "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" ] ,
create : [ "POST /orgs/{org}/teams" ] ,
createDiscussionCommentInOrg : [ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" ] ,
createDiscussionInOrg : [ "POST /orgs/{org}/teams/{team_slug}/discussions" ] ,
deleteDiscussionCommentInOrg : [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" ] ,
deleteDiscussionInOrg : [ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" ] ,
deleteInOrg : [ "DELETE /orgs/{org}/teams/{team_slug}" ] ,
getByName : [ "GET /orgs/{org}/teams/{team_slug}" ] ,
getDiscussionCommentInOrg : [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" ] ,
getDiscussionInOrg : [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" ] ,
getMembershipForUserInOrg : [ "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" ] ,
list : [ "GET /orgs/{org}/teams" ] ,
listChildInOrg : [ "GET /orgs/{org}/teams/{team_slug}/teams" ] ,
listDiscussionCommentsInOrg : [ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" ] ,
listDiscussionsInOrg : [ "GET /orgs/{org}/teams/{team_slug}/discussions" ] ,
listForAuthenticatedUser : [ "GET /user/teams" ] ,
listMembersInOrg : [ "GET /orgs/{org}/teams/{team_slug}/members" ] ,
listPendingInvitationsInOrg : [ "GET /orgs/{org}/teams/{team_slug}/invitations" ] ,
2022-01-11 13:44:47 +00:00
listProjectsInOrg : [ "GET /orgs/{org}/teams/{team_slug}/projects" ] ,
2022-01-11 11:52:29 +00:00
listReposInOrg : [ "GET /orgs/{org}/teams/{team_slug}/repos" ] ,
removeMembershipForUserInOrg : [ "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" ] ,
removeProjectInOrg : [ "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" ] ,
removeRepoInOrg : [ "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" ] ,
updateDiscussionCommentInOrg : [ "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" ] ,
updateDiscussionInOrg : [ "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" ] ,
updateInOrg : [ "PATCH /orgs/{org}/teams/{team_slug}" ]
} ,
users : {
2022-01-11 13:44:47 +00:00
addEmailForAuthenticated : [ "POST /user/emails" , { } , {
renamed : [ "users" , "addEmailForAuthenticatedUser" ]
} ] ,
addEmailForAuthenticatedUser : [ "POST /user/emails" ] ,
2022-01-11 11:52:29 +00:00
block : [ "PUT /user/blocks/{username}" ] ,
checkBlocked : [ "GET /user/blocks/{username}" ] ,
checkFollowingForUser : [ "GET /users/{username}/following/{target_user}" ] ,
checkPersonIsFollowedByAuthenticated : [ "GET /user/following/{username}" ] ,
2022-01-11 13:44:47 +00:00
createGpgKeyForAuthenticated : [ "POST /user/gpg_keys" , { } , {
renamed : [ "users" , "createGpgKeyForAuthenticatedUser" ]
} ] ,
createGpgKeyForAuthenticatedUser : [ "POST /user/gpg_keys" ] ,
createPublicSshKeyForAuthenticated : [ "POST /user/keys" , { } , {
renamed : [ "users" , "createPublicSshKeyForAuthenticatedUser" ]
} ] ,
createPublicSshKeyForAuthenticatedUser : [ "POST /user/keys" ] ,
deleteEmailForAuthenticated : [ "DELETE /user/emails" , { } , {
renamed : [ "users" , "deleteEmailForAuthenticatedUser" ]
} ] ,
deleteEmailForAuthenticatedUser : [ "DELETE /user/emails" ] ,
deleteGpgKeyForAuthenticated : [ "DELETE /user/gpg_keys/{gpg_key_id}" , { } , {
renamed : [ "users" , "deleteGpgKeyForAuthenticatedUser" ]
} ] ,
deleteGpgKeyForAuthenticatedUser : [ "DELETE /user/gpg_keys/{gpg_key_id}" ] ,
deletePublicSshKeyForAuthenticated : [ "DELETE /user/keys/{key_id}" , { } , {
renamed : [ "users" , "deletePublicSshKeyForAuthenticatedUser" ]
} ] ,
deletePublicSshKeyForAuthenticatedUser : [ "DELETE /user/keys/{key_id}" ] ,
2022-01-11 11:52:29 +00:00
follow : [ "PUT /user/following/{username}" ] ,
getAuthenticated : [ "GET /user" ] ,
getByUsername : [ "GET /users/{username}" ] ,
getContextForUser : [ "GET /users/{username}/hovercard" ] ,
2022-01-11 13:44:47 +00:00
getGpgKeyForAuthenticated : [ "GET /user/gpg_keys/{gpg_key_id}" , { } , {
renamed : [ "users" , "getGpgKeyForAuthenticatedUser" ]
} ] ,
getGpgKeyForAuthenticatedUser : [ "GET /user/gpg_keys/{gpg_key_id}" ] ,
getPublicSshKeyForAuthenticated : [ "GET /user/keys/{key_id}" , { } , {
renamed : [ "users" , "getPublicSshKeyForAuthenticatedUser" ]
} ] ,
getPublicSshKeyForAuthenticatedUser : [ "GET /user/keys/{key_id}" ] ,
2022-01-11 11:52:29 +00:00
list : [ "GET /users" ] ,
2022-01-11 13:44:47 +00:00
listBlockedByAuthenticated : [ "GET /user/blocks" , { } , {
renamed : [ "users" , "listBlockedByAuthenticatedUser" ]
} ] ,
listBlockedByAuthenticatedUser : [ "GET /user/blocks" ] ,
listEmailsForAuthenticated : [ "GET /user/emails" , { } , {
renamed : [ "users" , "listEmailsForAuthenticatedUser" ]
} ] ,
listEmailsForAuthenticatedUser : [ "GET /user/emails" ] ,
listFollowedByAuthenticated : [ "GET /user/following" , { } , {
renamed : [ "users" , "listFollowedByAuthenticatedUser" ]
} ] ,
listFollowedByAuthenticatedUser : [ "GET /user/following" ] ,
2022-01-11 11:52:29 +00:00
listFollowersForAuthenticatedUser : [ "GET /user/followers" ] ,
listFollowersForUser : [ "GET /users/{username}/followers" ] ,
listFollowingForUser : [ "GET /users/{username}/following" ] ,
2022-01-11 13:44:47 +00:00
listGpgKeysForAuthenticated : [ "GET /user/gpg_keys" , { } , {
renamed : [ "users" , "listGpgKeysForAuthenticatedUser" ]
} ] ,
listGpgKeysForAuthenticatedUser : [ "GET /user/gpg_keys" ] ,
2022-01-11 11:52:29 +00:00
listGpgKeysForUser : [ "GET /users/{username}/gpg_keys" ] ,
2022-01-11 13:44:47 +00:00
listPublicEmailsForAuthenticated : [ "GET /user/public_emails" , { } , {
renamed : [ "users" , "listPublicEmailsForAuthenticatedUser" ]
} ] ,
listPublicEmailsForAuthenticatedUser : [ "GET /user/public_emails" ] ,
2022-01-11 11:52:29 +00:00
listPublicKeysForUser : [ "GET /users/{username}/keys" ] ,
2022-01-11 13:44:47 +00:00
listPublicSshKeysForAuthenticated : [ "GET /user/keys" , { } , {
renamed : [ "users" , "listPublicSshKeysForAuthenticatedUser" ]
} ] ,
listPublicSshKeysForAuthenticatedUser : [ "GET /user/keys" ] ,
setPrimaryEmailVisibilityForAuthenticated : [ "PATCH /user/email/visibility" , { } , {
renamed : [ "users" , "setPrimaryEmailVisibilityForAuthenticatedUser" ]
} ] ,
setPrimaryEmailVisibilityForAuthenticatedUser : [ "PATCH /user/email/visibility" ] ,
2022-01-11 11:52:29 +00:00
unblock : [ "DELETE /user/blocks/{username}" ] ,
unfollow : [ "DELETE /user/following/{username}" ] ,
updateAuthenticated : [ "PATCH /user" ]
}
} ;
2022-01-11 13:44:47 +00:00
const VERSION = "5.13.0" ;
2022-01-11 11:52:29 +00:00
function endpointsToMethods ( octokit , endpointsMap ) {
const newMethods = { } ;
for ( const [ scope , endpoints ] of Object . entries ( endpointsMap ) ) {
for ( const [ methodName , endpoint ] of Object . entries ( endpoints ) ) {
const [ route , defaults , decorations ] = endpoint ;
const [ method , url ] = route . split ( / / ) ;
const endpointDefaults = Object . assign ( {
method ,
url
} , defaults ) ;
if ( ! newMethods [ scope ] ) {
newMethods [ scope ] = { } ;
}
const scopeMethods = newMethods [ scope ] ;
if ( decorations ) {
scopeMethods [ methodName ] = decorate ( octokit , scope , methodName , endpointDefaults , decorations ) ;
continue ;
}
scopeMethods [ methodName ] = octokit . request . defaults ( endpointDefaults ) ;
}
}
return newMethods ;
}
function decorate ( octokit , scope , methodName , defaults , decorations ) {
const requestWithDefaults = octokit . request . defaults ( defaults ) ;
/* istanbul ignore next */
function withDecorations ( ... args ) {
// @ts-ignore https://github.com/microsoft/TypeScript/issues/25488
let options = requestWithDefaults . endpoint . merge ( ... args ) ; // There are currently no other decorations than `.mapToData`
if ( decorations . mapToData ) {
options = Object . assign ( { } , options , {
data : options [ decorations . mapToData ] ,
[ decorations . mapToData ] : undefined
} ) ;
return requestWithDefaults ( options ) ;
}
if ( decorations . renamed ) {
const [ newScope , newMethodName ] = decorations . renamed ;
octokit . log . warn ( ` octokit. ${ scope } . ${ methodName } () has been renamed to octokit. ${ newScope } . ${ newMethodName } () ` ) ;
}
if ( decorations . deprecated ) {
octokit . log . warn ( decorations . deprecated ) ;
}
if ( decorations . renamedParameters ) {
// @ts-ignore https://github.com/microsoft/TypeScript/issues/25488
const options = requestWithDefaults . endpoint . merge ( ... args ) ;
for ( const [ name , alias ] of Object . entries ( decorations . renamedParameters ) ) {
if ( name in options ) {
octokit . log . warn ( ` " ${ name } " parameter is deprecated for "octokit. ${ scope } . ${ methodName } ()". Use " ${ alias } " instead ` ) ;
if ( ! ( alias in options ) ) {
options [ alias ] = options [ name ] ;
}
delete options [ name ] ;
}
}
return requestWithDefaults ( options ) ;
} // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488
return requestWithDefaults ( ... args ) ;
}
return Object . assign ( withDecorations , requestWithDefaults ) ;
}
function restEndpointMethods ( octokit ) {
2022-01-11 13:44:47 +00:00
const api = endpointsToMethods ( octokit , Endpoints ) ;
return {
rest : api
} ;
}
restEndpointMethods . VERSION = VERSION ;
function legacyRestEndpointMethods ( octokit ) {
2022-01-11 11:52:29 +00:00
const api = endpointsToMethods ( octokit , Endpoints ) ;
return _objectSpread2 ( _objectSpread2 ( { } , api ) , { } , {
rest : api
} ) ;
}
2022-01-11 13:44:47 +00:00
legacyRestEndpointMethods . VERSION = VERSION ;
2022-01-11 11:52:29 +00:00
2022-01-11 13:44:47 +00:00
exports . legacyRestEndpointMethods = legacyRestEndpointMethods ;
2022-01-11 11:52:29 +00:00
exports . restEndpointMethods = restEndpointMethods ;
//# sourceMappingURL=index.js.map
/***/ } ) ,
/***/ 537 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
function _interopDefault ( ex ) { return ( ex && ( typeof ex === 'object' ) && 'default' in ex ) ? ex [ 'default' ] : ex ; }
var deprecation = _ _nccwpck _require _ _ ( 8932 ) ;
var once = _interopDefault ( _ _nccwpck _require _ _ ( 1223 ) ) ;
const logOnceCode = once ( deprecation => console . warn ( deprecation ) ) ;
const logOnceHeaders = once ( deprecation => console . warn ( deprecation ) ) ;
/ * *
* Error with extra properties to help with debugging
* /
class RequestError extends Error {
constructor ( message , statusCode , options ) {
super ( message ) ; // Maintains proper stack trace (only available on V8)
/* istanbul ignore next */
if ( Error . captureStackTrace ) {
Error . captureStackTrace ( this , this . constructor ) ;
}
this . name = "HttpError" ;
this . status = statusCode ;
let headers ;
if ( "headers" in options && typeof options . headers !== "undefined" ) {
headers = options . headers ;
}
if ( "response" in options ) {
this . response = options . response ;
headers = options . response . headers ;
} // redact request credentials without mutating original request options
const requestCopy = Object . assign ( { } , options . request ) ;
if ( options . request . headers . authorization ) {
requestCopy . headers = Object . assign ( { } , options . request . headers , {
authorization : options . request . headers . authorization . replace ( / .*$/ , " [REDACTED]" )
} ) ;
}
requestCopy . url = requestCopy . url // client_id & client_secret can be passed as URL query parameters to increase rate limit
// see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications
. replace ( /\bclient_secret=\w+/g , "client_secret=[REDACTED]" ) // OAuth tokens can be passed as URL query parameters, although it is not recommended
// see https://developer.github.com/v3/#oauth2-token-sent-in-a-header
. replace ( /\baccess_token=\w+/g , "access_token=[REDACTED]" ) ;
this . request = requestCopy ; // deprecations
Object . defineProperty ( this , "code" , {
get ( ) {
logOnceCode ( new deprecation . Deprecation ( "[@octokit/request-error] `error.code` is deprecated, use `error.status`." ) ) ;
return statusCode ;
}
} ) ;
Object . defineProperty ( this , "headers" , {
get ( ) {
logOnceHeaders ( new deprecation . Deprecation ( "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." ) ) ;
return headers || { } ;
}
} ) ;
}
}
exports . RequestError = RequestError ;
//# sourceMappingURL=index.js.map
/***/ } ) ,
/***/ 6234 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
function _interopDefault ( ex ) { return ( ex && ( typeof ex === 'object' ) && 'default' in ex ) ? ex [ 'default' ] : ex ; }
var endpoint = _ _nccwpck _require _ _ ( 9440 ) ;
var universalUserAgent = _ _nccwpck _require _ _ ( 5030 ) ;
var isPlainObject = _ _nccwpck _require _ _ ( 9062 ) ;
var nodeFetch = _interopDefault ( _ _nccwpck _require _ _ ( 467 ) ) ;
var requestError = _ _nccwpck _require _ _ ( 537 ) ;
const VERSION = "5.6.2" ;
function getBufferResponse ( response ) {
return response . arrayBuffer ( ) ;
}
function fetchWrapper ( requestOptions ) {
const log = requestOptions . request && requestOptions . request . log ? requestOptions . request . log : console ;
if ( isPlainObject . isPlainObject ( requestOptions . body ) || Array . isArray ( requestOptions . body ) ) {
requestOptions . body = JSON . stringify ( requestOptions . body ) ;
}
let headers = { } ;
let status ;
let url ;
const fetch = requestOptions . request && requestOptions . request . fetch || nodeFetch ;
return fetch ( requestOptions . url , Object . assign ( {
method : requestOptions . method ,
body : requestOptions . body ,
headers : requestOptions . headers ,
redirect : requestOptions . redirect
} , // `requestOptions.request.agent` type is incompatible
// see https://github.com/octokit/types.ts/pull/264
requestOptions . request ) ) . then ( async response => {
url = response . url ;
status = response . status ;
for ( const keyAndValue of response . headers ) {
headers [ keyAndValue [ 0 ] ] = keyAndValue [ 1 ] ;
}
if ( "deprecation" in headers ) {
const matches = headers . link && headers . link . match ( /<([^>]+)>; rel="deprecation"/ ) ;
const deprecationLink = matches && matches . pop ( ) ;
log . warn ( ` [@octokit/request] " ${ requestOptions . method } ${ requestOptions . url } " is deprecated. It is scheduled to be removed on ${ headers . sunset } ${ deprecationLink ? ` . See ${ deprecationLink } ` : "" } ` ) ;
}
if ( status === 204 || status === 205 ) {
return ;
} // GitHub API returns 200 for HEAD requests
if ( requestOptions . method === "HEAD" ) {
if ( status < 400 ) {
return ;
}
throw new requestError . RequestError ( response . statusText , status , {
response : {
url ,
status ,
headers ,
data : undefined
} ,
request : requestOptions
} ) ;
}
if ( status === 304 ) {
throw new requestError . RequestError ( "Not modified" , status , {
response : {
url ,
status ,
headers ,
data : await getResponseData ( response )
} ,
request : requestOptions
} ) ;
}
if ( status >= 400 ) {
const data = await getResponseData ( response ) ;
const error = new requestError . RequestError ( toErrorMessage ( data ) , status , {
response : {
url ,
status ,
headers ,
data
} ,
request : requestOptions
} ) ;
throw error ;
}
return getResponseData ( response ) ;
} ) . then ( data => {
return {
status ,
url ,
headers ,
data
} ;
} ) . catch ( error => {
if ( error instanceof requestError . RequestError ) throw error ;
throw new requestError . RequestError ( error . message , 500 , {
request : requestOptions
} ) ;
} ) ;
}
async function getResponseData ( response ) {
const contentType = response . headers . get ( "content-type" ) ;
if ( /application\/json/ . test ( contentType ) ) {
return response . json ( ) ;
}
if ( ! contentType || /^text\/|charset=utf-8$/ . test ( contentType ) ) {
return response . text ( ) ;
}
return getBufferResponse ( response ) ;
}
function toErrorMessage ( data ) {
if ( typeof data === "string" ) return data ; // istanbul ignore else - just in case
if ( "message" in data ) {
if ( Array . isArray ( data . errors ) ) {
return ` ${ data . message } : ${ data . errors . map ( JSON . stringify ) . join ( ", " ) } ` ;
}
return data . message ;
} // istanbul ignore next - just in case
return ` Unknown error: ${ JSON . stringify ( data ) } ` ;
}
function withDefaults ( oldEndpoint , newDefaults ) {
const endpoint = oldEndpoint . defaults ( newDefaults ) ;
const newApi = function ( route , parameters ) {
const endpointOptions = endpoint . merge ( route , parameters ) ;
if ( ! endpointOptions . request || ! endpointOptions . request . hook ) {
return fetchWrapper ( endpoint . parse ( endpointOptions ) ) ;
}
const request = ( route , parameters ) => {
return fetchWrapper ( endpoint . parse ( endpoint . merge ( route , parameters ) ) ) ;
} ;
Object . assign ( request , {
endpoint ,
defaults : withDefaults . bind ( null , endpoint )
} ) ;
return endpointOptions . request . hook ( request , endpointOptions ) ;
} ;
return Object . assign ( newApi , {
endpoint ,
defaults : withDefaults . bind ( null , endpoint )
} ) ;
}
const request = withDefaults ( endpoint . endpoint , {
headers : {
"user-agent" : ` octokit-request.js/ ${ VERSION } ${ universalUserAgent . getUserAgent ( ) } `
}
} ) ;
exports . request = request ;
//# sourceMappingURL=index.js.map
/***/ } ) ,
/***/ 9062 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
/ * !
* is - plain - object < https : //github.com/jonschlinkert/is-plain-object>
*
* Copyright ( c ) 2014 - 2017 , Jon Schlinkert .
* Released under the MIT License .
* /
function isObject ( o ) {
return Object . prototype . toString . call ( o ) === '[object Object]' ;
}
function isPlainObject ( o ) {
var ctor , prot ;
if ( isObject ( o ) === false ) return false ;
// If has modified constructor
ctor = o . constructor ;
if ( ctor === undefined ) return true ;
// If has modified prototype
prot = ctor . prototype ;
if ( isObject ( prot ) === false ) return false ;
// If constructor does not have an Object-specific method
if ( prot . hasOwnProperty ( 'isPrototypeOf' ) === false ) {
return false ;
}
// Most likely a plain Object
return true ;
}
exports . isPlainObject = isPlainObject ;
/***/ } ) ,
/***/ 3682 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
var register = _ _nccwpck _require _ _ ( 4670 )
var addHook = _ _nccwpck _require _ _ ( 5549 )
var removeHook = _ _nccwpck _require _ _ ( 6819 )
// bind with array of arguments: https://stackoverflow.com/a/21792913
var bind = Function . bind
var bindable = bind . bind ( bind )
function bindApi ( hook , state , name ) {
var removeHookRef = bindable ( removeHook , null ) . apply ( null , name ? [ state , name ] : [ state ] )
hook . api = { remove : removeHookRef }
hook . remove = removeHookRef
; [ 'before' , 'error' , 'after' , 'wrap' ] . forEach ( function ( kind ) {
var args = name ? [ state , kind , name ] : [ state , kind ]
hook [ kind ] = hook . api [ kind ] = bindable ( addHook , null ) . apply ( null , args )
} )
}
function HookSingular ( ) {
var singularHookName = 'h'
var singularHookState = {
registry : { }
}
var singularHook = register . bind ( null , singularHookState , singularHookName )
bindApi ( singularHook , singularHookState , singularHookName )
return singularHook
}
function HookCollection ( ) {
var state = {
registry : { }
}
var hook = register . bind ( null , state )
bindApi ( hook , state )
return hook
}
var collectionHookDeprecationMessageDisplayed = false
function Hook ( ) {
if ( ! collectionHookDeprecationMessageDisplayed ) {
console . warn ( '[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4' )
collectionHookDeprecationMessageDisplayed = true
}
return HookCollection ( )
}
Hook . Singular = HookSingular . bind ( )
Hook . Collection = HookCollection . bind ( )
module . exports = Hook
// expose constructors as a named property for TypeScript
module . exports . Hook = Hook
module . exports . Singular = Hook . Singular
module . exports . Collection = Hook . Collection
/***/ } ) ,
/***/ 5549 :
/***/ ( ( module ) => {
module . exports = addHook ;
function addHook ( state , kind , name , hook ) {
var orig = hook ;
if ( ! state . registry [ name ] ) {
state . registry [ name ] = [ ] ;
}
if ( kind === "before" ) {
hook = function ( method , options ) {
return Promise . resolve ( )
. then ( orig . bind ( null , options ) )
. then ( method . bind ( null , options ) ) ;
} ;
}
if ( kind === "after" ) {
hook = function ( method , options ) {
var result ;
return Promise . resolve ( )
. then ( method . bind ( null , options ) )
. then ( function ( result _ ) {
result = result _ ;
return orig ( result , options ) ;
} )
. then ( function ( ) {
return result ;
} ) ;
} ;
}
if ( kind === "error" ) {
hook = function ( method , options ) {
return Promise . resolve ( )
. then ( method . bind ( null , options ) )
. catch ( function ( error ) {
return orig ( error , options ) ;
} ) ;
} ;
}
state . registry [ name ] . push ( {
hook : hook ,
orig : orig ,
} ) ;
}
/***/ } ) ,
/***/ 4670 :
/***/ ( ( module ) => {
module . exports = register ;
function register ( state , name , method , options ) {
if ( typeof method !== "function" ) {
throw new Error ( "method for before hook must be a function" ) ;
}
if ( ! options ) {
options = { } ;
}
if ( Array . isArray ( name ) ) {
return name . reverse ( ) . reduce ( function ( callback , name ) {
return register . bind ( null , state , name , callback , options ) ;
} , method ) ( ) ;
}
return Promise . resolve ( ) . then ( function ( ) {
if ( ! state . registry [ name ] ) {
return method ( options ) ;
}
return state . registry [ name ] . reduce ( function ( method , registered ) {
return registered . hook . bind ( null , method , options ) ;
} , method ) ( ) ;
} ) ;
}
/***/ } ) ,
/***/ 6819 :
/***/ ( ( module ) => {
module . exports = removeHook ;
function removeHook ( state , name , method ) {
if ( ! state . registry [ name ] ) {
return ;
}
var index = state . registry [ name ]
. map ( function ( registered ) {
return registered . orig ;
} )
. indexOf ( method ) ;
if ( index === - 1 ) {
return ;
}
state . registry [ name ] . splice ( index , 1 ) ;
}
/***/ } ) ,
/***/ 8932 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
class Deprecation extends Error {
constructor ( message ) {
super ( message ) ; // Maintains proper stack trace (only available on V8)
/* istanbul ignore next */
if ( Error . captureStackTrace ) {
Error . captureStackTrace ( this , this . constructor ) ;
}
this . name = 'Deprecation' ;
}
}
exports . Deprecation = Deprecation ;
/***/ } ) ,
/***/ 6956 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _handlebarsRuntime = _ _nccwpck _require _ _ ( 7390 ) ;
var _handlebarsRuntime2 = _interopRequireDefault ( _handlebarsRuntime ) ;
// Compiler imports
var _handlebarsCompilerAst = _ _nccwpck _require _ _ ( 9211 ) ;
var _handlebarsCompilerAst2 = _interopRequireDefault ( _handlebarsCompilerAst ) ;
var _handlebarsCompilerBase = _ _nccwpck _require _ _ ( 1475 ) ;
var _handlebarsCompilerCompiler = _ _nccwpck _require _ _ ( 9081 ) ;
var _handlebarsCompilerJavascriptCompiler = _ _nccwpck _require _ _ ( 1617 ) ;
var _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault ( _handlebarsCompilerJavascriptCompiler ) ;
var _handlebarsCompilerVisitor = _ _nccwpck _require _ _ ( 4166 ) ;
var _handlebarsCompilerVisitor2 = _interopRequireDefault ( _handlebarsCompilerVisitor ) ;
var _handlebarsNoConflict = _ _nccwpck _require _ _ ( 1983 ) ;
var _handlebarsNoConflict2 = _interopRequireDefault ( _handlebarsNoConflict ) ;
var _create = _handlebarsRuntime2 [ 'default' ] . create ;
function create ( ) {
var hb = _create ( ) ;
hb . compile = function ( input , options ) {
return _handlebarsCompilerCompiler . compile ( input , options , hb ) ;
} ;
hb . precompile = function ( input , options ) {
return _handlebarsCompilerCompiler . precompile ( input , options , hb ) ;
} ;
hb . AST = _handlebarsCompilerAst2 [ 'default' ] ;
hb . Compiler = _handlebarsCompilerCompiler . Compiler ;
hb . JavaScriptCompiler = _handlebarsCompilerJavascriptCompiler2 [ 'default' ] ;
hb . Parser = _handlebarsCompilerBase . parser ;
hb . parse = _handlebarsCompilerBase . parse ;
hb . parseWithoutProcessing = _handlebarsCompilerBase . parseWithoutProcessing ;
return hb ;
}
var inst = create ( ) ;
inst . create = create ;
_handlebarsNoConflict2 [ 'default' ] ( inst ) ;
inst . Visitor = _handlebarsCompilerVisitor2 [ 'default' ] ;
inst [ 'default' ] = inst ;
exports [ "default" ] = inst ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7aUNBQW9CLHNCQUFzQjs7Ozs7O3FDQUcxQiwyQkFBMkI7Ozs7c0NBS3BDLDRCQUE0Qjs7MENBQ1csZ0NBQWdDOztvREFDL0MsMkNBQTJDOzs7O3lDQUN0RCwrQkFBK0I7Ozs7b0NBRTVCLDBCQUEwQjs7OztBQUVqRCxJQUFJLE9BQU8sR0FBRywrQkFBUSxNQUFNLENBQUM7QUFDN0IsU0FBUyxNQUFNLEdBQUc7QUFDaEIsTUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7O0FBRW5CLElBQUUsQ0FBQyxPQUFPLEdBQUcsVUFBUyxLQUFLLEVBQUUsT0FBTyxFQUFFO0FBQ3BDLFdBQU8sb0NBQVEsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztHQUNwQyxDQUFDO0FBQ0YsSUFBRSxDQUFDLFVBQVUsR0FBRyxVQUFTLEtBQUssRUFBRSxPQUFPLEVBQUU7QUFDdkMsV0FBTyx1Q0FBVyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0dBQ3ZDLENBQUM7O0FBRUYsSUFBRSxDQUFDLEdBQUcscUNBQU0sQ0FBQztBQUNiLElBQUUsQ0FBQyxRQUFRLHVDQUFXLENBQUM7QUFDdkIsSUFBRSxDQUFDLGtCQUFrQixvREFBcUIsQ0FBQztBQUMzQyxJQUFFLENBQUMsTUFBTSxpQ0FBUyxDQUFDO0FBQ25CLElBQUUsQ0FBQyxLQUFLLGdDQUFRLENBQUM7QUFDakIsSUFBRSxDQUFDLHNCQUFzQixpREFBeUIsQ0FBQzs7QUFFbkQsU0FBTyxFQUFFLENBQUM7Q0FDWDs7QUFFRCxJQUFJLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQzs7QUFFckIsa0NBQVcsSUFBSSxDQUFDLENBQUM7O0FBRWpCLElBQUksQ0FBQyxPQUFPLHlDQUFVLENBQUM7O0FBRXZCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUM7O3FCQUVSLElBQUkiLCJmaWxlIjoiaGFuZGxlYmFycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBydW50aW1lIGZyb20gJy4vaGFuZGxlYmFycy5ydW50aW1lJztcblxuLy8gQ29tcGlsZXIgaW1wb3J0c1xuaW1wb3J0IEFTVCBmcm9tICcuL2hhbmRsZWJhcnMvY29tcGlsZXIvYXN0JztcbmltcG9ydCB7XG4gIHBhcnNlciBhcyBQYXJzZXIsXG4gIHBhcnNlLFxuICBwYXJzZVdpdGhvdXRQcm9jZXNzaW5nXG59IGZyb20gJy4vaGFuZGxlYmFycy9jb21waWxlci9iYXNlJztcbmltcG9ydCB7IENvbXBpbGVyLCBjb21waWxlLCBwcmVjb21waWxlIH0gZnJvbSAnLi9oYW5kbGViYXJzL2NvbXBpbGVyL2NvbXBpbGVyJztcbmltcG9ydCBKYXZhU2NyaXB0Q29tcGlsZXIgZnJvbSAnLi9oYW5kbGViYXJzL2NvbXBpbGVyL2phdmFzY3JpcHQtY29tcGlsZXInO1xuaW1wb3J0IFZpc2l0b3IgZnJvbSAnLi9oYW5kbGViYXJzL2NvbXBpbGVyL3Zpc2l0b3InO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG5sZXQgX2NyZWF0ZSA9IHJ1bnRpbWUuY3JlYXRlO1xuZnVuY3Rpb24gY3JlYXRlKCkge1xuICBsZXQgaGIgPSBfY3JlYXRlKCk7XG5cbiAgaGIuY29tcGlsZSA9IGZ1bmN0aW9uKGlucHV0LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIGNvbXBpbGUoaW5wdXQsIG9wdGlvbnMsIGhiKTtcbiAgfTtcbiAgaGIucHJlY29tcGlsZSA9IGZ1bmN0aW9uKGlucHV0LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHByZWNvbXBpbGUoaW5wdXQsIG9wdGlvbnMsIGhiKTtcbiAgfTtcblxuICBoYi5BU1QgPSBBU1Q7XG4gIGhiLkNvbXBpbGVyID0gQ29tcGlsZXI7XG4gIGhiLkphdmFTY3JpcHRDb21waWxlciA9IEphdmFTY3JpcHRDb21waWxlcjtcbiAgaGIuUGFyc2VyID0gUGFyc2VyO1xuICBoYi5wYXJzZSA9IHBhcnNlO1xuICBoYi5wYXJzZVdpdGhvdXRQcm9jZXNzaW5nID0gcGFyc2VXaXRob3V0UHJvY2Vzc2luZztcblxuICByZXR1cm4gaGI7XG59XG5cbmxldCBpbnN0ID0gY3JlYXRlKCk7XG5pbnN0LmNyZWF0ZSA9IGNyZWF0ZTtcblxubm9Db25mbGljdChpbnN0KTtcblxuaW5zdC5WaXNpdG9yID0gVmlzaXRvcjtcblxuaW5zdFsnZGVmYXVsdCddID0gaW5zdDtcblxuZXhwb3J0IGRlZmF1bHQgaW5zdDtcbiJdfQ==
/***/ } ) ,
/***/ 7390 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
// istanbul ignore next
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj [ 'default' ] = obj ; return newObj ; } }
var _handlebarsBase = _ _nccwpck _require _ _ ( 4211 ) ;
var base = _interopRequireWildcard ( _handlebarsBase ) ;
// Each of these augment the Handlebars object. No need to setup here.
// (This is done to easily share code between commonjs and browse envs)
var _handlebarsSafeString = _ _nccwpck _require _ _ ( 3296 ) ;
var _handlebarsSafeString2 = _interopRequireDefault ( _handlebarsSafeString ) ;
var _handlebarsException = _ _nccwpck _require _ _ ( 2879 ) ;
var _handlebarsException2 = _interopRequireDefault ( _handlebarsException ) ;
var _handlebarsUtils = _ _nccwpck _require _ _ ( 1437 ) ;
var Utils = _interopRequireWildcard ( _handlebarsUtils ) ;
var _handlebarsRuntime = _ _nccwpck _require _ _ ( 7663 ) ;
var runtime = _interopRequireWildcard ( _handlebarsRuntime ) ;
var _handlebarsNoConflict = _ _nccwpck _require _ _ ( 1983 ) ;
var _handlebarsNoConflict2 = _interopRequireDefault ( _handlebarsNoConflict ) ;
// For compatibility and usage outside of module systems, make the Handlebars object a namespace
function create ( ) {
var hb = new base . HandlebarsEnvironment ( ) ;
Utils . extend ( hb , base ) ;
hb . SafeString = _handlebarsSafeString2 [ 'default' ] ;
hb . Exception = _handlebarsException2 [ 'default' ] ;
hb . Utils = Utils ;
hb . escapeExpression = Utils . escapeExpression ;
hb . VM = runtime ;
hb . template = function ( spec ) {
return runtime . template ( spec , hb ) ;
} ;
return hb ;
}
var inst = create ( ) ;
inst . create = create ;
_handlebarsNoConflict2 [ 'default' ] ( inst ) ;
inst [ 'default' ] = inst ;
exports [ "default" ] = inst ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=
/***/ } ) ,
/***/ 4211 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
exports . HandlebarsEnvironment = HandlebarsEnvironment ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
var _exception = _ _nccwpck _require _ _ ( 2879 ) ;
var _exception2 = _interopRequireDefault ( _exception ) ;
var _helpers = _ _nccwpck _require _ _ ( 3066 ) ;
var _decorators = _ _nccwpck _require _ _ ( 4168 ) ;
var _logger = _ _nccwpck _require _ _ ( 7142 ) ;
var _logger2 = _interopRequireDefault ( _logger ) ;
var _internalProtoAccess = _ _nccwpck _require _ _ ( 6066 ) ;
var VERSION = '4.7.7' ;
exports . VERSION = VERSION ;
var COMPILER _REVISION = 8 ;
exports . COMPILER _REVISION = COMPILER _REVISION ;
var LAST _COMPATIBLE _COMPILER _REVISION = 7 ;
exports . LAST _COMPATIBLE _COMPILER _REVISION = LAST _COMPATIBLE _COMPILER _REVISION ;
var REVISION _CHANGES = {
1 : '<= 1.0.rc.2' , // 1.0.rc.2 is actually rev2 but doesn't report it
2 : '== 1.0.0-rc.3' ,
3 : '== 1.0.0-rc.4' ,
4 : '== 1.x.x' ,
5 : '== 2.0.0-alpha.x' ,
6 : '>= 2.0.0-beta.1' ,
7 : '>= 4.0.0 <4.3.0' ,
8 : '>= 4.3.0'
} ;
exports . REVISION _CHANGES = REVISION _CHANGES ;
var objectType = '[object Object]' ;
function HandlebarsEnvironment ( helpers , partials , decorators ) {
this . helpers = helpers || { } ;
this . partials = partials || { } ;
this . decorators = decorators || { } ;
_helpers . registerDefaultHelpers ( this ) ;
_decorators . registerDefaultDecorators ( this ) ;
}
HandlebarsEnvironment . prototype = {
constructor : HandlebarsEnvironment ,
logger : _logger2 [ 'default' ] ,
log : _logger2 [ 'default' ] . log ,
registerHelper : function registerHelper ( name , fn ) {
if ( _utils . toString . call ( name ) === objectType ) {
if ( fn ) {
throw new _exception2 [ 'default' ] ( 'Arg not supported with multiple helpers' ) ;
}
_utils . extend ( this . helpers , name ) ;
} else {
this . helpers [ name ] = fn ;
}
} ,
unregisterHelper : function unregisterHelper ( name ) {
delete this . helpers [ name ] ;
} ,
registerPartial : function registerPartial ( name , partial ) {
if ( _utils . toString . call ( name ) === objectType ) {
_utils . extend ( this . partials , name ) ;
} else {
if ( typeof partial === 'undefined' ) {
throw new _exception2 [ 'default' ] ( 'Attempting to register a partial called "' + name + '" as undefined' ) ;
}
this . partials [ name ] = partial ;
}
} ,
unregisterPartial : function unregisterPartial ( name ) {
delete this . partials [ name ] ;
} ,
registerDecorator : function registerDecorator ( name , fn ) {
if ( _utils . toString . call ( name ) === objectType ) {
if ( fn ) {
throw new _exception2 [ 'default' ] ( 'Arg not supported with multiple decorators' ) ;
}
_utils . extend ( this . decorators , name ) ;
} else {
this . decorators [ name ] = fn ;
}
} ,
unregisterDecorator : function unregisterDecorator ( name ) {
delete this . decorators [ name ] ;
} ,
/ * *
* Reset the memory of illegal property accesses that have already been logged .
* @ deprecated should only be used in handlebars test - cases
* /
resetLoggedPropertyAccesses : function resetLoggedPropertyAccesses ( ) {
_internalProtoAccess . resetLoggedProperties ( ) ;
}
} ;
var log = _logger2 [ 'default' ] . log ;
exports . log = log ;
exports . createFrame = _utils . createFrame ;
exports . logger = _logger2 [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy43JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9
/***/ } ) ,
/***/ 9211 :
/***/ ( ( module , exports ) => {
"use strict" ;
exports . _ _esModule = true ;
var AST = {
// Public API used to evaluate derived attributes regarding AST nodes
helpers : {
// a mustache is definitely a helper if:
// * it is an eligible helper, and
// * it has at least one parameter or hash segment
helperExpression : function helperExpression ( node ) {
return node . type === 'SubExpression' || ( node . type === 'MustacheStatement' || node . type === 'BlockStatement' ) && ! ! ( node . params && node . params . length || node . hash ) ;
} ,
scopedId : function scopedId ( path ) {
return ( /^\.|this\b/ . test ( path . original )
) ;
} ,
// an ID is simple if it only has one part, and that part is not
// `..` or `this`.
simpleId : function simpleId ( path ) {
return path . parts . length === 1 && ! AST . helpers . scopedId ( path ) && ! path . depth ;
}
}
} ;
// Must be exported as an object rather than the root of the module as the jison lexer
// must modify the object to operate properly.
exports [ "default" ] = AST ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2FzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJLEdBQUcsR0FBRzs7QUFFUixTQUFPLEVBQUU7Ozs7QUFJUCxvQkFBZ0IsRUFBRSwwQkFBUyxJQUFJLEVBQUU7QUFDL0IsYUFDRSxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsSUFDNUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLG1CQUFtQixJQUNqQyxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFBLElBQzlCLENBQUMsRUFBRSxBQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUssSUFBSSxDQUFDLElBQUksQ0FBQSxBQUFDLEFBQUMsQ0FDdkQ7S0FDSDs7QUFFRCxZQUFRLEVBQUUsa0JBQVMsSUFBSSxFQUFFO0FBQ3ZCLGFBQU8sYUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQUM7S0FDekM7Ozs7QUFJRCxZQUFRLEVBQUUsa0JBQVMsSUFBSSxFQUFFO0FBQ3ZCLGFBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUNyRTtLQUNIO0dBQ0Y7Q0FDRixDQUFDOzs7O3FCQUlhLEdBQUciLCJmaWxlIjoiYXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibGV0IEFTVCA9IHtcbiAgLy8gUHVibGljIEFQSSB1c2VkIHRvIGV2YWx1YXRlIGRlcml2ZWQgYXR0cmlidXRlcyByZWdhcmRpbmcgQVNUIG5vZGVzXG4gIGhlbHBlcnM6IHtcbiAgICAvLyBhIG11c3RhY2hlIGlzIGRlZmluaXRlbHkgYSBoZWxwZXIgaWY6XG4gICAgLy8gKiBpdCBpcyBhbiBlbGlnaWJsZSBoZWxwZXIsIGFuZFxuICAgIC8vICogaXQgaGFzIGF0IGxlYXN0IG9uZSBwYXJhbWV0ZXIgb3IgaGFzaCBzZWdtZW50XG4gICAgaGVscGVyRXhwcmVzc2lvbjogZnVuY3Rpb24obm9kZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgbm9kZS50eXBlID09PSAnU3ViRXhwcmVzc2lvbicgfHxcbiAgICAgICAgKChub2RlLnR5cGUgPT09ICdNdXN0YWNoZVN0YXRlbWVudCcgfHxcbiAgICAgICAgICBub2RlLnR5cGUgPT09ICdCbG9ja1N0YXRlbWVudCcpICYmXG4gICAgICAgICAgISEoKG5vZGUucGFyYW1zICYmIG5vZGUucGFyYW1zLmxlbmd0aCkgfHwgbm9kZS5oYXNoKSlcbiAgICAgICk7XG4gICAgfSxcblxuICAgIHNjb3BlZElkOiBmdW5jdGlvbihwYXRoKSB7XG4gICAgICByZXR1cm4gL15cXC58dGhpc1xcYi8udGVzdChwYXRoLm9yaWdpbmFsKTtcbiAgICB9LFxuXG4gICAgLy8gYW4gSUQgaXMgc2ltcGxlIGlmIGl0IG9ubHkgaGFzIG9uZSBwYXJ0LCBhbmQgdGhhdCBwYXJ0IGlzIG5vdFxuICAgIC8vIGAuLmAgb3IgYHRoaXNgLlxuICAgIHNpbXBsZUlkOiBmdW5jdGlvbihwYXRoKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBwYXRoLnBhcnRzLmxlbmd0aCA9PT0gMSAmJiAhQVNULmhlbHBlcnMuc2NvcGVkSWQocGF0aCkgJiYgIXBhdGguZGVwdGhcbiAgICAgICk7XG4gICAgfVxuICB9XG59O1xuXG4vLyBNdXN0IGJlIGV4cG9ydGVkIGFzIGFuIG9iamVjdCByYXRoZXIgdGhhbiB0aGUgcm9vdCBvZiB0aGUgbW9kdWxlIGFzIHRoZSBqaXNvbiBsZXhlclxuLy8gbXVzdCBtb2RpZnkgdGhlIG9iamVjdCB0byBvcGVyYXRlIHByb3Blcmx5LlxuZXhwb3J0IGRlZmF1bHQgQVNUO1xuIl19
/***/ } ) ,
/***/ 1475 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
exports . parseWithoutProcessing = parseWithoutProcessing ;
exports . parse = parse ;
// istanbul ignore next
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj [ 'default' ] = obj ; return newObj ; } }
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _parser = _ _nccwpck _require _ _ ( 5505 ) ;
var _parser2 = _interopRequireDefault ( _parser ) ;
var _whitespaceControl = _ _nccwpck _require _ _ ( 5200 ) ;
var _whitespaceControl2 = _interopRequireDefault ( _whitespaceControl ) ;
var _helpers = _ _nccwpck _require _ _ ( 4706 ) ;
var Helpers = _interopRequireWildcard ( _helpers ) ;
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
exports . parser = _parser2 [ 'default' ] ;
var yy = { } ;
_utils . extend ( yy , Helpers ) ;
function parseWithoutProcessing ( input , options ) {
// Just return if an already-compiled AST was passed in.
if ( input . type === 'Program' ) {
return input ;
}
_parser2 [ 'default' ] . yy = yy ;
// Altering the shared object here, but this is ok as parser is a sync operation
yy . locInfo = function ( locInfo ) {
return new yy . SourceLocation ( options && options . srcName , locInfo ) ;
} ;
var ast = _parser2 [ 'default' ] . parse ( input ) ;
return ast ;
}
function parse ( input , options ) {
var ast = parseWithoutProcessing ( input , options ) ;
var strip = new _whitespaceControl2 [ 'default' ] ( options ) ;
return strip . accept ( ast ) ;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztzQkFBbUIsVUFBVTs7OztpQ0FDQyxzQkFBc0I7Ozs7dUJBQzNCLFdBQVc7O0lBQXhCLE9BQU87O3FCQUNJLFVBQVU7O1FBRXhCLE1BQU07O0FBRWYsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQ1osY0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7O0FBRWIsU0FBUyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFOztBQUVyRCxNQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO0FBQzVCLFdBQU8sS0FBSyxDQUFDO0dBQ2Q7O0FBRUQsc0JBQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQzs7O0FBR2YsSUFBRSxDQUFDLE9BQU8sR0FBRyxVQUFTLE9BQU8sRUFBRTtBQUM3QixXQUFPLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztHQUNuRSxDQUFDOztBQUVGLE1BQUksR0FBRyxHQUFHLG9CQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzs7QUFFOUIsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFO0FBQ3BDLE1BQUksR0FBRyxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNqRCxNQUFJLEtBQUssR0FBRyxtQ0FBc0IsT0FBTyxDQUFDLENBQUM7O0FBRTNDLFNBQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJiYXNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhcnNlciBmcm9tICcuL3BhcnNlcic7XG5pbXBvcnQgV2hpdGVzcGFjZUNvbnRyb2wgZnJvbSAnLi93aGl0ZXNwYWNlLWNvbnRyb2wnO1xuaW1wb3J0ICogYXMgSGVscGVycyBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgeyBwYXJzZXIgfTtcblxubGV0IHl5ID0ge307XG5leHRlbmQoeXksIEhlbHBlcnMpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VXaXRob3V0UHJvY2Vzc2luZyhpbnB1dCwgb3B0aW9ucykge1xuICAvLyBKdXN0IHJldHVybiBpZiBhbiBhbHJlYWR5LWNvbXBpbGVkIEFTVCB3YXMgcGFzc2VkIGluLlxuICBpZiAoaW5wdXQudHlwZSA9PT0gJ1Byb2dyYW0nKSB7XG4gICAgcmV0dXJuIGlucHV0O1xuICB9XG5cbiAgcGFyc2VyLnl5ID0geXk7XG5cbiAgLy8gQWx0ZXJpbmcgdGhlIHNoYXJlZCBvYmplY3QgaGVyZSwgYnV0IHRoaXMgaXMgb2sgYXMgcGFyc2VyIGlzIGEgc3luYyBvcGVyYXRpb25cbiAgeXkubG9jSW5mbyA9IGZ1bmN0aW9uKGxvY0luZm8pIHtcbiAgICByZXR1cm4gbmV3IHl5LlNvdXJjZUxvY2F0aW9uKG9wdGlvbnMgJiYgb3B0aW9ucy5zcmNOYW1lLCBsb2NJbmZvKTtcbiAgfTtcblxuICBsZXQgYXN0ID0gcGFyc2VyLnBhcnNlKGlucHV0KTtcblxuICByZXR1cm4gYXN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgbGV0IGFzdCA9IHBhcnNlV2l0aG91dFByb2Nlc3NpbmcoaW5wdXQsIG9wdGlvbnMpO1xuICBsZXQgc3RyaXAgPSBuZXcgV2hpdGVzcGFjZUNvbnRyb2wob3B0aW9ucyk7XG5cbiAgcmV0dXJuIHN0cmlwLmFjY2VwdChhc3QpO1xufVxuIl19
/***/ } ) ,
/***/ 3612 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
/* global define */
exports . _ _esModule = true ;
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
var SourceNode = undefined ;
try {
/* istanbul ignore next */
if ( typeof define !== 'function' || ! define . amd ) {
// We don't support this in AMD environments. For these environments, we asusme that
// they are running on the browser and thus have no need for the source-map library.
var SourceMap = _ _nccwpck _require _ _ ( 6594 ) ;
SourceNode = SourceMap . SourceNode ;
}
} catch ( err ) { }
/* NOP */
/* istanbul ignore if: tested but not covered in istanbul due to dist build */
if ( ! SourceNode ) {
SourceNode = function ( line , column , srcFile , chunks ) {
this . src = '' ;
if ( chunks ) {
this . add ( chunks ) ;
}
} ;
/* istanbul ignore next */
SourceNode . prototype = {
add : function add ( chunks ) {
if ( _utils . isArray ( chunks ) ) {
chunks = chunks . join ( '' ) ;
}
this . src += chunks ;
} ,
prepend : function prepend ( chunks ) {
if ( _utils . isArray ( chunks ) ) {
chunks = chunks . join ( '' ) ;
}
this . src = chunks + this . src ;
} ,
toStringWithSourceMap : function toStringWithSourceMap ( ) {
return { code : this . toString ( ) } ;
} ,
toString : function toString ( ) {
return this . src ;
}
} ;
}
function castChunk ( chunk , codeGen , loc ) {
if ( _utils . isArray ( chunk ) ) {
var ret = [ ] ;
for ( var i = 0 , len = chunk . length ; i < len ; i ++ ) {
ret . push ( codeGen . wrap ( chunk [ i ] , loc ) ) ;
}
return ret ;
} else if ( typeof chunk === 'boolean' || typeof chunk === 'number' ) {
// Handle primitives that the SourceNode will throw up on
return chunk + '' ;
}
return chunk ;
}
function CodeGen ( srcFile ) {
this . srcFile = srcFile ;
this . source = [ ] ;
}
CodeGen . prototype = {
isEmpty : function isEmpty ( ) {
return ! this . source . length ;
} ,
prepend : function prepend ( source , loc ) {
this . source . unshift ( this . wrap ( source , loc ) ) ;
} ,
push : function push ( source , loc ) {
this . source . push ( this . wrap ( source , loc ) ) ;
} ,
merge : function merge ( ) {
var source = this . empty ( ) ;
this . each ( function ( line ) {
source . add ( [ ' ' , line , '\n' ] ) ;
} ) ;
return source ;
} ,
each : function each ( iter ) {
for ( var i = 0 , len = this . source . length ; i < len ; i ++ ) {
iter ( this . source [ i ] ) ;
}
} ,
empty : function empty ( ) {
var loc = this . currentLocation || { start : { } } ;
return new SourceNode ( loc . start . line , loc . start . column , this . srcFile ) ;
} ,
wrap : function wrap ( chunk ) {
var loc = arguments . length <= 1 || arguments [ 1 ] === undefined ? this . currentLocation || { start : { } } : arguments [ 1 ] ;
if ( chunk instanceof SourceNode ) {
return chunk ;
}
chunk = castChunk ( chunk , this , loc ) ;
return new SourceNode ( loc . start . line , loc . start . column , this . srcFile , chunk ) ;
} ,
functionCall : function functionCall ( fn , type , params ) {
params = this . generateList ( params ) ;
return this . wrap ( [ fn , type ? '.' + type + '(' : '(' , params , ')' ] ) ;
} ,
quotedString : function quotedString ( str ) {
return '"' + ( str + '' ) . replace ( /\\/g , '\\\\' ) . replace ( /"/g , '\\"' ) . replace ( /\n/g , '\\n' ) . replace ( /\r/g , '\\r' ) . replace ( /\u2028/g , '\\u2028' ) // Per Ecma-262 7.3 + 7.8.4
. replace ( /\u2029/g , '\\u2029' ) + '"' ;
} ,
objectLiteral : function objectLiteral ( obj ) {
// istanbul ignore next
var _this = this ;
var pairs = [ ] ;
Object . keys ( obj ) . forEach ( function ( key ) {
var value = castChunk ( obj [ key ] , _this ) ;
if ( value !== 'undefined' ) {
pairs . push ( [ _this . quotedString ( key ) , ':' , value ] ) ;
}
} ) ;
var ret = this . generateList ( pairs ) ;
ret . prepend ( '{' ) ;
ret . add ( '}' ) ;
return ret ;
} ,
generateList : function generateList ( entries ) {
var ret = this . empty ( ) ;
for ( var i = 0 , len = entries . length ; i < len ; i ++ ) {
if ( i ) {
ret . add ( ',' ) ;
}
ret . add ( castChunk ( entries [ i ] , this ) ) ;
}
return ret ;
} ,
generateArray : function generateArray ( entries ) {
var ret = this . generateList ( entries ) ;
ret . prepend ( '[' ) ;
ret . add ( ']' ) ;
return ret ;
}
} ;
exports [ "default" ] = CodeGen ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2NvZGUtZ2VuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUN3QixVQUFVOztBQUVsQyxJQUFJLFVBQVUsWUFBQSxDQUFDOztBQUVmLElBQUk7O0FBRUYsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFOzs7QUFHL0MsUUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3RDLGNBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO0dBQ25DO0NBQ0YsQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUViOzs7O0FBQUEsQUFHRCxJQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsWUFBVSxHQUFHLFVBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQ25ELFFBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2QsUUFBSSxNQUFNLEVBQUU7QUFDVixVQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2xCO0dBQ0YsQ0FBQzs7QUFFRixZQUFVLENBQUMsU0FBUyxHQUFHO0FBQ3JCLE9BQUcsRUFBRSxhQUFTLE1BQU0sRUFBRTtBQUNwQixVQUFJLGVBQVEsTUFBTSxDQUFDLEVBQUU7QUFDbkIsY0FBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7T0FDMUI7QUFDRCxVQUFJLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQztLQUNwQjtBQUNELFdBQU8sRUFBRSxpQkFBUyxNQUFNLEVBQUU7QUFDeEIsVUFBSSxlQUFRLE1BQU0sQ0FBQyxFQUFFO0FBQ25CLGNBQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO09BQzFCO0FBQ0QsVUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztLQUM5QjtBQUNELHlCQUFxQixFQUFFLGlDQUFXO0FBQ2hDLGFBQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7S0FDbEM7QUFDRCxZQUFRLEVBQUUsb0JBQVc7QUFDbkIsYUFBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0tBQ2pCO0dBQ0YsQ0FBQztDQUNIOztBQUVELFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFO0FBQ3RDLE1BQUksZUFBUSxLQUFLLENBQUMsRUFBRTtBQUNsQixRQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7O0FBRWIsU0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxTQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDdkM7QUFDRCxXQUFPLEdBQUcsQ0FBQztHQUNaLE1BQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFOztBQUVsRSxXQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7R0FDbkI7QUFDRCxTQUFPLEtBQUssQ0FBQztDQUNkOztBQUVELFNBQVMsT0FBTyxDQUFDLE9BQU8sRUFBRTtBQUN4QixNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUN2QixNQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztDQUNsQjs7QUFFRCxPQUFPLENBQUMsU0FBUyxHQUFHO0FBQ2xCLFNBQU8sRUFBQSxtQkFBRztBQUNSLFdBQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztHQUM1QjtBQUNELFNBQU8sRUFBRSxpQkFBUyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQzdCLFFBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7R0FDN0M7QUFDRCxNQUFJLEVBQUUsY0FBUyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQzFCLFFBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7R0FDMUM7O0FBRUQsT0FBSyxFQUFFLGlCQUFXO0FBQ2hCLFFBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUMxQixRQUFJLENBQUMsSUFBSSxDQUFDLFVBQVMsSUFBSSxFQUFFO0FBQ3ZCLFlBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDaEMsQ0FBQyxDQUFDO0FBQ0gsV0FBTyxNQUFNLENBQUM7R0FDZjs7QUFFRCxNQUFJLEVBQUUsY0FBUyxJQUFJLEVBQUU7QUFDbkIsU0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDdEQsVUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN0QjtHQUNGOztBQUVELE9BQUssRUFBRSxpQkFBVztBQUNoQixRQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ2hELFdBQU8sSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0dBQ3ZFO0FBQ0QsTUFBSSxFQUFFLGNBQVMsS0FBSyxFQUErQztRQUE3QyxHQUFHLHlEQUFHLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFOztBQUMvRCxRQUFJLEtBQUssWUFBWSxVQUFVLEVBQUU7QUFDL0IsYUFBTyxLQUFLLENBQUM7S0FDZDs7QUFFRCxTQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7O0FBRXBDLFdBQU8sSUFBSSxVQUFVLENBQ25CLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUNkLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUNoQixJQUFJLENBQUMsT0FBTyxFQUNaLEtBQUssQ0FDTixDQUFDO0dBQ0g7O0FBRUQsY0FBWSxFQUFFLHNCQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSx
/***/ } ) ,
/***/ 9081 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
/* eslint-disable new-cap */
exports . _ _esModule = true ;
exports . Compiler = Compiler ;
exports . precompile = precompile ;
exports . compile = compile ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _exception = _ _nccwpck _require _ _ ( 2879 ) ;
var _exception2 = _interopRequireDefault ( _exception ) ;
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
var _ast = _ _nccwpck _require _ _ ( 9211 ) ;
var _ast2 = _interopRequireDefault ( _ast ) ;
var slice = [ ] . slice ;
function Compiler ( ) { }
// the foundHelper register will disambiguate helper lookup from finding a
// function in a context. This is necessary for mustache compatibility, which
// requires that context functions in blocks are evaluated by blockHelperMissing,
// and then proceed as if the resulting value was provided to blockHelperMissing.
Compiler . prototype = {
compiler : Compiler ,
equals : function equals ( other ) {
var len = this . opcodes . length ;
if ( other . opcodes . length !== len ) {
return false ;
}
for ( var i = 0 ; i < len ; i ++ ) {
var opcode = this . opcodes [ i ] ,
otherOpcode = other . opcodes [ i ] ;
if ( opcode . opcode !== otherOpcode . opcode || ! argEquals ( opcode . args , otherOpcode . args ) ) {
return false ;
}
}
// We know that length is the same between the two arrays because they are directly tied
// to the opcode behavior above.
len = this . children . length ;
for ( var i = 0 ; i < len ; i ++ ) {
if ( ! this . children [ i ] . equals ( other . children [ i ] ) ) {
return false ;
}
}
return true ;
} ,
guid : 0 ,
compile : function compile ( program , options ) {
this . sourceNode = [ ] ;
this . opcodes = [ ] ;
this . children = [ ] ;
this . options = options ;
this . stringParams = options . stringParams ;
this . trackIds = options . trackIds ;
options . blockParams = options . blockParams || [ ] ;
options . knownHelpers = _utils . extend ( Object . create ( null ) , {
helperMissing : true ,
blockHelperMissing : true ,
each : true ,
'if' : true ,
unless : true ,
'with' : true ,
log : true ,
lookup : true
} , options . knownHelpers ) ;
return this . accept ( program ) ;
} ,
compileProgram : function compileProgram ( program ) {
var childCompiler = new this . compiler ( ) ,
// eslint-disable-line new-cap
result = childCompiler . compile ( program , this . options ) ,
guid = this . guid ++ ;
this . usePartial = this . usePartial || result . usePartial ;
this . children [ guid ] = result ;
this . useDepths = this . useDepths || result . useDepths ;
return guid ;
} ,
accept : function accept ( node ) {
/* istanbul ignore next: Sanity code */
if ( ! this [ node . type ] ) {
throw new _exception2 [ 'default' ] ( 'Unknown type: ' + node . type , node ) ;
}
this . sourceNode . unshift ( node ) ;
var ret = this [ node . type ] ( node ) ;
this . sourceNode . shift ( ) ;
return ret ;
} ,
Program : function Program ( program ) {
this . options . blockParams . unshift ( program . blockParams ) ;
var body = program . body ,
bodyLength = body . length ;
for ( var i = 0 ; i < bodyLength ; i ++ ) {
this . accept ( body [ i ] ) ;
}
this . options . blockParams . shift ( ) ;
this . isSimple = bodyLength === 1 ;
this . blockParams = program . blockParams ? program . blockParams . length : 0 ;
return this ;
} ,
BlockStatement : function BlockStatement ( block ) {
transformLiteralToPath ( block ) ;
var program = block . program ,
inverse = block . inverse ;
program = program && this . compileProgram ( program ) ;
inverse = inverse && this . compileProgram ( inverse ) ;
var type = this . classifySexpr ( block ) ;
if ( type === 'helper' ) {
this . helperSexpr ( block , program , inverse ) ;
} else if ( type === 'simple' ) {
this . simpleSexpr ( block ) ;
// now that the simple mustache is resolved, we need to
// evaluate it by executing `blockHelperMissing`
this . opcode ( 'pushProgram' , program ) ;
this . opcode ( 'pushProgram' , inverse ) ;
this . opcode ( 'emptyHash' ) ;
this . opcode ( 'blockValue' , block . path . original ) ;
} else {
this . ambiguousSexpr ( block , program , inverse ) ;
// now that the simple mustache is resolved, we need to
// evaluate it by executing `blockHelperMissing`
this . opcode ( 'pushProgram' , program ) ;
this . opcode ( 'pushProgram' , inverse ) ;
this . opcode ( 'emptyHash' ) ;
this . opcode ( 'ambiguousBlockValue' ) ;
}
this . opcode ( 'append' ) ;
} ,
DecoratorBlock : function DecoratorBlock ( decorator ) {
var program = decorator . program && this . compileProgram ( decorator . program ) ;
var params = this . setupFullMustacheParams ( decorator , program , undefined ) ,
path = decorator . path ;
this . useDecorators = true ;
this . opcode ( 'registerDecorator' , params . length , path . original ) ;
} ,
PartialStatement : function PartialStatement ( partial ) {
this . usePartial = true ;
var program = partial . program ;
if ( program ) {
program = this . compileProgram ( partial . program ) ;
}
var params = partial . params ;
if ( params . length > 1 ) {
throw new _exception2 [ 'default' ] ( 'Unsupported number of partial arguments: ' + params . length , partial ) ;
} else if ( ! params . length ) {
if ( this . options . explicitPartialContext ) {
this . opcode ( 'pushLiteral' , 'undefined' ) ;
} else {
params . push ( { type : 'PathExpression' , parts : [ ] , depth : 0 } ) ;
}
}
var partialName = partial . name . original ,
isDynamic = partial . name . type === 'SubExpression' ;
if ( isDynamic ) {
this . accept ( partial . name ) ;
}
this . setupFullMustacheParams ( partial , program , undefined , true ) ;
var indent = partial . indent || '' ;
if ( this . options . preventIndent && indent ) {
this . opcode ( 'appendContent' , indent ) ;
indent = '' ;
}
this . opcode ( 'invokePartial' , isDynamic , partialName , indent ) ;
this . opcode ( 'append' ) ;
} ,
PartialBlockStatement : function PartialBlockStatement ( partialBlock ) {
this . PartialStatement ( partialBlock ) ;
} ,
MustacheStatement : function MustacheStatement ( mustache ) {
this . SubExpression ( mustache ) ;
if ( mustache . escaped && ! this . options . noEscape ) {
this . opcode ( 'appendEscaped' ) ;
} else {
this . opcode ( 'append' ) ;
}
} ,
Decorator : function Decorator ( decorator ) {
this . DecoratorBlock ( decorator ) ;
} ,
ContentStatement : function ContentStatement ( content ) {
if ( content . value ) {
this . opcode ( 'appendContent' , content . value ) ;
}
} ,
CommentStatement : function CommentStatement ( ) { } ,
SubExpression : function SubExpression ( sexpr ) {
transformLiteralToPath ( sexpr ) ;
var type = this . classifySexpr ( sexpr ) ;
if ( type === 'simple' ) {
this . simpleSexpr ( sexpr ) ;
} else if ( type === 'helper' ) {
this . helperSexpr ( sexpr ) ;
} else {
this . ambiguousSexpr ( sexpr ) ;
}
} ,
ambiguousSexpr : function ambiguousSexpr ( sexpr , program , inverse ) {
var path = sexpr . path ,
name = path . parts [ 0 ] ,
isBlock = program != null || inverse != null ;
this . opcode ( 'getContext' , path . depth ) ;
this . opcode ( 'pushProgram' , program ) ;
this . opcode ( 'pushProgram' , inverse ) ;
path . strict = true ;
this . accept ( path ) ;
this . opcode ( 'invokeAmbiguous' , name , isBlock ) ;
} ,
simpleSexpr : function simpleSexpr ( sexpr ) {
var path = sexpr . path ;
path . strict = true ;
this . accept ( path ) ;
this . opcode ( 'resolvePossibleLambda' ) ;
} ,
helperSexpr : function helperSexpr ( sexpr , program , inverse ) {
var params = this . setupFullMustacheParams ( sexpr , program , inverse ) ,
path = sexpr . path ,
name = path . parts [ 0 ] ;
if ( this . options . knownHelpers [ name ] ) {
this . opcode ( 'invokeKnownHelper' , params . length , name ) ;
} else if ( this . options . knownHelpersOnly ) {
throw new _exception2 [ 'default' ] ( 'You specified knownHelpersOnly, but used the unknown helper ' + name , sexpr ) ;
} else {
path . strict = true ;
path . falsy = true ;
this . accept ( path ) ;
this . opcode ( 'invokeHelper' , params . length , path . original , _ast2 [ 'default' ] . helpers . simpleId ( path ) ) ;
}
} ,
PathExpression : function PathExpression ( path ) {
this . addDepth ( path . depth ) ;
this . opcode ( 'getContext' , path . depth ) ;
var name = path . parts [ 0 ] ,
scoped = _ast2 [ 'default' ] . helpers . scopedId ( path ) ,
blockParamId = ! path . depth && ! scoped && this . blockParamIndex ( name ) ;
if ( blockParamId ) {
this . opcode ( 'lookupBlockParam' , blockParamId , path . parts ) ;
} else if ( ! name ) {
// Context reference, i.e. `{{foo .}}` or `{{foo ..}}`
this . opcode ( 'pushContext' ) ;
} else if ( path . data ) {
this . options . data = true ;
this . opcode ( 'lookupData' , path . depth , path . parts , path . strict ) ;
} else {
this . opcode ( 'lookupOnContext' , path . parts , path . falsy , path . strict , scoped ) ;
}
} ,
StringLiteral : function StringLiteral ( string ) {
this . opcode ( 'pushString' , string . value ) ;
} ,
NumberLiteral : function NumberLiteral ( number ) {
this . opcode ( 'pushLiteral' , number . value ) ;
} ,
BooleanLiteral : function BooleanLiteral ( bool ) {
this . opcode ( 'pushLiteral' , bool . value ) ;
} ,
UndefinedLiteral : function UndefinedLiteral ( ) {
this . opcode ( 'pushLiteral' , 'undefined' ) ;
} ,
NullLiteral : function NullLiteral ( ) {
this . opcode ( 'pushLiteral' , 'null' ) ;
} ,
Hash : function Hash ( hash ) {
var pairs = hash . pairs ,
i = 0 ,
l = pairs . length ;
this . opcode ( 'pushHash' ) ;
for ( ; i < l ; i ++ ) {
this . pushParam ( pairs [ i ] . value ) ;
}
while ( i -- ) {
this . opcode ( 'assignToHash' , pairs [ i ] . key ) ;
}
this . opcode ( 'popHash' ) ;
} ,
// HELPERS
opcode : function opcode ( name ) {
this . opcodes . push ( {
opcode : name ,
args : slice . call ( arguments , 1 ) ,
loc : this . sourceNode [ 0 ] . loc
} ) ;
} ,
addDepth : function addDepth ( depth ) {
if ( ! depth ) {
return ;
}
this . useDepths = true ;
} ,
classifySexpr : function classifySexpr ( sexpr ) {
var isSimple = _ast2 [ 'default' ] . helpers . simpleId ( sexpr . path ) ;
var isBlockParam = isSimple && ! ! this . blockParamIndex ( sexpr . path . parts [ 0 ] ) ;
// a mustache is an eligible helper if:
// * its id is simple (a single part, not `this` or `..`)
var isHelper = ! isBlockParam && _ast2 [ 'default' ] . helpers . helperExpression ( sexpr ) ;
// if a mustache is an eligible helper but not a definite
// helper, it is ambiguous, and will be resolved in a later
// pass or at runtime.
var isEligible = ! isBlockParam && ( isHelper || isSimple ) ;
// if ambiguous, we can possibly resolve the ambiguity now
// An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc.
if ( isEligible && ! isHelper ) {
var _name = sexpr . path . parts [ 0 ] ,
options = this . options ;
if ( options . knownHelpers [ _name ] ) {
isHelper = true ;
} else if ( options . knownHelpersOnly ) {
isEligible = false ;
}
}
if ( isHelper ) {
return 'helper' ;
} else if ( isEligible ) {
return 'ambiguous' ;
} else {
return 'simple' ;
}
} ,
pushParams : function pushParams ( params ) {
for ( var i = 0 , l = params . length ; i < l ; i ++ ) {
this . pushParam ( params [ i ] ) ;
}
} ,
pushParam : function pushParam ( val ) {
var value = val . value != null ? val . value : val . original || '' ;
if ( this . stringParams ) {
if ( value . replace ) {
value = value . replace ( /^(\.?\.\/)*/g , '' ) . replace ( /\//g , '.' ) ;
}
if ( val . depth ) {
this . addDepth ( val . depth ) ;
}
this . opcode ( 'getContext' , val . depth || 0 ) ;
this . opcode ( 'pushStringParam' , value , val . type ) ;
if ( val . type === 'SubExpression' ) {
// SubExpressions get evaluated and passed in
// in string params mode.
this . accept ( val ) ;
}
} else {
if ( this . trackIds ) {
var blockParamIndex = undefined ;
if ( val . parts && ! _ast2 [ 'default' ] . helpers . scopedId ( val ) && ! val . depth ) {
blockParamIndex = this . blockParamIndex ( val . parts [ 0 ] ) ;
}
if ( blockParamIndex ) {
var blockParamChild = val . parts . slice ( 1 ) . join ( '.' ) ;
this . opcode ( 'pushId' , 'BlockParam' , blockParamIndex , blockParamChild ) ;
} else {
value = val . original || value ;
if ( value . replace ) {
value = value . replace ( /^this(?:\.|$)/ , '' ) . replace ( /^\.\// , '' ) . replace ( /^\.$/ , '' ) ;
}
this . opcode ( 'pushId' , val . type , value ) ;
}
}
this . accept ( val ) ;
}
} ,
setupFullMustacheParams : function setupFullMustacheParams ( sexpr , program , inverse , omitEmpty ) {
var params = sexpr . params ;
this . pushParams ( params ) ;
this . opcode ( 'pushProgram' , program ) ;
this . opcode ( 'pushProgram' , inverse ) ;
if ( sexpr . hash ) {
this . accept ( sexpr . hash ) ;
} else {
this . opcode ( 'emptyHash' , omitEmpty ) ;
}
return params ;
} ,
blockParamIndex : function blockParamIndex ( name ) {
for ( var depth = 0 , len = this . options . blockParams . length ; depth < len ; depth ++ ) {
var blockParams = this . options . blockParams [ depth ] ,
param = blockParams && _utils . indexOf ( blockParams , name ) ;
if ( blockParams && param >= 0 ) {
return [ depth , param ] ;
}
}
}
} ;
function precompile ( input , options , env ) {
if ( input == null || typeof input !== 'string' && input . type !== 'Program' ) {
throw new _exception2 [ 'default' ] ( 'You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input ) ;
}
options = options || { } ;
if ( ! ( 'data' in options ) ) {
options . data = true ;
}
if ( options . compat ) {
options . useDepths = true ;
}
var ast = env . parse ( input , options ) ,
environment = new env . Compiler ( ) . compile ( ast , options ) ;
return new env . JavaScriptCompiler ( ) . compile ( environment , options ) ;
}
function compile ( input , options , env ) {
if ( options === undefined ) options = { } ;
if ( input == null || typeof input !== 'string' && input . type !== 'Program' ) {
throw new _exception2 [ 'default' ] ( 'You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input ) ;
}
options = _utils . extend ( { } , options ) ;
if ( ! ( 'data' in options ) ) {
options . data = true ;
}
if ( options . compat ) {
options . useDepths = true ;
}
var compiled = undefined ;
function compileInput ( ) {
var ast = env . parse ( input , options ) ,
environment = new env . Compiler ( ) . compile ( ast , options ) ,
templateSpec = new env . JavaScriptCompiler ( ) . compile ( environment , options , undefined , true ) ;
return env . template ( templateSpec ) ;
}
// Template is only compiled on first use and cached after that point.
function ret ( context , execOptions ) {
if ( ! compiled ) {
compiled = compileInput ( ) ;
}
return compiled . call ( this , context , execOptions ) ;
}
ret . _setup = function ( setupOptions ) {
if ( ! compiled ) {
compiled = compileInput ( ) ;
}
return compiled . _setup ( setupOptions ) ;
} ;
ret . _child = function ( i , data , blockParams , depths ) {
if ( ! compiled ) {
compiled = compileInput ( ) ;
}
return compiled . _child ( i , data , blockParams , depths ) ;
} ;
return ret ;
}
function argEquals ( a , b ) {
if ( a === b ) {
return true ;
}
if ( _utils . isArray ( a ) && _utils . isArray ( b ) && a . length === b . length ) {
for ( var i = 0 ; i < a . length ; i ++ ) {
if ( ! argEquals ( a [ i ] , b [ i ] ) ) {
return false ;
}
}
return true ;
}
}
function transformLiteralToPath ( sexpr ) {
if ( ! sexpr . path . parts ) {
var literal = sexpr . path ;
// Casting to string here to make false and 0 literal values play nicely with the rest
// of the system.
sexpr . path = {
type : 'PathExpression' ,
data : false ,
depth : 0 ,
parts : [ literal . original + '' ] ,
original : literal . original + '' ,
loc : literal . loc
} ;
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2NvbXBpbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozt5QkFFc0IsY0FBYzs7OztxQkFDSyxVQUFVOzttQkFDbkMsT0FBTzs7OztBQUV2QixJQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDOztBQUVoQixTQUFTLFFBQVEsR0FBRyxFQUFFOzs7Ozs7O0FBTzdCLFFBQVEsQ0FBQyxTQUFTLEdBQUc7QUFDbkIsVUFBUSxFQUFFLFFBQVE7O0FBRWxCLFFBQU0sRUFBRSxnQkFBUyxLQUFLLEVBQUU7QUFDdEIsUUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDOUIsUUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7QUFDaEMsYUFBTyxLQUFLLENBQUM7S0FDZDs7QUFFRCxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVCLFVBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1VBQzFCLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLFVBQ0UsTUFBTSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxJQUNwQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFDekM7QUFDQSxlQUFPLEtBQUssQ0FBQztPQUNkO0tBQ0Y7Ozs7QUFJRCxPQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFDM0IsU0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QixVQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQy9DLGVBQU8sS0FBSyxDQUFDO09BQ2Q7S0FDRjs7QUFFRCxXQUFPLElBQUksQ0FBQztHQUNiOztBQUVELE1BQUksRUFBRSxDQUFDOztBQUVQLFNBQU8sRUFBRSxpQkFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ2xDLFFBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3JCLFFBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQ2xCLFFBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ25CLFFBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBQ3ZCLFFBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUN6QyxRQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7O0FBRWpDLFdBQU8sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7O0FBRWhELFdBQU8sQ0FBQyxZQUFZLEdBQUcsY0FDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFDbkI7QUFDRSxtQkFBYSxFQUFFLElBQUk7QUFDbkIsd0JBQWtCLEVBQUUsSUFBSTtBQUN4QixVQUFJLEVBQUUsSUFBSTtBQUNWLFlBQUksSUFBSTtBQUNSLFlBQU0sRUFBRSxJQUFJO0FBQ1osY0FBTSxJQUFJO0FBQ1YsU0FBRyxFQUFFLElBQUk7QUFDVCxZQUFNLEVBQUUsSUFBSTtLQUNiLEVBQ0QsT0FBTyxDQUFDLFlBQVksQ0FDckIsQ0FBQzs7QUFFRixXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7R0FDN0I7O0FBRUQsZ0JBQWMsRUFBRSx3QkFBUyxPQUFPLEVBQUU7QUFDaEMsUUFBSSxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFOztBQUNyQyxVQUFNLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyRCxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDOztBQUVyQixRQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQzs7QUFFdkQsUUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDN0IsUUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUM7O0FBRXBELFdBQU8sSUFBSSxDQUFDO0dBQ2I7O0FBRUQsUUFBTSxFQUFFLGdCQUFTLElBQUksRUFBRTs7QUFFckIsUUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDcEIsWUFBTSwyQkFBYyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3pEOztBQUVELFFBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlCLFFBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEMsUUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUN4QixXQUFPLEdBQUcsQ0FBQztHQUNaOztBQUVELFNBQU8sRUFBRSxpQkFBUyxPQUFPLEVBQUU7QUFDekIsUUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQzs7QUFFdEQsUUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUk7UUFDckIsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDM0IsU0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNuQyxVQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3RCOztBQUVELFFBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDOztBQUVqQyxRQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsS0FBSyxDQUFDLENBQUM7QUFDakMsUUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzs7QUFFeEUsV0FBTyxJQUFJLENBQUM7R0FDYjs7QUFFRCxnQkFBYyxFQUFFLHdCQUFTLEtBQUssRUFBRTtBQUM5QiwwQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQzs
/***/ } ) ,
/***/ 4706 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
exports . SourceLocation = SourceLocation ;
exports . id = id ;
exports . stripFlags = stripFlags ;
exports . stripComment = stripComment ;
exports . preparePath = preparePath ;
exports . prepareMustache = prepareMustache ;
exports . prepareRawBlock = prepareRawBlock ;
exports . prepareBlock = prepareBlock ;
exports . prepareProgram = prepareProgram ;
exports . preparePartialBlock = preparePartialBlock ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _exception = _ _nccwpck _require _ _ ( 2879 ) ;
var _exception2 = _interopRequireDefault ( _exception ) ;
function validateClose ( open , close ) {
close = close . path ? close . path . original : close ;
if ( open . path . original !== close ) {
var errorNode = { loc : open . path . loc } ;
throw new _exception2 [ 'default' ] ( open . path . original + " doesn't match " + close , errorNode ) ;
}
}
function SourceLocation ( source , locInfo ) {
this . source = source ;
this . start = {
line : locInfo . first _line ,
column : locInfo . first _column
} ;
this . end = {
line : locInfo . last _line ,
column : locInfo . last _column
} ;
}
function id ( token ) {
if ( /^\[.*\]$/ . test ( token ) ) {
return token . substring ( 1 , token . length - 1 ) ;
} else {
return token ;
}
}
function stripFlags ( open , close ) {
return {
open : open . charAt ( 2 ) === '~' ,
close : close . charAt ( close . length - 3 ) === '~'
} ;
}
function stripComment ( comment ) {
return comment . replace ( /^\{\{~?!-?-?/ , '' ) . replace ( /-?-?~?\}\}$/ , '' ) ;
}
function preparePath ( data , parts , loc ) {
loc = this . locInfo ( loc ) ;
var original = data ? '@' : '' ,
dig = [ ] ,
depth = 0 ;
for ( var i = 0 , l = parts . length ; i < l ; i ++ ) {
var part = parts [ i ] . part ,
// If we have [] syntax then we do not treat path references as operators,
// i.e. foo.[this] resolves to approximately context.foo['this']
isLiteral = parts [ i ] . original !== part ;
original += ( parts [ i ] . separator || '' ) + part ;
if ( ! isLiteral && ( part === '..' || part === '.' || part === 'this' ) ) {
if ( dig . length > 0 ) {
throw new _exception2 [ 'default' ] ( 'Invalid path: ' + original , { loc : loc } ) ;
} else if ( part === '..' ) {
depth ++ ;
}
} else {
dig . push ( part ) ;
}
}
return {
type : 'PathExpression' ,
data : data ,
depth : depth ,
parts : dig ,
original : original ,
loc : loc
} ;
}
function prepareMustache ( path , params , hash , open , strip , locInfo ) {
// Must use charAt to support IE pre-10
var escapeFlag = open . charAt ( 3 ) || open . charAt ( 2 ) ,
escaped = escapeFlag !== '{' && escapeFlag !== '&' ;
var decorator = /\*/ . test ( open ) ;
return {
type : decorator ? 'Decorator' : 'MustacheStatement' ,
path : path ,
params : params ,
hash : hash ,
escaped : escaped ,
strip : strip ,
loc : this . locInfo ( locInfo )
} ;
}
function prepareRawBlock ( openRawBlock , contents , close , locInfo ) {
validateClose ( openRawBlock , close ) ;
locInfo = this . locInfo ( locInfo ) ;
var program = {
type : 'Program' ,
body : contents ,
strip : { } ,
loc : locInfo
} ;
return {
type : 'BlockStatement' ,
path : openRawBlock . path ,
params : openRawBlock . params ,
hash : openRawBlock . hash ,
program : program ,
openStrip : { } ,
inverseStrip : { } ,
closeStrip : { } ,
loc : locInfo
} ;
}
function prepareBlock ( openBlock , program , inverseAndProgram , close , inverted , locInfo ) {
if ( close && close . path ) {
validateClose ( openBlock , close ) ;
}
var decorator = /\*/ . test ( openBlock . open ) ;
program . blockParams = openBlock . blockParams ;
var inverse = undefined ,
inverseStrip = undefined ;
if ( inverseAndProgram ) {
if ( decorator ) {
throw new _exception2 [ 'default' ] ( 'Unexpected inverse block on decorator' , inverseAndProgram ) ;
}
if ( inverseAndProgram . chain ) {
inverseAndProgram . program . body [ 0 ] . closeStrip = close . strip ;
}
inverseStrip = inverseAndProgram . strip ;
inverse = inverseAndProgram . program ;
}
if ( inverted ) {
inverted = inverse ;
inverse = program ;
program = inverted ;
}
return {
type : decorator ? 'DecoratorBlock' : 'BlockStatement' ,
path : openBlock . path ,
params : openBlock . params ,
hash : openBlock . hash ,
program : program ,
inverse : inverse ,
openStrip : openBlock . strip ,
inverseStrip : inverseStrip ,
closeStrip : close && close . strip ,
loc : this . locInfo ( locInfo )
} ;
}
function prepareProgram ( statements , loc ) {
if ( ! loc && statements . length ) {
var firstLoc = statements [ 0 ] . loc ,
lastLoc = statements [ statements . length - 1 ] . loc ;
/* istanbul ignore else */
if ( firstLoc && lastLoc ) {
loc = {
source : firstLoc . source ,
start : {
line : firstLoc . start . line ,
column : firstLoc . start . column
} ,
end : {
line : lastLoc . end . line ,
column : lastLoc . end . column
}
} ;
}
}
return {
type : 'Program' ,
body : statements ,
strip : { } ,
loc : loc
} ;
}
function preparePartialBlock ( open , program , close , locInfo ) {
validateClose ( open , close ) ;
return {
type : 'PartialBlockStatement' ,
name : open . path ,
params : open . params ,
hash : open . hash ,
program : program ,
openStrip : open . strip ,
closeStrip : close && close . strip ,
loc : this . locInfo ( locInfo )
} ;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7eUJBQXNCLGNBQWM7Ozs7QUFFcEMsU0FBUyxhQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUNsQyxPQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7O0FBRWpELE1BQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO0FBQ2hDLFFBQUksU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7O0FBRXZDLFVBQU0sMkJBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLEdBQUcsS0FBSyxFQUM5QyxTQUFTLENBQ1YsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRTtBQUM5QyxNQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUNyQixNQUFJLENBQUMsS0FBSyxHQUFHO0FBQ1gsUUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVO0FBQ3hCLFVBQU0sRUFBRSxPQUFPLENBQUMsWUFBWTtHQUM3QixDQUFDO0FBQ0YsTUFBSSxDQUFDLEdBQUcsR0FBRztBQUNULFFBQUksRUFBRSxPQUFPLENBQUMsU0FBUztBQUN2QixVQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVc7R0FDNUIsQ0FBQztDQUNIOztBQUVNLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRTtBQUN4QixNQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDMUIsV0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzdDLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUN0QyxTQUFPO0FBQ0wsUUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRztBQUM1QixTQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUc7R0FDOUMsQ0FBQztDQUNIOztBQUVNLFNBQVMsWUFBWSxDQUFDLE9BQU8sRUFBRTtBQUNwQyxTQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7Q0FDdkU7O0FBRU0sU0FBUyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDNUMsS0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7O0FBRXhCLE1BQUksUUFBUSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRTtNQUM1QixHQUFHLEdBQUcsRUFBRTtNQUNSLEtBQUssR0FBRyxDQUFDLENBQUM7O0FBRVosT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QyxRQUFJLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTs7OztBQUd0QixhQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7QUFDekMsWUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUEsR0FBSSxJQUFJLENBQUM7O0FBRTlDLFFBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksS0FBSyxNQUFNLENBQUEsQUFBQyxFQUFFO0FBQ3BFLFVBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7QUFDbEIsY0FBTSwyQkFBYyxnQkFBZ0IsR0FBRyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUgsR0FBRyxFQUFFLENBQUMsQ0FBQztPQUMzRCxNQUFNLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtBQUN4QixhQUFLLEVBQUUsQ0FBQztPQUNUO0tBQ0YsTUFBTTtBQUNMLFNBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDaEI7R0FDRjs7QUFFRCxTQUFPO0FBQ0wsUUFBSSxFQUFFLGdCQUFnQjtBQUN0QixRQUFJLEVBQUosSUFBSTtBQUNKLFNBQUssRUFBTCxLQUFLO0FBQ0wsU0FBSyxFQUFFLEdBQUc7QUFDVixZQUFRLEVBQVIsUUFBUTtBQUNSLE9BQUcsRUFBSCxHQUFHO0dBQ0osQ0FBQztDQUNIOztBQUVNLFNBQVMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFOztBQUV4RSxNQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO01BQy9DLE9BQU8sR0FBRyxVQUFVLEtBQUssR0FBRyxJQUFJLFVBQVUsS0FBSyxHQUFHLENBQUM7O0FBRXJELE1BQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEMsU0FBTztBQUNMLFFBQUksRUFBRSxTQUFTLEdBQUcsV0FBVyxHQUFHLG1CQUFtQjtBQUNuRCxRQUFJLEVBQUosSUFBSTtBQUNKLFVBQU0sRUFBTixNQUFNO0FBQ04sUUFBSSxFQUFKLElBQUk7QUFDSixXQUFPLEVBQVAsT0FBTztBQUNQLFNBQUssRUFBTCxLQUFLO0FBQ0wsT0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0dBQzNCLENBQUM7Q0FDSDs7QUFFTSxTQUFTLGVBQWUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7QUFDdEUsZUFBYSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQzs7QUFFbkMsU0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEMsTUFBSSxPQUFPLEdBQUc7QUFDWixRQUFJLEVBQUUsU0FBUztBQUNmLFFBQUksRUFBRSxRQUFRO0FBQ2QsU0FBSyxFQUFFLEVBQUU7QUFDVCxPQUFHLEVBQUUsT0FBTztHQUNiLENBQUM7O0FBRUYsU0FBTztBQUNMLFFBQUksRUF
/***/ } ) ,
/***/ 1617 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _base = _ _nccwpck _require _ _ ( 4211 ) ;
var _exception = _ _nccwpck _require _ _ ( 2879 ) ;
var _exception2 = _interopRequireDefault ( _exception ) ;
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
var _codeGen = _ _nccwpck _require _ _ ( 3612 ) ;
var _codeGen2 = _interopRequireDefault ( _codeGen ) ;
function Literal ( value ) {
this . value = value ;
}
function JavaScriptCompiler ( ) { }
JavaScriptCompiler . prototype = {
// PUBLIC API: You can override these methods in a subclass to provide
// alternative compiled forms for name lookup and buffering semantics
nameLookup : function nameLookup ( parent , name /*, type */ ) {
return this . internalNameLookup ( parent , name ) ;
} ,
depthedLookup : function depthedLookup ( name ) {
return [ this . aliasable ( 'container.lookup' ) , '(depths, ' , JSON . stringify ( name ) , ')' ] ;
} ,
compilerInfo : function compilerInfo ( ) {
var revision = _base . COMPILER _REVISION ,
versions = _base . REVISION _CHANGES [ revision ] ;
return [ revision , versions ] ;
} ,
appendToBuffer : function appendToBuffer ( source , location , explicit ) {
// Force a source as this simplifies the merge logic.
if ( ! _utils . isArray ( source ) ) {
source = [ source ] ;
}
source = this . source . wrap ( source , location ) ;
if ( this . environment . isSimple ) {
return [ 'return ' , source , ';' ] ;
} else if ( explicit ) {
// This is a case where the buffer operation occurs as a child of another
// construct, generally braces. We have to explicitly output these buffer
// operations to ensure that the emitted code goes in the correct location.
return [ 'buffer += ' , source , ';' ] ;
} else {
source . appendToBuffer = true ;
return source ;
}
} ,
initializeBuffer : function initializeBuffer ( ) {
return this . quotedString ( '' ) ;
} ,
// END PUBLIC API
internalNameLookup : function internalNameLookup ( parent , name ) {
this . lookupPropertyFunctionIsUsed = true ;
return [ 'lookupProperty(' , parent , ',' , JSON . stringify ( name ) , ')' ] ;
} ,
lookupPropertyFunctionIsUsed : false ,
compile : function compile ( environment , options , context , asObject ) {
this . environment = environment ;
this . options = options ;
this . stringParams = this . options . stringParams ;
this . trackIds = this . options . trackIds ;
this . precompile = ! asObject ;
this . name = this . environment . name ;
this . isChild = ! ! context ;
this . context = context || {
decorators : [ ] ,
programs : [ ] ,
environments : [ ]
} ;
this . preamble ( ) ;
this . stackSlot = 0 ;
this . stackVars = [ ] ;
this . aliases = { } ;
this . registers = { list : [ ] } ;
this . hashes = [ ] ;
this . compileStack = [ ] ;
this . inlineStack = [ ] ;
this . blockParams = [ ] ;
this . compileChildren ( environment , options ) ;
this . useDepths = this . useDepths || environment . useDepths || environment . useDecorators || this . options . compat ;
this . useBlockParams = this . useBlockParams || environment . useBlockParams ;
var opcodes = environment . opcodes ,
opcode = undefined ,
firstLoc = undefined ,
i = undefined ,
l = undefined ;
for ( i = 0 , l = opcodes . length ; i < l ; i ++ ) {
opcode = opcodes [ i ] ;
this . source . currentLocation = opcode . loc ;
firstLoc = firstLoc || opcode . loc ;
this [ opcode . opcode ] . apply ( this , opcode . args ) ;
}
// Flush any trailing content that might be pending.
this . source . currentLocation = firstLoc ;
this . pushSource ( '' ) ;
/* istanbul ignore next */
if ( this . stackSlot || this . inlineStack . length || this . compileStack . length ) {
throw new _exception2 [ 'default' ] ( 'Compile completed with content left on stack' ) ;
}
if ( ! this . decorators . isEmpty ( ) ) {
this . useDecorators = true ;
this . decorators . prepend ( [ 'var decorators = container.decorators, ' , this . lookupPropertyFunctionVarDeclaration ( ) , ';\n' ] ) ;
this . decorators . push ( 'return fn;' ) ;
if ( asObject ) {
this . decorators = Function . apply ( this , [ 'fn' , 'props' , 'container' , 'depth0' , 'data' , 'blockParams' , 'depths' , this . decorators . merge ( ) ] ) ;
} else {
this . decorators . prepend ( 'function(fn, props, container, depth0, data, blockParams, depths) {\n' ) ;
this . decorators . push ( '}\n' ) ;
this . decorators = this . decorators . merge ( ) ;
}
} else {
this . decorators = undefined ;
}
var fn = this . createFunctionContext ( asObject ) ;
if ( ! this . isChild ) {
var ret = {
compiler : this . compilerInfo ( ) ,
main : fn
} ;
if ( this . decorators ) {
ret . main _d = this . decorators ; // eslint-disable-line camelcase
ret . useDecorators = true ;
}
var _context = this . context ;
var programs = _context . programs ;
var decorators = _context . decorators ;
for ( i = 0 , l = programs . length ; i < l ; i ++ ) {
if ( programs [ i ] ) {
ret [ i ] = programs [ i ] ;
if ( decorators [ i ] ) {
ret [ i + '_d' ] = decorators [ i ] ;
ret . useDecorators = true ;
}
}
}
if ( this . environment . usePartial ) {
ret . usePartial = true ;
}
if ( this . options . data ) {
ret . useData = true ;
}
if ( this . useDepths ) {
ret . useDepths = true ;
}
if ( this . useBlockParams ) {
ret . useBlockParams = true ;
}
if ( this . options . compat ) {
ret . compat = true ;
}
if ( ! asObject ) {
ret . compiler = JSON . stringify ( ret . compiler ) ;
this . source . currentLocation = { start : { line : 1 , column : 0 } } ;
ret = this . objectLiteral ( ret ) ;
if ( options . srcName ) {
ret = ret . toStringWithSourceMap ( { file : options . destName } ) ;
ret . map = ret . map && ret . map . toString ( ) ;
} else {
ret = ret . toString ( ) ;
}
} else {
ret . compilerOptions = this . options ;
}
return ret ;
} else {
return fn ;
}
} ,
preamble : function preamble ( ) {
// track the last context pushed into place to allow skipping the
// getContext opcode when it would be a noop
this . lastContext = 0 ;
this . source = new _codeGen2 [ 'default' ] ( this . options . srcName ) ;
this . decorators = new _codeGen2 [ 'default' ] ( this . options . srcName ) ;
} ,
createFunctionContext : function createFunctionContext ( asObject ) {
// istanbul ignore next
var _this = this ;
var varDeclarations = '' ;
var locals = this . stackVars . concat ( this . registers . list ) ;
if ( locals . length > 0 ) {
varDeclarations += ', ' + locals . join ( ', ' ) ;
}
// Generate minimizer alias mappings
//
// When using true SourceNodes, this will update all references to the given alias
// as the source nodes are reused in situ. For the non-source node compilation mode,
// aliases will not be used, but this case is already being run on the client and
// we aren't concern about minimizing the template size.
var aliasCount = 0 ;
Object . keys ( this . aliases ) . forEach ( function ( alias ) {
var node = _this . aliases [ alias ] ;
if ( node . children && node . referenceCount > 1 ) {
varDeclarations += ', alias' + ++ aliasCount + '=' + alias ;
node . children [ 0 ] = 'alias' + aliasCount ;
}
} ) ;
if ( this . lookupPropertyFunctionIsUsed ) {
varDeclarations += ', ' + this . lookupPropertyFunctionVarDeclaration ( ) ;
}
var params = [ 'container' , 'depth0' , 'helpers' , 'partials' , 'data' ] ;
if ( this . useBlockParams || this . useDepths ) {
params . push ( 'blockParams' ) ;
}
if ( this . useDepths ) {
params . push ( 'depths' ) ;
}
// Perform a second pass over the output to merge content when possible
var source = this . mergeSource ( varDeclarations ) ;
if ( asObject ) {
params . push ( source ) ;
return Function . apply ( this , params ) ;
} else {
return this . source . wrap ( [ 'function(' , params . join ( ',' ) , ') {\n ' , source , '}' ] ) ;
}
} ,
mergeSource : function mergeSource ( varDeclarations ) {
var isSimple = this . environment . isSimple ,
appendOnly = ! this . forceBuffer ,
appendFirst = undefined ,
sourceSeen = undefined ,
bufferStart = undefined ,
bufferEnd = undefined ;
this . source . each ( function ( line ) {
if ( line . appendToBuffer ) {
if ( bufferStart ) {
line . prepend ( ' + ' ) ;
} else {
bufferStart = line ;
}
bufferEnd = line ;
} else {
if ( bufferStart ) {
if ( ! sourceSeen ) {
appendFirst = true ;
} else {
bufferStart . prepend ( 'buffer += ' ) ;
}
bufferEnd . add ( ';' ) ;
bufferStart = bufferEnd = undefined ;
}
sourceSeen = true ;
if ( ! isSimple ) {
appendOnly = false ;
}
}
} ) ;
if ( appendOnly ) {
if ( bufferStart ) {
bufferStart . prepend ( 'return ' ) ;
bufferEnd . add ( ';' ) ;
} else if ( ! sourceSeen ) {
this . source . push ( 'return "";' ) ;
}
} else {
varDeclarations += ', buffer = ' + ( appendFirst ? '' : this . initializeBuffer ( ) ) ;
if ( bufferStart ) {
bufferStart . prepend ( 'return buffer + ' ) ;
bufferEnd . add ( ';' ) ;
} else {
this . source . push ( 'return buffer;' ) ;
}
}
if ( varDeclarations ) {
this . source . prepend ( 'var ' + varDeclarations . substring ( 2 ) + ( appendFirst ? '' : ';\n' ) ) ;
}
return this . source . merge ( ) ;
} ,
lookupPropertyFunctionVarDeclaration : function lookupPropertyFunctionVarDeclaration ( ) {
return '\n lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }\n ' . trim ( ) ;
} ,
// [blockValue]
//
// On stack, before: hash, inverse, program, value
// On stack, after: return value of blockHelperMissing
//
// The purpose of this opcode is to take a block of the form
// `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and
// replace it on the stack with the result of properly
// invoking blockHelperMissing.
blockValue : function blockValue ( name ) {
var blockHelperMissing = this . aliasable ( 'container.hooks.blockHelperMissing' ) ,
params = [ this . contextName ( 0 ) ] ;
this . setupHelperArgs ( name , 0 , params ) ;
var blockName = this . popStack ( ) ;
params . splice ( 1 , 0 , blockName ) ;
this . push ( this . source . functionCall ( blockHelperMissing , 'call' , params ) ) ;
} ,
// [ambiguousBlockValue]
//
// On stack, before: hash, inverse, program, value
// Compiler value, before: lastHelper=value of last found helper, if any
// On stack, after, if no lastHelper: same as [blockValue]
// On stack, after, if lastHelper: value
ambiguousBlockValue : function ambiguousBlockValue ( ) {
// We're being a bit cheeky and reusing the options value from the prior exec
var blockHelperMissing = this . aliasable ( 'container.hooks.blockHelperMissing' ) ,
params = [ this . contextName ( 0 ) ] ;
this . setupHelperArgs ( '' , 0 , params , true ) ;
this . flushInline ( ) ;
var current = this . topStack ( ) ;
params . splice ( 1 , 0 , current ) ;
this . pushSource ( [ 'if (!' , this . lastHelper , ') { ' , current , ' = ' , this . source . functionCall ( blockHelperMissing , 'call' , params ) , '}' ] ) ;
} ,
// [appendContent]
//
// On stack, before: ...
// On stack, after: ...
//
// Appends the string value of `content` to the current buffer
appendContent : function appendContent ( content ) {
if ( this . pendingContent ) {
content = this . pendingContent + content ;
} else {
this . pendingLocation = this . source . currentLocation ;
}
this . pendingContent = content ;
} ,
// [append]
//
// On stack, before: value, ...
// On stack, after: ...
//
// Coerces `value` to a String and appends it to the current buffer.
//
// If `value` is truthy, or 0, it is coerced into a string and appended
// Otherwise, the empty string is appended
append : function append ( ) {
if ( this . isInline ( ) ) {
this . replaceStack ( function ( current ) {
return [ ' != null ? ' , current , ' : ""' ] ;
} ) ;
this . pushSource ( this . appendToBuffer ( this . popStack ( ) ) ) ;
} else {
var local = this . popStack ( ) ;
this . pushSource ( [ 'if (' , local , ' != null) { ' , this . appendToBuffer ( local , undefined , true ) , ' }' ] ) ;
if ( this . environment . isSimple ) {
this . pushSource ( [ 'else { ' , this . appendToBuffer ( "''" , undefined , true ) , ' }' ] ) ;
}
}
} ,
// [appendEscaped]
//
// On stack, before: value, ...
// On stack, after: ...
//
// Escape `value` and append it to the buffer
appendEscaped : function appendEscaped ( ) {
this . pushSource ( this . appendToBuffer ( [ this . aliasable ( 'container.escapeExpression' ) , '(' , this . popStack ( ) , ')' ] ) ) ;
} ,
// [getContext]
//
// On stack, before: ...
// On stack, after: ...
// Compiler value, after: lastContext=depth
//
// Set the value of the `lastContext` compiler value to the depth
getContext : function getContext ( depth ) {
this . lastContext = depth ;
} ,
// [pushContext]
//
// On stack, before: ...
// On stack, after: currentContext, ...
//
// Pushes the value of the current context onto the stack.
pushContext : function pushContext ( ) {
this . pushStackLiteral ( this . contextName ( this . lastContext ) ) ;
} ,
// [lookupOnContext]
//
// On stack, before: ...
// On stack, after: currentContext[name], ...
//
// Looks up the value of `name` on the current context and pushes
// it onto the stack.
lookupOnContext : function lookupOnContext ( parts , falsy , strict , scoped ) {
var i = 0 ;
if ( ! scoped && this . options . compat && ! this . lastContext ) {
// The depthed query is expected to handle the undefined logic for the root level that
// is implemented below, so we evaluate that directly in compat mode
this . push ( this . depthedLookup ( parts [ i ++ ] ) ) ;
} else {
this . pushContext ( ) ;
}
this . resolvePath ( 'context' , parts , i , falsy , strict ) ;
} ,
// [lookupBlockParam]
//
// On stack, before: ...
// On stack, after: blockParam[name], ...
//
// Looks up the value of `parts` on the given block param and pushes
// it onto the stack.
lookupBlockParam : function lookupBlockParam ( blockParamId , parts ) {
this . useBlockParams = true ;
this . push ( [ 'blockParams[' , blockParamId [ 0 ] , '][' , blockParamId [ 1 ] , ']' ] ) ;
this . resolvePath ( 'context' , parts , 1 ) ;
} ,
// [lookupData]
//
// On stack, before: ...
// On stack, after: data, ...
//
// Push the data lookup operator
lookupData : function lookupData ( depth , parts , strict ) {
if ( ! depth ) {
this . pushStackLiteral ( 'data' ) ;
} else {
this . pushStackLiteral ( 'container.data(data, ' + depth + ')' ) ;
}
this . resolvePath ( 'data' , parts , 0 , true , strict ) ;
} ,
resolvePath : function resolvePath ( type , parts , i , falsy , strict ) {
// istanbul ignore next
var _this2 = this ;
if ( this . options . strict || this . options . assumeObjects ) {
this . push ( strictLookup ( this . options . strict && strict , this , parts , type ) ) ;
return ;
}
var len = parts . length ;
for ( ; i < len ; i ++ ) {
/* eslint-disable no-loop-func */
this . replaceStack ( function ( current ) {
var lookup = _this2 . nameLookup ( current , parts [ i ] , type ) ;
// We want to ensure that zero and false are handled properly if the context (falsy flag)
// needs to have the special handling for these values.
if ( ! falsy ) {
return [ ' != null ? ' , lookup , ' : ' , current ] ;
} else {
// Otherwise we can use generic falsy handling
return [ ' && ' , lookup ] ;
}
} ) ;
/* eslint-enable no-loop-func */
}
} ,
// [resolvePossibleLambda]
//
// On stack, before: value, ...
// On stack, after: resolved value, ...
//
// If the `value` is a lambda, replace it on the stack by
// the return value of the lambda
resolvePossibleLambda : function resolvePossibleLambda ( ) {
this . push ( [ this . aliasable ( 'container.lambda' ) , '(' , this . popStack ( ) , ', ' , this . contextName ( 0 ) , ')' ] ) ;
} ,
// [pushStringParam]
//
// On stack, before: ...
// On stack, after: string, currentContext, ...
//
// This opcode is designed for use in string mode, which
// provides the string value of a parameter along with its
// depth rather than resolving it immediately.
pushStringParam : function pushStringParam ( string , type ) {
this . pushContext ( ) ;
this . pushString ( type ) ;
// If it's a subexpression, the string result
// will be pushed after this opcode.
if ( type !== 'SubExpression' ) {
if ( typeof string === 'string' ) {
this . pushString ( string ) ;
} else {
this . pushStackLiteral ( string ) ;
}
}
} ,
emptyHash : function emptyHash ( omitEmpty ) {
if ( this . trackIds ) {
this . push ( '{}' ) ; // hashIds
}
if ( this . stringParams ) {
this . push ( '{}' ) ; // hashContexts
this . push ( '{}' ) ; // hashTypes
}
this . pushStackLiteral ( omitEmpty ? 'undefined' : '{}' ) ;
} ,
pushHash : function pushHash ( ) {
if ( this . hash ) {
this . hashes . push ( this . hash ) ;
}
this . hash = { values : { } , types : [ ] , contexts : [ ] , ids : [ ] } ;
} ,
popHash : function popHash ( ) {
var hash = this . hash ;
this . hash = this . hashes . pop ( ) ;
if ( this . trackIds ) {
this . push ( this . objectLiteral ( hash . ids ) ) ;
}
if ( this . stringParams ) {
this . push ( this . objectLiteral ( hash . contexts ) ) ;
this . push ( this . objectLiteral ( hash . types ) ) ;
}
this . push ( this . objectLiteral ( hash . values ) ) ;
} ,
// [pushString]
//
// On stack, before: ...
// On stack, after: quotedString(string), ...
//
// Push a quoted version of `string` onto the stack
pushString : function pushString ( string ) {
this . pushStackLiteral ( this . quotedString ( string ) ) ;
} ,
// [pushLiteral]
//
// On stack, before: ...
// On stack, after: value, ...
//
// Pushes a value onto the stack. This operation prevents
// the compiler from creating a temporary variable to hold
// it.
pushLiteral : function pushLiteral ( value ) {
this . pushStackLiteral ( value ) ;
} ,
// [pushProgram]
//
// On stack, before: ...
// On stack, after: program(guid), ...
//
// Push a program expression onto the stack. This takes
// a compile-time guid and converts it into a runtime-accessible
// expression.
pushProgram : function pushProgram ( guid ) {
if ( guid != null ) {
this . pushStackLiteral ( this . programExpression ( guid ) ) ;
} else {
this . pushStackLiteral ( null ) ;
}
} ,
// [registerDecorator]
//
// On stack, before: hash, program, params..., ...
// On stack, after: ...
//
// Pops off the decorator's parameters, invokes the decorator,
// and inserts the decorator into the decorators list.
registerDecorator : function registerDecorator ( paramSize , name ) {
var foundDecorator = this . nameLookup ( 'decorators' , name , 'decorator' ) ,
options = this . setupHelperArgs ( name , paramSize ) ;
this . decorators . push ( [ 'fn = ' , this . decorators . functionCall ( foundDecorator , '' , [ 'fn' , 'props' , 'container' , options ] ) , ' || fn;' ] ) ;
} ,
// [invokeHelper]
//
// On stack, before: hash, inverse, program, params..., ...
// On stack, after: result of helper invocation
//
// Pops off the helper's parameters, invokes the helper,
// and pushes the helper's return value onto the stack.
//
// If the helper is not found, `helperMissing` is called.
invokeHelper : function invokeHelper ( paramSize , name , isSimple ) {
var nonHelper = this . popStack ( ) ,
helper = this . setupHelper ( paramSize , name ) ;
var possibleFunctionCalls = [ ] ;
if ( isSimple ) {
// direct call to helper
possibleFunctionCalls . push ( helper . name ) ;
}
// call a function from the input object
possibleFunctionCalls . push ( nonHelper ) ;
if ( ! this . options . strict ) {
possibleFunctionCalls . push ( this . aliasable ( 'container.hooks.helperMissing' ) ) ;
}
var functionLookupCode = [ '(' , this . itemsSeparatedBy ( possibleFunctionCalls , '||' ) , ')' ] ;
var functionCall = this . source . functionCall ( functionLookupCode , 'call' , helper . callParams ) ;
this . push ( functionCall ) ;
} ,
itemsSeparatedBy : function itemsSeparatedBy ( items , separator ) {
var result = [ ] ;
result . push ( items [ 0 ] ) ;
for ( var i = 1 ; i < items . length ; i ++ ) {
result . push ( separator , items [ i ] ) ;
}
return result ;
} ,
// [invokeKnownHelper]
//
// On stack, before: hash, inverse, program, params..., ...
// On stack, after: result of helper invocation
//
// This operation is used when the helper is known to exist,
// so a `helperMissing` fallback is not required.
invokeKnownHelper : function invokeKnownHelper ( paramSize , name ) {
var helper = this . setupHelper ( paramSize , name ) ;
this . push ( this . source . functionCall ( helper . name , 'call' , helper . callParams ) ) ;
} ,
// [invokeAmbiguous]
//
// On stack, before: hash, inverse, program, params..., ...
// On stack, after: result of disambiguation
//
// This operation is used when an expression like `{{foo}}`
// is provided, but we don't know at compile-time whether it
// is a helper or a path.
//
// This operation emits more code than the other options,
// and can be avoided by passing the `knownHelpers` and
// `knownHelpersOnly` flags at compile-time.
invokeAmbiguous : function invokeAmbiguous ( name , helperCall ) {
this . useRegister ( 'helper' ) ;
var nonHelper = this . popStack ( ) ;
this . emptyHash ( ) ;
var helper = this . setupHelper ( 0 , name , helperCall ) ;
var helperName = this . lastHelper = this . nameLookup ( 'helpers' , name , 'helper' ) ;
var lookup = [ '(' , '(helper = ' , helperName , ' || ' , nonHelper , ')' ] ;
if ( ! this . options . strict ) {
lookup [ 0 ] = '(helper = ' ;
lookup . push ( ' != null ? helper : ' , this . aliasable ( 'container.hooks.helperMissing' ) ) ;
}
this . push ( [ '(' , lookup , helper . paramsInit ? [ '),(' , helper . paramsInit ] : [ ] , '),' , '(typeof helper === ' , this . aliasable ( '"function"' ) , ' ? ' , this . source . functionCall ( 'helper' , 'call' , helper . callParams ) , ' : helper))' ] ) ;
} ,
// [invokePartial]
//
// On stack, before: context, ...
// On stack after: result of partial invocation
//
// This operation pops off a context, invokes a partial with that context,
// and pushes the result of the invocation back.
invokePartial : function invokePartial ( isDynamic , name , indent ) {
var params = [ ] ,
options = this . setupParams ( name , 1 , params ) ;
if ( isDynamic ) {
name = this . popStack ( ) ;
delete options . name ;
}
if ( indent ) {
options . indent = JSON . stringify ( indent ) ;
}
options . helpers = 'helpers' ;
options . partials = 'partials' ;
options . decorators = 'container.decorators' ;
if ( ! isDynamic ) {
params . unshift ( this . nameLookup ( 'partials' , name , 'partial' ) ) ;
} else {
params . unshift ( name ) ;
}
if ( this . options . compat ) {
options . depths = 'depths' ;
}
options = this . objectLiteral ( options ) ;
params . push ( options ) ;
this . push ( this . source . functionCall ( 'container.invokePartial' , '' , params ) ) ;
} ,
// [assignToHash]
//
// On stack, before: value, ..., hash, ...
// On stack, after: ..., hash, ...
//
// Pops a value off the stack and assigns it to the current hash
assignToHash : function assignToHash ( key ) {
var value = this . popStack ( ) ,
context = undefined ,
type = undefined ,
id = undefined ;
if ( this . trackIds ) {
id = this . popStack ( ) ;
}
if ( this . stringParams ) {
type = this . popStack ( ) ;
context = this . popStack ( ) ;
}
var hash = this . hash ;
if ( context ) {
hash . contexts [ key ] = context ;
}
if ( type ) {
hash . types [ key ] = type ;
}
if ( id ) {
hash . ids [ key ] = id ;
}
hash . values [ key ] = value ;
} ,
pushId : function pushId ( type , name , child ) {
if ( type === 'BlockParam' ) {
this . pushStackLiteral ( 'blockParams[' + name [ 0 ] + '].path[' + name [ 1 ] + ']' + ( child ? ' + ' + JSON . stringify ( '.' + child ) : '' ) ) ;
} else if ( type === 'PathExpression' ) {
this . pushString ( name ) ;
} else if ( type === 'SubExpression' ) {
this . pushStackLiteral ( 'true' ) ;
} else {
this . pushStackLiteral ( 'null' ) ;
}
} ,
// HELPERS
compiler : JavaScriptCompiler ,
compileChildren : function compileChildren ( environment , options ) {
var children = environment . children ,
child = undefined ,
compiler = undefined ;
for ( var i = 0 , l = children . length ; i < l ; i ++ ) {
child = children [ i ] ;
compiler = new this . compiler ( ) ; // eslint-disable-line new-cap
var existing = this . matchExistingProgram ( child ) ;
if ( existing == null ) {
this . context . programs . push ( '' ) ; // Placeholder to prevent name conflicts for nested children
var index = this . context . programs . length ;
child . index = index ;
child . name = 'program' + index ;
this . context . programs [ index ] = compiler . compile ( child , options , this . context , ! this . precompile ) ;
this . context . decorators [ index ] = compiler . decorators ;
this . context . environments [ index ] = child ;
this . useDepths = this . useDepths || compiler . useDepths ;
this . useBlockParams = this . useBlockParams || compiler . useBlockParams ;
child . useDepths = this . useDepths ;
child . useBlockParams = this . useBlockParams ;
} else {
child . index = existing . index ;
child . name = 'program' + existing . index ;
this . useDepths = this . useDepths || existing . useDepths ;
this . useBlockParams = this . useBlockParams || existing . useBlockParams ;
}
}
} ,
matchExistingProgram : function matchExistingProgram ( child ) {
for ( var i = 0 , len = this . context . environments . length ; i < len ; i ++ ) {
var environment = this . context . environments [ i ] ;
if ( environment && environment . equals ( child ) ) {
return environment ;
}
}
} ,
programExpression : function programExpression ( guid ) {
var child = this . environment . children [ guid ] ,
programParams = [ child . index , 'data' , child . blockParams ] ;
if ( this . useBlockParams || this . useDepths ) {
programParams . push ( 'blockParams' ) ;
}
if ( this . useDepths ) {
programParams . push ( 'depths' ) ;
}
return 'container.program(' + programParams . join ( ', ' ) + ')' ;
} ,
useRegister : function useRegister ( name ) {
if ( ! this . registers [ name ] ) {
this . registers [ name ] = true ;
this . registers . list . push ( name ) ;
}
} ,
push : function push ( expr ) {
if ( ! ( expr instanceof Literal ) ) {
expr = this . source . wrap ( expr ) ;
}
this . inlineStack . push ( expr ) ;
return expr ;
} ,
pushStackLiteral : function pushStackLiteral ( item ) {
this . push ( new Literal ( item ) ) ;
} ,
pushSource : function pushSource ( source ) {
if ( this . pendingContent ) {
this . source . push ( this . appendToBuffer ( this . source . quotedString ( this . pendingContent ) , this . pendingLocation ) ) ;
this . pendingContent = undefined ;
}
if ( source ) {
this . source . push ( source ) ;
}
} ,
replaceStack : function replaceStack ( callback ) {
var prefix = [ '(' ] ,
stack = undefined ,
createdStack = undefined ,
usedLiteral = undefined ;
/* istanbul ignore next */
if ( ! this . isInline ( ) ) {
throw new _exception2 [ 'default' ] ( 'replaceStack on non-inline' ) ;
}
// We want to merge the inline statement into the replacement statement via ','
var top = this . popStack ( true ) ;
if ( top instanceof Literal ) {
// Literals do not need to be inlined
stack = [ top . value ] ;
prefix = [ '(' , stack ] ;
usedLiteral = true ;
} else {
// Get or create the current stack name for use by the inline
createdStack = true ;
var _name = this . incrStack ( ) ;
prefix = [ '((' , this . push ( _name ) , ' = ' , top , ')' ] ;
stack = this . topStack ( ) ;
}
var item = callback . call ( this , stack ) ;
if ( ! usedLiteral ) {
this . popStack ( ) ;
}
if ( createdStack ) {
this . stackSlot -- ;
}
this . push ( prefix . concat ( item , ')' ) ) ;
} ,
incrStack : function incrStack ( ) {
this . stackSlot ++ ;
if ( this . stackSlot > this . stackVars . length ) {
this . stackVars . push ( 'stack' + this . stackSlot ) ;
}
return this . topStackName ( ) ;
} ,
topStackName : function topStackName ( ) {
return 'stack' + this . stackSlot ;
} ,
flushInline : function flushInline ( ) {
var inlineStack = this . inlineStack ;
this . inlineStack = [ ] ;
for ( var i = 0 , len = inlineStack . length ; i < len ; i ++ ) {
var entry = inlineStack [ i ] ;
/* istanbul ignore if */
if ( entry instanceof Literal ) {
this . compileStack . push ( entry ) ;
} else {
var stack = this . incrStack ( ) ;
this . pushSource ( [ stack , ' = ' , entry , ';' ] ) ;
this . compileStack . push ( stack ) ;
}
}
} ,
isInline : function isInline ( ) {
return this . inlineStack . length ;
} ,
popStack : function popStack ( wrapped ) {
var inline = this . isInline ( ) ,
item = ( inline ? this . inlineStack : this . compileStack ) . pop ( ) ;
if ( ! wrapped && item instanceof Literal ) {
return item . value ;
} else {
if ( ! inline ) {
/* istanbul ignore next */
if ( ! this . stackSlot ) {
throw new _exception2 [ 'default' ] ( 'Invalid stack pop' ) ;
}
this . stackSlot -- ;
}
return item ;
}
} ,
topStack : function topStack ( ) {
var stack = this . isInline ( ) ? this . inlineStack : this . compileStack ,
item = stack [ stack . length - 1 ] ;
/* istanbul ignore if */
if ( item instanceof Literal ) {
return item . value ;
} else {
return item ;
}
} ,
contextName : function contextName ( context ) {
if ( this . useDepths && context ) {
return 'depths[' + context + ']' ;
} else {
return 'depth' + context ;
}
} ,
quotedString : function quotedString ( str ) {
return this . source . quotedString ( str ) ;
} ,
objectLiteral : function objectLiteral ( obj ) {
return this . source . objectLiteral ( obj ) ;
} ,
aliasable : function aliasable ( name ) {
var ret = this . aliases [ name ] ;
if ( ret ) {
ret . referenceCount ++ ;
return ret ;
}
ret = this . aliases [ name ] = this . source . wrap ( name ) ;
ret . aliasable = true ;
ret . referenceCount = 1 ;
return ret ;
} ,
setupHelper : function setupHelper ( paramSize , name , blockHelper ) {
var params = [ ] ,
paramsInit = this . setupHelperArgs ( name , paramSize , params , blockHelper ) ;
var foundHelper = this . nameLookup ( 'helpers' , name , 'helper' ) ,
callContext = this . aliasable ( this . contextName ( 0 ) + ' != null ? ' + this . contextName ( 0 ) + ' : (container.nullContext || {})' ) ;
return {
params : params ,
paramsInit : paramsInit ,
name : foundHelper ,
callParams : [ callContext ] . concat ( params )
} ;
} ,
setupParams : function setupParams ( helper , paramSize , params ) {
var options = { } ,
contexts = [ ] ,
types = [ ] ,
ids = [ ] ,
objectArgs = ! params ,
param = undefined ;
if ( objectArgs ) {
params = [ ] ;
}
options . name = this . quotedString ( helper ) ;
options . hash = this . popStack ( ) ;
if ( this . trackIds ) {
options . hashIds = this . popStack ( ) ;
}
if ( this . stringParams ) {
options . hashTypes = this . popStack ( ) ;
options . hashContexts = this . popStack ( ) ;
}
var inverse = this . popStack ( ) ,
program = this . popStack ( ) ;
// Avoid setting fn and inverse if neither are set. This allows
// helpers to do a check for `if (options.fn)`
if ( program || inverse ) {
options . fn = program || 'container.noop' ;
options . inverse = inverse || 'container.noop' ;
}
// The parameters go on to the stack in order (making sure that they are evaluated in order)
// so we need to pop them off the stack in reverse order
var i = paramSize ;
while ( i -- ) {
param = this . popStack ( ) ;
params [ i ] = param ;
if ( this . trackIds ) {
ids [ i ] = this . popStack ( ) ;
}
if ( this . stringParams ) {
types [ i ] = this . popStack ( ) ;
contexts [ i ] = this . popStack ( ) ;
}
}
if ( objectArgs ) {
options . args = this . source . generateArray ( params ) ;
}
if ( this . trackIds ) {
options . ids = this . source . generateArray ( ids ) ;
}
if ( this . stringParams ) {
options . types = this . source . generateArray ( types ) ;
options . contexts = this . source . generateArray ( contexts ) ;
}
if ( this . options . data ) {
options . data = 'data' ;
}
if ( this . useBlockParams ) {
options . blockParams = 'blockParams' ;
}
return options ;
} ,
setupHelperArgs : function setupHelperArgs ( helper , paramSize , params , useRegister ) {
var options = this . setupParams ( helper , paramSize , params ) ;
options . loc = JSON . stringify ( this . source . currentLocation ) ;
options = this . objectLiteral ( options ) ;
if ( useRegister ) {
this . useRegister ( 'options' ) ;
params . push ( 'options' ) ;
return [ 'options=' , options ] ;
} else if ( params ) {
params . push ( options ) ;
return '' ;
} else {
return options ;
}
}
} ;
( function ( ) {
var reservedWords = ( 'break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false' ) . split ( ' ' ) ;
var compilerWords = JavaScriptCompiler . RESERVED _WORDS = { } ;
for ( var i = 0 , l = reservedWords . length ; i < l ; i ++ ) {
compilerWords [ reservedWords [ i ] ] = true ;
}
} ) ( ) ;
/ * *
* @ deprecated May be removed in the next major version
* /
JavaScriptCompiler . isValidJavaScriptVariableName = function ( name ) {
return ! JavaScriptCompiler . RESERVED _WORDS [ name ] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/ . test ( name ) ;
} ;
function strictLookup ( requireTerminal , compiler , parts , type ) {
var stack = compiler . popStack ( ) ,
i = 0 ,
len = parts . length ;
if ( requireTerminal ) {
len -- ;
}
for ( ; i < len ; i ++ ) {
stack = compiler . nameLookup ( stack , parts [ i ] , type ) ;
}
if ( requireTerminal ) {
return [ compiler . aliasable ( 'container.strict' ) , '(' , stack , ', ' , compiler . quotedString ( parts [ i ] ) , ', ' , JSON . stringify ( compiler . source . currentLocation ) , ' )' ] ;
} else {
return stack ;
}
}
exports [ "default" ] = JavaScriptCompiler ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2phdmFzY3JpcHQtY29tcGlsZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztvQkFBb0QsU0FBUzs7eUJBQ3ZDLGNBQWM7Ozs7cUJBQ1osVUFBVTs7dUJBQ2QsWUFBWTs7OztBQUVoQyxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDdEIsTUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Q0FDcEI7O0FBRUQsU0FBUyxrQkFBa0IsR0FBRyxFQUFFOztBQUVoQyxrQkFBa0IsQ0FBQyxTQUFTLEdBQUc7OztBQUc3QixZQUFVLEVBQUUsb0JBQVMsTUFBTSxFQUFFLElBQUksZUFBZTtBQUM5QyxXQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7R0FDOUM7QUFDRCxlQUFhLEVBQUUsdUJBQVMsSUFBSSxFQUFFO0FBQzVCLFdBQU8sQ0FDTCxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEVBQ2xDLFdBQVcsRUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNwQixHQUFHLENBQ0osQ0FBQztHQUNIOztBQUVELGNBQVksRUFBRSx3QkFBVztBQUN2QixRQUFNLFFBQVEsMEJBQW9CO1FBQ2hDLFFBQVEsR0FBRyx1QkFBaUIsUUFBUSxDQUFDLENBQUM7QUFDeEMsV0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztHQUM3Qjs7QUFFRCxnQkFBYyxFQUFFLHdCQUFTLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFOztBQUVuRCxRQUFJLENBQUMsZUFBUSxNQUFNLENBQUMsRUFBRTtBQUNwQixZQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNuQjtBQUNELFVBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7O0FBRTVDLFFBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUU7QUFDN0IsYUFBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDakMsTUFBTSxJQUFJLFFBQVEsRUFBRTs7OztBQUluQixhQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztLQUNwQyxNQUFNO0FBQ0wsWUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDN0IsYUFBTyxNQUFNLENBQUM7S0FDZjtHQUNGOztBQUVELGtCQUFnQixFQUFFLDRCQUFXO0FBQzNCLFdBQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztHQUM5Qjs7QUFFRCxvQkFBa0IsRUFBRSw0QkFBUyxNQUFNLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFFBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7QUFDekMsV0FBTyxDQUFDLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztHQUNwRTs7QUFFRCw4QkFBNEIsRUFBRSxLQUFLOztBQUVuQyxTQUFPLEVBQUUsaUJBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFO0FBQ3pELFFBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0FBQy9CLFFBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBQ3ZCLFFBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFDOUMsUUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztBQUN0QyxRQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsUUFBUSxDQUFDOztBQUU1QixRQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0FBQ2xDLFFBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUN6QixRQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSTtBQUN4QixnQkFBVSxFQUFFLEVBQUU7QUFDZCxjQUFRLEVBQUUsRUFBRTtBQUNaLGtCQUFZLEVBQUUsRUFBRTtLQUNqQixDQUFDOztBQUVGLFFBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzs7QUFFaEIsUUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFDbkIsUUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDcEIsUUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDbEIsUUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUM5QixRQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUNqQixRQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUN2QixRQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUN0QixRQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQzs7QUFFdEIsUUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7O0FBRTNDLFFBQUksQ0FBQyxTQUFTLEdBQ1osSUFBSSxDQUFDLFNBQVMsSUFDZCxXQUFXLENBQUMsU0FBUyxJQUNyQixXQUFXLENBQUMsYUFBYSxJQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztBQUN0QixRQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQzs7QUFFeEUsUUFBSSxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU87UUFDL0IsTUFBTSxZQUFBO1FBQ04sUUFBUSxZQUFBO1FBQ1IsQ0FBQyxZQUFBO1FBQ0QsQ0FBQyxZQUFBLENBQUM7O0FBRUosU0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDMUMsWUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFcEIsVUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztBQUN6QyxjQUFRLEdBQUcsUUFBUSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDbEMsVUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5Qzs7O0FBR0QsUUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3ZDLFFBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEN
/***/ } ) ,
/***/ 5505 :
/***/ ( ( module , exports ) => {
"use strict" ;
// File ignored in coverage tests via setting in .istanbul.yml
/* Jison generated parser */
exports . _ _esModule = true ;
var handlebars = ( function ( ) {
var parser = { trace : function trace ( ) { } ,
yy : { } ,
symbols _ : { "error" : 2 , "root" : 3 , "program" : 4 , "EOF" : 5 , "program_repetition0" : 6 , "statement" : 7 , "mustache" : 8 , "block" : 9 , "rawBlock" : 10 , "partial" : 11 , "partialBlock" : 12 , "content" : 13 , "COMMENT" : 14 , "CONTENT" : 15 , "openRawBlock" : 16 , "rawBlock_repetition0" : 17 , "END_RAW_BLOCK" : 18 , "OPEN_RAW_BLOCK" : 19 , "helperName" : 20 , "openRawBlock_repetition0" : 21 , "openRawBlock_option0" : 22 , "CLOSE_RAW_BLOCK" : 23 , "openBlock" : 24 , "block_option0" : 25 , "closeBlock" : 26 , "openInverse" : 27 , "block_option1" : 28 , "OPEN_BLOCK" : 29 , "openBlock_repetition0" : 30 , "openBlock_option0" : 31 , "openBlock_option1" : 32 , "CLOSE" : 33 , "OPEN_INVERSE" : 34 , "openInverse_repetition0" : 35 , "openInverse_option0" : 36 , "openInverse_option1" : 37 , "openInverseChain" : 38 , "OPEN_INVERSE_CHAIN" : 39 , "openInverseChain_repetition0" : 40 , "openInverseChain_option0" : 41 , "openInverseChain_option1" : 42 , "inverseAndProgram" : 43 , "INVERSE" : 44 , "inverseChain" : 45 , "inverseChain_option0" : 46 , "OPEN_ENDBLOCK" : 47 , "OPEN" : 48 , "mustache_repetition0" : 49 , "mustache_option0" : 50 , "OPEN_UNESCAPED" : 51 , "mustache_repetition1" : 52 , "mustache_option1" : 53 , "CLOSE_UNESCAPED" : 54 , "OPEN_PARTIAL" : 55 , "partialName" : 56 , "partial_repetition0" : 57 , "partial_option0" : 58 , "openPartialBlock" : 59 , "OPEN_PARTIAL_BLOCK" : 60 , "openPartialBlock_repetition0" : 61 , "openPartialBlock_option0" : 62 , "param" : 63 , "sexpr" : 64 , "OPEN_SEXPR" : 65 , "sexpr_repetition0" : 66 , "sexpr_option0" : 67 , "CLOSE_SEXPR" : 68 , "hash" : 69 , "hash_repetition_plus0" : 70 , "hashSegment" : 71 , "ID" : 72 , "EQUALS" : 73 , "blockParams" : 74 , "OPEN_BLOCK_PARAMS" : 75 , "blockParams_repetition_plus0" : 76 , "CLOSE_BLOCK_PARAMS" : 77 , "path" : 78 , "dataName" : 79 , "STRING" : 80 , "NUMBER" : 81 , "BOOLEAN" : 82 , "UNDEFINED" : 83 , "NULL" : 84 , "DATA" : 85 , "pathSegments" : 86 , "SEP" : 87 , "$accept" : 0 , "$end" : 1 } ,
terminals _ : { 2 : "error" , 5 : "EOF" , 14 : "COMMENT" , 15 : "CONTENT" , 18 : "END_RAW_BLOCK" , 19 : "OPEN_RAW_BLOCK" , 23 : "CLOSE_RAW_BLOCK" , 29 : "OPEN_BLOCK" , 33 : "CLOSE" , 34 : "OPEN_INVERSE" , 39 : "OPEN_INVERSE_CHAIN" , 44 : "INVERSE" , 47 : "OPEN_ENDBLOCK" , 48 : "OPEN" , 51 : "OPEN_UNESCAPED" , 54 : "CLOSE_UNESCAPED" , 55 : "OPEN_PARTIAL" , 60 : "OPEN_PARTIAL_BLOCK" , 65 : "OPEN_SEXPR" , 68 : "CLOSE_SEXPR" , 72 : "ID" , 73 : "EQUALS" , 75 : "OPEN_BLOCK_PARAMS" , 77 : "CLOSE_BLOCK_PARAMS" , 80 : "STRING" , 81 : "NUMBER" , 82 : "BOOLEAN" , 83 : "UNDEFINED" , 84 : "NULL" , 85 : "DATA" , 87 : "SEP" } ,
productions _ : [ 0 , [ 3 , 2 ] , [ 4 , 1 ] , [ 7 , 1 ] , [ 7 , 1 ] , [ 7 , 1 ] , [ 7 , 1 ] , [ 7 , 1 ] , [ 7 , 1 ] , [ 7 , 1 ] , [ 13 , 1 ] , [ 10 , 3 ] , [ 16 , 5 ] , [ 9 , 4 ] , [ 9 , 4 ] , [ 24 , 6 ] , [ 27 , 6 ] , [ 38 , 6 ] , [ 43 , 2 ] , [ 45 , 3 ] , [ 45 , 1 ] , [ 26 , 3 ] , [ 8 , 5 ] , [ 8 , 5 ] , [ 11 , 5 ] , [ 12 , 3 ] , [ 59 , 5 ] , [ 63 , 1 ] , [ 63 , 1 ] , [ 64 , 5 ] , [ 69 , 1 ] , [ 71 , 3 ] , [ 74 , 3 ] , [ 20 , 1 ] , [ 20 , 1 ] , [ 20 , 1 ] , [ 20 , 1 ] , [ 20 , 1 ] , [ 20 , 1 ] , [ 20 , 1 ] , [ 56 , 1 ] , [ 56 , 1 ] , [ 79 , 2 ] , [ 78 , 1 ] , [ 86 , 3 ] , [ 86 , 1 ] , [ 6 , 0 ] , [ 6 , 2 ] , [ 17 , 0 ] , [ 17 , 2 ] , [ 21 , 0 ] , [ 21 , 2 ] , [ 22 , 0 ] , [ 22 , 1 ] , [ 25 , 0 ] , [ 25 , 1 ] , [ 28 , 0 ] , [ 28 , 1 ] , [ 30 , 0 ] , [ 30 , 2 ] , [ 31 , 0 ] , [ 31 , 1 ] , [ 32 , 0 ] , [ 32 , 1 ] , [ 35 , 0 ] , [ 35 , 2 ] , [ 36 , 0 ] , [ 36 , 1 ] , [ 37 , 0 ] , [ 37 , 1 ] , [ 40 , 0 ] , [ 40 , 2 ] , [ 41 , 0 ] , [ 41 , 1 ] , [ 42 , 0 ] , [ 42 , 1 ] , [ 46 , 0 ] , [ 46 , 1 ] , [ 49 , 0 ] , [ 49 , 2 ] , [ 50 , 0 ] , [ 50 , 1 ] , [ 52 , 0 ] , [ 52 , 2 ] , [ 53 , 0 ] , [ 53 , 1 ] , [ 57 , 0 ] , [ 57 , 2 ] , [ 58 , 0 ] , [ 58 , 1 ] , [ 61 , 0 ] , [ 61 , 2 ] , [ 62 , 0 ] , [ 62 , 1 ] , [ 66 , 0 ] , [ 66 , 2 ] , [ 67 , 0 ] , [ 67 , 1 ] , [ 70 , 1 ] , [ 70 , 2 ] , [ 76 , 1 ] , [ 76 , 2 ] ] ,
performAction : function anonymous ( yytext , yyleng , yylineno , yy , yystate , $$ , _$ ) {
var $0 = $$ . length - 1 ;
switch ( yystate ) {
case 1 :
return $$ [ $0 - 1 ] ;
break ;
case 2 :
this . $ = yy . prepareProgram ( $$ [ $0 ] ) ;
break ;
case 3 :
this . $ = $$ [ $0 ] ;
break ;
case 4 :
this . $ = $$ [ $0 ] ;
break ;
case 5 :
this . $ = $$ [ $0 ] ;
break ;
case 6 :
this . $ = $$ [ $0 ] ;
break ;
case 7 :
this . $ = $$ [ $0 ] ;
break ;
case 8 :
this . $ = $$ [ $0 ] ;
break ;
case 9 :
this . $ = {
type : 'CommentStatement' ,
value : yy . stripComment ( $$ [ $0 ] ) ,
strip : yy . stripFlags ( $$ [ $0 ] , $$ [ $0 ] ) ,
loc : yy . locInfo ( this . _$ )
} ;
break ;
case 10 :
this . $ = {
type : 'ContentStatement' ,
original : $$ [ $0 ] ,
value : $$ [ $0 ] ,
loc : yy . locInfo ( this . _$ )
} ;
break ;
case 11 :
this . $ = yy . prepareRawBlock ( $$ [ $0 - 2 ] , $$ [ $0 - 1 ] , $$ [ $0 ] , this . _$ ) ;
break ;
case 12 :
this . $ = { path : $$ [ $0 - 3 ] , params : $$ [ $0 - 2 ] , hash : $$ [ $0 - 1 ] } ;
break ;
case 13 :
this . $ = yy . prepareBlock ( $$ [ $0 - 3 ] , $$ [ $0 - 2 ] , $$ [ $0 - 1 ] , $$ [ $0 ] , false , this . _$ ) ;
break ;
case 14 :
this . $ = yy . prepareBlock ( $$ [ $0 - 3 ] , $$ [ $0 - 2 ] , $$ [ $0 - 1 ] , $$ [ $0 ] , true , this . _$ ) ;
break ;
case 15 :
this . $ = { open : $$ [ $0 - 5 ] , path : $$ [ $0 - 4 ] , params : $$ [ $0 - 3 ] , hash : $$ [ $0 - 2 ] , blockParams : $$ [ $0 - 1 ] , strip : yy . stripFlags ( $$ [ $0 - 5 ] , $$ [ $0 ] ) } ;
break ;
case 16 :
this . $ = { path : $$ [ $0 - 4 ] , params : $$ [ $0 - 3 ] , hash : $$ [ $0 - 2 ] , blockParams : $$ [ $0 - 1 ] , strip : yy . stripFlags ( $$ [ $0 - 5 ] , $$ [ $0 ] ) } ;
break ;
case 17 :
this . $ = { path : $$ [ $0 - 4 ] , params : $$ [ $0 - 3 ] , hash : $$ [ $0 - 2 ] , blockParams : $$ [ $0 - 1 ] , strip : yy . stripFlags ( $$ [ $0 - 5 ] , $$ [ $0 ] ) } ;
break ;
case 18 :
this . $ = { strip : yy . stripFlags ( $$ [ $0 - 1 ] , $$ [ $0 - 1 ] ) , program : $$ [ $0 ] } ;
break ;
case 19 :
var inverse = yy . prepareBlock ( $$ [ $0 - 2 ] , $$ [ $0 - 1 ] , $$ [ $0 ] , $$ [ $0 ] , false , this . _$ ) ,
program = yy . prepareProgram ( [ inverse ] , $$ [ $0 - 1 ] . loc ) ;
program . chained = true ;
this . $ = { strip : $$ [ $0 - 2 ] . strip , program : program , chain : true } ;
break ;
case 20 :
this . $ = $$ [ $0 ] ;
break ;
case 21 :
this . $ = { path : $$ [ $0 - 1 ] , strip : yy . stripFlags ( $$ [ $0 - 2 ] , $$ [ $0 ] ) } ;
break ;
case 22 :
this . $ = yy . prepareMustache ( $$ [ $0 - 3 ] , $$ [ $0 - 2 ] , $$ [ $0 - 1 ] , $$ [ $0 - 4 ] , yy . stripFlags ( $$ [ $0 - 4 ] , $$ [ $0 ] ) , this . _$ ) ;
break ;
case 23 :
this . $ = yy . prepareMustache ( $$ [ $0 - 3 ] , $$ [ $0 - 2 ] , $$ [ $0 - 1 ] , $$ [ $0 - 4 ] , yy . stripFlags ( $$ [ $0 - 4 ] , $$ [ $0 ] ) , this . _$ ) ;
break ;
case 24 :
this . $ = {
type : 'PartialStatement' ,
name : $$ [ $0 - 3 ] ,
params : $$ [ $0 - 2 ] ,
hash : $$ [ $0 - 1 ] ,
indent : '' ,
strip : yy . stripFlags ( $$ [ $0 - 4 ] , $$ [ $0 ] ) ,
loc : yy . locInfo ( this . _$ )
} ;
break ;
case 25 :
this . $ = yy . preparePartialBlock ( $$ [ $0 - 2 ] , $$ [ $0 - 1 ] , $$ [ $0 ] , this . _$ ) ;
break ;
case 26 :
this . $ = { path : $$ [ $0 - 3 ] , params : $$ [ $0 - 2 ] , hash : $$ [ $0 - 1 ] , strip : yy . stripFlags ( $$ [ $0 - 4 ] , $$ [ $0 ] ) } ;
break ;
case 27 :
this . $ = $$ [ $0 ] ;
break ;
case 28 :
this . $ = $$ [ $0 ] ;
break ;
case 29 :
this . $ = {
type : 'SubExpression' ,
path : $$ [ $0 - 3 ] ,
params : $$ [ $0 - 2 ] ,
hash : $$ [ $0 - 1 ] ,
loc : yy . locInfo ( this . _$ )
} ;
break ;
case 30 :
this . $ = { type : 'Hash' , pairs : $$ [ $0 ] , loc : yy . locInfo ( this . _$ ) } ;
break ;
case 31 :
this . $ = { type : 'HashPair' , key : yy . id ( $$ [ $0 - 2 ] ) , value : $$ [ $0 ] , loc : yy . locInfo ( this . _$ ) } ;
break ;
case 32 :
this . $ = yy . id ( $$ [ $0 - 1 ] ) ;
break ;
case 33 :
this . $ = $$ [ $0 ] ;
break ;
case 34 :
this . $ = $$ [ $0 ] ;
break ;
case 35 :
this . $ = { type : 'StringLiteral' , value : $$ [ $0 ] , original : $$ [ $0 ] , loc : yy . locInfo ( this . _$ ) } ;
break ;
case 36 :
this . $ = { type : 'NumberLiteral' , value : Number ( $$ [ $0 ] ) , original : Number ( $$ [ $0 ] ) , loc : yy . locInfo ( this . _$ ) } ;
break ;
case 37 :
this . $ = { type : 'BooleanLiteral' , value : $$ [ $0 ] === 'true' , original : $$ [ $0 ] === 'true' , loc : yy . locInfo ( this . _$ ) } ;
break ;
case 38 :
this . $ = { type : 'UndefinedLiteral' , original : undefined , value : undefined , loc : yy . locInfo ( this . _$ ) } ;
break ;
case 39 :
this . $ = { type : 'NullLiteral' , original : null , value : null , loc : yy . locInfo ( this . _$ ) } ;
break ;
case 40 :
this . $ = $$ [ $0 ] ;
break ;
case 41 :
this . $ = $$ [ $0 ] ;
break ;
case 42 :
this . $ = yy . preparePath ( true , $$ [ $0 ] , this . _$ ) ;
break ;
case 43 :
this . $ = yy . preparePath ( false , $$ [ $0 ] , this . _$ ) ;
break ;
case 44 :
$$ [ $0 - 2 ] . push ( { part : yy . id ( $$ [ $0 ] ) , original : $$ [ $0 ] , separator : $$ [ $0 - 1 ] } ) ; this . $ = $$ [ $0 - 2 ] ;
break ;
case 45 :
this . $ = [ { part : yy . id ( $$ [ $0 ] ) , original : $$ [ $0 ] } ] ;
break ;
case 46 :
this . $ = [ ] ;
break ;
case 47 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 48 :
this . $ = [ ] ;
break ;
case 49 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 50 :
this . $ = [ ] ;
break ;
case 51 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 58 :
this . $ = [ ] ;
break ;
case 59 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 64 :
this . $ = [ ] ;
break ;
case 65 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 70 :
this . $ = [ ] ;
break ;
case 71 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 78 :
this . $ = [ ] ;
break ;
case 79 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 82 :
this . $ = [ ] ;
break ;
case 83 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 86 :
this . $ = [ ] ;
break ;
case 87 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 90 :
this . $ = [ ] ;
break ;
case 91 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 94 :
this . $ = [ ] ;
break ;
case 95 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 98 :
this . $ = [ $$ [ $0 ] ] ;
break ;
case 99 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
case 100 :
this . $ = [ $$ [ $0 ] ] ;
break ;
case 101 :
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
break ;
}
} ,
table : [ { 3 : 1 , 4 : 2 , 5 : [ 2 , 46 ] , 6 : 3 , 14 : [ 2 , 46 ] , 15 : [ 2 , 46 ] , 19 : [ 2 , 46 ] , 29 : [ 2 , 46 ] , 34 : [ 2 , 46 ] , 48 : [ 2 , 46 ] , 51 : [ 2 , 46 ] , 55 : [ 2 , 46 ] , 60 : [ 2 , 46 ] } , { 1 : [ 3 ] } , { 5 : [ 1 , 4 ] } , { 5 : [ 2 , 2 ] , 7 : 5 , 8 : 6 , 9 : 7 , 10 : 8 , 11 : 9 , 12 : 10 , 13 : 11 , 14 : [ 1 , 12 ] , 15 : [ 1 , 20 ] , 16 : 17 , 19 : [ 1 , 23 ] , 24 : 15 , 27 : 16 , 29 : [ 1 , 21 ] , 34 : [ 1 , 22 ] , 39 : [ 2 , 2 ] , 44 : [ 2 , 2 ] , 47 : [ 2 , 2 ] , 48 : [ 1 , 13 ] , 51 : [ 1 , 14 ] , 55 : [ 1 , 18 ] , 59 : 19 , 60 : [ 1 , 24 ] } , { 1 : [ 2 , 1 ] } , { 5 : [ 2 , 47 ] , 14 : [ 2 , 47 ] , 15 : [ 2 , 47 ] , 19 : [ 2 , 47 ] , 29 : [ 2 , 47 ] , 34 : [ 2 , 47 ] , 39 : [ 2 , 47 ] , 44 : [ 2 , 47 ] , 47 : [ 2 , 47 ] , 48 : [ 2 , 47 ] , 51 : [ 2 , 47 ] , 55 : [ 2 , 47 ] , 60 : [ 2 , 47 ] } , { 5 : [ 2 , 3 ] , 14 : [ 2 , 3 ] , 15 : [ 2 , 3 ] , 19 : [ 2 , 3 ] , 29 : [ 2 , 3 ] , 34 : [ 2 , 3 ] , 39 : [ 2 , 3 ] , 44 : [ 2 , 3 ] , 47 : [ 2 , 3 ] , 48 : [ 2 , 3 ] , 51 : [ 2 , 3 ] , 55 : [ 2 , 3 ] , 60 : [ 2 , 3 ] } , { 5 : [ 2 , 4 ] , 14 : [ 2 , 4 ] , 15 : [ 2 , 4 ] , 19 : [ 2 , 4 ] , 29 : [ 2 , 4 ] , 34 : [ 2 , 4 ] , 39 : [ 2 , 4 ] , 44 : [ 2 , 4 ] , 47 : [ 2 , 4 ] , 48 : [ 2 , 4 ] , 51 : [ 2 , 4 ] , 55 : [ 2 , 4 ] , 60 : [ 2 , 4 ] } , { 5 : [ 2 , 5 ] , 14 : [ 2 , 5 ] , 15 : [ 2 , 5 ] , 19 : [ 2 , 5 ] , 29 : [ 2 , 5 ] , 34 : [ 2 , 5 ] , 39 : [ 2 , 5 ] , 44 : [ 2 , 5 ] , 47 : [ 2 , 5 ] , 48 : [ 2 , 5 ] , 51 : [ 2 , 5 ] , 55 : [ 2 , 5 ] , 60 : [ 2 , 5 ] } , { 5 : [ 2 , 6 ] , 14 : [ 2 , 6 ] , 15 : [ 2 , 6 ] , 19 : [ 2 , 6 ] , 29 : [ 2 , 6 ] , 34 : [ 2 , 6 ] , 39 : [ 2 , 6 ] , 44 : [ 2 , 6 ] , 47 : [ 2 , 6 ] , 48 : [ 2 , 6 ] , 51 : [ 2 , 6 ] , 55 : [ 2 , 6 ] , 60 : [ 2 , 6 ] } , { 5 : [ 2 , 7 ] , 14 : [ 2 , 7 ] , 15 : [ 2 , 7 ] , 19 : [ 2 , 7 ] , 29 : [ 2 , 7 ] , 34 : [ 2 , 7 ] , 39 : [ 2 , 7 ] , 44 : [ 2 , 7 ] , 47 : [ 2 , 7 ] , 48 : [ 2 , 7 ] , 51 : [ 2 , 7 ] , 55 : [ 2 , 7 ] , 60 : [ 2 , 7 ] } , { 5 : [ 2 , 8 ] , 14 : [ 2 , 8 ] , 15 : [ 2 , 8 ] , 19 : [ 2 , 8 ] , 29 : [ 2 , 8 ] , 34 : [ 2 , 8 ] , 39 : [ 2 , 8 ] , 44 : [ 2 , 8 ] , 47 : [ 2 , 8 ] , 48 : [ 2 , 8 ] , 51 : [ 2 , 8 ] , 55 : [ 2 , 8 ] , 60 : [ 2 , 8 ] } , { 5 : [ 2 , 9 ] , 14 : [ 2 , 9 ] , 15 : [ 2 , 9 ] , 19 : [ 2 , 9 ] , 29 : [ 2 , 9 ] , 34 : [ 2 , 9 ] , 39 : [ 2 , 9 ] , 44 : [ 2 , 9 ] , 47 : [ 2 , 9 ] , 48 : [ 2 , 9 ] , 51 : [ 2 , 9 ] , 55 : [ 2 , 9 ] , 60 : [ 2 , 9 ] } , { 20 : 25 , 72 : [ 1 , 35 ] , 78 : 26 , 79 : 27 , 80 : [ 1 , 28 ] , 81 : [ 1 , 29 ] , 82 : [ 1 , 30 ] , 83 : [ 1 , 31 ] , 84 : [ 1 , 32 ] , 85 : [ 1 , 34 ] , 86 : 33 } , { 20 : 36 , 72 : [ 1 , 35 ] , 78 : 26 , 79 : 27 , 80 : [ 1 , 28 ] , 81 : [ 1 , 29 ] , 82 : [ 1 , 30 ] , 83 : [ 1 , 31 ] , 84 : [ 1 , 32 ] , 85 : [ 1 , 34 ] , 86 : 33 } , { 4 : 37 , 6 : 3 , 14 : [ 2 , 46 ] , 15 : [ 2 , 46 ] , 19 : [ 2 , 46 ] , 29 : [ 2 , 46 ] , 34 : [ 2 , 46 ] , 39 : [ 2 , 46 ] , 44 : [ 2 , 46 ] , 47 : [ 2 , 46 ] , 48 : [ 2 , 46 ] , 51 : [ 2 , 46 ] , 55 : [ 2 , 46 ] , 60 : [ 2 , 46 ] } , { 4 : 38 , 6 : 3 , 14 : [ 2 , 46 ] , 15 : [ 2 , 46 ] , 19 : [ 2 , 46 ] , 29 : [ 2 , 46 ] , 34 : [ 2 , 46 ] , 44 : [ 2 , 46 ] , 47 : [ 2 , 46 ] , 48 : [ 2 , 46 ] , 51 : [ 2 , 46 ] , 55 : [ 2 , 46 ] , 60 : [ 2 , 46 ] } , { 15 : [ 2 , 48 ] , 17 : 39 , 18 : [ 2 , 48 ] } , { 20 : 41 , 56 : 40 , 64 : 42 , 65 : [ 1 , 43 ] , 72 : [ 1 , 35 ] , 78 : 26 , 79 : 27 , 80 : [ 1 , 28 ] , 81 : [ 1 , 29 ] , 82 : [ 1 , 30 ] , 83 : [ 1 , 31 ] , 84 : [ 1 , 32 ] , 85 : [ 1 , 34 ] , 86 : 33 } , { 4 : 44 , 6 : 3 , 14 : [ 2 , 46 ] , 15 : [ 2 , 46 ] , 19 : [ 2 , 46 ] , 29 : [ 2 , 46 ] , 34 : [ 2 , 46 ] , 47 : [ 2 , 46 ] , 48 : [ 2 , 46 ] , 51 : [ 2 , 46 ] , 55 : [ 2 , 46 ] , 60 : [ 2 , 46 ] } , { 5 : [ 2 , 10 ] , 14 : [ 2 , 10 ] , 15 : [ 2 , 10 ] , 18 : [ 2 , 10 ] , 19 : [ 2 , 10 ] , 29 : [ 2 , 10 ] , 34 : [ 2 , 10 ] , 39 : [ 2 , 10 ] , 44 : [ 2 , 10 ] , 47 : [ 2 , 10 ] , 48 : [ 2 , 10 ] , 51 : [ 2 , 10 ] , 55 : [ 2 , 10 ] , 60 : [ 2 , 10 ] } , { 20 : 45 , 72 : [ 1 , 35 ] , 78 : 26 , 79 : 27 , 80 : [ 1 , 28 ] , 81 : [ 1 , 29 ] , 82 : [ 1 , 30 ] , 83 : [ 1 , 31 ] , 84 : [ 1 , 32 ] , 85 : [ 1 , 34 ] , 86 : 33 } , { 20 : 46 , 72 : [ 1 , 35 ] , 78 : 26 , 79 : 27 , 80 : [ 1 , 28 ] , 81 : [ 1 , 29 ] , 82 : [ 1 , 30 ] , 83 : [ 1 , 31 ] , 84 : [ 1 , 32 ] , 85 : [ 1 , 34 ] , 86 : 33 } , { 20 : 47 , 72 : [ 1 , 35 ] , 78 : 26 , 79 : 27 , 80 : [ 1 , 28 ] , 81 : [ 1 , 29 ] , 82 : [ 1 , 30 ] , 83 : [ 1 , 31 ] , 84 : [ 1 , 32 ] , 85 : [ 1 , 34 ] , 86 : 33 } , { 20 : 41 , 56 : 48 , 64 : 42 , 65 : [ 1 , 43 ] , 72 : [ 1 , 35 ] , 78 : 26 , 79 : 27 , 80 : [ 1 , 28 ] , 81 : [ 1 , 29 ] , 82 : [ 1 , 30 ] , 83 : [ 1 , 31 ] , 84 : [ 1 , 32 ] , 85 : [ 1 , 34 ] , 86 : 33 } , { 33 : [ 2 , 78 ] , 49 : 49 , 65 : [ 2 , 78 ] , 72 : [ 2 , 78 ] , 80 : [ 2 , 78 ] , 81 : [ 2 , 78 ] , 82 : [ 2 , 78 ] , 83 : [ 2 , 78 ] , 84 : [ 2 , 78 ] , 85 : [ 2 , 78 ] } , { 23 : [ 2 , 33 ] , 33 : [ 2 , 33 ] , 54 : [ 2 , 33 ] , 65 : [ 2 , 33 ] , 68 : [ 2 , 33 ] , 72 : [ 2 , 33 ] , 75 : [ 2 , 33 ] , 80 : [ 2 , 33 ] , 81 : [ 2 , 33 ] , 82 : [ 2 , 33 ] , 83 : [ 2 , 33 ] , 84 : [ 2 , 33 ] , 85 : [ 2 , 33 ] } , { 23 : [ 2 , 34 ] , 33 : [ 2 , 34 ] , 54 : [ 2 , 34 ] , 65 : [ 2 , 34 ] , 68 : [ 2 , 34 ] , 72 : [ 2 , 34 ] , 75 : [ 2 , 34 ] , 80 : [ 2 , 34 ] , 81 : [ 2 , 34 ] , 82 : [ 2 , 34 ] , 83 : [ 2 , 34 ] , 84 : [ 2 , 34 ] , 85 : [ 2 , 34 ] } , { 23 : [ 2 , 35 ] , 33 : [ 2 , 35 ] , 54 : [ 2 , 35 ] , 65 : [ 2 , 35 ] , 68 : [ 2 , 35 ] , 72 : [ 2 , 35 ] , 75 : [ 2 , 35 ] , 80 : [ 2 , 35 ] , 81 : [ 2 , 35 ] , 82 : [ 2 , 35 ] , 83 : [ 2 , 35 ] , 84 : [ 2 , 35 ] , 85 : [ 2 , 35 ] } , { 23 : [ 2 , 36 ] , 33 : [ 2 , 36 ] , 54 : [ 2 , 36 ] , 65 : [ 2 , 36 ] , 6
defaultActions : { 4 : [ 2 , 1 ] , 54 : [ 2 , 55 ] , 56 : [ 2 , 20 ] , 60 : [ 2 , 57 ] , 73 : [ 2 , 81 ] , 82 : [ 2 , 85 ] , 86 : [ 2 , 18 ] , 90 : [ 2 , 89 ] , 101 : [ 2 , 53 ] , 104 : [ 2 , 93 ] , 110 : [ 2 , 19 ] , 111 : [ 2 , 77 ] , 116 : [ 2 , 97 ] , 119 : [ 2 , 63 ] , 122 : [ 2 , 69 ] , 135 : [ 2 , 75 ] , 136 : [ 2 , 32 ] } ,
parseError : function parseError ( str , hash ) {
throw new Error ( str ) ;
} ,
parse : function parse ( input ) {
var self = this ,
stack = [ 0 ] ,
vstack = [ null ] ,
lstack = [ ] ,
table = this . table ,
yytext = "" ,
yylineno = 0 ,
yyleng = 0 ,
recovering = 0 ,
TERROR = 2 ,
EOF = 1 ;
this . lexer . setInput ( input ) ;
this . lexer . yy = this . yy ;
this . yy . lexer = this . lexer ;
this . yy . parser = this ;
if ( typeof this . lexer . yylloc == "undefined" ) this . lexer . yylloc = { } ;
var yyloc = this . lexer . yylloc ;
lstack . push ( yyloc ) ;
var ranges = this . lexer . options && this . lexer . options . ranges ;
if ( typeof this . yy . parseError === "function" ) this . parseError = this . yy . parseError ;
function popStack ( n ) {
stack . length = stack . length - 2 * n ;
vstack . length = vstack . length - n ;
lstack . length = lstack . length - n ;
}
function lex ( ) {
var token ;
token = self . lexer . lex ( ) || 1 ;
if ( typeof token !== "number" ) {
token = self . symbols _ [ token ] || token ;
}
return token ;
}
var symbol ,
preErrorSymbol ,
state ,
action ,
a ,
r ,
yyval = { } ,
p ,
len ,
newState ,
expected ;
while ( true ) {
state = stack [ stack . length - 1 ] ;
if ( this . defaultActions [ state ] ) {
action = this . defaultActions [ state ] ;
} else {
if ( symbol === null || typeof symbol == "undefined" ) {
symbol = lex ( ) ;
}
action = table [ state ] && table [ state ] [ symbol ] ;
}
if ( typeof action === "undefined" || ! action . length || ! action [ 0 ] ) {
var errStr = "" ;
if ( ! recovering ) {
expected = [ ] ;
for ( p in table [ state ] ) if ( this . terminals _ [ p ] && p > 2 ) {
expected . push ( "'" + this . terminals _ [ p ] + "'" ) ;
}
if ( this . lexer . showPosition ) {
errStr = "Parse error on line " + ( yylineno + 1 ) + ":\n" + this . lexer . showPosition ( ) + "\nExpecting " + expected . join ( ", " ) + ", got '" + ( this . terminals _ [ symbol ] || symbol ) + "'" ;
} else {
errStr = "Parse error on line " + ( yylineno + 1 ) + ": Unexpected " + ( symbol == 1 ? "end of input" : "'" + ( this . terminals _ [ symbol ] || symbol ) + "'" ) ;
}
this . parseError ( errStr , { text : this . lexer . match , token : this . terminals _ [ symbol ] || symbol , line : this . lexer . yylineno , loc : yyloc , expected : expected } ) ;
}
}
if ( action [ 0 ] instanceof Array && action . length > 1 ) {
throw new Error ( "Parse Error: multiple actions possible at state: " + state + ", token: " + symbol ) ;
}
switch ( action [ 0 ] ) {
case 1 :
stack . push ( symbol ) ;
vstack . push ( this . lexer . yytext ) ;
lstack . push ( this . lexer . yylloc ) ;
stack . push ( action [ 1 ] ) ;
symbol = null ;
if ( ! preErrorSymbol ) {
yyleng = this . lexer . yyleng ;
yytext = this . lexer . yytext ;
yylineno = this . lexer . yylineno ;
yyloc = this . lexer . yylloc ;
if ( recovering > 0 ) recovering -- ;
} else {
symbol = preErrorSymbol ;
preErrorSymbol = null ;
}
break ;
case 2 :
len = this . productions _ [ action [ 1 ] ] [ 1 ] ;
yyval . $ = vstack [ vstack . length - len ] ;
yyval . _$ = { first _line : lstack [ lstack . length - ( len || 1 ) ] . first _line , last _line : lstack [ lstack . length - 1 ] . last _line , first _column : lstack [ lstack . length - ( len || 1 ) ] . first _column , last _column : lstack [ lstack . length - 1 ] . last _column } ;
if ( ranges ) {
yyval . _$ . range = [ lstack [ lstack . length - ( len || 1 ) ] . range [ 0 ] , lstack [ lstack . length - 1 ] . range [ 1 ] ] ;
}
r = this . performAction . call ( yyval , yytext , yyleng , yylineno , this . yy , action [ 1 ] , vstack , lstack ) ;
if ( typeof r !== "undefined" ) {
return r ;
}
if ( len ) {
stack = stack . slice ( 0 , - 1 * len * 2 ) ;
vstack = vstack . slice ( 0 , - 1 * len ) ;
lstack = lstack . slice ( 0 , - 1 * len ) ;
}
stack . push ( this . productions _ [ action [ 1 ] ] [ 0 ] ) ;
vstack . push ( yyval . $ ) ;
lstack . push ( yyval . _$ ) ;
newState = table [ stack [ stack . length - 2 ] ] [ stack [ stack . length - 1 ] ] ;
stack . push ( newState ) ;
break ;
case 3 :
return true ;
}
}
return true ;
}
} ;
/* Jison generated lexer */
var lexer = ( function ( ) {
var lexer = { EOF : 1 ,
parseError : function parseError ( str , hash ) {
if ( this . yy . parser ) {
this . yy . parser . parseError ( str , hash ) ;
} else {
throw new Error ( str ) ;
}
} ,
setInput : function setInput ( input ) {
this . _input = input ;
this . _more = this . _less = this . done = false ;
this . yylineno = this . yyleng = 0 ;
this . yytext = this . matched = this . match = '' ;
this . conditionStack = [ 'INITIAL' ] ;
this . yylloc = { first _line : 1 , first _column : 0 , last _line : 1 , last _column : 0 } ;
if ( this . options . ranges ) this . yylloc . range = [ 0 , 0 ] ;
this . offset = 0 ;
return this ;
} ,
input : function input ( ) {
var ch = this . _input [ 0 ] ;
this . yytext += ch ;
this . yyleng ++ ;
this . offset ++ ;
this . match += ch ;
this . matched += ch ;
var lines = ch . match ( /(?:\r\n?|\n).*/g ) ;
if ( lines ) {
this . yylineno ++ ;
this . yylloc . last _line ++ ;
} else {
this . yylloc . last _column ++ ;
}
if ( this . options . ranges ) this . yylloc . range [ 1 ] ++ ;
this . _input = this . _input . slice ( 1 ) ;
return ch ;
} ,
unput : function unput ( ch ) {
var len = ch . length ;
var lines = ch . split ( /(?:\r\n?|\n)/g ) ;
this . _input = ch + this . _input ;
this . yytext = this . yytext . substr ( 0 , this . yytext . length - len - 1 ) ;
//this.yyleng -= len;
this . offset -= len ;
var oldLines = this . match . split ( /(?:\r\n?|\n)/g ) ;
this . match = this . match . substr ( 0 , this . match . length - 1 ) ;
this . matched = this . matched . substr ( 0 , this . matched . length - 1 ) ;
if ( lines . length - 1 ) this . yylineno -= lines . length - 1 ;
var r = this . yylloc . range ;
this . yylloc = { first _line : this . yylloc . first _line ,
last _line : this . yylineno + 1 ,
first _column : this . yylloc . first _column ,
last _column : lines ? ( lines . length === oldLines . length ? this . yylloc . first _column : 0 ) + oldLines [ oldLines . length - lines . length ] . length - lines [ 0 ] . length : this . yylloc . first _column - len
} ;
if ( this . options . ranges ) {
this . yylloc . range = [ r [ 0 ] , r [ 0 ] + this . yyleng - len ] ;
}
return this ;
} ,
more : function more ( ) {
this . _more = true ;
return this ;
} ,
less : function less ( n ) {
this . unput ( this . match . slice ( n ) ) ;
} ,
pastInput : function pastInput ( ) {
var past = this . matched . substr ( 0 , this . matched . length - this . match . length ) ;
return ( past . length > 20 ? '...' : '' ) + past . substr ( - 20 ) . replace ( /\n/g , "" ) ;
} ,
upcomingInput : function upcomingInput ( ) {
var next = this . match ;
if ( next . length < 20 ) {
next += this . _input . substr ( 0 , 20 - next . length ) ;
}
return ( next . substr ( 0 , 20 ) + ( next . length > 20 ? '...' : '' ) ) . replace ( /\n/g , "" ) ;
} ,
showPosition : function showPosition ( ) {
var pre = this . pastInput ( ) ;
var c = new Array ( pre . length + 1 ) . join ( "-" ) ;
return pre + this . upcomingInput ( ) + "\n" + c + "^" ;
} ,
next : function next ( ) {
if ( this . done ) {
return this . EOF ;
}
if ( ! this . _input ) this . done = true ;
var token , match , tempMatch , index , col , lines ;
if ( ! this . _more ) {
this . yytext = '' ;
this . match = '' ;
}
var rules = this . _currentRules ( ) ;
for ( var i = 0 ; i < rules . length ; i ++ ) {
tempMatch = this . _input . match ( this . rules [ rules [ i ] ] ) ;
if ( tempMatch && ( ! match || tempMatch [ 0 ] . length > match [ 0 ] . length ) ) {
match = tempMatch ;
index = i ;
if ( ! this . options . flex ) break ;
}
}
if ( match ) {
lines = match [ 0 ] . match ( /(?:\r\n?|\n).*/g ) ;
if ( lines ) this . yylineno += lines . length ;
this . yylloc = { first _line : this . yylloc . last _line ,
last _line : this . yylineno + 1 ,
first _column : this . yylloc . last _column ,
last _column : lines ? lines [ lines . length - 1 ] . length - lines [ lines . length - 1 ] . match ( /\r?\n?/ ) [ 0 ] . length : this . yylloc . last _column + match [ 0 ] . length } ;
this . yytext += match [ 0 ] ;
this . match += match [ 0 ] ;
this . matches = match ;
this . yyleng = this . yytext . length ;
if ( this . options . ranges ) {
this . yylloc . range = [ this . offset , this . offset += this . yyleng ] ;
}
this . _more = false ;
this . _input = this . _input . slice ( match [ 0 ] . length ) ;
this . matched += match [ 0 ] ;
token = this . performAction . call ( this , this . yy , this , rules [ index ] , this . conditionStack [ this . conditionStack . length - 1 ] ) ;
if ( this . done && this . _input ) this . done = false ;
if ( token ) return token ; else return ;
}
if ( this . _input === "" ) {
return this . EOF ;
} else {
return this . parseError ( 'Lexical error on line ' + ( this . yylineno + 1 ) + '. Unrecognized text.\n' + this . showPosition ( ) , { text : "" , token : null , line : this . yylineno } ) ;
}
} ,
lex : function lex ( ) {
var r = this . next ( ) ;
if ( typeof r !== 'undefined' ) {
return r ;
} else {
return this . lex ( ) ;
}
} ,
begin : function begin ( condition ) {
this . conditionStack . push ( condition ) ;
} ,
popState : function popState ( ) {
return this . conditionStack . pop ( ) ;
} ,
_currentRules : function _currentRules ( ) {
return this . conditions [ this . conditionStack [ this . conditionStack . length - 1 ] ] . rules ;
} ,
topState : function topState ( ) {
return this . conditionStack [ this . conditionStack . length - 2 ] ;
} ,
pushState : function begin ( condition ) {
this . begin ( condition ) ;
} } ;
lexer . options = { } ;
lexer . performAction = function anonymous ( yy , yy _ , $avoiding _name _collisions , YY _START ) {
function strip ( start , end ) {
return yy _ . yytext = yy _ . yytext . substring ( start , yy _ . yyleng - end + start ) ;
}
var YYSTATE = YY _START ;
switch ( $avoiding _name _collisions ) {
case 0 :
if ( yy _ . yytext . slice ( - 2 ) === "\\\\" ) {
strip ( 0 , 1 ) ;
this . begin ( "mu" ) ;
} else if ( yy _ . yytext . slice ( - 1 ) === "\\" ) {
strip ( 0 , 1 ) ;
this . begin ( "emu" ) ;
} else {
this . begin ( "mu" ) ;
}
if ( yy _ . yytext ) return 15 ;
break ;
case 1 :
return 15 ;
break ;
case 2 :
this . popState ( ) ;
return 15 ;
break ;
case 3 :
this . begin ( 'raw' ) ; return 15 ;
break ;
case 4 :
this . popState ( ) ;
// Should be using `this.topState()` below, but it currently
// returns the second top instead of the first top. Opened an
// issue about it at https://github.com/zaach/jison/issues/291
if ( this . conditionStack [ this . conditionStack . length - 1 ] === 'raw' ) {
return 15 ;
} else {
strip ( 5 , 9 ) ;
return 'END_RAW_BLOCK' ;
}
break ;
case 5 :
return 15 ;
break ;
case 6 :
this . popState ( ) ;
return 14 ;
break ;
case 7 :
return 65 ;
break ;
case 8 :
return 68 ;
break ;
case 9 :
return 19 ;
break ;
case 10 :
this . popState ( ) ;
this . begin ( 'raw' ) ;
return 23 ;
break ;
case 11 :
return 55 ;
break ;
case 12 :
return 60 ;
break ;
case 13 :
return 29 ;
break ;
case 14 :
return 47 ;
break ;
case 15 :
this . popState ( ) ; return 44 ;
break ;
case 16 :
this . popState ( ) ; return 44 ;
break ;
case 17 :
return 34 ;
break ;
case 18 :
return 39 ;
break ;
case 19 :
return 51 ;
break ;
case 20 :
return 48 ;
break ;
case 21 :
this . unput ( yy _ . yytext ) ;
this . popState ( ) ;
this . begin ( 'com' ) ;
break ;
case 22 :
this . popState ( ) ;
return 14 ;
break ;
case 23 :
return 48 ;
break ;
case 24 :
return 73 ;
break ;
case 25 :
return 72 ;
break ;
case 26 :
return 72 ;
break ;
case 27 :
return 87 ;
break ;
case 28 :
// ignore whitespace
break ;
case 29 :
this . popState ( ) ; return 54 ;
break ;
case 30 :
this . popState ( ) ; return 33 ;
break ;
case 31 :
yy _ . yytext = strip ( 1 , 2 ) . replace ( /\\"/g , '"' ) ; return 80 ;
break ;
case 32 :
yy _ . yytext = strip ( 1 , 2 ) . replace ( /\\'/g , "'" ) ; return 80 ;
break ;
case 33 :
return 85 ;
break ;
case 34 :
return 82 ;
break ;
case 35 :
return 82 ;
break ;
case 36 :
return 83 ;
break ;
case 37 :
return 84 ;
break ;
case 38 :
return 81 ;
break ;
case 39 :
return 75 ;
break ;
case 40 :
return 77 ;
break ;
case 41 :
return 72 ;
break ;
case 42 :
yy _ . yytext = yy _ . yytext . replace ( /\\([\\\]])/g , '$1' ) ; return 72 ;
break ;
case 43 :
return 'INVALID' ;
break ;
case 44 :
return 5 ;
break ;
}
} ;
lexer . rules = [ /^(?:[^\x00]*?(?=(\{\{)))/ , /^(?:[^\x00]+)/ , /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/ , /^(?:\{\{\{\{(?=[^\/]))/ , /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/ , /^(?:[^\x00]+?(?=(\{\{\{\{)))/ , /^(?:[\s\S]*?--(~)?\}\})/ , /^(?:\()/ , /^(?:\))/ , /^(?:\{\{\{\{)/ , /^(?:\}\}\}\})/ , /^(?:\{\{(~)?>)/ , /^(?:\{\{(~)?#>)/ , /^(?:\{\{(~)?#\*?)/ , /^(?:\{\{(~)?\/)/ , /^(?:\{\{(~)?\^\s*(~)?\}\})/ , /^(?:\{\{(~)?\s*else\s*(~)?\}\})/ , /^(?:\{\{(~)?\^)/ , /^(?:\{\{(~)?\s*else\b)/ , /^(?:\{\{(~)?\{)/ , /^(?:\{\{(~)?&)/ , /^(?:\{\{(~)?!--)/ , /^(?:\{\{(~)?![\s\S]*?\}\})/ , /^(?:\{\{(~)?\*?)/ , /^(?:=)/ , /^(?:\.\.)/ , /^(?:\.(?=([=~}\s\/.)|])))/ , /^(?:[\/.])/ , /^(?:\s+)/ , /^(?:\}(~)?\}\})/ , /^(?:(~)?\}\})/ , /^(?:"(\\["]|[^"])*")/ , /^(?:'(\\[']|[^'])*')/ , /^(?:@)/ , /^(?:true(?=([~}\s)])))/ , /^(?:false(?=([~}\s)])))/ , /^(?:undefined(?=([~}\s)])))/ , /^(?:null(?=([~}\s)])))/ , /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/ , /^(?:as\s+\|)/ , /^(?:\|)/ , /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/ , /^(?:\[(\\\]|[^\]])*\])/ , /^(?:.)/ , /^(?:$)/ ] ;
lexer . conditions = { "mu" : { "rules" : [ 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 ] , "inclusive" : false } , "emu" : { "rules" : [ 2 ] , "inclusive" : false } , "com" : { "rules" : [ 6 ] , "inclusive" : false } , "raw" : { "rules" : [ 3 , 4 , 5 ] , "inclusive" : false } , "INITIAL" : { "rules" : [ 0 , 1 , 44 ] , "inclusive" : true } } ;
return lexer ;
} ) ( ) ;
parser . lexer = lexer ;
function Parser ( ) {
this . yy = { } ;
} Parser . prototype = parser ; parser . Parser = Parser ;
return new Parser ( ) ;
} ) ( ) ; exports [ "default" ] = handlebars ;
module . exports = exports [ "default" ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL3BhcnNlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLElBQUksVUFBVSxHQUFHLENBQUMsWUFBVTtBQUM1QixRQUFJLE1BQU0sR0FBRyxFQUFDLEtBQUssRUFBRSxTQUFTLEtBQUssR0FBSSxFQUFHO0FBQzFDLFVBQUUsRUFBRSxFQUFFO0FBQ04sZ0JBQVEsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMscUJBQXFCLEVBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxjQUFjLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLGNBQWMsRUFBQyxFQUFFLEVBQUMsc0JBQXNCLEVBQUMsRUFBRSxFQUFDLGVBQWUsRUFBQyxFQUFFLEVBQUMsZ0JBQWdCLEVBQUMsRUFBRSxFQUFDLFlBQVksRUFBQyxFQUFFLEVBQUMsMEJBQTBCLEVBQUMsRUFBRSxFQUFDLHNCQUFzQixFQUFDLEVBQUUsRUFBQyxpQkFBaUIsRUFBQyxFQUFFLEVBQUMsV0FBVyxFQUFDLEVBQUUsRUFBQyxlQUFlLEVBQUMsRUFBRSxFQUFDLFlBQVksRUFBQyxFQUFFLEVBQUMsYUFBYSxFQUFDLEVBQUUsRUFBQyxlQUFlLEVBQUMsRUFBRSxFQUFDLFlBQVksRUFBQyxFQUFFLEVBQUMsdUJBQXVCLEVBQUMsRUFBRSxFQUFDLG1CQUFtQixFQUFDLEVBQUUsRUFBQyxtQkFBbUIsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxjQUFjLEVBQUMsRUFBRSxFQUFDLHlCQUF5QixFQUFDLEVBQUUsRUFBQyxxQkFBcUIsRUFBQyxFQUFFLEVBQUMscUJBQXFCLEVBQUMsRUFBRSxFQUFDLGtCQUFrQixFQUFDLEVBQUUsRUFBQyxvQkFBb0IsRUFBQyxFQUFFLEVBQUMsOEJBQThCLEVBQUMsRUFBRSxFQUFDLDBCQUEwQixFQUFDLEVBQUUsRUFBQywwQkFBMEIsRUFBQyxFQUFFLEVBQUMsbUJBQW1CLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsY0FBYyxFQUFDLEVBQUUsRUFBQyxzQkFBc0IsRUFBQyxFQUFFLEVBQUMsZUFBZSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLHNCQUFzQixFQUFDLEVBQUUsRUFBQyxrQkFBa0IsRUFBQyxFQUFFLEVBQUMsZ0JBQWdCLEVBQUMsRUFBRSxFQUFDLHNCQUFzQixFQUFDLEVBQUUsRUFBQyxrQkFBa0IsRUFBQyxFQUFFLEVBQUMsaUJBQWlCLEVBQUMsRUFBRSxFQUFDLGNBQWMsRUFBQyxFQUFFLEVBQUMsYUFBYSxFQUFDLEVBQUUsRUFBQyxxQkFBcUIsRUFBQyxFQUFFLEVBQUMsaUJBQWlCLEVBQUMsRUFBRSxFQUFDLGtCQUFrQixFQUFDLEVBQUUsRUFBQyxvQkFBb0IsRUFBQyxFQUFFLEVBQUMsOEJBQThCLEVBQUMsRUFBRSxFQUFDLDBCQUEwQixFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsWUFBWSxFQUFDLEVBQUUsRUFBQyxtQkFBbUIsRUFBQyxFQUFFLEVBQUMsZUFBZSxFQUFDLEVBQUUsRUFBQyxhQUFhLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsdUJBQXVCLEVBQUMsRUFBRSxFQUFDLGFBQWEsRUFBQyxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLGFBQWEsRUFBQyxFQUFFLEVBQUMsbUJBQW1CLEVBQUMsRUFBRSxFQUFDLDhCQUE4QixFQUFDLEVBQUUsRUFBQyxvQkFBb0IsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFdBQVcsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLGNBQWMsRUFBQyxFQUFFLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUM7QUFDNW1ELGtCQUFVLEVBQUUsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxlQUFlLEVBQUMsRUFBRSxFQUFDLGdCQUFnQixFQUFDLEVBQUUsRUFBQyxpQkFBaUIsRUFBQyxFQUFFLEVBQUMsWUFBWSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLGNBQWMsRUFBQyxFQUFFLEVBQUMsb0JBQW9CLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsZUFBZSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLGdCQUFnQixFQUFDLEVBQUUsRUFBQyxpQkFBaUIsRUFBQyxFQUFFLEVBQUMsY0FBYyxFQUFDLEVBQUUsRUFBQyxvQkFBb0IsRUFBQyxFQUFFLEVBQUMsWUFBWSxFQUFDLEVBQUUsRUFBQyxhQUFhLEVBQUMsRUFBRSxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxtQkFBbUIsRUFBQyxFQUFFLEVBQUMsb0JBQW9CLEVBQUMsRUFBRSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLFdBQVcsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLEtBQUssRUFBQztBQUM1ZSxvQkFBWSxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEN
/***/ } ) ,
/***/ 9286 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
/* eslint-disable new-cap */
exports . _ _esModule = true ;
exports . print = print ;
exports . PrintVisitor = PrintVisitor ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _visitor = _ _nccwpck _require _ _ ( 4166 ) ;
var _visitor2 = _interopRequireDefault ( _visitor ) ;
function print ( ast ) {
return new PrintVisitor ( ) . accept ( ast ) ;
}
function PrintVisitor ( ) {
this . padding = 0 ;
}
PrintVisitor . prototype = new _visitor2 [ 'default' ] ( ) ;
PrintVisitor . prototype . pad = function ( string ) {
var out = '' ;
for ( var i = 0 , l = this . padding ; i < l ; i ++ ) {
out += ' ' ;
}
out += string + '\n' ;
return out ;
} ;
PrintVisitor . prototype . Program = function ( program ) {
var out = '' ,
body = program . body ,
i = undefined ,
l = undefined ;
if ( program . blockParams ) {
var blockParams = 'BLOCK PARAMS: [' ;
for ( i = 0 , l = program . blockParams . length ; i < l ; i ++ ) {
blockParams += ' ' + program . blockParams [ i ] ;
}
blockParams += ' ]' ;
out += this . pad ( blockParams ) ;
}
for ( i = 0 , l = body . length ; i < l ; i ++ ) {
out += this . accept ( body [ i ] ) ;
}
this . padding -- ;
return out ;
} ;
PrintVisitor . prototype . MustacheStatement = function ( mustache ) {
return this . pad ( '{{ ' + this . SubExpression ( mustache ) + ' }}' ) ;
} ;
PrintVisitor . prototype . Decorator = function ( mustache ) {
return this . pad ( '{{ DIRECTIVE ' + this . SubExpression ( mustache ) + ' }}' ) ;
} ;
PrintVisitor . prototype . BlockStatement = PrintVisitor . prototype . DecoratorBlock = function ( block ) {
var out = '' ;
out += this . pad ( ( block . type === 'DecoratorBlock' ? 'DIRECTIVE ' : '' ) + 'BLOCK:' ) ;
this . padding ++ ;
out += this . pad ( this . SubExpression ( block ) ) ;
if ( block . program ) {
out += this . pad ( 'PROGRAM:' ) ;
this . padding ++ ;
out += this . accept ( block . program ) ;
this . padding -- ;
}
if ( block . inverse ) {
if ( block . program ) {
this . padding ++ ;
}
out += this . pad ( '{{^}}' ) ;
this . padding ++ ;
out += this . accept ( block . inverse ) ;
this . padding -- ;
if ( block . program ) {
this . padding -- ;
}
}
this . padding -- ;
return out ;
} ;
PrintVisitor . prototype . PartialStatement = function ( partial ) {
var content = 'PARTIAL:' + partial . name . original ;
if ( partial . params [ 0 ] ) {
content += ' ' + this . accept ( partial . params [ 0 ] ) ;
}
if ( partial . hash ) {
content += ' ' + this . accept ( partial . hash ) ;
}
return this . pad ( '{{> ' + content + ' }}' ) ;
} ;
PrintVisitor . prototype . PartialBlockStatement = function ( partial ) {
var content = 'PARTIAL BLOCK:' + partial . name . original ;
if ( partial . params [ 0 ] ) {
content += ' ' + this . accept ( partial . params [ 0 ] ) ;
}
if ( partial . hash ) {
content += ' ' + this . accept ( partial . hash ) ;
}
content += ' ' + this . pad ( 'PROGRAM:' ) ;
this . padding ++ ;
content += this . accept ( partial . program ) ;
this . padding -- ;
return this . pad ( '{{> ' + content + ' }}' ) ;
} ;
PrintVisitor . prototype . ContentStatement = function ( content ) {
return this . pad ( "CONTENT[ '" + content . value + "' ]" ) ;
} ;
PrintVisitor . prototype . CommentStatement = function ( comment ) {
return this . pad ( "{{! '" + comment . value + "' }}" ) ;
} ;
PrintVisitor . prototype . SubExpression = function ( sexpr ) {
var params = sexpr . params ,
paramStrings = [ ] ,
hash = undefined ;
for ( var i = 0 , l = params . length ; i < l ; i ++ ) {
paramStrings . push ( this . accept ( params [ i ] ) ) ;
}
params = '[' + paramStrings . join ( ', ' ) + ']' ;
hash = sexpr . hash ? ' ' + this . accept ( sexpr . hash ) : '' ;
return this . accept ( sexpr . path ) + ' ' + params + hash ;
} ;
PrintVisitor . prototype . PathExpression = function ( id ) {
var path = id . parts . join ( '/' ) ;
return ( id . data ? '@' : '' ) + 'PATH:' + path ;
} ;
PrintVisitor . prototype . StringLiteral = function ( string ) {
return '"' + string . value + '"' ;
} ;
PrintVisitor . prototype . NumberLiteral = function ( number ) {
return 'NUMBER{' + number . value + '}' ;
} ;
PrintVisitor . prototype . BooleanLiteral = function ( bool ) {
return 'BOOLEAN{' + bool . value + '}' ;
} ;
PrintVisitor . prototype . UndefinedLiteral = function ( ) {
return 'UNDEFINED' ;
} ;
PrintVisitor . prototype . NullLiteral = function ( ) {
return 'NULL' ;
} ;
PrintVisitor . prototype . Hash = function ( hash ) {
var pairs = hash . pairs ,
joinedPairs = [ ] ;
for ( var i = 0 , l = pairs . length ; i < l ; i ++ ) {
joinedPairs . push ( this . accept ( pairs [ i ] ) ) ;
}
return 'HASH{' + joinedPairs . join ( ', ' ) + '}' ;
} ;
PrintVisitor . prototype . HashPair = function ( pair ) {
return pair . key + '=' + this . accept ( pair . value ) ;
} ;
/* eslint-enable new-cap */
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL3ByaW50ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozt1QkFDb0IsV0FBVzs7OztBQUV4QixTQUFTLEtBQUssQ0FBQyxHQUFHLEVBQUU7QUFDekIsU0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUN2Qzs7QUFFTSxTQUFTLFlBQVksR0FBRztBQUM3QixNQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztDQUNsQjs7QUFFRCxZQUFZLENBQUMsU0FBUyxHQUFHLDBCQUFhLENBQUM7O0FBRXZDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLFVBQVMsTUFBTSxFQUFFO0FBQzVDLE1BQUksR0FBRyxHQUFHLEVBQUUsQ0FBQzs7QUFFYixPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVDLE9BQUcsSUFBSSxJQUFJLENBQUM7R0FDYjs7QUFFRCxLQUFHLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztBQUNyQixTQUFPLEdBQUcsQ0FBQztDQUNaLENBQUM7O0FBRUYsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsVUFBUyxPQUFPLEVBQUU7QUFDakQsTUFBSSxHQUFHLEdBQUcsRUFBRTtNQUNWLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSTtNQUNuQixDQUFDLFlBQUE7TUFDRCxDQUFDLFlBQUEsQ0FBQzs7QUFFSixNQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUU7QUFDdkIsUUFBSSxXQUFXLEdBQUcsaUJBQWlCLENBQUM7QUFDcEMsU0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3RELGlCQUFXLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDN0M7QUFDRCxlQUFXLElBQUksSUFBSSxDQUFDO0FBQ3BCLE9BQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0dBQzlCOztBQUVELE9BQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLE9BQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0dBQzdCOztBQUVELE1BQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzs7QUFFZixTQUFPLEdBQUcsQ0FBQztDQUNaLENBQUM7O0FBRUYsWUFBWSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxVQUFTLFFBQVEsRUFBRTtBQUM1RCxTQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7Q0FDL0QsQ0FBQztBQUNGLFlBQVksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLFVBQVMsUUFBUSxFQUFFO0FBQ3BELFNBQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztDQUN6RSxDQUFDOztBQUVGLFlBQVksQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLFVBQzlFLEtBQUssRUFDTDtBQUNBLE1BQUksR0FBRyxHQUFHLEVBQUUsQ0FBQzs7QUFFYixLQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FDYixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEdBQUcsWUFBWSxHQUFHLEVBQUUsQ0FBQSxHQUFJLFFBQVEsQ0FDakUsQ0FBQztBQUNGLE1BQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNmLEtBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMzQyxNQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7QUFDakIsT0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDNUIsUUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2YsT0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2xDLFFBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztHQUNoQjtBQUNELE1BQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtBQUNqQixRQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7QUFDakIsVUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQ2hCO0FBQ0QsT0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekIsUUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2YsT0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2xDLFFBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNmLFFBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtBQUNqQixVQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDaEI7R0FDRjtBQUNELE1BQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzs7QUFFZixTQUFPLEdBQUcsQ0FBQztDQUNaLENBQUM7O0FBRUYsWUFBWSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFTLE9BQU8sRUFBRTtBQUMxRCxNQUFJLE9BQU8sR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDakQsTUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ3JCLFdBQU8sSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7R0FDakQ7QUFDRCxNQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7QUFDaEIsV0FBTyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUM1QztBQUNELFNBQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO0NBQzNDLENBQUM7QUFDRixZQUFZLENBQUMsU0FBUyxDQUFDLHFCQUFxQixHQUFHLFVBQVMsT0FBTyx
/***/ } ) ,
/***/ 4166 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _exception = _ _nccwpck _require _ _ ( 2879 ) ;
var _exception2 = _interopRequireDefault ( _exception ) ;
function Visitor ( ) {
this . parents = [ ] ;
}
Visitor . prototype = {
constructor : Visitor ,
mutating : false ,
// Visits a given value. If mutating, will replace the value if necessary.
acceptKey : function acceptKey ( node , name ) {
var value = this . accept ( node [ name ] ) ;
if ( this . mutating ) {
// Hacky sanity check: This may have a few false positives for type for the helper
// methods but will generally do the right thing without a lot of overhead.
if ( value && ! Visitor . prototype [ value . type ] ) {
throw new _exception2 [ 'default' ] ( 'Unexpected node type "' + value . type + '" found when accepting ' + name + ' on ' + node . type ) ;
}
node [ name ] = value ;
}
} ,
// Performs an accept operation with added sanity check to ensure
// required keys are not removed.
acceptRequired : function acceptRequired ( node , name ) {
this . acceptKey ( node , name ) ;
if ( ! node [ name ] ) {
throw new _exception2 [ 'default' ] ( node . type + ' requires ' + name ) ;
}
} ,
// Traverses a given array. If mutating, empty respnses will be removed
// for child elements.
acceptArray : function acceptArray ( array ) {
for ( var i = 0 , l = array . length ; i < l ; i ++ ) {
this . acceptKey ( array , i ) ;
if ( ! array [ i ] ) {
array . splice ( i , 1 ) ;
i -- ;
l -- ;
}
}
} ,
accept : function accept ( object ) {
if ( ! object ) {
return ;
}
/* istanbul ignore next: Sanity code */
if ( ! this [ object . type ] ) {
throw new _exception2 [ 'default' ] ( 'Unknown type: ' + object . type , object ) ;
}
if ( this . current ) {
this . parents . unshift ( this . current ) ;
}
this . current = object ;
var ret = this [ object . type ] ( object ) ;
this . current = this . parents . shift ( ) ;
if ( ! this . mutating || ret ) {
return ret ;
} else if ( ret !== false ) {
return object ;
}
} ,
Program : function Program ( program ) {
this . acceptArray ( program . body ) ;
} ,
MustacheStatement : visitSubExpression ,
Decorator : visitSubExpression ,
BlockStatement : visitBlock ,
DecoratorBlock : visitBlock ,
PartialStatement : visitPartial ,
PartialBlockStatement : function PartialBlockStatement ( partial ) {
visitPartial . call ( this , partial ) ;
this . acceptKey ( partial , 'program' ) ;
} ,
ContentStatement : function ContentStatement ( ) /* content */ { } ,
CommentStatement : function CommentStatement ( ) /* comment */ { } ,
SubExpression : visitSubExpression ,
PathExpression : function PathExpression ( ) /* path */ { } ,
StringLiteral : function StringLiteral ( ) /* string */ { } ,
NumberLiteral : function NumberLiteral ( ) /* number */ { } ,
BooleanLiteral : function BooleanLiteral ( ) /* bool */ { } ,
UndefinedLiteral : function UndefinedLiteral ( ) /* literal */ { } ,
NullLiteral : function NullLiteral ( ) /* literal */ { } ,
Hash : function Hash ( hash ) {
this . acceptArray ( hash . pairs ) ;
} ,
HashPair : function HashPair ( pair ) {
this . acceptRequired ( pair , 'value' ) ;
}
} ;
function visitSubExpression ( mustache ) {
this . acceptRequired ( mustache , 'path' ) ;
this . acceptArray ( mustache . params ) ;
this . acceptKey ( mustache , 'hash' ) ;
}
function visitBlock ( block ) {
visitSubExpression . call ( this , block ) ;
this . acceptKey ( block , 'program' ) ;
this . acceptKey ( block , 'inverse' ) ;
}
function visitPartial ( partial ) {
this . acceptRequired ( partial , 'name' ) ;
this . acceptArray ( partial . params ) ;
this . acceptKey ( partial , 'hash' ) ;
}
exports [ "default" ] = Visitor ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL3Zpc2l0b3IuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztBQUVwQyxTQUFTLE9BQU8sR0FBRztBQUNqQixNQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztDQUNuQjs7QUFFRCxPQUFPLENBQUMsU0FBUyxHQUFHO0FBQ2xCLGFBQVcsRUFBRSxPQUFPO0FBQ3BCLFVBQVEsRUFBRSxLQUFLOzs7QUFHZixXQUFTLEVBQUUsbUJBQVMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUM5QixRQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLFFBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTs7O0FBR2pCLFVBQUksS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDM0MsY0FBTSwyQkFDSix3QkFBd0IsR0FDdEIsS0FBSyxDQUFDLElBQUksR0FDVix5QkFBeUIsR0FDekIsSUFBSSxHQUNKLE1BQU0sR0FDTixJQUFJLENBQUMsSUFBSSxDQUNaLENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7S0FDcEI7R0FDRjs7OztBQUlELGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUNuQyxRQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs7QUFFM0IsUUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNmLFlBQU0sMkJBQWMsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7S0FDdEQ7R0FDRjs7OztBQUlELGFBQVcsRUFBRSxxQkFBUyxLQUFLLEVBQUU7QUFDM0IsU0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QyxVQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFFekIsVUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUNiLGFBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25CLFNBQUMsRUFBRSxDQUFDO0FBQ0osU0FBQyxFQUFFLENBQUM7T0FDTDtLQUNGO0dBQ0Y7O0FBRUQsUUFBTSxFQUFFLGdCQUFTLE1BQU0sRUFBRTtBQUN2QixRQUFJLENBQUMsTUFBTSxFQUFFO0FBQ1gsYUFBTztLQUNSOzs7QUFHRCxRQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUN0QixZQUFNLDJCQUFjLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDN0Q7O0FBRUQsUUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO0FBQ2hCLFVBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUNwQztBQUNELFFBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDOztBQUV0QixRQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDOztBQUVwQyxRQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7O0FBRXBDLFFBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEdBQUcsRUFBRTtBQUN6QixhQUFPLEdBQUcsQ0FBQztLQUNaLE1BQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO0FBQ3hCLGFBQU8sTUFBTSxDQUFDO0tBQ2Y7R0FDRjs7QUFFRCxTQUFPLEVBQUUsaUJBQVMsT0FBTyxFQUFFO0FBQ3pCLFFBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQ2hDOztBQUVELG1CQUFpQixFQUFFLGtCQUFrQjtBQUNyQyxXQUFTLEVBQUUsa0JBQWtCOztBQUU3QixnQkFBYyxFQUFFLFVBQVU7QUFDMUIsZ0JBQWMsRUFBRSxVQUFVOztBQUUxQixrQkFBZ0IsRUFBRSxZQUFZO0FBQzlCLHVCQUFxQixFQUFFLCtCQUFTLE9BQU8sRUFBRTtBQUN2QyxnQkFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7O0FBRWpDLFFBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3BDOztBQUVELGtCQUFnQixFQUFFLHlDQUF3QixFQUFFO0FBQzVDLGtCQUFnQixFQUFFLHlDQUF3QixFQUFFOztBQUU1QyxlQUFhLEVBQUUsa0JBQWtCOztBQUVqQyxnQkFBYyxFQUFFLG9DQUFxQixFQUFFOztBQUV2QyxlQUFhLEVBQUUscUNBQXVCLEVBQUU7QUFDeEMsZUFBYSxFQUFFLHFDQUF1QixFQUFFO0FBQ3hDLGdCQUFjLEVBQUUsb0NBQXFCLEVBQUU7QUFDdkMsa0JBQWdCLEVBQUUseUNBQXdCLEVBQUU7QUFDNUMsYUFBVyxFQUFFLG9DQUF3QixFQUFFOztBQUV2QyxNQUFJLEVBQUUsY0FBUyxJQUFJLEVBQUU7QUFDbkIsUUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7R0FDOUI7QUFDRCxVQUFRLEVBQUUsa0JBQVMsSUFBSSxFQUFFO0FBQ3ZCLFFBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0dBQ3BDO0NBQ0YsQ0FBQzs7QUFFRixTQUFTLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtBQUNwQyxNQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0QyxNQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQyxNQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztDQUNsQztBQUNELFNBQVMsVUFBVSxDQUFDLEtBQUssRUFBRTtBQUN6QixvQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDOztBQUVyQyxNQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNqQyxNQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztDQUNsQztBQUNELFNBQVMsWUFBWSxDQUFDLE9BQU8sRUFBRTtBQUM3QixNQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEN
/***/ } ) ,
/***/ 5200 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _visitor = _ _nccwpck _require _ _ ( 4166 ) ;
var _visitor2 = _interopRequireDefault ( _visitor ) ;
function WhitespaceControl ( ) {
var options = arguments . length <= 0 || arguments [ 0 ] === undefined ? { } : arguments [ 0 ] ;
this . options = options ;
}
WhitespaceControl . prototype = new _visitor2 [ 'default' ] ( ) ;
WhitespaceControl . prototype . Program = function ( program ) {
var doStandalone = ! this . options . ignoreStandalone ;
var isRoot = ! this . isRootSeen ;
this . isRootSeen = true ;
var body = program . body ;
for ( var i = 0 , l = body . length ; i < l ; i ++ ) {
var current = body [ i ] ,
strip = this . accept ( current ) ;
if ( ! strip ) {
continue ;
}
var _isPrevWhitespace = isPrevWhitespace ( body , i , isRoot ) ,
_isNextWhitespace = isNextWhitespace ( body , i , isRoot ) ,
openStandalone = strip . openStandalone && _isPrevWhitespace ,
closeStandalone = strip . closeStandalone && _isNextWhitespace ,
inlineStandalone = strip . inlineStandalone && _isPrevWhitespace && _isNextWhitespace ;
if ( strip . close ) {
omitRight ( body , i , true ) ;
}
if ( strip . open ) {
omitLeft ( body , i , true ) ;
}
if ( doStandalone && inlineStandalone ) {
omitRight ( body , i ) ;
if ( omitLeft ( body , i ) ) {
// If we are on a standalone node, save the indent info for partials
if ( current . type === 'PartialStatement' ) {
// Pull out the whitespace from the final line
current . indent = /([ \t]+$)/ . exec ( body [ i - 1 ] . original ) [ 1 ] ;
}
}
}
if ( doStandalone && openStandalone ) {
omitRight ( ( current . program || current . inverse ) . body ) ;
// Strip out the previous content node if it's whitespace only
omitLeft ( body , i ) ;
}
if ( doStandalone && closeStandalone ) {
// Always strip the next node
omitRight ( body , i ) ;
omitLeft ( ( current . inverse || current . program ) . body ) ;
}
}
return program ;
} ;
WhitespaceControl . prototype . BlockStatement = WhitespaceControl . prototype . DecoratorBlock = WhitespaceControl . prototype . PartialBlockStatement = function ( block ) {
this . accept ( block . program ) ;
this . accept ( block . inverse ) ;
// Find the inverse program that is involed with whitespace stripping.
var program = block . program || block . inverse ,
inverse = block . program && block . inverse ,
firstInverse = inverse ,
lastInverse = inverse ;
if ( inverse && inverse . chained ) {
firstInverse = inverse . body [ 0 ] . program ;
// Walk the inverse chain to find the last inverse that is actually in the chain.
while ( lastInverse . chained ) {
lastInverse = lastInverse . body [ lastInverse . body . length - 1 ] . program ;
}
}
var strip = {
open : block . openStrip . open ,
close : block . closeStrip . close ,
// Determine the standalone candiacy. Basically flag our content as being possibly standalone
// so our parent can determine if we actually are standalone
openStandalone : isNextWhitespace ( program . body ) ,
closeStandalone : isPrevWhitespace ( ( firstInverse || program ) . body )
} ;
if ( block . openStrip . close ) {
omitRight ( program . body , null , true ) ;
}
if ( inverse ) {
var inverseStrip = block . inverseStrip ;
if ( inverseStrip . open ) {
omitLeft ( program . body , null , true ) ;
}
if ( inverseStrip . close ) {
omitRight ( firstInverse . body , null , true ) ;
}
if ( block . closeStrip . open ) {
omitLeft ( lastInverse . body , null , true ) ;
}
// Find standalone else statments
if ( ! this . options . ignoreStandalone && isPrevWhitespace ( program . body ) && isNextWhitespace ( firstInverse . body ) ) {
omitLeft ( program . body ) ;
omitRight ( firstInverse . body ) ;
}
} else if ( block . closeStrip . open ) {
omitLeft ( program . body , null , true ) ;
}
return strip ;
} ;
WhitespaceControl . prototype . Decorator = WhitespaceControl . prototype . MustacheStatement = function ( mustache ) {
return mustache . strip ;
} ;
WhitespaceControl . prototype . PartialStatement = WhitespaceControl . prototype . CommentStatement = function ( node ) {
/* istanbul ignore next */
var strip = node . strip || { } ;
return {
inlineStandalone : true ,
open : strip . open ,
close : strip . close
} ;
} ;
function isPrevWhitespace ( body , i , isRoot ) {
if ( i === undefined ) {
i = body . length ;
}
// Nodes that end with newlines are considered whitespace (but are special
// cased for strip operations)
var prev = body [ i - 1 ] ,
sibling = body [ i - 2 ] ;
if ( ! prev ) {
return isRoot ;
}
if ( prev . type === 'ContentStatement' ) {
return ( sibling || ! isRoot ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/ ) . test ( prev . original ) ;
}
}
function isNextWhitespace ( body , i , isRoot ) {
if ( i === undefined ) {
i = - 1 ;
}
var next = body [ i + 1 ] ,
sibling = body [ i + 2 ] ;
if ( ! next ) {
return isRoot ;
}
if ( next . type === 'ContentStatement' ) {
return ( sibling || ! isRoot ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/ ) . test ( next . original ) ;
}
}
// Marks the node to the right of the position as omitted.
// I.e. {{foo}}' ' will mark the ' ' node as omitted.
//
// If i is undefined, then the first child will be marked as such.
//
// If mulitple is truthy then all whitespace will be stripped out until non-whitespace
// content is met.
function omitRight ( body , i , multiple ) {
var current = body [ i == null ? 0 : i + 1 ] ;
if ( ! current || current . type !== 'ContentStatement' || ! multiple && current . rightStripped ) {
return ;
}
var original = current . value ;
current . value = current . value . replace ( multiple ? /^\s+/ : /^[ \t]*\r?\n?/ , '' ) ;
current . rightStripped = current . value !== original ;
}
// Marks the node to the left of the position as omitted.
// I.e. ' '{{foo}} will mark the ' ' node as omitted.
//
// If i is undefined then the last child will be marked as such.
//
// If mulitple is truthy then all whitespace will be stripped out until non-whitespace
// content is met.
function omitLeft ( body , i , multiple ) {
var current = body [ i == null ? body . length - 1 : i - 1 ] ;
if ( ! current || current . type !== 'ContentStatement' || ! multiple && current . leftStripped ) {
return ;
}
// We omit the last node if it's whitespace only and not preceded by a non-content node.
var original = current . value ;
current . value = current . value . replace ( multiple ? /\s+$/ : /[ \t]+$/ , '' ) ;
current . leftStripped = current . value !== original ;
return current . leftStripped ;
}
exports [ "default" ] = WhitespaceControl ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL3doaXRlc3BhY2UtY29udHJvbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3VCQUFvQixXQUFXOzs7O0FBRS9CLFNBQVMsaUJBQWlCLEdBQWU7TUFBZCxPQUFPLHlEQUFHLEVBQUU7O0FBQ3JDLE1BQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0NBQ3hCO0FBQ0QsaUJBQWlCLENBQUMsU0FBUyxHQUFHLDBCQUFhLENBQUM7O0FBRTVDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsVUFBUyxPQUFPLEVBQUU7QUFDdEQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDOztBQUVwRCxNQUFJLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7QUFDOUIsTUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7O0FBRXZCLE1BQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7QUFDeEIsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUMzQyxRQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25CLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztBQUUvQixRQUFJLENBQUMsS0FBSyxFQUFFO0FBQ1YsZUFBUztLQUNWOztBQUVELFFBQUksaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDdkQsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDckQsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksaUJBQWlCO1FBQzFELGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJLGlCQUFpQjtRQUM1RCxnQkFBZ0IsR0FDZCxLQUFLLENBQUMsZ0JBQWdCLElBQUksaUJBQWlCLElBQUksaUJBQWlCLENBQUM7O0FBRXJFLFFBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtBQUNmLGVBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzFCO0FBQ0QsUUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO0FBQ2QsY0FBUSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDekI7O0FBRUQsUUFBSSxZQUFZLElBQUksZ0JBQWdCLEVBQUU7QUFDcEMsZUFBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFFbkIsVUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFOztBQUVyQixZQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUU7O0FBRXZDLGlCQUFPLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1RDtPQUNGO0tBQ0Y7QUFDRCxRQUFJLFlBQVksSUFBSSxjQUFjLEVBQUU7QUFDbEMsZUFBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFBLENBQUUsSUFBSSxDQUFDLENBQUM7OztBQUdyRCxjQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ25CO0FBQ0QsUUFBSSxZQUFZLElBQUksZUFBZSxFQUFFOztBQUVuQyxlQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDOztBQUVuQixjQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUEsQ0FBRSxJQUFJLENBQUMsQ0FBQztLQUNyRDtHQUNGOztBQUVELFNBQU8sT0FBTyxDQUFDO0NBQ2hCLENBQUM7O0FBRUYsaUJBQWlCLENBQUMsU0FBUyxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsR0FBRyxVQUM1SSxLQUFLLEVBQ0w7QUFDQSxNQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMzQixNQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzs7O0FBRzNCLE1BQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU87TUFDMUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU87TUFDeEMsWUFBWSxHQUFHLE9BQU87TUFDdEIsV0FBVyxHQUFHLE9BQU8sQ0FBQzs7QUFFeEIsTUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtBQUM5QixnQkFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDOzs7QUFHdkMsV0FBTyxXQUFXLENBQUMsT0FBTyxFQUFFO0FBQzFCLGlCQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7S0FDckU7R0FDRjs7QUFFRCxNQUFJLEtBQUssR0FBRztBQUNWLFFBQUksRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUk7QUFDMUIsU0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSzs7OztBQUk3QixrQkFBYyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7QUFDOUMsbUJBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUEsQ0FBRSxJQUFJLENBQUM7R0FDbEUsQ0FBQzs7QUFFRixNQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO0FBQ3pCLGFBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztHQUNyQzs7QUFFRCxNQUFJLE9BQU8sRUFBRTtBQUNYLFFBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7O0FBRXRDLFFBQUksWUFBWSxDQUFDLElBQUksRUFBRTtBQUNyQixjQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDcEM7O0FBRUQsUUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFO0FBQ3RCLGVBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSx
/***/ } ) ,
/***/ 4168 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
exports . registerDefaultDecorators = registerDefaultDecorators ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _decoratorsInline = _ _nccwpck _require _ _ ( 975 ) ;
var _decoratorsInline2 = _interopRequireDefault ( _decoratorsInline ) ;
function registerDefaultDecorators ( instance ) {
_decoratorsInline2 [ 'default' ] ( instance ) ;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG4iXX0=
/***/ } ) ,
/***/ 975 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
exports [ "default" ] = function ( instance ) {
instance . registerDecorator ( 'inline' , function ( fn , props , container , options ) {
var ret = fn ;
if ( ! props . partials ) {
props . partials = { } ;
ret = function ( context , options ) {
// Create a new partials stack frame prior to exec.
var original = container . partials ;
container . partials = _utils . extend ( { } , original , props . partials ) ;
var ret = fn ( context , options ) ;
container . partials = original ;
return ret ;
} ;
}
props . partials [ options . args [ 0 ] ] = options . fn ;
return ret ;
} ) ;
} ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXVCLFVBQVU7O3FCQUVsQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uKGZuLCBwcm9wcywgY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IHJldCA9IGZuO1xuICAgIGlmICghcHJvcHMucGFydGlhbHMpIHtcbiAgICAgIHByb3BzLnBhcnRpYWxzID0ge307XG4gICAgICByZXQgPSBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBwYXJ0aWFscyBzdGFjayBmcmFtZSBwcmlvciB0byBleGVjLlxuICAgICAgICBsZXQgb3JpZ2luYWwgPSBjb250YWluZXIucGFydGlhbHM7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgbGV0IHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==
/***/ } ) ,
/***/ 2879 :
/***/ ( ( module , exports ) => {
"use strict" ;
exports . _ _esModule = true ;
var errorProps = [ 'description' , 'fileName' , 'lineNumber' , 'endLineNumber' , 'message' , 'name' , 'number' , 'stack' ] ;
function Exception ( message , node ) {
var loc = node && node . loc ,
line = undefined ,
endLineNumber = undefined ,
column = undefined ,
endColumn = undefined ;
if ( loc ) {
line = loc . start . line ;
endLineNumber = loc . end . line ;
column = loc . start . column ;
endColumn = loc . end . column ;
message += ' - ' + line + ':' + column ;
}
var tmp = Error . prototype . constructor . call ( this , message ) ;
// Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
for ( var idx = 0 ; idx < errorProps . length ; idx ++ ) {
this [ errorProps [ idx ] ] = tmp [ errorProps [ idx ] ] ;
}
/* istanbul ignore else */
if ( Error . captureStackTrace ) {
Error . captureStackTrace ( this , Exception ) ;
}
try {
if ( loc ) {
this . lineNumber = line ;
this . endLineNumber = endLineNumber ;
// Work around issue under safari where we can't directly set the column value
/* istanbul ignore next */
if ( Object . defineProperty ) {
Object . defineProperty ( this , 'column' , {
value : column ,
enumerable : true
} ) ;
Object . defineProperty ( this , 'endColumn' , {
value : endColumn ,
enumerable : true
} ) ;
} else {
this . column = column ;
this . endColumn = endColumn ;
}
}
} catch ( nop ) {
/* Ignore if the browser is very particular */
}
}
Exception . prototype = new Error ( ) ;
exports [ "default" ] = Exception ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFVBQVUsR0FBRyxDQUNqQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxDQUNSLENBQUM7O0FBRUYsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDeEIsSUFBSSxZQUFBO01BQ0osYUFBYSxZQUFBO01BQ2IsTUFBTSxZQUFBO01BQ04sU0FBUyxZQUFBLENBQUM7O0FBRVosTUFBSSxHQUFHLEVBQUU7QUFDUCxRQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsaUJBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM3QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUIsYUFBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDOztBQUUzQixXQUFPLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0dBQ3hDOztBQUVELE1BQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7OztBQUcxRCxPQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNoRCxRQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzlDOzs7QUFHRCxNQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixTQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDOztBQUVELE1BQUk7QUFDRixRQUFJLEdBQUcsRUFBRTtBQUNQLFVBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDOzs7O0FBSW5DLFVBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtBQUN6QixjQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsZUFBSyxFQUFFLE1BQU07QUFDYixvQkFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0FBQ0gsY0FBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3ZDLGVBQUssRUFBRSxTQUFTO0FBQ2hCLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsWUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7T0FDNUI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVycm9yUHJvcHMgPSBbXG4gICdkZXNjcmlwdGlvbicsXG4gICdmaWxlTmFtZScsXG4gICdsaW5lTnVtYmVyJyxcbiAgJ2VuZExpbmVOdW1iZXInLFxuICAnbWVzc2FnZScsXG4gICduYW1lJyxcbiAgJ251bWJlcicsXG4gICdzdGFjaydcbl07XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgIGxpbmUsXG4gICAgZW5kTGluZU51bWJlcixcbiAgICBjb2x1bW4sXG4gICAgZW5kQ29sdW1uO1xuXG4gIGlmIChsb2MpIHtcbiAgICBsaW5lID0gbG9jLnN0YXJ0LmxpbmU7XG4gICAgZW5kTGluZU51bWJlciA9IGxvYy5lbmQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuICAgIGVuZENvbHVtbiA9IGxvYy5lbmQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgIHRoaXMuZW5kTGluZU51bWJlciA9IGVuZExpbmVOdW1iZXI7XG5cbiAgICAgIC8vIFdvcmsgYXJvdW5kIGlzc3VlIHVuZGVyIHNhZmFyaSB3aGVyZSB3ZSBjYW4ndCBkaXJlY3RseSBzZXQgdGhlIGNvbHVtbiB2YWx1ZVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdjb2x1bW4nLCB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbixcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2VuZENvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogZW5kQ29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5lbmRDb2x1bW4gPSBlbmRDb2x1bW47XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGN
/***/ } ) ,
/***/ 3066 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
exports . registerDefaultHelpers = registerDefaultHelpers ;
exports . moveHelperToHooks = moveHelperToHooks ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _helpersBlockHelperMissing = _ _nccwpck _require _ _ ( 6247 ) ;
var _helpersBlockHelperMissing2 = _interopRequireDefault ( _helpersBlockHelperMissing ) ;
var _helpersEach = _ _nccwpck _require _ _ ( 9052 ) ;
var _helpersEach2 = _interopRequireDefault ( _helpersEach ) ;
var _helpersHelperMissing = _ _nccwpck _require _ _ ( 8950 ) ;
var _helpersHelperMissing2 = _interopRequireDefault ( _helpersHelperMissing ) ;
var _helpersIf = _ _nccwpck _require _ _ ( 2767 ) ;
var _helpersIf2 = _interopRequireDefault ( _helpersIf ) ;
var _helpersLog = _ _nccwpck _require _ _ ( 9072 ) ;
var _helpersLog2 = _interopRequireDefault ( _helpersLog ) ;
var _helpersLookup = _ _nccwpck _require _ _ ( 8168 ) ;
var _helpersLookup2 = _interopRequireDefault ( _helpersLookup ) ;
var _helpersWith = _ _nccwpck _require _ _ ( 9150 ) ;
var _helpersWith2 = _interopRequireDefault ( _helpersWith ) ;
function registerDefaultHelpers ( instance ) {
_helpersBlockHelperMissing2 [ 'default' ] ( instance ) ;
_helpersEach2 [ 'default' ] ( instance ) ;
_helpersHelperMissing2 [ 'default' ] ( instance ) ;
_helpersIf2 [ 'default' ] ( instance ) ;
_helpersLog2 [ 'default' ] ( instance ) ;
_helpersLookup2 [ 'default' ] ( instance ) ;
_helpersWith2 [ 'default' ] ( instance ) ;
}
function moveHelperToHooks ( instance , helperName , keepHelper ) {
if ( instance . helpers [ helperName ] ) {
instance . hooks [ helperName ] = instance . helpers [ helperName ] ;
if ( ! keepHelper ) {
delete instance . helpers [ helperName ] ;
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3lDQUF1QyxnQ0FBZ0M7Ozs7MkJBQzlDLGdCQUFnQjs7OztvQ0FDUCwwQkFBMEI7Ozs7eUJBQ3JDLGNBQWM7Ozs7MEJBQ2IsZUFBZTs7Ozs2QkFDWixrQkFBa0I7Ozs7MkJBQ3BCLGdCQUFnQjs7OztBQUVsQyxTQUFTLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtBQUMvQyx5Q0FBMkIsUUFBUSxDQUFDLENBQUM7QUFDckMsMkJBQWEsUUFBUSxDQUFDLENBQUM7QUFDdkIsb0NBQXNCLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLHlCQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQ3JCLDBCQUFZLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLDZCQUFlLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLDJCQUFhLFFBQVEsQ0FBQyxDQUFDO0NBQ3hCOztBQUVNLFNBQVMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDbEUsTUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2hDLFlBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxRCxRQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsYUFBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JDO0dBQ0Y7Q0FDRiIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9ibG9jay1oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJFYWNoIGZyb20gJy4vaGVscGVycy9lYWNoJztcbmltcG9ydCByZWdpc3RlckhlbHBlck1pc3NpbmcgZnJvbSAnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJztcbmltcG9ydCByZWdpc3RlcklmIGZyb20gJy4vaGVscGVycy9pZic7XG5pbXBvcnQgcmVnaXN0ZXJMb2cgZnJvbSAnLi9oZWxwZXJzL2xvZyc7XG5pbXBvcnQgcmVnaXN0ZXJMb29rdXAgZnJvbSAnLi9oZWxwZXJzL2xvb2t1cCc7XG5pbXBvcnQgcmVnaXN0ZXJXaXRoIGZyb20gJy4vaGVscGVycy93aXRoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnMoaW5zdGFuY2UpIHtcbiAgcmVnaXN0ZXJCbG9ja0hlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlckVhY2goaW5zdGFuY2UpO1xuICByZWdpc3RlckhlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlcklmKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb2coaW5zdGFuY2UpO1xuICByZWdpc3Rlckxvb2t1cChpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyV2l0aChpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSGVscGVyVG9Ib29rcyhpbnN0YW5jZSwgaGVscGVyTmFtZSwga2VlcEhlbHBlcikge1xuICBpZiAoaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXSkge1xuICAgIGluc3RhbmNlLmhvb2tzW2hlbHBlck5hbWVdID0gaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICBpZiAoIWtlZXBIZWxwZXIpIHtcbiAgICAgIGRlbGV0ZSBpbnN0YW5jZS5oZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIH1cbiAgfVxufVxuIl19
/***/ } ) ,
/***/ 6247 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
exports [ "default" ] = function ( instance ) {
instance . registerHelper ( 'blockHelperMissing' , function ( context , options ) {
var inverse = options . inverse ,
fn = options . fn ;
if ( context === true ) {
return fn ( this ) ;
} else if ( context === false || context == null ) {
return inverse ( this ) ;
} else if ( _utils . isArray ( context ) ) {
if ( context . length > 0 ) {
if ( options . ids ) {
options . ids = [ options . name ] ;
}
return instance . helpers . each ( context , options ) ;
} else {
return inverse ( this ) ;
}
} else {
if ( options . data && options . ids ) {
var data = _utils . createFrame ( options . data ) ;
data . contextPath = _utils . appendContextPath ( options . data . contextPath , options . name ) ;
options = { data : data } ;
}
return fn ( context , options ) ;
}
} ) ;
} ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBd0QsVUFBVTs7cUJBRW5ELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVsQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztBQUNGLGVBQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUMxQjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZENvbnRleHRQYXRoLCBjcmVhdGVGcmFtZSwgaXNBcnJheSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBsZXQgaW52ZXJzZSA9IG9wdGlvbnMuaW52ZXJzZSxcbiAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
/***/ } ) ,
/***/ 9052 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
var _exception = _ _nccwpck _require _ _ ( 2879 ) ;
var _exception2 = _interopRequireDefault ( _exception ) ;
exports [ "default" ] = function ( instance ) {
instance . registerHelper ( 'each' , function ( context , options ) {
if ( ! options ) {
throw new _exception2 [ 'default' ] ( 'Must pass iterator to #each' ) ;
}
var fn = options . fn ,
inverse = options . inverse ,
i = 0 ,
ret = '' ,
data = undefined ,
contextPath = undefined ;
if ( options . data && options . ids ) {
contextPath = _utils . appendContextPath ( options . data . contextPath , options . ids [ 0 ] ) + '.' ;
}
if ( _utils . isFunction ( context ) ) {
context = context . call ( this ) ;
}
if ( options . data ) {
data = _utils . createFrame ( options . data ) ;
}
function execIteration ( field , index , last ) {
if ( data ) {
data . key = field ;
data . index = index ;
data . first = index === 0 ;
data . last = ! ! last ;
if ( contextPath ) {
data . contextPath = contextPath + field ;
}
}
ret = ret + fn ( context [ field ] , {
data : data ,
blockParams : _utils . blockParams ( [ context [ field ] , field ] , [ contextPath + field , null ] )
} ) ;
}
if ( context && typeof context === 'object' ) {
if ( _utils . isArray ( context ) ) {
for ( var j = context . length ; i < j ; i ++ ) {
if ( i in context ) {
execIteration ( i , i , i === context . length - 1 ) ;
}
}
} else if ( global . Symbol && context [ global . Symbol . iterator ] ) {
var newContext = [ ] ;
var iterator = context [ global . Symbol . iterator ] ( ) ;
for ( var it = iterator . next ( ) ; ! it . done ; it = iterator . next ( ) ) {
newContext . push ( it . value ) ;
}
context = newContext ;
for ( var j = context . length ; i < j ; i ++ ) {
execIteration ( i , i , i === context . length - 1 ) ;
}
} else {
( function ( ) {
var priorKey = undefined ;
Object . keys ( context ) . forEach ( function ( key ) {
// We're running the iterations one step out of sync so we can detect
// the last iteration without have to scan the object twice and create
// an itermediate keys array.
if ( priorKey !== undefined ) {
execIteration ( priorKey , i - 1 ) ;
}
priorKey = key ;
i ++ ;
} ) ;
if ( priorKey !== undefined ) {
execIteration ( priorKey , i - 1 , true ) ;
}
} ) ( ) ;
}
}
if ( i === 0 ) {
ret = inverse ( this ) ;
}
return ret ;
} ) ;
} ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osWUFBTSwyQkFBYyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3BEOztBQUVELFFBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUN6QixDQUFDLEdBQUcsQ0FBQztRQUNMLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxZQUFBO1FBQ0osV0FBVyxZQUFBLENBQUM7O0FBRWQsUUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDL0IsaUJBQVcsR0FDVCx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNyRTs7QUFFRCxRQUFJLGtCQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3ZCLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCOztBQUVELFFBQUksT0FBTyxDQUFDLElBQUksRUFBRTtBQUNoQixVQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDOztBQUVELGFBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFVBQUksSUFBSSxFQUFFO0FBQ1IsWUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDakIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzs7QUFFbkIsWUFBSSxXQUFXLEVBQUU7QUFDZixjQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDeEM7T0FDRjs7QUFFRCxTQUFHLEdBQ0QsR0FBRyxHQUNILEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUNYLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUN2QixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzVCO09BQ0YsQ0FBQyxDQUFDO0tBQ047O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtBQUMzRCxZQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsWUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUNuRCxhQUFLLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtBQUM3RCxvQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7QUFDRCxlQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3JCLGFBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztPQUNGLE1BQU07O0FBQ0wsY0FBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLEVBQUk7Ozs7QUFJbEMsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0wsQ0FBQyxDQUFDO0FBQ0gsY0FBSSxRQUFRLEtBQUssU0FBUyxFQUFFO0FBQzFCLHlCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7V0FDdEM7O09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwcGVuZENvbnRleHRQYXRoLFxuICBibG9ja1BhcmFtcyxcbiAgY3JlYXRlRnJhbWUsXG4gIGlzQXJyYXksXG4gIGlzRnVuY3Rpb25cbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICBpbnZlcnNlID0gb3B0aW9ucy5pbnZlcnNlLFx
/***/ } ) ,
/***/ 8950 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _exception = _ _nccwpck _require _ _ ( 2879 ) ;
var _exception2 = _interopRequireDefault ( _exception ) ;
exports [ "default" ] = function ( instance ) {
instance . registerHelper ( 'helperMissing' , function ( ) /* [args, ]options */ {
if ( arguments . length === 1 ) {
// A missing field in a {{foo}} construct.
return undefined ;
} else {
// Someone is actually trying to call something, blow up.
throw new _exception2 [ 'default' ] ( 'Missing helper: "' + arguments [ arguments . length - 1 ] . name + '"' ) ;
}
} ) ;
} ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFDSixtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUNqRSxDQUFDO0tBQ0g7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oXG4gICAgICAgICdNaXNzaW5nIGhlbHBlcjogXCInICsgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXS5uYW1lICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19
/***/ } ) ,
/***/ 2767 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
var _exception = _ _nccwpck _require _ _ ( 2879 ) ;
var _exception2 = _interopRequireDefault ( _exception ) ;
exports [ "default" ] = function ( instance ) {
instance . registerHelper ( 'if' , function ( conditional , options ) {
if ( arguments . length != 2 ) {
throw new _exception2 [ 'default' ] ( '#if requires exactly one argument' ) ;
}
if ( _utils . isFunction ( conditional ) ) {
conditional = conditional . call ( this ) ;
}
// Default behavior is to render the positive path if the value is truthy and not empty.
// The `includeZero` option may be set to treat the condtional as purely not empty based on the
// behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.
if ( ! options . hash . includeZero && ! conditional || _utils . isEmpty ( conditional ) ) {
return options . inverse ( this ) ;
} else {
return options . fn ( this ) ;
}
} ) ;
instance . registerHelper ( 'unless' , function ( conditional , options ) {
if ( arguments . length != 2 ) {
throw new _exception2 [ 'default' ] ( '#unless requires exactly one argument' ) ;
}
return instance . helpers [ 'if' ] . call ( this , conditional , {
fn : options . inverse ,
inverse : options . fn ,
hash : options . hash
} ) ;
} ) ;
} ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztxQkFBb0MsVUFBVTs7eUJBQ3hCLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztLQUMxRDtBQUNELFFBQUksa0JBQVcsV0FBVyxDQUFDLEVBQUU7QUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOzs7OztBQUtELFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFFBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDekIsWUFBTSwyQkFBYyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzlEO0FBQ0QsV0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFFBQUUsRUFBRSxPQUFPLENBQUMsT0FBTztBQUNuQixhQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDbkIsVUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSwgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2lmJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjaWYgcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oY29uZGl0aW9uYWwpKSB7XG4gICAgICBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5kZXIgdGhlIHBvc2l0aXZlIHBhdGggaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBhbmQgbm90IGVtcHR5LlxuICAgIC8vIFRoZSBgaW5jbHVkZVplcm9gIG9wdGlvbiBtYXkgYmUgc2V0IHRvIHRyZWF0IHRoZSBjb25kdGlvbmFsIGFzIHB1cmVseSBub3QgZW1wdHkgYmFzZWQgb24gdGhlXG4gICAgLy8gYmVoYXZpb3Igb2YgaXNFbXB0eS4gRWZmZWN0aXZlbHkgdGhpcyBkZXRlcm1pbmVzIGlmIDAgaXMgaGFuZGxlZCBieSB0aGUgcG9zaXRpdmUgcGF0aCBvciBuZWdhdGl2ZS5cbiAgICBpZiAoKCFvcHRpb25zLmhhc2guaW5jbHVkZVplcm8gJiYgIWNvbmRpdGlvbmFsKSB8fCBpc0VtcHR5KGNvbmRpdGlvbmFsKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuaW52ZXJzZSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuZm4odGhpcyk7XG4gICAgfVxuICB9KTtcblxuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcigndW5sZXNzJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufVxuIl19
/***/ } ) ,
/***/ 9072 :
/***/ ( ( module , exports ) => {
"use strict" ;
exports . _ _esModule = true ;
exports [ "default" ] = function ( instance ) {
instance . registerHelper ( 'log' , function ( ) /* message, options */ {
var args = [ undefined ] ,
options = arguments [ arguments . length - 1 ] ;
for ( var i = 0 ; i < arguments . length - 1 ; i ++ ) {
args . push ( arguments [ i ] ) ;
}
var level = 1 ;
if ( options . hash . level != null ) {
level = options . hash . level ;
} else if ( options . data && options . data . level != null ) {
level = options . data . level ;
}
args [ 0 ] = level ;
instance . log . apply ( instance , args ) ;
} ) ;
} ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVEsSUFBSSxDQUFDLENBQUM7R0FDdkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgb3B0aW9ucyA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICB9XG5cbiAgICBsZXQgbGV2ZWwgPSAxO1xuICAgIGlmIChvcHRpb25zLmhhc2gubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmhhc2gubGV2ZWw7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhLmxldmVsICE9IG51bGwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5kYXRhLmxldmVsO1xuICAgIH1cbiAgICBhcmdzWzBdID0gbGV2ZWw7XG5cbiAgICBpbnN0YW5jZS5sb2coLi4uYXJncyk7XG4gIH0pO1xufVxuIl19
/***/ } ) ,
/***/ 8168 :
/***/ ( ( module , exports ) => {
"use strict" ;
exports . _ _esModule = true ;
exports [ "default" ] = function ( instance ) {
instance . registerHelper ( 'lookup' , function ( obj , field , options ) {
if ( ! obj ) {
// Note for 5.0: Change to "obj == null" in 5.0
return obj ;
}
return options . lookupProperty ( obj , field ) ;
} ) ;
} ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUM5RCxRQUFJLENBQUMsR0FBRyxFQUFFOztBQUVSLGFBQU8sR0FBRyxDQUFDO0tBQ1o7QUFDRCxXQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6Imxvb2t1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdsb29rdXAnLCBmdW5jdGlvbihvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn1cbiJdfQ==
/***/ } ) ,
/***/ 9150 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
var _exception = _ _nccwpck _require _ _ ( 2879 ) ;
var _exception2 = _interopRequireDefault ( _exception ) ;
exports [ "default" ] = function ( instance ) {
instance . registerHelper ( 'with' , function ( context , options ) {
if ( arguments . length != 2 ) {
throw new _exception2 [ 'default' ] ( '#with requires exactly one argument' ) ;
}
if ( _utils . isFunction ( context ) ) {
context = context . call ( this ) ;
}
var fn = options . fn ;
if ( ! _utils . isEmpty ( context ) ) {
var data = options . data ;
if ( options . data && options . ids ) {
data = _utils . createFrame ( options . data ) ;
data . contextPath = _utils . appendContextPath ( options . data . contextPath , options . ids [ 0 ] ) ;
}
return fn ( context , {
data : data ,
blockParams : _utils . blockParams ( [ context ] , [ data && data . contextPath ] )
} ) ;
} else {
return options . inverse ( this ) ;
}
} ) ;
} ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMscUNBQXFDLENBQUMsQ0FBQztLQUM1RDtBQUNELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFDdkIsYUFBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7QUFFcEIsUUFBSSxDQUFDLGVBQVEsT0FBTyxDQUFDLEVBQUU7QUFDckIsVUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QixVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUksQ0FBQyxXQUFXLEdBQUcseUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7T0FDSDs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO09BQ2hFLENBQUMsQ0FBQztLQUNKLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJ3aXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwZW5kQ29udGV4dFBhdGgsXG4gIGJsb2NrUGFyYW1zLFxuICBjcmVhdGVGcmFtZSxcbiAgaXNFbXB0eSxcbiAgaXNGdW5jdGlvblxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCd3aXRoJywgZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJyN3aXRoIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG5cbiAgICBpZiAoIWlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLmlkc1swXVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwge1xuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=
/***/ } ) ,
/***/ 6025 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
exports . createNewLookupObject = createNewLookupObject ;
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
/ * *
* Create a new object with "null" - prototype to avoid truthy results on prototype properties .
* The resulting object can be used with "object[property]" to check if a property exists
* @ param { ... object } sources a varargs parameter of source objects that will be merged
* @ returns { object }
* /
function createNewLookupObject ( ) {
for ( var _len = arguments . length , sources = Array ( _len ) , _key = 0 ; _key < _len ; _key ++ ) {
sources [ _key ] = arguments [ _key ] ;
}
return _utils . extend . apply ( undefined , [ Object . create ( null ) ] . concat ( sources ) ) ;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztxQkFBdUIsVUFBVTs7Ozs7Ozs7O0FBUTFCLFNBQVMscUJBQXFCLEdBQWE7b0NBQVQsT0FBTztBQUFQLFdBQU87OztBQUM5QyxTQUFPLGdDQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQUssT0FBTyxFQUFDLENBQUM7Q0FDaEQiLCJmaWxlIjoiY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBvYmplY3Qgd2l0aCBcIm51bGxcIi1wcm90b3R5cGUgdG8gYXZvaWQgdHJ1dGh5IHJlc3VsdHMgb24gcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKiBUaGUgcmVzdWx0aW5nIG9iamVjdCBjYW4gYmUgdXNlZCB3aXRoIFwib2JqZWN0W3Byb3BlcnR5XVwiIHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzXG4gKiBAcGFyYW0gey4uLm9iamVjdH0gc291cmNlcyBhIHZhcmFyZ3MgcGFyYW1ldGVyIG9mIHNvdXJjZSBvYmplY3RzIHRoYXQgd2lsbCBiZSBtZXJnZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoLi4uc291cmNlcykge1xuICByZXR1cm4gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIC4uLnNvdXJjZXMpO1xufVxuIl19
/***/ } ) ,
/***/ 6066 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
exports . createProtoAccessControl = createProtoAccessControl ;
exports . resultIsAllowed = resultIsAllowed ;
exports . resetLoggedProperties = resetLoggedProperties ;
// istanbul ignore next
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj [ 'default' ] = obj ; return newObj ; } }
var _createNewLookupObject = _ _nccwpck _require _ _ ( 6025 ) ;
var _logger = _ _nccwpck _require _ _ ( 7142 ) ;
var logger = _interopRequireWildcard ( _logger ) ;
var loggedProperties = Object . create ( null ) ;
function createProtoAccessControl ( runtimeOptions ) {
var defaultMethodWhiteList = Object . create ( null ) ;
defaultMethodWhiteList [ 'constructor' ] = false ;
defaultMethodWhiteList [ '__defineGetter__' ] = false ;
defaultMethodWhiteList [ '__defineSetter__' ] = false ;
defaultMethodWhiteList [ '__lookupGetter__' ] = false ;
var defaultPropertyWhiteList = Object . create ( null ) ;
// eslint-disable-next-line no-proto
defaultPropertyWhiteList [ '__proto__' ] = false ;
return {
properties : {
whitelist : _createNewLookupObject . createNewLookupObject ( defaultPropertyWhiteList , runtimeOptions . allowedProtoProperties ) ,
defaultValue : runtimeOptions . allowProtoPropertiesByDefault
} ,
methods : {
whitelist : _createNewLookupObject . createNewLookupObject ( defaultMethodWhiteList , runtimeOptions . allowedProtoMethods ) ,
defaultValue : runtimeOptions . allowProtoMethodsByDefault
}
} ;
}
function resultIsAllowed ( result , protoAccessControl , propertyName ) {
if ( typeof result === 'function' ) {
return checkWhiteList ( protoAccessControl . methods , propertyName ) ;
} else {
return checkWhiteList ( protoAccessControl . properties , propertyName ) ;
}
}
function checkWhiteList ( protoAccessControlForType , propertyName ) {
if ( protoAccessControlForType . whitelist [ propertyName ] !== undefined ) {
return protoAccessControlForType . whitelist [ propertyName ] === true ;
}
if ( protoAccessControlForType . defaultValue !== undefined ) {
return protoAccessControlForType . defaultValue ;
}
logUnexpecedPropertyAccessOnce ( propertyName ) ;
return false ;
}
function logUnexpecedPropertyAccessOnce ( propertyName ) {
if ( loggedProperties [ propertyName ] !== true ) {
loggedProperties [ propertyName ] = true ;
logger . log ( 'error' , 'Handlebars: Access has been denied to resolve the property "' + propertyName + '" because it is not an "own property" of its parent.\n' + 'You can add a runtime option to disable the check or this warning:\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details' ) ;
}
}
function resetLoggedProperties ( ) {
Object . keys ( loggedProperties ) . forEach ( function ( propertyName ) {
delete loggedProperties [ propertyName ] ;
} ) ;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3Byb3RvLWFjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3FDQUFzQyw0QkFBNEI7O3NCQUMxQyxXQUFXOztJQUF2QixNQUFNOztBQUVsQixJQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRXRDLFNBQVMsd0JBQXdCLENBQUMsY0FBYyxFQUFFO0FBQ3ZELE1BQUksc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRCx3QkFBc0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDOUMsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbkQsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbkQsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRW5ELE1BQUksd0JBQXdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFbkQsMEJBQXdCLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDOztBQUU5QyxTQUFPO0FBQ0wsY0FBVSxFQUFFO0FBQ1YsZUFBUyxFQUFFLDZDQUNULHdCQUF3QixFQUN4QixjQUFjLENBQUMsc0JBQXNCLENBQ3RDO0FBQ0Qsa0JBQVksRUFBRSxjQUFjLENBQUMsNkJBQTZCO0tBQzNEO0FBQ0QsV0FBTyxFQUFFO0FBQ1AsZUFBUyxFQUFFLDZDQUNULHNCQUFzQixFQUN0QixjQUFjLENBQUMsbUJBQW1CLENBQ25DO0FBQ0Qsa0JBQVksRUFBRSxjQUFjLENBQUMsMEJBQTBCO0tBQ3hEO0dBQ0YsQ0FBQztDQUNIOztBQUVNLFNBQVMsZUFBZSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7QUFDeEUsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7QUFDaEMsV0FBTyxjQUFjLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0dBQ2pFLE1BQU07QUFDTCxXQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDcEU7Q0FDRjs7QUFFRCxTQUFTLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLEVBQUU7QUFDL0QsTUFBSSx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFO0FBQ25FLFdBQU8seUJBQXlCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQztHQUNuRTtBQUNELE1BQUkseUJBQXlCLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtBQUN4RCxXQUFPLHlCQUF5QixDQUFDLFlBQVksQ0FBQztHQUMvQztBQUNELGdDQUE4QixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzdDLFNBQU8sS0FBSyxDQUFDO0NBQ2Q7O0FBRUQsU0FBUyw4QkFBOEIsQ0FBQyxZQUFZLEVBQUU7QUFDcEQsTUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLEVBQUU7QUFDM0Msb0JBQWdCLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLFVBQU0sQ0FBQyxHQUFHLENBQ1IsT0FBTyxFQUNQLGlFQUErRCxZQUFZLG9JQUNILG9IQUMyQyxDQUNwSCxDQUFDO0dBQ0g7Q0FDRjs7QUFFTSxTQUFTLHFCQUFxQixHQUFHO0FBQ3RDLFFBQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxZQUFZLEVBQUk7QUFDcEQsV0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztHQUN2QyxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJwcm90by1hY2Nlc3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVOZXdMb29rdXBPYmplY3QgfSBmcm9tICcuL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdCc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcblxuY29uc3QgbG9nZ2VkUHJvcGVydGllcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm90b0FjY2Vzc0NvbnRyb2wocnVudGltZU9wdGlvbnMpIHtcbiAgbGV0IGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0Wydjb25zdHJ1Y3RvciddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lR2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2RlZmluZVNldHRlcl9fJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19sb29rdXBHZXR0ZXJfXyddID0gZmFsc2U7XG5cbiAgbGV0IGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b1xuICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3RbJ19fcHJvdG9fXyddID0gZmFsc2U7XG5cbiAgcmV0dXJuIHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IGNyZWF0ZU5ld0xvb2t1cE9iamVjdChcbiAgICAgICAgZGVmYXVsdFByb3BlcnR5V2hpdGVMaXN0LFxuICAgICAgICBydW50aW1lT3B0aW9ucy5hbGxvd2VkUHJvdG9Qcm9wZXJ0aWVzXG4gICAgICApLFxuICAgICAgZGVmYXVsdFZhbHVlOiBydW50aW1lT3B0aW9ucy5hbGxvd1Byb3RvUHJvcGVydGllc0J5RGVmYXVsdFxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgd2hpdGVsaXN0OiBjcmVhdGVOZXdMb29rdXBPYmplY3QoXG4gICAgICAgIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QsXG4gICAgICAgIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b01ldGhvZHNcbiAgICAgICksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9NZXRob2RzQnlEZWZhdWx0XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzdWx0SXNBbGxvd2VkKHJlc3VsdCwgcHJvdG9BY2Nlc3NDb250cm9sLCBwcm9wZXJ0eU5hbWUpIHtcbiAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLm1
/***/ } ) ,
/***/ 3268 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
exports . _ _esModule = true ;
exports . wrapHelper = wrapHelper ;
function wrapHelper ( helper , transformOptionsFn ) {
if ( typeof helper !== 'function' ) {
// This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639
// We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.
return helper ;
}
var wrapper = function wrapper ( ) /* dynamic arguments */ {
var options = arguments [ arguments . length - 1 ] ;
arguments [ arguments . length - 1 ] = transformOptionsFn ( options ) ;
return helper . apply ( this , arguments ) ;
} ;
return wrapper ;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3dyYXBIZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7QUFDckQsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7OztBQUdoQyxXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsTUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLDBCQUFxQztBQUM5QyxRQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxhQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxXQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3RDLENBQUM7QUFDRixTQUFPLE9BQU8sQ0FBQztDQUNoQiIsImZpbGUiOiJ3cmFwSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHdyYXBIZWxwZXIoaGVscGVyLCB0cmFuc2Zvcm1PcHRpb25zRm4pIHtcbiAgaWYgKHR5cGVvZiBoZWxwZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQgYXBwYXJlbnRseSBpdCBkb2VzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvaGFuZGxlYmFycy5qcy9pc3N1ZXMvMTYzOVxuICAgIC8vIFdlIHRyeSB0byBtYWtlIHRoZSB3cmFwcGVyIGxlYXN0LWludmFzaXZlIGJ5IG5vdCB3cmFwcGluZyBpdCwgaWYgdGhlIGhlbHBlciBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICByZXR1cm4gaGVscGVyO1xuICB9XG4gIGxldCB3cmFwcGVyID0gZnVuY3Rpb24oLyogZHluYW1pYyBhcmd1bWVudHMgKi8pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID0gdHJhbnNmb3JtT3B0aW9uc0ZuKG9wdGlvbnMpO1xuICAgIHJldHVybiBoZWxwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZXI7XG59XG4iXX0=
/***/ } ) ,
/***/ 7142 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
var logger = {
methodMap : [ 'debug' , 'info' , 'warn' , 'error' ] ,
level : 'info' ,
// Maps a given level value to the `methodMap` indexes above.
lookupLevel : function lookupLevel ( level ) {
if ( typeof level === 'string' ) {
var levelMap = _utils . indexOf ( logger . methodMap , level . toLowerCase ( ) ) ;
if ( levelMap >= 0 ) {
level = levelMap ;
} else {
level = parseInt ( level , 10 ) ;
}
}
return level ;
} ,
// Can be overridden in the host environment
log : function log ( level ) {
level = logger . lookupLevel ( level ) ;
if ( typeof console !== 'undefined' && logger . lookupLevel ( logger . level ) <= level ) {
var method = logger . methodMap [ level ] ;
// eslint-disable-next-line no-console
if ( ! console [ method ] ) {
method = 'log' ;
}
for ( var _len = arguments . length , message = Array ( _len > 1 ? _len - 1 : 0 ) , _key = 1 ; _key < _len ; _key ++ ) {
message [ _key - 1 ] = arguments [ _key ] ;
}
console [ method ] . apply ( console , message ) ; // eslint-disable-line no-console
}
}
} ;
exports [ "default" ] = logger ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUF3QixTQUFTOztBQUVqQyxJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUNFLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUN6QztBQUNBLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXJDLFVBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEIsY0FBTSxHQUFHLEtBQUssQ0FBQztPQUNoQjs7d0NBWG1CLE9BQU87QUFBUCxlQUFPOzs7QUFZM0IsYUFBTyxDQUFDLE1BQU0sT0FBQyxDQUFmLE9BQU8sRUFBWSxPQUFPLENBQUMsQ0FBQztLQUM3QjtHQUNGO0NBQ0YsQ0FBQzs7cUJBRWEsTUFBTSIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWxcbiAgICApIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAoIWNvbnNvbGVbbWV0aG9kXSkge1xuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=
/***/ } ) ,
/***/ 1983 :
/***/ ( ( module , exports ) => {
"use strict" ;
exports . _ _esModule = true ;
exports [ "default" ] = function ( Handlebars ) {
/* istanbul ignore next */
var root = typeof global !== 'undefined' ? global : window ,
$Handlebars = root . Handlebars ;
/* istanbul ignore next */
Handlebars . noConflict = function ( ) {
if ( root . Handlebars === Handlebars ) {
root . Handlebars = $Handlebars ;
}
return Handlebars ;
} ;
} ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxVQUFVLEVBQUU7O0FBRWxDLE1BQUksSUFBSSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsR0FBRyxNQUFNLEdBQUcsTUFBTTtNQUN4RCxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs7QUFFaEMsWUFBVSxDQUFDLFVBQVUsR0FBRyxZQUFXO0FBQ2pDLFFBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7QUFDbEMsVUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7S0FDL0I7QUFDRCxXQUFPLFVBQVUsQ0FBQztHQUNuQixDQUFDO0NBQ0giLCJmaWxlIjoibm8tY29uZmxpY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihIYW5kbGViYXJzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGxldCByb290ID0gdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiB3aW5kb3csXG4gICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ==
/***/ } ) ,
/***/ 7663 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . _ _esModule = true ;
exports . checkRevision = checkRevision ;
exports . template = template ;
exports . wrapProgram = wrapProgram ;
exports . resolvePartial = resolvePartial ;
exports . invokePartial = invokePartial ;
exports . noop = noop ;
// istanbul ignore next
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { 'default' : obj } ; }
// istanbul ignore next
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj [ 'default' ] = obj ; return newObj ; } }
var _utils = _ _nccwpck _require _ _ ( 1437 ) ;
var Utils = _interopRequireWildcard ( _utils ) ;
var _exception = _ _nccwpck _require _ _ ( 2879 ) ;
var _exception2 = _interopRequireDefault ( _exception ) ;
var _base = _ _nccwpck _require _ _ ( 4211 ) ;
var _helpers = _ _nccwpck _require _ _ ( 3066 ) ;
var _internalWrapHelper = _ _nccwpck _require _ _ ( 3268 ) ;
var _internalProtoAccess = _ _nccwpck _require _ _ ( 6066 ) ;
function checkRevision ( compilerInfo ) {
var compilerRevision = compilerInfo && compilerInfo [ 0 ] || 1 ,
currentRevision = _base . COMPILER _REVISION ;
if ( compilerRevision >= _base . LAST _COMPATIBLE _COMPILER _REVISION && compilerRevision <= _base . COMPILER _REVISION ) {
return ;
}
if ( compilerRevision < _base . LAST _COMPATIBLE _COMPILER _REVISION ) {
var runtimeVersions = _base . REVISION _CHANGES [ currentRevision ] ,
compilerVersions = _base . REVISION _CHANGES [ compilerRevision ] ;
throw new _exception2 [ 'default' ] ( 'Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').' ) ;
} else {
// Use the embedded version info since the runtime doesn't know about this revision yet
throw new _exception2 [ 'default' ] ( 'Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo [ 1 ] + ').' ) ;
}
}
function template ( templateSpec , env ) {
/* istanbul ignore next */
if ( ! env ) {
throw new _exception2 [ 'default' ] ( 'No environment passed to template' ) ;
}
if ( ! templateSpec || ! templateSpec . main ) {
throw new _exception2 [ 'default' ] ( 'Unknown template object: ' + typeof templateSpec ) ;
}
templateSpec . main . decorator = templateSpec . main _d ;
// Note: Using env.VM references rather than local var references throughout this section to allow
// for external users to override these as pseudo-supported APIs.
env . VM . checkRevision ( templateSpec . compiler ) ;
// backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)
var templateWasPrecompiledWithCompilerV7 = templateSpec . compiler && templateSpec . compiler [ 0 ] === 7 ;
function invokePartialWrapper ( partial , context , options ) {
if ( options . hash ) {
context = Utils . extend ( { } , context , options . hash ) ;
if ( options . ids ) {
options . ids [ 0 ] = true ;
}
}
partial = env . VM . resolvePartial . call ( this , partial , context , options ) ;
var extendedOptions = Utils . extend ( { } , options , {
hooks : this . hooks ,
protoAccessControl : this . protoAccessControl
} ) ;
var result = env . VM . invokePartial . call ( this , partial , context , extendedOptions ) ;
if ( result == null && env . compile ) {
options . partials [ options . name ] = env . compile ( partial , templateSpec . compilerOptions , env ) ;
result = options . partials [ options . name ] ( context , extendedOptions ) ;
}
if ( result != null ) {
if ( options . indent ) {
var lines = result . split ( '\n' ) ;
for ( var i = 0 , l = lines . length ; i < l ; i ++ ) {
if ( ! lines [ i ] && i + 1 === l ) {
break ;
}
lines [ i ] = options . indent + lines [ i ] ;
}
result = lines . join ( '\n' ) ;
}
return result ;
} else {
throw new _exception2 [ 'default' ] ( 'The partial ' + options . name + ' could not be compiled when running in runtime-only mode' ) ;
}
}
// Just add water
var container = {
strict : function strict ( obj , name , loc ) {
if ( ! obj || ! ( name in obj ) ) {
throw new _exception2 [ 'default' ] ( '"' + name + '" not defined in ' + obj , {
loc : loc
} ) ;
}
return container . lookupProperty ( obj , name ) ;
} ,
lookupProperty : function lookupProperty ( parent , propertyName ) {
var result = parent [ propertyName ] ;
if ( result == null ) {
return result ;
}
if ( Object . prototype . hasOwnProperty . call ( parent , propertyName ) ) {
return result ;
}
if ( _internalProtoAccess . resultIsAllowed ( result , container . protoAccessControl , propertyName ) ) {
return result ;
}
return undefined ;
} ,
lookup : function lookup ( depths , name ) {
var len = depths . length ;
for ( var i = 0 ; i < len ; i ++ ) {
var result = depths [ i ] && container . lookupProperty ( depths [ i ] , name ) ;
if ( result != null ) {
return depths [ i ] [ name ] ;
}
}
} ,
lambda : function lambda ( current , context ) {
return typeof current === 'function' ? current . call ( context ) : current ;
} ,
escapeExpression : Utils . escapeExpression ,
invokePartial : invokePartialWrapper ,
fn : function fn ( i ) {
var ret = templateSpec [ i ] ;
ret . decorator = templateSpec [ i + '_d' ] ;
return ret ;
} ,
programs : [ ] ,
program : function program ( i , data , declaredBlockParams , blockParams , depths ) {
var programWrapper = this . programs [ i ] ,
fn = this . fn ( i ) ;
if ( data || depths || blockParams || declaredBlockParams ) {
programWrapper = wrapProgram ( this , i , fn , data , declaredBlockParams , blockParams , depths ) ;
} else if ( ! programWrapper ) {
programWrapper = this . programs [ i ] = wrapProgram ( this , i , fn ) ;
}
return programWrapper ;
} ,
data : function data ( value , depth ) {
while ( value && depth -- ) {
value = value . _parent ;
}
return value ;
} ,
mergeIfNeeded : function mergeIfNeeded ( param , common ) {
var obj = param || common ;
if ( param && common && param !== common ) {
obj = Utils . extend ( { } , common , param ) ;
}
return obj ;
} ,
// An empty object to use as replacement for null-contexts
nullContext : Object . seal ( { } ) ,
noop : env . VM . noop ,
compilerInfo : templateSpec . compiler
} ;
function ret ( context ) {
var options = arguments . length <= 1 || arguments [ 1 ] === undefined ? { } : arguments [ 1 ] ;
var data = options . data ;
ret . _setup ( options ) ;
if ( ! options . partial && templateSpec . useData ) {
data = initData ( context , data ) ;
}
var depths = undefined ,
blockParams = templateSpec . useBlockParams ? [ ] : undefined ;
if ( templateSpec . useDepths ) {
if ( options . depths ) {
depths = context != options . depths [ 0 ] ? [ context ] . concat ( options . depths ) : options . depths ;
} else {
depths = [ context ] ;
}
}
function main ( context /*, options*/ ) {
return '' + templateSpec . main ( container , context , container . helpers , container . partials , data , blockParams , depths ) ;
}
main = executeDecorators ( templateSpec . main , main , container , options . depths || [ ] , data , blockParams ) ;
return main ( context , options ) ;
}
ret . isTop = true ;
ret . _setup = function ( options ) {
if ( ! options . partial ) {
var mergedHelpers = Utils . extend ( { } , env . helpers , options . helpers ) ;
wrapHelpersToPassLookupProperty ( mergedHelpers , container ) ;
container . helpers = mergedHelpers ;
if ( templateSpec . usePartial ) {
// Use mergeIfNeeded here to prevent compiling global partials multiple times
container . partials = container . mergeIfNeeded ( options . partials , env . partials ) ;
}
if ( templateSpec . usePartial || templateSpec . useDecorators ) {
container . decorators = Utils . extend ( { } , env . decorators , options . decorators ) ;
}
container . hooks = { } ;
container . protoAccessControl = _internalProtoAccess . createProtoAccessControl ( options ) ;
var keepHelperInHelpers = options . allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7 ;
_helpers . moveHelperToHooks ( container , 'helperMissing' , keepHelperInHelpers ) ;
_helpers . moveHelperToHooks ( container , 'blockHelperMissing' , keepHelperInHelpers ) ;
} else {
container . protoAccessControl = options . protoAccessControl ; // internal option
container . helpers = options . helpers ;
container . partials = options . partials ;
container . decorators = options . decorators ;
container . hooks = options . hooks ;
}
} ;
ret . _child = function ( i , data , blockParams , depths ) {
if ( templateSpec . useBlockParams && ! blockParams ) {
throw new _exception2 [ 'default' ] ( 'must pass block params' ) ;
}
if ( templateSpec . useDepths && ! depths ) {
throw new _exception2 [ 'default' ] ( 'must pass parent depths' ) ;
}
return wrapProgram ( container , i , templateSpec [ i ] , data , 0 , blockParams , depths ) ;
} ;
return ret ;
}
function wrapProgram ( container , i , fn , data , declaredBlockParams , blockParams , depths ) {
function prog ( context ) {
var options = arguments . length <= 1 || arguments [ 1 ] === undefined ? { } : arguments [ 1 ] ;
var currentDepths = depths ;
if ( depths && context != depths [ 0 ] && ! ( context === container . nullContext && depths [ 0 ] === null ) ) {
currentDepths = [ context ] . concat ( depths ) ;
}
return fn ( container , context , container . helpers , container . partials , options . data || data , blockParams && [ options . blockParams ] . concat ( blockParams ) , currentDepths ) ;
}
prog = executeDecorators ( fn , prog , container , depths , data , blockParams ) ;
prog . program = i ;
prog . depth = depths ? depths . length : 0 ;
prog . blockParams = declaredBlockParams || 0 ;
return prog ;
}
/ * *
* This is currently part of the official API , therefore implementation details should not be changed .
* /
function resolvePartial ( partial , context , options ) {
if ( ! partial ) {
if ( options . name === '@partial-block' ) {
partial = options . data [ 'partial-block' ] ;
} else {
partial = options . partials [ options . name ] ;
}
} else if ( ! partial . call && ! options . name ) {
// This is a dynamic partial that returned a string
options . name = partial ;
partial = options . partials [ partial ] ;
}
return partial ;
}
function invokePartial ( partial , context , options ) {
// Use the current closure context to save the partial-block if this partial
var currentPartialBlock = options . data && options . data [ 'partial-block' ] ;
options . partial = true ;
if ( options . ids ) {
options . data . contextPath = options . ids [ 0 ] || options . data . contextPath ;
}
var partialBlock = undefined ;
if ( options . fn && options . fn !== noop ) {
( function ( ) {
options . data = _base . createFrame ( options . data ) ;
// Wrapper function to get access to currentPartialBlock from the closure
var fn = options . fn ;
partialBlock = options . data [ 'partial-block' ] = function partialBlockWrapper ( context ) {
var options = arguments . length <= 1 || arguments [ 1 ] === undefined ? { } : arguments [ 1 ] ;
// Restore the partial-block from the closure for the execution of the block
// i.e. the part inside the block of the partial call.
options . data = _base . createFrame ( options . data ) ;
options . data [ 'partial-block' ] = currentPartialBlock ;
return fn ( context , options ) ;
} ;
if ( fn . partials ) {
options . partials = Utils . extend ( { } , options . partials , fn . partials ) ;
}
} ) ( ) ;
}
if ( partial === undefined && partialBlock ) {
partial = partialBlock ;
}
if ( partial === undefined ) {
throw new _exception2 [ 'default' ] ( 'The partial ' + options . name + ' could not be found' ) ;
} else if ( partial instanceof Function ) {
return partial ( context , options ) ;
}
}
function noop ( ) {
return '' ;
}
function initData ( context , data ) {
if ( ! data || ! ( 'root' in data ) ) {
data = data ? _base . createFrame ( data ) : { } ;
data . root = context ;
}
return data ;
}
function executeDecorators ( fn , prog , container , depths , data , blockParams ) {
if ( fn . decorator ) {
var props = { } ;
prog = fn . decorator ( prog , props , container , depths && depths [ 0 ] , data , blockParams , depths ) ;
Utils . extend ( prog , props ) ;
}
return prog ;
}
function wrapHelpersToPassLookupProperty ( mergedHelpers , container ) {
Object . keys ( mergedHelpers ) . forEach ( function ( helperName ) {
var helper = mergedHelpers [ helperName ] ;
mergedHelpers [ helperName ] = passLookupPropertyOption ( helper , container ) ;
} ) ;
}
function passLookupPropertyOption ( helper , container ) {
var lookupProperty = container . lookupProperty ;
return _internalWrapHelper . wrapHelper ( helper , function ( options ) {
return Utils . extend ( { lookupProperty : lookupProperty } , options ) ;
} ) ;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBTTVCLFFBQVE7O3VCQUNtQixXQUFXOztrQ0FDbEIsdUJBQXVCOzttQ0FJM0MseUJBQXlCOztBQUV6QixTQUFTLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxBQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQztNQUM3RCxlQUFlLDBCQUFvQixDQUFDOztBQUV0QyxNQUNFLGdCQUFnQiwyQ0FBcUMsSUFDckQsZ0JBQWdCLDJCQUFxQixFQUNyQztBQUNBLFdBQU87R0FDUjs7QUFFRCxNQUFJLGdCQUFnQiwwQ0FBb0MsRUFBRTtBQUN4RCxRQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1FBQ3ZELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sMkJBQ0oseUZBQXlGLEdBQ3ZGLHFEQUFxRCxHQUNyRCxlQUFlLEdBQ2YsbURBQW1ELEdBQ25ELGdCQUFnQixHQUNoQixJQUFJLENBQ1AsQ0FBQztHQUNILE1BQU07O0FBRUwsVUFBTSwyQkFDSix3RkFBd0YsR0FDdEYsaURBQWlELEdBQ2pELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FDZixJQUFJLENBQ1AsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztHQUN4RTs7QUFFRCxjQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7O0FBSWxELEtBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7O0FBRzVDLE1BQU0sb0NBQW9DLEdBQ3hDLFlBQVksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRTFELFdBQVMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7QUFDdkQsUUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO0FBQ2hCLGFBQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xELFVBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGVBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO09BQ3ZCO0tBQ0Y7QUFDRCxXQUFPLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDOztBQUV0RSxRQUFJLGVBQWUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUU7QUFDOUMsV0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO0FBQ2pCLHdCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7S0FDNUMsQ0FBQyxDQUFDOztBQUVILFFBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDcEMsSUFBSSxFQUNKLE9BQU8sRUFDUCxPQUFPLEVBQ1AsZUFBZSxDQUNoQixDQUFDOztBQUVGLFFBQUksTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO0FBQ2pDLGFBQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQzFDLE9BQU8sRUFDUCxZQUFZLENBQUMsZUFBZSxFQUM1QixHQUFHLENBQ0osQ0FBQztBQUNGLFlBQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7S0FDbkU7QUFDRCxRQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7QUFDbEIsVUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO0FBQ2xCLFlBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0IsYUFBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QyxjQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzVCLGtCQUFNO1dBQ1A7O0FBRUQsZUFBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO0FBQ0QsY0FBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7T0FDM0I7QUFDRCxhQUFPLE1BQU0sQ0FBQztLQUNmLE1BQU07QUFDTCxZQUFNLDJCQUNKLGNBQWMsR0FDWixPQUFPLENBQUMsSUFBSSxHQUNaLDBEQUEwRCxDQUM3RCxDQUFDO0tBQ0g7R0FDRjs7O0FBR0QsTUFBSSxTQUFTLEdBQUc7QUFDZCxVQUFNLEVBQUUsZ0JBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7QUFDL0IsVUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxHQUFHLENBQUEsQUFBQyxFQUFFO0FBQzFCLGNBQU0sMkJBQWMsR0FBRyxHQUFHLElBQUksR0FBRyxtQkFBbUIsR0FBRyxHQUFHLEVBQUU7QUFDMUQsYUFBRyxFQUFFLEdBQUc7U0FDVCxDQUFDLENBQUM7T0FDSjtBQUNELGFBQU8sU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDNUM7QUFDRCxrQkFBYyxFQUFFLHdCQUFTLE1BQU0sRUFBRSxZQUFZLEVBQUU7QUFDN0MsVUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2xDLFVBQUksTUFBTSxJQUFJLElBQUksRUFBRTtBQUNsQixlQUFPLE1BQU0sQ0FBQztPQUNmO0FBQ0QsVUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM
/***/ } ) ,
/***/ 3296 :
/***/ ( ( module , exports ) => {
"use strict" ;
// Build out our basic SafeString type
exports . _ _esModule = true ;
function SafeString ( string ) {
this . string = string ;
}
SafeString . prototype . toString = SafeString . prototype . toHTML = function ( ) {
return '' + this . string ;
} ;
exports [ "default" ] = SafeString ;
module . exports = exports [ 'default' ] ;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==
/***/ } ) ,
/***/ 1437 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
exports . _ _esModule = true ;
exports . extend = extend ;
exports . indexOf = indexOf ;
exports . escapeExpression = escapeExpression ;
exports . isEmpty = isEmpty ;
exports . createFrame = createFrame ;
exports . blockParams = blockParams ;
exports . appendContextPath = appendContextPath ;
var escape = {
'&' : '&' ,
'<' : '<' ,
'>' : '>' ,
'"' : '"' ,
"'" : ''' ,
'`' : '`' ,
'=' : '='
} ;
var badChars = /[&<>"'`=]/g ,
possible = /[&<>"'`=]/ ;
function escapeChar ( chr ) {
return escape [ chr ] ;
}
function extend ( obj /* , ...source */ ) {
for ( var i = 1 ; i < arguments . length ; i ++ ) {
for ( var key in arguments [ i ] ) {
if ( Object . prototype . hasOwnProperty . call ( arguments [ i ] , key ) ) {
obj [ key ] = arguments [ i ] [ key ] ;
}
}
}
return obj ;
}
var toString = Object . prototype . toString ;
exports . toString = toString ;
// Sourced from lodash
// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt
/* eslint-disable func-style */
var isFunction = function isFunction ( value ) {
return typeof value === 'function' ;
} ;
// fallback for older versions of Chrome and Safari
/* istanbul ignore next */
if ( isFunction ( /x/ ) ) {
exports . isFunction = isFunction = function ( value ) {
return typeof value === 'function' && toString . call ( value ) === '[object Function]' ;
} ;
}
exports . isFunction = isFunction ;
/* eslint-enable func-style */
/* istanbul ignore next */
var isArray = Array . isArray || function ( value ) {
return value && typeof value === 'object' ? toString . call ( value ) === '[object Array]' : false ;
} ;
exports . isArray = isArray ;
// Older IE versions do not directly support indexOf so we must implement our own, sadly.
function indexOf ( array , value ) {
for ( var i = 0 , len = array . length ; i < len ; i ++ ) {
if ( array [ i ] === value ) {
return i ;
}
}
return - 1 ;
}
function escapeExpression ( string ) {
if ( typeof string !== 'string' ) {
// don't escape SafeStrings, since they're already safe
if ( string && string . toHTML ) {
return string . toHTML ( ) ;
} else if ( string == null ) {
return '' ;
} else if ( ! string ) {
return string + '' ;
}
// Force a string conversion as this will be done by the append regardless and
// the regex test will do this transparently behind the scenes, causing issues if
// an object's to string has escaped characters in it.
string = '' + string ;
}
if ( ! possible . test ( string ) ) {
return string ;
}
return string . replace ( badChars , escapeChar ) ;
}
function isEmpty ( value ) {
if ( ! value && value !== 0 ) {
return true ;
} else if ( isArray ( value ) && value . length === 0 ) {
return true ;
} else {
return false ;
}
}
function createFrame ( object ) {
var frame = extend ( { } , object ) ;
frame . _parent = object ;
return frame ;
}
function blockParams ( params , ids ) {
params . path = ids ;
return params ;
}
function appendContextPath ( contextPath , id ) {
return ( contextPath ? contextPath + '.' : '' ) + id ;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQzNCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRXpCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQjtBQUM1QyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQU9PLFVBQVUsR0FQakIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQ0UsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLG1CQUFtQixDQUM1QztHQUNILENBQUM7Q0FDSDtRQUNRLFVBQVUsR0FBVixVQUFVOzs7OztBQUlaLElBQU0sT0FBTyxHQUNsQixLQUFLLENBQUMsT0FBTyxJQUNiLFVBQVMsS0FBSyxFQUFFO0FBQ2QsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUN6QyxLQUFLLENBQUM7Q0FDWCxDQUFDOzs7OztBQUdHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUVNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMxQixXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQob2JqIC8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICA
/***/ } ) ,
/***/ 7492 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
// USAGE:
// var handlebars = require('handlebars');
/* eslint-disable no-var */
// var local = handlebars.create();
var handlebars = ( _ _nccwpck _require _ _ ( 6956 ) [ "default" ] ) ;
var printer = _ _nccwpck _require _ _ ( 9286 ) ;
handlebars . PrintVisitor = printer . PrintVisitor ;
handlebars . print = printer . print ;
module . exports = handlebars ;
// Publish a Node.js require() handler for .handlebars and .hbs files
function extension ( module , filename ) {
var fs = _ _nccwpck _require _ _ ( 7147 ) ;
var templateString = fs . readFileSync ( filename , 'utf8' ) ;
module . exports = handlebars . compile ( templateString ) ;
}
/* istanbul ignore else */
if ( true && require . extensions ) {
require . extensions [ '.handlebars' ] = extension ;
require . extensions [ '.hbs' ] = extension ;
}
/***/ } ) ,
/***/ 467 :
/***/ ( ( module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
function _interopDefault ( ex ) { return ( ex && ( typeof ex === 'object' ) && 'default' in ex ) ? ex [ 'default' ] : ex ; }
var Stream = _interopDefault ( _ _nccwpck _require _ _ ( 2781 ) ) ;
var http = _interopDefault ( _ _nccwpck _require _ _ ( 3685 ) ) ;
var Url = _interopDefault ( _ _nccwpck _require _ _ ( 7310 ) ) ;
var whatwgUrl = _interopDefault ( _ _nccwpck _require _ _ ( 3323 ) ) ;
var https = _interopDefault ( _ _nccwpck _require _ _ ( 5687 ) ) ;
var zlib = _interopDefault ( _ _nccwpck _require _ _ ( 9796 ) ) ;
// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js
// fix for "Readable" isn't a named export issue
const Readable = Stream . Readable ;
const BUFFER = Symbol ( 'buffer' ) ;
const TYPE = Symbol ( 'type' ) ;
class Blob {
constructor ( ) {
this [ TYPE ] = '' ;
const blobParts = arguments [ 0 ] ;
const options = arguments [ 1 ] ;
const buffers = [ ] ;
let size = 0 ;
if ( blobParts ) {
const a = blobParts ;
const length = Number ( a . length ) ;
for ( let i = 0 ; i < length ; i ++ ) {
const element = a [ i ] ;
let buffer ;
if ( element instanceof Buffer ) {
buffer = element ;
} else if ( ArrayBuffer . isView ( element ) ) {
buffer = Buffer . from ( element . buffer , element . byteOffset , element . byteLength ) ;
} else if ( element instanceof ArrayBuffer ) {
buffer = Buffer . from ( element ) ;
} else if ( element instanceof Blob ) {
buffer = element [ BUFFER ] ;
} else {
buffer = Buffer . from ( typeof element === 'string' ? element : String ( element ) ) ;
}
size += buffer . length ;
buffers . push ( buffer ) ;
}
}
this [ BUFFER ] = Buffer . concat ( buffers ) ;
let type = options && options . type !== undefined && String ( options . type ) . toLowerCase ( ) ;
if ( type && ! /[^\u0020-\u007E]/ . test ( type ) ) {
this [ TYPE ] = type ;
}
}
get size ( ) {
return this [ BUFFER ] . length ;
}
get type ( ) {
return this [ TYPE ] ;
}
text ( ) {
return Promise . resolve ( this [ BUFFER ] . toString ( ) ) ;
}
arrayBuffer ( ) {
const buf = this [ BUFFER ] ;
const ab = buf . buffer . slice ( buf . byteOffset , buf . byteOffset + buf . byteLength ) ;
return Promise . resolve ( ab ) ;
}
stream ( ) {
const readable = new Readable ( ) ;
readable . _read = function ( ) { } ;
readable . push ( this [ BUFFER ] ) ;
readable . push ( null ) ;
return readable ;
}
toString ( ) {
return '[object Blob]' ;
}
slice ( ) {
const size = this . size ;
const start = arguments [ 0 ] ;
const end = arguments [ 1 ] ;
let relativeStart , relativeEnd ;
if ( start === undefined ) {
relativeStart = 0 ;
} else if ( start < 0 ) {
relativeStart = Math . max ( size + start , 0 ) ;
} else {
relativeStart = Math . min ( start , size ) ;
}
if ( end === undefined ) {
relativeEnd = size ;
} else if ( end < 0 ) {
relativeEnd = Math . max ( size + end , 0 ) ;
} else {
relativeEnd = Math . min ( end , size ) ;
}
const span = Math . max ( relativeEnd - relativeStart , 0 ) ;
const buffer = this [ BUFFER ] ;
const slicedBuffer = buffer . slice ( relativeStart , relativeStart + span ) ;
const blob = new Blob ( [ ] , { type : arguments [ 2 ] } ) ;
blob [ BUFFER ] = slicedBuffer ;
return blob ;
}
}
Object . defineProperties ( Blob . prototype , {
size : { enumerable : true } ,
type : { enumerable : true } ,
slice : { enumerable : true }
} ) ;
Object . defineProperty ( Blob . prototype , Symbol . toStringTag , {
value : 'Blob' ,
writable : false ,
enumerable : false ,
configurable : true
} ) ;
/ * *
* fetch - error . js
*
* FetchError interface for operational errors
* /
/ * *
* Create FetchError instance
*
* @ param String message Error message for human
* @ param String type Error type for machine
* @ param String systemError For Node . js system error
* @ return FetchError
* /
function FetchError ( message , type , systemError ) {
Error . call ( this , message ) ;
this . message = message ;
this . type = type ;
// when err.type is `system`, err.code contains system error code
if ( systemError ) {
this . code = this . errno = systemError . code ;
}
// hide custom error implementation details from end-users
Error . captureStackTrace ( this , this . constructor ) ;
}
FetchError . prototype = Object . create ( Error . prototype ) ;
FetchError . prototype . constructor = FetchError ;
FetchError . prototype . name = 'FetchError' ;
let convert ;
try {
convert = ( _ _nccwpck _require _ _ ( 2877 ) . convert ) ;
} catch ( e ) { }
const INTERNALS = Symbol ( 'Body internals' ) ;
// fix an issue where "PassThrough" isn't a named export for node <10
const PassThrough = Stream . PassThrough ;
/ * *
* Body mixin
*
* Ref : https : //fetch.spec.whatwg.org/#body
*
* @ param Stream body Readable stream
* @ param Object opts Response options
* @ return Void
* /
function Body ( body ) {
var _this = this ;
var _ref = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : { } ,
_ref$size = _ref . size ;
let size = _ref$size === undefined ? 0 : _ref$size ;
var _ref$timeout = _ref . timeout ;
let timeout = _ref$timeout === undefined ? 0 : _ref$timeout ;
if ( body == null ) {
// body is undefined or null
body = null ;
} else if ( isURLSearchParams ( body ) ) {
// body is a URLSearchParams
body = Buffer . from ( body . toString ( ) ) ;
} else if ( isBlob ( body ) ) ; else if ( Buffer . isBuffer ( body ) ) ; else if ( Object . prototype . toString . call ( body ) === '[object ArrayBuffer]' ) {
// body is ArrayBuffer
body = Buffer . from ( body ) ;
} else if ( ArrayBuffer . isView ( body ) ) {
// body is ArrayBufferView
body = Buffer . from ( body . buffer , body . byteOffset , body . byteLength ) ;
} else if ( body instanceof Stream ) ; else {
// none of the above
// coerce to string then buffer
body = Buffer . from ( String ( body ) ) ;
}
this [ INTERNALS ] = {
body ,
disturbed : false ,
error : null
} ;
this . size = size ;
this . timeout = timeout ;
if ( body instanceof Stream ) {
body . on ( 'error' , function ( err ) {
const error = err . name === 'AbortError' ? err : new FetchError ( ` Invalid response body while trying to fetch ${ _this . url } : ${ err . message } ` , 'system' , err ) ;
_this [ INTERNALS ] . error = error ;
} ) ;
}
}
Body . prototype = {
get body ( ) {
return this [ INTERNALS ] . body ;
} ,
get bodyUsed ( ) {
return this [ INTERNALS ] . disturbed ;
} ,
/ * *
* Decode response as ArrayBuffer
*
* @ return Promise
* /
arrayBuffer ( ) {
return consumeBody . call ( this ) . then ( function ( buf ) {
return buf . buffer . slice ( buf . byteOffset , buf . byteOffset + buf . byteLength ) ;
} ) ;
} ,
/ * *
* Return raw response as Blob
*
* @ return Promise
* /
blob ( ) {
let ct = this . headers && this . headers . get ( 'content-type' ) || '' ;
return consumeBody . call ( this ) . then ( function ( buf ) {
return Object . assign (
// Prevent copying
new Blob ( [ ] , {
type : ct . toLowerCase ( )
} ) , {
[ BUFFER ] : buf
} ) ;
} ) ;
} ,
/ * *
* Decode response as json
*
* @ return Promise
* /
json ( ) {
var _this2 = this ;
return consumeBody . call ( this ) . then ( function ( buffer ) {
try {
return JSON . parse ( buffer . toString ( ) ) ;
} catch ( err ) {
return Body . Promise . reject ( new FetchError ( ` invalid json response body at ${ _this2 . url } reason: ${ err . message } ` , 'invalid-json' ) ) ;
}
} ) ;
} ,
/ * *
* Decode response as text
*
* @ return Promise
* /
text ( ) {
return consumeBody . call ( this ) . then ( function ( buffer ) {
return buffer . toString ( ) ;
} ) ;
} ,
/ * *
* Decode response as buffer ( non - spec api )
*
* @ return Promise
* /
buffer ( ) {
return consumeBody . call ( this ) ;
} ,
/ * *
* Decode response as text , while automatically detecting the encoding and
* trying to decode to UTF - 8 ( non - spec api )
*
* @ return Promise
* /
textConverted ( ) {
var _this3 = this ;
return consumeBody . call ( this ) . then ( function ( buffer ) {
return convertBody ( buffer , _this3 . headers ) ;
} ) ;
}
} ;
// In browsers, all properties are enumerable.
Object . defineProperties ( Body . prototype , {
body : { enumerable : true } ,
bodyUsed : { enumerable : true } ,
arrayBuffer : { enumerable : true } ,
blob : { enumerable : true } ,
json : { enumerable : true } ,
text : { enumerable : true }
} ) ;
Body . mixIn = function ( proto ) {
for ( const name of Object . getOwnPropertyNames ( Body . prototype ) ) {
// istanbul ignore else: future proof
if ( ! ( name in proto ) ) {
const desc = Object . getOwnPropertyDescriptor ( Body . prototype , name ) ;
Object . defineProperty ( proto , name , desc ) ;
}
}
} ;
/ * *
* Consume and convert an entire Body to a Buffer .
*
* Ref : https : //fetch.spec.whatwg.org/#concept-body-consume-body
*
* @ return Promise
* /
function consumeBody ( ) {
var _this4 = this ;
if ( this [ INTERNALS ] . disturbed ) {
return Body . Promise . reject ( new TypeError ( ` body used already for: ${ this . url } ` ) ) ;
}
this [ INTERNALS ] . disturbed = true ;
if ( this [ INTERNALS ] . error ) {
return Body . Promise . reject ( this [ INTERNALS ] . error ) ;
}
let body = this . body ;
// body is null
if ( body === null ) {
return Body . Promise . resolve ( Buffer . alloc ( 0 ) ) ;
}
// body is blob
if ( isBlob ( body ) ) {
body = body . stream ( ) ;
}
// body is buffer
if ( Buffer . isBuffer ( body ) ) {
return Body . Promise . resolve ( body ) ;
}
// istanbul ignore if: should never happen
if ( ! ( body instanceof Stream ) ) {
return Body . Promise . resolve ( Buffer . alloc ( 0 ) ) ;
}
// body is stream
// get ready to actually consume the body
let accum = [ ] ;
let accumBytes = 0 ;
let abort = false ;
return new Body . Promise ( function ( resolve , reject ) {
let resTimeout ;
// allow timeout on slow response body
if ( _this4 . timeout ) {
resTimeout = setTimeout ( function ( ) {
abort = true ;
reject ( new FetchError ( ` Response timeout while trying to fetch ${ _this4 . url } (over ${ _this4 . timeout } ms) ` , 'body-timeout' ) ) ;
} , _this4 . timeout ) ;
}
// handle stream errors
body . on ( 'error' , function ( err ) {
if ( err . name === 'AbortError' ) {
// if the request was aborted, reject with this Error
abort = true ;
reject ( err ) ;
} else {
// other errors, such as incorrect content-encoding
reject ( new FetchError ( ` Invalid response body while trying to fetch ${ _this4 . url } : ${ err . message } ` , 'system' , err ) ) ;
}
} ) ;
body . on ( 'data' , function ( chunk ) {
if ( abort || chunk === null ) {
return ;
}
if ( _this4 . size && accumBytes + chunk . length > _this4 . size ) {
abort = true ;
reject ( new FetchError ( ` content size at ${ _this4 . url } over limit: ${ _this4 . size } ` , 'max-size' ) ) ;
return ;
}
accumBytes += chunk . length ;
accum . push ( chunk ) ;
} ) ;
body . on ( 'end' , function ( ) {
if ( abort ) {
return ;
}
clearTimeout ( resTimeout ) ;
try {
resolve ( Buffer . concat ( accum , accumBytes ) ) ;
} catch ( err ) {
// handle streams that have accumulated too much data (issue #414)
reject ( new FetchError ( ` Could not create Buffer from response body for ${ _this4 . url } : ${ err . message } ` , 'system' , err ) ) ;
}
} ) ;
} ) ;
}
/ * *
* Detect buffer encoding and convert to target encoding
* ref : http : //www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding
*
* @ param Buffer buffer Incoming buffer
* @ param String encoding Target encoding
* @ return String
* /
function convertBody ( buffer , headers ) {
if ( typeof convert !== 'function' ) {
throw new Error ( 'The package `encoding` must be installed to use the textConverted() function' ) ;
}
const ct = headers . get ( 'content-type' ) ;
let charset = 'utf-8' ;
let res , str ;
// header
if ( ct ) {
res = /charset=([^;]*)/i . exec ( ct ) ;
}
// no charset in content type, peek at response body for at most 1024 bytes
str = buffer . slice ( 0 , 1024 ) . toString ( ) ;
// html5
if ( ! res && str ) {
res = /<meta.+?charset=(['"])(.+?)\1/i . exec ( str ) ;
}
// html4
if ( ! res && str ) {
res = /<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i . exec ( str ) ;
if ( ! res ) {
res = /<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i . exec ( str ) ;
if ( res ) {
res . pop ( ) ; // drop last quote
}
}
if ( res ) {
res = /charset=(.*)/i . exec ( res . pop ( ) ) ;
}
}
// xml
if ( ! res && str ) {
res = /<\?xml.+?encoding=(['"])(.+?)\1/i . exec ( str ) ;
}
// found charset
if ( res ) {
charset = res . pop ( ) ;
// prevent decode issues when sites use incorrect encoding
// ref: https://hsivonen.fi/encoding-menu/
if ( charset === 'gb2312' || charset === 'gbk' ) {
charset = 'gb18030' ;
}
}
// turn raw buffers into a single utf-8 buffer
return convert ( buffer , 'UTF-8' , charset ) . toString ( ) ;
}
/ * *
* Detect a URLSearchParams object
* ref : https : //github.com/bitinn/node-fetch/issues/296#issuecomment-307598143
*
* @ param Object obj Object to detect by type or brand
* @ return String
* /
function isURLSearchParams ( obj ) {
// Duck-typing as a necessary condition.
if ( typeof obj !== 'object' || typeof obj . append !== 'function' || typeof obj . delete !== 'function' || typeof obj . get !== 'function' || typeof obj . getAll !== 'function' || typeof obj . has !== 'function' || typeof obj . set !== 'function' ) {
return false ;
}
// Brand-checking and more duck-typing as optional condition.
return obj . constructor . name === 'URLSearchParams' || Object . prototype . toString . call ( obj ) === '[object URLSearchParams]' || typeof obj . sort === 'function' ;
}
/ * *
* Check if ` obj ` is a W3C ` Blob ` object ( which ` File ` inherits from )
* @ param { * } obj
* @ return { boolean }
* /
function isBlob ( obj ) {
return typeof obj === 'object' && typeof obj . arrayBuffer === 'function' && typeof obj . type === 'string' && typeof obj . stream === 'function' && typeof obj . constructor === 'function' && typeof obj . constructor . name === 'string' && /^(Blob|File)$/ . test ( obj . constructor . name ) && /^(Blob|File)$/ . test ( obj [ Symbol . toStringTag ] ) ;
}
/ * *
* Clone body given Res / Req instance
*
* @ param Mixed instance Response or Request instance
* @ return Mixed
* /
function clone ( instance ) {
let p1 , p2 ;
let body = instance . body ;
// don't allow cloning a used body
if ( instance . bodyUsed ) {
throw new Error ( 'cannot clone body after it is used' ) ;
}
// check that body is a stream and not form-data object
// note: we can't clone the form-data object without having it as a dependency
if ( body instanceof Stream && typeof body . getBoundary !== 'function' ) {
// tee instance body
p1 = new PassThrough ( ) ;
p2 = new PassThrough ( ) ;
body . pipe ( p1 ) ;
body . pipe ( p2 ) ;
// set instance body to teed body and return the other teed body
instance [ INTERNALS ] . body = p1 ;
body = p2 ;
}
return body ;
}
/ * *
* Performs the operation "extract a `Content-Type` value from |object|" as
* specified in the specification :
* https : //fetch.spec.whatwg.org/#concept-bodyinit-extract
*
* This function assumes that instance . body is present .
*
* @ param Mixed instance Any options . body input
* /
function extractContentType ( body ) {
if ( body === null ) {
// body is null
return null ;
} else if ( typeof body === 'string' ) {
// body is string
return 'text/plain;charset=UTF-8' ;
} else if ( isURLSearchParams ( body ) ) {
// body is a URLSearchParams
return 'application/x-www-form-urlencoded;charset=UTF-8' ;
} else if ( isBlob ( body ) ) {
// body is blob
return body . type || null ;
} else if ( Buffer . isBuffer ( body ) ) {
// body is buffer
return null ;
} else if ( Object . prototype . toString . call ( body ) === '[object ArrayBuffer]' ) {
// body is ArrayBuffer
return null ;
} else if ( ArrayBuffer . isView ( body ) ) {
// body is ArrayBufferView
return null ;
} else if ( typeof body . getBoundary === 'function' ) {
// detect form data input from form-data module
return ` multipart/form-data;boundary= ${ body . getBoundary ( ) } ` ;
} else if ( body instanceof Stream ) {
// body is stream
// can't really do much about this
return null ;
} else {
// Body constructor defaults other things to string
return 'text/plain;charset=UTF-8' ;
}
}
/ * *
* The Fetch Standard treats this as if "total bytes" is a property on the body .
* For us , we have to explicitly get it with a function .
*
* ref : https : //fetch.spec.whatwg.org/#concept-body-total-bytes
*
* @ param Body instance Instance of Body
* @ return Number ? Number of bytes , or null if not possible
* /
function getTotalBytes ( instance ) {
const body = instance . body ;
if ( body === null ) {
// body is null
return 0 ;
} else if ( isBlob ( body ) ) {
return body . size ;
} else if ( Buffer . isBuffer ( body ) ) {
// body is buffer
return body . length ;
} else if ( body && typeof body . getLengthSync === 'function' ) {
// detect form data input from form-data module
if ( body . _lengthRetrievers && body . _lengthRetrievers . length == 0 || // 1.x
body . hasKnownLength && body . hasKnownLength ( ) ) {
// 2.x
return body . getLengthSync ( ) ;
}
return null ;
} else {
// body is stream
return null ;
}
}
/ * *
* Write a Body to a Node . js WritableStream ( e . g . http . Request ) object .
*
* @ param Body instance Instance of Body
* @ return Void
* /
function writeToStream ( dest , instance ) {
const body = instance . body ;
if ( body === null ) {
// body is null
dest . end ( ) ;
} else if ( isBlob ( body ) ) {
body . stream ( ) . pipe ( dest ) ;
} else if ( Buffer . isBuffer ( body ) ) {
// body is buffer
dest . write ( body ) ;
dest . end ( ) ;
} else {
// body is stream
body . pipe ( dest ) ;
}
}
// expose Promise
Body . Promise = global . Promise ;
/ * *
* headers . js
*
* Headers class offers convenient helpers
* /
const invalidTokenRegex = /[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/ ;
const invalidHeaderCharRegex = /[^\t\x20-\x7e\x80-\xff]/ ;
function validateName ( name ) {
name = ` ${ name } ` ;
if ( invalidTokenRegex . test ( name ) || name === '' ) {
throw new TypeError ( ` ${ name } is not a legal HTTP header name ` ) ;
}
}
function validateValue ( value ) {
value = ` ${ value } ` ;
if ( invalidHeaderCharRegex . test ( value ) ) {
throw new TypeError ( ` ${ value } is not a legal HTTP header value ` ) ;
}
}
/ * *
* Find the key in the map object given a header name .
*
* Returns undefined if not found .
*
* @ param String name Header name
* @ return String | Undefined
* /
function find ( map , name ) {
name = name . toLowerCase ( ) ;
for ( const key in map ) {
if ( key . toLowerCase ( ) === name ) {
return key ;
}
}
return undefined ;
}
const MAP = Symbol ( 'map' ) ;
class Headers {
/ * *
* Headers class
*
* @ param Object headers Response headers
* @ return Void
* /
constructor ( ) {
let init = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : undefined ;
this [ MAP ] = Object . create ( null ) ;
if ( init instanceof Headers ) {
const rawHeaders = init . raw ( ) ;
const headerNames = Object . keys ( rawHeaders ) ;
for ( const headerName of headerNames ) {
for ( const value of rawHeaders [ headerName ] ) {
this . append ( headerName , value ) ;
}
}
return ;
}
// We don't worry about converting prop to ByteString here as append()
// will handle it.
if ( init == null ) ; else if ( typeof init === 'object' ) {
const method = init [ Symbol . iterator ] ;
if ( method != null ) {
if ( typeof method !== 'function' ) {
throw new TypeError ( 'Header pairs must be iterable' ) ;
}
// sequence<sequence<ByteString>>
// Note: per spec we have to first exhaust the lists then process them
const pairs = [ ] ;
for ( const pair of init ) {
if ( typeof pair !== 'object' || typeof pair [ Symbol . iterator ] !== 'function' ) {
throw new TypeError ( 'Each header pair must be iterable' ) ;
}
pairs . push ( Array . from ( pair ) ) ;
}
for ( const pair of pairs ) {
if ( pair . length !== 2 ) {
throw new TypeError ( 'Each header pair must be a name/value tuple' ) ;
}
this . append ( pair [ 0 ] , pair [ 1 ] ) ;
}
} else {
// record<ByteString, ByteString>
for ( const key of Object . keys ( init ) ) {
const value = init [ key ] ;
this . append ( key , value ) ;
}
}
} else {
throw new TypeError ( 'Provided initializer must be an object' ) ;
}
}
/ * *
* Return combined header value given name
*
* @ param String name Header name
* @ return Mixed
* /
get ( name ) {
name = ` ${ name } ` ;
validateName ( name ) ;
const key = find ( this [ MAP ] , name ) ;
if ( key === undefined ) {
return null ;
}
return this [ MAP ] [ key ] . join ( ', ' ) ;
}
/ * *
* Iterate over all headers
*
* @ param Function callback Executed for each item with parameters ( value , name , thisArg )
* @ param Boolean thisArg ` this ` context for callback function
* @ return Void
* /
forEach ( callback ) {
let thisArg = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : undefined ;
let pairs = getHeaders ( this ) ;
let i = 0 ;
while ( i < pairs . length ) {
var _pairs$i = pairs [ i ] ;
const name = _pairs$i [ 0 ] ,
value = _pairs$i [ 1 ] ;
callback . call ( thisArg , value , name , this ) ;
pairs = getHeaders ( this ) ;
i ++ ;
}
}
/ * *
* Overwrite header values given name
*
* @ param String name Header name
* @ param String value Header value
* @ return Void
* /
set ( name , value ) {
name = ` ${ name } ` ;
value = ` ${ value } ` ;
validateName ( name ) ;
validateValue ( value ) ;
const key = find ( this [ MAP ] , name ) ;
this [ MAP ] [ key !== undefined ? key : name ] = [ value ] ;
}
/ * *
* Append a value onto existing header
*
* @ param String name Header name
* @ param String value Header value
* @ return Void
* /
append ( name , value ) {
name = ` ${ name } ` ;
value = ` ${ value } ` ;
validateName ( name ) ;
validateValue ( value ) ;
const key = find ( this [ MAP ] , name ) ;
if ( key !== undefined ) {
this [ MAP ] [ key ] . push ( value ) ;
} else {
this [ MAP ] [ name ] = [ value ] ;
}
}
/ * *
* Check for header name existence
*
* @ param String name Header name
* @ return Boolean
* /
has ( name ) {
name = ` ${ name } ` ;
validateName ( name ) ;
return find ( this [ MAP ] , name ) !== undefined ;
}
/ * *
* Delete all header values given name
*
* @ param String name Header name
* @ return Void
* /
delete ( name ) {
name = ` ${ name } ` ;
validateName ( name ) ;
const key = find ( this [ MAP ] , name ) ;
if ( key !== undefined ) {
delete this [ MAP ] [ key ] ;
}
}
/ * *
* Return raw headers ( non - spec api )
*
* @ return Object
* /
raw ( ) {
return this [ MAP ] ;
}
/ * *
* Get an iterator on keys .
*
* @ return Iterator
* /
keys ( ) {
return createHeadersIterator ( this , 'key' ) ;
}
/ * *
* Get an iterator on values .
*
* @ return Iterator
* /
values ( ) {
return createHeadersIterator ( this , 'value' ) ;
}
/ * *
* Get an iterator on entries .
*
* This is the default iterator of the Headers object .
*
* @ return Iterator
* /
[ Symbol . iterator ] ( ) {
return createHeadersIterator ( this , 'key+value' ) ;
}
}
Headers . prototype . entries = Headers . prototype [ Symbol . iterator ] ;
Object . defineProperty ( Headers . prototype , Symbol . toStringTag , {
value : 'Headers' ,
writable : false ,
enumerable : false ,
configurable : true
} ) ;
Object . defineProperties ( Headers . prototype , {
get : { enumerable : true } ,
forEach : { enumerable : true } ,
set : { enumerable : true } ,
append : { enumerable : true } ,
has : { enumerable : true } ,
delete : { enumerable : true } ,
keys : { enumerable : true } ,
values : { enumerable : true } ,
entries : { enumerable : true }
} ) ;
function getHeaders ( headers ) {
let kind = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : 'key+value' ;
const keys = Object . keys ( headers [ MAP ] ) . sort ( ) ;
return keys . map ( kind === 'key' ? function ( k ) {
return k . toLowerCase ( ) ;
} : kind === 'value' ? function ( k ) {
return headers [ MAP ] [ k ] . join ( ', ' ) ;
} : function ( k ) {
return [ k . toLowerCase ( ) , headers [ MAP ] [ k ] . join ( ', ' ) ] ;
} ) ;
}
const INTERNAL = Symbol ( 'internal' ) ;
function createHeadersIterator ( target , kind ) {
const iterator = Object . create ( HeadersIteratorPrototype ) ;
iterator [ INTERNAL ] = {
target ,
kind ,
index : 0
} ;
return iterator ;
}
const HeadersIteratorPrototype = Object . setPrototypeOf ( {
next ( ) {
// istanbul ignore if
if ( ! this || Object . getPrototypeOf ( this ) !== HeadersIteratorPrototype ) {
throw new TypeError ( 'Value of `this` is not a HeadersIterator' ) ;
}
var _INTERNAL = this [ INTERNAL ] ;
const target = _INTERNAL . target ,
kind = _INTERNAL . kind ,
index = _INTERNAL . index ;
const values = getHeaders ( target , kind ) ;
const len = values . length ;
if ( index >= len ) {
return {
value : undefined ,
done : true
} ;
}
this [ INTERNAL ] . index = index + 1 ;
return {
value : values [ index ] ,
done : false
} ;
}
} , Object . getPrototypeOf ( Object . getPrototypeOf ( [ ] [ Symbol . iterator ] ( ) ) ) ) ;
Object . defineProperty ( HeadersIteratorPrototype , Symbol . toStringTag , {
value : 'HeadersIterator' ,
writable : false ,
enumerable : false ,
configurable : true
} ) ;
/ * *
* Export the Headers object in a form that Node . js can consume .
*
* @ param Headers headers
* @ return Object
* /
function exportNodeCompatibleHeaders ( headers ) {
const obj = Object . assign ( { _ _proto _ _ : null } , headers [ MAP ] ) ;
// http.request() only supports string as Host header. This hack makes
// specifying custom Host header possible.
const hostHeaderKey = find ( headers [ MAP ] , 'Host' ) ;
if ( hostHeaderKey !== undefined ) {
obj [ hostHeaderKey ] = obj [ hostHeaderKey ] [ 0 ] ;
}
return obj ;
}
/ * *
* Create a Headers object from an object of headers , ignoring those that do
* not conform to HTTP grammar productions .
*
* @ param Object obj Object of headers
* @ return Headers
* /
function createHeadersLenient ( obj ) {
const headers = new Headers ( ) ;
for ( const name of Object . keys ( obj ) ) {
if ( invalidTokenRegex . test ( name ) ) {
continue ;
}
if ( Array . isArray ( obj [ name ] ) ) {
for ( const val of obj [ name ] ) {
if ( invalidHeaderCharRegex . test ( val ) ) {
continue ;
}
if ( headers [ MAP ] [ name ] === undefined ) {
headers [ MAP ] [ name ] = [ val ] ;
} else {
headers [ MAP ] [ name ] . push ( val ) ;
}
}
} else if ( ! invalidHeaderCharRegex . test ( obj [ name ] ) ) {
headers [ MAP ] [ name ] = [ obj [ name ] ] ;
}
}
return headers ;
}
const INTERNALS$1 = Symbol ( 'Response internals' ) ;
// fix an issue where "STATUS_CODES" aren't a named export for node <10
const STATUS _CODES = http . STATUS _CODES ;
/ * *
* Response class
*
* @ param Stream body Readable stream
* @ param Object opts Response options
* @ return Void
* /
class Response {
constructor ( ) {
let body = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : null ;
let opts = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : { } ;
Body . call ( this , body , opts ) ;
const status = opts . status || 200 ;
const headers = new Headers ( opts . headers ) ;
if ( body != null && ! headers . has ( 'Content-Type' ) ) {
const contentType = extractContentType ( body ) ;
if ( contentType ) {
headers . append ( 'Content-Type' , contentType ) ;
}
}
this [ INTERNALS$1 ] = {
url : opts . url ,
status ,
statusText : opts . statusText || STATUS _CODES [ status ] ,
headers ,
counter : opts . counter
} ;
}
get url ( ) {
return this [ INTERNALS$1 ] . url || '' ;
}
get status ( ) {
return this [ INTERNALS$1 ] . status ;
}
/ * *
* Convenience property representing if the request ended normally
* /
get ok ( ) {
return this [ INTERNALS$1 ] . status >= 200 && this [ INTERNALS$1 ] . status < 300 ;
}
get redirected ( ) {
return this [ INTERNALS$1 ] . counter > 0 ;
}
get statusText ( ) {
return this [ INTERNALS$1 ] . statusText ;
}
get headers ( ) {
return this [ INTERNALS$1 ] . headers ;
}
/ * *
* Clone this response
*
* @ return Response
* /
clone ( ) {
return new Response ( clone ( this ) , {
url : this . url ,
status : this . status ,
statusText : this . statusText ,
headers : this . headers ,
ok : this . ok ,
redirected : this . redirected
} ) ;
}
}
Body . mixIn ( Response . prototype ) ;
Object . defineProperties ( Response . prototype , {
url : { enumerable : true } ,
status : { enumerable : true } ,
ok : { enumerable : true } ,
redirected : { enumerable : true } ,
statusText : { enumerable : true } ,
headers : { enumerable : true } ,
clone : { enumerable : true }
} ) ;
Object . defineProperty ( Response . prototype , Symbol . toStringTag , {
value : 'Response' ,
writable : false ,
enumerable : false ,
configurable : true
} ) ;
const INTERNALS$2 = Symbol ( 'Request internals' ) ;
const URL = Url . URL || whatwgUrl . URL ;
// fix an issue where "format", "parse" aren't a named export for node <10
const parse _url = Url . parse ;
const format _url = Url . format ;
/ * *
* Wrapper around ` new URL ` to handle arbitrary URLs
*
* @ param { string } urlStr
* @ return { void }
* /
function parseURL ( urlStr ) {
/ *
Check whether the URL is absolute or not
Scheme : https : //tools.ietf.org/html/rfc3986#section-3.1
Absolute URL : https : //tools.ietf.org/html/rfc3986#section-4.3
* /
if ( /^[a-zA-Z][a-zA-Z\d+\-.]*:/ . exec ( urlStr ) ) {
urlStr = new URL ( urlStr ) . toString ( ) ;
}
// Fallback to old implementation for arbitrary URLs
return parse _url ( urlStr ) ;
}
const streamDestructionSupported = 'destroy' in Stream . Readable . prototype ;
/ * *
* Check if a value is an instance of Request .
*
* @ param Mixed input
* @ return Boolean
* /
function isRequest ( input ) {
return typeof input === 'object' && typeof input [ INTERNALS$2 ] === 'object' ;
}
function isAbortSignal ( signal ) {
const proto = signal && typeof signal === 'object' && Object . getPrototypeOf ( signal ) ;
return ! ! ( proto && proto . constructor . name === 'AbortSignal' ) ;
}
/ * *
* Request class
*
* @ param Mixed input Url or Request instance
* @ param Object init Custom options
* @ return Void
* /
class Request {
constructor ( input ) {
let init = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : { } ;
let parsedURL ;
// normalize input
if ( ! isRequest ( input ) ) {
if ( input && input . href ) {
// in order to support Node.js' Url objects; though WHATWG's URL objects
// will fall into this branch also (since their `toString()` will return
// `href` property anyway)
parsedURL = parseURL ( input . href ) ;
} else {
// coerce input to a string before attempting to parse
parsedURL = parseURL ( ` ${ input } ` ) ;
}
input = { } ;
} else {
parsedURL = parseURL ( input . url ) ;
}
let method = init . method || input . method || 'GET' ;
method = method . toUpperCase ( ) ;
if ( ( init . body != null || isRequest ( input ) && input . body !== null ) && ( method === 'GET' || method === 'HEAD' ) ) {
throw new TypeError ( 'Request with GET/HEAD method cannot have body' ) ;
}
let inputBody = init . body != null ? init . body : isRequest ( input ) && input . body !== null ? clone ( input ) : null ;
Body . call ( this , inputBody , {
timeout : init . timeout || input . timeout || 0 ,
size : init . size || input . size || 0
} ) ;
const headers = new Headers ( init . headers || input . headers || { } ) ;
if ( inputBody != null && ! headers . has ( 'Content-Type' ) ) {
const contentType = extractContentType ( inputBody ) ;
if ( contentType ) {
headers . append ( 'Content-Type' , contentType ) ;
}
}
let signal = isRequest ( input ) ? input . signal : null ;
if ( 'signal' in init ) signal = init . signal ;
if ( signal != null && ! isAbortSignal ( signal ) ) {
throw new TypeError ( 'Expected signal to be an instanceof AbortSignal' ) ;
}
this [ INTERNALS$2 ] = {
method ,
redirect : init . redirect || input . redirect || 'follow' ,
headers ,
parsedURL ,
signal
} ;
// node-fetch-only options
this . follow = init . follow !== undefined ? init . follow : input . follow !== undefined ? input . follow : 20 ;
this . compress = init . compress !== undefined ? init . compress : input . compress !== undefined ? input . compress : true ;
this . counter = init . counter || input . counter || 0 ;
this . agent = init . agent || input . agent ;
}
get method ( ) {
return this [ INTERNALS$2 ] . method ;
}
get url ( ) {
return format _url ( this [ INTERNALS$2 ] . parsedURL ) ;
}
get headers ( ) {
return this [ INTERNALS$2 ] . headers ;
}
get redirect ( ) {
return this [ INTERNALS$2 ] . redirect ;
}
get signal ( ) {
return this [ INTERNALS$2 ] . signal ;
}
/ * *
* Clone this request
*
* @ return Request
* /
clone ( ) {
return new Request ( this ) ;
}
}
Body . mixIn ( Request . prototype ) ;
Object . defineProperty ( Request . prototype , Symbol . toStringTag , {
value : 'Request' ,
writable : false ,
enumerable : false ,
configurable : true
} ) ;
Object . defineProperties ( Request . prototype , {
method : { enumerable : true } ,
url : { enumerable : true } ,
headers : { enumerable : true } ,
redirect : { enumerable : true } ,
clone : { enumerable : true } ,
signal : { enumerable : true }
} ) ;
/ * *
* Convert a Request to Node . js http request options .
*
* @ param Request A Request instance
* @ return Object The options object to be passed to http . request
* /
function getNodeRequestOptions ( request ) {
const parsedURL = request [ INTERNALS$2 ] . parsedURL ;
const headers = new Headers ( request [ INTERNALS$2 ] . headers ) ;
// fetch step 1.3
if ( ! headers . has ( 'Accept' ) ) {
headers . set ( 'Accept' , '*/*' ) ;
}
// Basic fetch
if ( ! parsedURL . protocol || ! parsedURL . hostname ) {
throw new TypeError ( 'Only absolute URLs are supported' ) ;
}
if ( ! /^https?:$/ . test ( parsedURL . protocol ) ) {
throw new TypeError ( 'Only HTTP(S) protocols are supported' ) ;
}
if ( request . signal && request . body instanceof Stream . Readable && ! streamDestructionSupported ) {
throw new Error ( 'Cancellation of streamed requests with AbortSignal is not supported in node < 8' ) ;
}
// HTTP-network-or-cache fetch steps 2.4-2.7
let contentLengthValue = null ;
if ( request . body == null && /^(POST|PUT)$/i . test ( request . method ) ) {
contentLengthValue = '0' ;
}
if ( request . body != null ) {
const totalBytes = getTotalBytes ( request ) ;
if ( typeof totalBytes === 'number' ) {
contentLengthValue = String ( totalBytes ) ;
}
}
if ( contentLengthValue ) {
headers . set ( 'Content-Length' , contentLengthValue ) ;
}
// HTTP-network-or-cache fetch step 2.11
if ( ! headers . has ( 'User-Agent' ) ) {
headers . set ( 'User-Agent' , 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)' ) ;
}
// HTTP-network-or-cache fetch step 2.15
if ( request . compress && ! headers . has ( 'Accept-Encoding' ) ) {
headers . set ( 'Accept-Encoding' , 'gzip,deflate' ) ;
}
let agent = request . agent ;
if ( typeof agent === 'function' ) {
agent = agent ( parsedURL ) ;
}
if ( ! headers . has ( 'Connection' ) && ! agent ) {
headers . set ( 'Connection' , 'close' ) ;
}
// HTTP-network fetch step 4.2
// chunked encoding is handled by Node.js
return Object . assign ( { } , parsedURL , {
method : request . method ,
headers : exportNodeCompatibleHeaders ( headers ) ,
agent
} ) ;
}
/ * *
* abort - error . js
*
* AbortError interface for cancelled requests
* /
/ * *
* Create AbortError instance
*
* @ param String message Error message for human
* @ return AbortError
* /
function AbortError ( message ) {
Error . call ( this , message ) ;
this . type = 'aborted' ;
this . message = message ;
// hide custom error implementation details from end-users
Error . captureStackTrace ( this , this . constructor ) ;
}
AbortError . prototype = Object . create ( Error . prototype ) ;
AbortError . prototype . constructor = AbortError ;
AbortError . prototype . name = 'AbortError' ;
2022-03-11 17:46:28 +00:00
const URL$1 = Url . URL || whatwgUrl . URL ;
2022-01-11 11:52:29 +00:00
// fix an issue where "PassThrough", "resolve" aren't a named export for node <10
const PassThrough$1 = Stream . PassThrough ;
2022-03-11 17:46:28 +00:00
const isDomainOrSubdomain = function isDomainOrSubdomain ( destination , original ) {
const orig = new URL$1 ( original ) . hostname ;
const dest = new URL$1 ( destination ) . hostname ;
return orig === dest || orig [ orig . length - dest . length - 1 ] === '.' && orig . endsWith ( dest ) ;
} ;
2022-01-11 11:52:29 +00:00
/ * *
* Fetch function
*
* @ param Mixed url Absolute url or Request instance
* @ param Object opts Fetch options
* @ return Promise
* /
function fetch ( url , opts ) {
// allow custom promise
if ( ! fetch . Promise ) {
throw new Error ( 'native promise missing, set fetch.Promise to your favorite alternative' ) ;
}
Body . Promise = fetch . Promise ;
// wrap http.request into fetch
return new fetch . Promise ( function ( resolve , reject ) {
// build request object
const request = new Request ( url , opts ) ;
const options = getNodeRequestOptions ( request ) ;
const send = ( options . protocol === 'https:' ? https : http ) . request ;
const signal = request . signal ;
let response = null ;
const abort = function abort ( ) {
let error = new AbortError ( 'The user aborted a request.' ) ;
reject ( error ) ;
if ( request . body && request . body instanceof Stream . Readable ) {
request . body . destroy ( error ) ;
}
if ( ! response || ! response . body ) return ;
response . body . emit ( 'error' , error ) ;
} ;
if ( signal && signal . aborted ) {
abort ( ) ;
return ;
}
const abortAndFinalize = function abortAndFinalize ( ) {
abort ( ) ;
finalize ( ) ;
} ;
// send request
const req = send ( options ) ;
let reqTimeout ;
if ( signal ) {
signal . addEventListener ( 'abort' , abortAndFinalize ) ;
}
function finalize ( ) {
req . abort ( ) ;
if ( signal ) signal . removeEventListener ( 'abort' , abortAndFinalize ) ;
clearTimeout ( reqTimeout ) ;
}
if ( request . timeout ) {
req . once ( 'socket' , function ( socket ) {
reqTimeout = setTimeout ( function ( ) {
reject ( new FetchError ( ` network timeout at: ${ request . url } ` , 'request-timeout' ) ) ;
finalize ( ) ;
} , request . timeout ) ;
} ) ;
}
req . on ( 'error' , function ( err ) {
reject ( new FetchError ( ` request to ${ request . url } failed, reason: ${ err . message } ` , 'system' , err ) ) ;
finalize ( ) ;
} ) ;
req . on ( 'response' , function ( res ) {
clearTimeout ( reqTimeout ) ;
const headers = createHeadersLenient ( res . headers ) ;
// HTTP fetch step 5
if ( fetch . isRedirect ( res . statusCode ) ) {
// HTTP fetch step 5.2
const location = headers . get ( 'Location' ) ;
// HTTP fetch step 5.3
2022-03-11 17:46:28 +00:00
let locationURL = null ;
try {
locationURL = location === null ? null : new URL$1 ( location , request . url ) . toString ( ) ;
} catch ( err ) {
// error here can only be invalid URL in Location: header
// do not throw when options.redirect == manual
// let the user extract the errorneous redirect URL
if ( request . redirect !== 'manual' ) {
reject ( new FetchError ( ` uri requested responds with an invalid redirect URL: ${ location } ` , 'invalid-redirect' ) ) ;
finalize ( ) ;
return ;
}
}
2022-01-11 11:52:29 +00:00
// HTTP fetch step 5.5
switch ( request . redirect ) {
case 'error' :
reject ( new FetchError ( ` uri requested responds with a redirect, redirect mode is set to error: ${ request . url } ` , 'no-redirect' ) ) ;
finalize ( ) ;
return ;
case 'manual' :
// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.
if ( locationURL !== null ) {
// handle corrupted header
try {
headers . set ( 'Location' , locationURL ) ;
} catch ( err ) {
// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request
reject ( err ) ;
}
}
break ;
case 'follow' :
// HTTP-redirect fetch step 2
if ( locationURL === null ) {
break ;
}
// HTTP-redirect fetch step 5
if ( request . counter >= request . follow ) {
reject ( new FetchError ( ` maximum redirect reached at: ${ request . url } ` , 'max-redirect' ) ) ;
finalize ( ) ;
return ;
}
// HTTP-redirect fetch step 6 (counter increment)
// Create a new Request object.
const requestOpts = {
headers : new Headers ( request . headers ) ,
follow : request . follow ,
counter : request . counter + 1 ,
agent : request . agent ,
compress : request . compress ,
method : request . method ,
body : request . body ,
signal : request . signal ,
timeout : request . timeout ,
size : request . size
} ;
2022-03-11 17:46:28 +00:00
if ( ! isDomainOrSubdomain ( request . url , locationURL ) ) {
for ( const name of [ 'authorization' , 'www-authenticate' , 'cookie' , 'cookie2' ] ) {
requestOpts . headers . delete ( name ) ;
}
}
2022-01-11 11:52:29 +00:00
// HTTP-redirect fetch step 9
if ( res . statusCode !== 303 && request . body && getTotalBytes ( request ) === null ) {
reject ( new FetchError ( 'Cannot follow redirect with body being a readable stream' , 'unsupported-redirect' ) ) ;
finalize ( ) ;
return ;
}
// HTTP-redirect fetch step 11
if ( res . statusCode === 303 || ( res . statusCode === 301 || res . statusCode === 302 ) && request . method === 'POST' ) {
requestOpts . method = 'GET' ;
requestOpts . body = undefined ;
requestOpts . headers . delete ( 'content-length' ) ;
}
// HTTP-redirect fetch step 15
resolve ( fetch ( new Request ( locationURL , requestOpts ) ) ) ;
finalize ( ) ;
return ;
}
}
// prepare response
res . once ( 'end' , function ( ) {
if ( signal ) signal . removeEventListener ( 'abort' , abortAndFinalize ) ;
} ) ;
let body = res . pipe ( new PassThrough$1 ( ) ) ;
const response _options = {
url : request . url ,
status : res . statusCode ,
statusText : res . statusMessage ,
headers : headers ,
size : request . size ,
timeout : request . timeout ,
counter : request . counter
} ;
// HTTP-network fetch step 12.1.1.3
const codings = headers . get ( 'Content-Encoding' ) ;
// HTTP-network fetch step 12.1.1.4: handle content codings
// in following scenarios we ignore compression support
// 1. compression support is disabled
// 2. HEAD request
// 3. no Content-Encoding header
// 4. no content response (204)
// 5. content not modified response (304)
if ( ! request . compress || request . method === 'HEAD' || codings === null || res . statusCode === 204 || res . statusCode === 304 ) {
response = new Response ( body , response _options ) ;
resolve ( response ) ;
return ;
}
// For Node v6+
// Be less strict when decoding compressed responses, since sometimes
// servers send slightly invalid responses that are still accepted
// by common browsers.
// Always using Z_SYNC_FLUSH is what cURL does.
const zlibOptions = {
flush : zlib . Z _SYNC _FLUSH ,
finishFlush : zlib . Z _SYNC _FLUSH
} ;
// for gzip
if ( codings == 'gzip' || codings == 'x-gzip' ) {
body = body . pipe ( zlib . createGunzip ( zlibOptions ) ) ;
response = new Response ( body , response _options ) ;
resolve ( response ) ;
return ;
}
// for deflate
if ( codings == 'deflate' || codings == 'x-deflate' ) {
// handle the infamous raw deflate response from old servers
// a hack for old IIS and Apache servers
const raw = res . pipe ( new PassThrough$1 ( ) ) ;
raw . once ( 'data' , function ( chunk ) {
// see http://stackoverflow.com/questions/37519828
if ( ( chunk [ 0 ] & 0x0F ) === 0x08 ) {
body = body . pipe ( zlib . createInflate ( ) ) ;
} else {
body = body . pipe ( zlib . createInflateRaw ( ) ) ;
}
response = new Response ( body , response _options ) ;
resolve ( response ) ;
} ) ;
return ;
}
// for br
if ( codings == 'br' && typeof zlib . createBrotliDecompress === 'function' ) {
body = body . pipe ( zlib . createBrotliDecompress ( ) ) ;
response = new Response ( body , response _options ) ;
resolve ( response ) ;
return ;
}
// otherwise, use response as-is
response = new Response ( body , response _options ) ;
resolve ( response ) ;
} ) ;
writeToStream ( req , request ) ;
} ) ;
}
/ * *
* Redirect code matching
*
* @ param Number code Status code
* @ return Boolean
* /
fetch . isRedirect = function ( code ) {
return code === 301 || code === 302 || code === 303 || code === 307 || code === 308 ;
} ;
// expose Promise
fetch . Promise = global . Promise ;
module . exports = exports = fetch ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports [ "default" ] = exports ;
exports . Headers = Headers ;
exports . Request = Request ;
exports . Response = Response ;
exports . FetchError = FetchError ;
/***/ } ) ,
/***/ 2299 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
var punycode = _ _nccwpck _require _ _ ( 5477 ) ;
var mappingTable = _ _nccwpck _require _ _ ( 1907 ) ;
var PROCESSING _OPTIONS = {
TRANSITIONAL : 0 ,
NONTRANSITIONAL : 1
} ;
function normalize ( str ) { // fix bug in v8
return str . split ( '\u0000' ) . map ( function ( s ) { return s . normalize ( 'NFC' ) ; } ) . join ( '\u0000' ) ;
}
function findStatus ( val ) {
var start = 0 ;
var end = mappingTable . length - 1 ;
while ( start <= end ) {
var mid = Math . floor ( ( start + end ) / 2 ) ;
var target = mappingTable [ mid ] ;
if ( target [ 0 ] [ 0 ] <= val && target [ 0 ] [ 1 ] >= val ) {
return target ;
} else if ( target [ 0 ] [ 0 ] > val ) {
end = mid - 1 ;
} else {
start = mid + 1 ;
}
}
return null ;
}
var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g ;
function countSymbols ( string ) {
return string
// replace every surrogate pair with a BMP symbol
. replace ( regexAstralSymbols , '_' )
// then get the length
. length ;
}
function mapChars ( domain _name , useSTD3 , processing _option ) {
var hasError = false ;
var processed = "" ;
var len = countSymbols ( domain _name ) ;
for ( var i = 0 ; i < len ; ++ i ) {
var codePoint = domain _name . codePointAt ( i ) ;
var status = findStatus ( codePoint ) ;
switch ( status [ 1 ] ) {
case "disallowed" :
hasError = true ;
processed += String . fromCodePoint ( codePoint ) ;
break ;
case "ignored" :
break ;
case "mapped" :
processed += String . fromCodePoint . apply ( String , status [ 2 ] ) ;
break ;
case "deviation" :
if ( processing _option === PROCESSING _OPTIONS . TRANSITIONAL ) {
processed += String . fromCodePoint . apply ( String , status [ 2 ] ) ;
} else {
processed += String . fromCodePoint ( codePoint ) ;
}
break ;
case "valid" :
processed += String . fromCodePoint ( codePoint ) ;
break ;
case "disallowed_STD3_mapped" :
if ( useSTD3 ) {
hasError = true ;
processed += String . fromCodePoint ( codePoint ) ;
} else {
processed += String . fromCodePoint . apply ( String , status [ 2 ] ) ;
}
break ;
case "disallowed_STD3_valid" :
if ( useSTD3 ) {
hasError = true ;
}
processed += String . fromCodePoint ( codePoint ) ;
break ;
}
}
return {
string : processed ,
error : hasError
} ;
}
var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/ ;
function validateLabel ( label , processing _option ) {
if ( label . substr ( 0 , 4 ) === "xn--" ) {
label = punycode . toUnicode ( label ) ;
processing _option = PROCESSING _OPTIONS . NONTRANSITIONAL ;
}
var error = false ;
if ( normalize ( label ) !== label ||
( label [ 3 ] === "-" && label [ 4 ] === "-" ) ||
label [ 0 ] === "-" || label [ label . length - 1 ] === "-" ||
label . indexOf ( "." ) !== - 1 ||
label . search ( combiningMarksRegex ) === 0 ) {
error = true ;
}
var len = countSymbols ( label ) ;
for ( var i = 0 ; i < len ; ++ i ) {
var status = findStatus ( label . codePointAt ( i ) ) ;
if ( ( processing === PROCESSING _OPTIONS . TRANSITIONAL && status [ 1 ] !== "valid" ) ||
( processing === PROCESSING _OPTIONS . NONTRANSITIONAL &&
status [ 1 ] !== "valid" && status [ 1 ] !== "deviation" ) ) {
error = true ;
break ;
}
}
return {
label : label ,
error : error
} ;
}
function processing ( domain _name , useSTD3 , processing _option ) {
var result = mapChars ( domain _name , useSTD3 , processing _option ) ;
result . string = normalize ( result . string ) ;
var labels = result . string . split ( "." ) ;
for ( var i = 0 ; i < labels . length ; ++ i ) {
try {
var validation = validateLabel ( labels [ i ] ) ;
labels [ i ] = validation . label ;
result . error = result . error || validation . error ;
} catch ( e ) {
result . error = true ;
}
}
return {
string : labels . join ( "." ) ,
error : result . error
} ;
}
module . exports . toASCII = function ( domain _name , useSTD3 , processing _option , verifyDnsLength ) {
var result = processing ( domain _name , useSTD3 , processing _option ) ;
var labels = result . string . split ( "." ) ;
labels = labels . map ( function ( l ) {
try {
return punycode . toASCII ( l ) ;
} catch ( e ) {
result . error = true ;
return l ;
}
} ) ;
if ( verifyDnsLength ) {
var total = labels . slice ( 0 , labels . length - 1 ) . join ( "." ) . length ;
if ( total . length > 253 || total . length === 0 ) {
result . error = true ;
}
for ( var i = 0 ; i < labels . length ; ++ i ) {
if ( labels . length > 63 || labels . length === 0 ) {
result . error = true ;
break ;
}
}
}
if ( result . error ) return null ;
return labels . join ( "." ) ;
} ;
module . exports . toUnicode = function ( domain _name , useSTD3 ) {
var result = processing ( domain _name , useSTD3 , PROCESSING _OPTIONS . NONTRANSITIONAL ) ;
return {
domain : result . string ,
error : result . error
} ;
} ;
module . exports . PROCESSING _OPTIONS = PROCESSING _OPTIONS ;
/***/ } ) ,
/***/ 5871 :
/***/ ( ( module ) => {
"use strict" ;
var conversions = { } ;
module . exports = conversions ;
function sign ( x ) {
return x < 0 ? - 1 : 1 ;
}
function evenRound ( x ) {
// Round x to the nearest integer, choosing the even integer if it lies halfway between two.
if ( ( x % 1 ) === 0.5 && ( x & 1 ) === 0 ) { // [even number].5; round down (i.e. floor)
return Math . floor ( x ) ;
} else {
return Math . round ( x ) ;
}
}
function createNumberConversion ( bitLength , typeOpts ) {
if ( ! typeOpts . unsigned ) {
-- bitLength ;
}
const lowerBound = typeOpts . unsigned ? 0 : - Math . pow ( 2 , bitLength ) ;
const upperBound = Math . pow ( 2 , bitLength ) - 1 ;
const moduloVal = typeOpts . moduloBitLength ? Math . pow ( 2 , typeOpts . moduloBitLength ) : Math . pow ( 2 , bitLength ) ;
const moduloBound = typeOpts . moduloBitLength ? Math . pow ( 2 , typeOpts . moduloBitLength - 1 ) : Math . pow ( 2 , bitLength - 1 ) ;
return function ( V , opts ) {
if ( ! opts ) opts = { } ;
let x = + V ;
if ( opts . enforceRange ) {
if ( ! Number . isFinite ( x ) ) {
throw new TypeError ( "Argument is not a finite number" ) ;
}
x = sign ( x ) * Math . floor ( Math . abs ( x ) ) ;
if ( x < lowerBound || x > upperBound ) {
throw new TypeError ( "Argument is not in byte range" ) ;
}
return x ;
}
if ( ! isNaN ( x ) && opts . clamp ) {
x = evenRound ( x ) ;
if ( x < lowerBound ) x = lowerBound ;
if ( x > upperBound ) x = upperBound ;
return x ;
}
if ( ! Number . isFinite ( x ) || x === 0 ) {
return 0 ;
}
x = sign ( x ) * Math . floor ( Math . abs ( x ) ) ;
x = x % moduloVal ;
if ( ! typeOpts . unsigned && x >= moduloBound ) {
return x - moduloVal ;
} else if ( typeOpts . unsigned ) {
if ( x < 0 ) {
x += moduloVal ;
} else if ( x === - 0 ) { // don't return negative zero
return 0 ;
}
}
return x ;
}
}
conversions [ "void" ] = function ( ) {
return undefined ;
} ;
conversions [ "boolean" ] = function ( val ) {
return ! ! val ;
} ;
conversions [ "byte" ] = createNumberConversion ( 8 , { unsigned : false } ) ;
conversions [ "octet" ] = createNumberConversion ( 8 , { unsigned : true } ) ;
conversions [ "short" ] = createNumberConversion ( 16 , { unsigned : false } ) ;
conversions [ "unsigned short" ] = createNumberConversion ( 16 , { unsigned : true } ) ;
conversions [ "long" ] = createNumberConversion ( 32 , { unsigned : false } ) ;
conversions [ "unsigned long" ] = createNumberConversion ( 32 , { unsigned : true } ) ;
conversions [ "long long" ] = createNumberConversion ( 32 , { unsigned : false , moduloBitLength : 64 } ) ;
conversions [ "unsigned long long" ] = createNumberConversion ( 32 , { unsigned : true , moduloBitLength : 64 } ) ;
conversions [ "double" ] = function ( V ) {
const x = + V ;
if ( ! Number . isFinite ( x ) ) {
throw new TypeError ( "Argument is not a finite floating-point value" ) ;
}
return x ;
} ;
conversions [ "unrestricted double" ] = function ( V ) {
const x = + V ;
if ( isNaN ( x ) ) {
throw new TypeError ( "Argument is NaN" ) ;
}
return x ;
} ;
// not quite valid, but good enough for JS
conversions [ "float" ] = conversions [ "double" ] ;
conversions [ "unrestricted float" ] = conversions [ "unrestricted double" ] ;
conversions [ "DOMString" ] = function ( V , opts ) {
if ( ! opts ) opts = { } ;
if ( opts . treatNullAsEmptyString && V === null ) {
return "" ;
}
return String ( V ) ;
} ;
conversions [ "ByteString" ] = function ( V , opts ) {
const x = String ( V ) ;
let c = undefined ;
for ( let i = 0 ; ( c = x . codePointAt ( i ) ) !== undefined ; ++ i ) {
if ( c > 255 ) {
throw new TypeError ( "Argument is not a valid bytestring" ) ;
}
}
return x ;
} ;
conversions [ "USVString" ] = function ( V ) {
const S = String ( V ) ;
const n = S . length ;
const U = [ ] ;
for ( let i = 0 ; i < n ; ++ i ) {
const c = S . charCodeAt ( i ) ;
if ( c < 0xD800 || c > 0xDFFF ) {
U . push ( String . fromCodePoint ( c ) ) ;
} else if ( 0xDC00 <= c && c <= 0xDFFF ) {
U . push ( String . fromCodePoint ( 0xFFFD ) ) ;
} else {
if ( i === n - 1 ) {
U . push ( String . fromCodePoint ( 0xFFFD ) ) ;
} else {
const d = S . charCodeAt ( i + 1 ) ;
if ( 0xDC00 <= d && d <= 0xDFFF ) {
const a = c & 0x3FF ;
const b = d & 0x3FF ;
U . push ( String . fromCodePoint ( ( 2 << 15 ) + ( 2 << 9 ) * a + b ) ) ;
++ i ;
} else {
U . push ( String . fromCodePoint ( 0xFFFD ) ) ;
}
}
}
}
return U . join ( '' ) ;
} ;
conversions [ "Date" ] = function ( V , opts ) {
if ( ! ( V instanceof Date ) ) {
throw new TypeError ( "Argument is not a Date object" ) ;
}
if ( isNaN ( V ) ) {
return undefined ;
}
return V ;
} ;
conversions [ "RegExp" ] = function ( V , opts ) {
if ( ! ( V instanceof RegExp ) ) {
V = new RegExp ( V ) ;
}
return V ;
} ;
/***/ } ) ,
/***/ 8262 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
const usm = _ _nccwpck _require _ _ ( 33 ) ;
exports . implementation = class URLImpl {
constructor ( constructorArgs ) {
const url = constructorArgs [ 0 ] ;
const base = constructorArgs [ 1 ] ;
let parsedBase = null ;
if ( base !== undefined ) {
parsedBase = usm . basicURLParse ( base ) ;
if ( parsedBase === "failure" ) {
throw new TypeError ( "Invalid base URL" ) ;
}
}
const parsedURL = usm . basicURLParse ( url , { baseURL : parsedBase } ) ;
if ( parsedURL === "failure" ) {
throw new TypeError ( "Invalid URL" ) ;
}
this . _url = parsedURL ;
// TODO: query stuff
}
get href ( ) {
return usm . serializeURL ( this . _url ) ;
}
set href ( v ) {
const parsedURL = usm . basicURLParse ( v ) ;
if ( parsedURL === "failure" ) {
throw new TypeError ( "Invalid URL" ) ;
}
this . _url = parsedURL ;
}
get origin ( ) {
return usm . serializeURLOrigin ( this . _url ) ;
}
get protocol ( ) {
return this . _url . scheme + ":" ;
}
set protocol ( v ) {
usm . basicURLParse ( v + ":" , { url : this . _url , stateOverride : "scheme start" } ) ;
}
get username ( ) {
return this . _url . username ;
}
set username ( v ) {
if ( usm . cannotHaveAUsernamePasswordPort ( this . _url ) ) {
return ;
}
usm . setTheUsername ( this . _url , v ) ;
}
get password ( ) {
return this . _url . password ;
}
set password ( v ) {
if ( usm . cannotHaveAUsernamePasswordPort ( this . _url ) ) {
return ;
}
usm . setThePassword ( this . _url , v ) ;
}
get host ( ) {
const url = this . _url ;
if ( url . host === null ) {
return "" ;
}
if ( url . port === null ) {
return usm . serializeHost ( url . host ) ;
}
return usm . serializeHost ( url . host ) + ":" + usm . serializeInteger ( url . port ) ;
}
set host ( v ) {
if ( this . _url . cannotBeABaseURL ) {
return ;
}
usm . basicURLParse ( v , { url : this . _url , stateOverride : "host" } ) ;
}
get hostname ( ) {
if ( this . _url . host === null ) {
return "" ;
}
return usm . serializeHost ( this . _url . host ) ;
}
set hostname ( v ) {
if ( this . _url . cannotBeABaseURL ) {
return ;
}
usm . basicURLParse ( v , { url : this . _url , stateOverride : "hostname" } ) ;
}
get port ( ) {
if ( this . _url . port === null ) {
return "" ;
}
return usm . serializeInteger ( this . _url . port ) ;
}
set port ( v ) {
if ( usm . cannotHaveAUsernamePasswordPort ( this . _url ) ) {
return ;
}
if ( v === "" ) {
this . _url . port = null ;
} else {
usm . basicURLParse ( v , { url : this . _url , stateOverride : "port" } ) ;
}
}
get pathname ( ) {
if ( this . _url . cannotBeABaseURL ) {
return this . _url . path [ 0 ] ;
}
if ( this . _url . path . length === 0 ) {
return "" ;
}
return "/" + this . _url . path . join ( "/" ) ;
}
set pathname ( v ) {
if ( this . _url . cannotBeABaseURL ) {
return ;
}
this . _url . path = [ ] ;
usm . basicURLParse ( v , { url : this . _url , stateOverride : "path start" } ) ;
}
get search ( ) {
if ( this . _url . query === null || this . _url . query === "" ) {
return "" ;
}
return "?" + this . _url . query ;
}
set search ( v ) {
// TODO: query stuff
const url = this . _url ;
if ( v === "" ) {
url . query = null ;
return ;
}
const input = v [ 0 ] === "?" ? v . substring ( 1 ) : v ;
url . query = "" ;
usm . basicURLParse ( input , { url , stateOverride : "query" } ) ;
}
get hash ( ) {
if ( this . _url . fragment === null || this . _url . fragment === "" ) {
return "" ;
}
return "#" + this . _url . fragment ;
}
set hash ( v ) {
if ( v === "" ) {
this . _url . fragment = null ;
return ;
}
const input = v [ 0 ] === "#" ? v . substring ( 1 ) : v ;
this . _url . fragment = "" ;
usm . basicURLParse ( input , { url : this . _url , stateOverride : "fragment" } ) ;
}
toJSON ( ) {
return this . href ;
}
} ;
/***/ } ) ,
/***/ 653 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
const conversions = _ _nccwpck _require _ _ ( 5871 ) ;
const utils = _ _nccwpck _require _ _ ( 276 ) ;
const Impl = _ _nccwpck _require _ _ ( 8262 ) ;
const impl = utils . implSymbol ;
function URL ( url ) {
if ( ! this || this [ impl ] || ! ( this instanceof URL ) ) {
throw new TypeError ( "Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function." ) ;
}
if ( arguments . length < 1 ) {
throw new TypeError ( "Failed to construct 'URL': 1 argument required, but only " + arguments . length + " present." ) ;
}
const args = [ ] ;
for ( let i = 0 ; i < arguments . length && i < 2 ; ++ i ) {
args [ i ] = arguments [ i ] ;
}
args [ 0 ] = conversions [ "USVString" ] ( args [ 0 ] ) ;
if ( args [ 1 ] !== undefined ) {
args [ 1 ] = conversions [ "USVString" ] ( args [ 1 ] ) ;
}
module . exports . setup ( this , args ) ;
}
URL . prototype . toJSON = function toJSON ( ) {
if ( ! this || ! module . exports . is ( this ) ) {
throw new TypeError ( "Illegal invocation" ) ;
}
const args = [ ] ;
for ( let i = 0 ; i < arguments . length && i < 0 ; ++ i ) {
args [ i ] = arguments [ i ] ;
}
return this [ impl ] . toJSON . apply ( this [ impl ] , args ) ;
} ;
Object . defineProperty ( URL . prototype , "href" , {
get ( ) {
return this [ impl ] . href ;
} ,
set ( V ) {
V = conversions [ "USVString" ] ( V ) ;
this [ impl ] . href = V ;
} ,
enumerable : true ,
configurable : true
} ) ;
URL . prototype . toString = function ( ) {
if ( ! this || ! module . exports . is ( this ) ) {
throw new TypeError ( "Illegal invocation" ) ;
}
return this . href ;
} ;
Object . defineProperty ( URL . prototype , "origin" , {
get ( ) {
return this [ impl ] . origin ;
} ,
enumerable : true ,
configurable : true
} ) ;
Object . defineProperty ( URL . prototype , "protocol" , {
get ( ) {
return this [ impl ] . protocol ;
} ,
set ( V ) {
V = conversions [ "USVString" ] ( V ) ;
this [ impl ] . protocol = V ;
} ,
enumerable : true ,
configurable : true
} ) ;
Object . defineProperty ( URL . prototype , "username" , {
get ( ) {
return this [ impl ] . username ;
} ,
set ( V ) {
V = conversions [ "USVString" ] ( V ) ;
this [ impl ] . username = V ;
} ,
enumerable : true ,
configurable : true
} ) ;
Object . defineProperty ( URL . prototype , "password" , {
get ( ) {
return this [ impl ] . password ;
} ,
set ( V ) {
V = conversions [ "USVString" ] ( V ) ;
this [ impl ] . password = V ;
} ,
enumerable : true ,
configurable : true
} ) ;
Object . defineProperty ( URL . prototype , "host" , {
get ( ) {
return this [ impl ] . host ;
} ,
set ( V ) {
V = conversions [ "USVString" ] ( V ) ;
this [ impl ] . host = V ;
} ,
enumerable : true ,
configurable : true
} ) ;
Object . defineProperty ( URL . prototype , "hostname" , {
get ( ) {
return this [ impl ] . hostname ;
} ,
set ( V ) {
V = conversions [ "USVString" ] ( V ) ;
this [ impl ] . hostname = V ;
} ,
enumerable : true ,
configurable : true
} ) ;
Object . defineProperty ( URL . prototype , "port" , {
get ( ) {
return this [ impl ] . port ;
} ,
set ( V ) {
V = conversions [ "USVString" ] ( V ) ;
this [ impl ] . port = V ;
} ,
enumerable : true ,
configurable : true
} ) ;
Object . defineProperty ( URL . prototype , "pathname" , {
get ( ) {
return this [ impl ] . pathname ;
} ,
set ( V ) {
V = conversions [ "USVString" ] ( V ) ;
this [ impl ] . pathname = V ;
} ,
enumerable : true ,
configurable : true
} ) ;
Object . defineProperty ( URL . prototype , "search" , {
get ( ) {
return this [ impl ] . search ;
} ,
set ( V ) {
V = conversions [ "USVString" ] ( V ) ;
this [ impl ] . search = V ;
} ,
enumerable : true ,
configurable : true
} ) ;
Object . defineProperty ( URL . prototype , "hash" , {
get ( ) {
return this [ impl ] . hash ;
} ,
set ( V ) {
V = conversions [ "USVString" ] ( V ) ;
this [ impl ] . hash = V ;
} ,
enumerable : true ,
configurable : true
} ) ;
module . exports = {
is ( obj ) {
return ! ! obj && obj [ impl ] instanceof Impl . implementation ;
} ,
create ( constructorArgs , privateData ) {
let obj = Object . create ( URL . prototype ) ;
this . setup ( obj , constructorArgs , privateData ) ;
return obj ;
} ,
setup ( obj , constructorArgs , privateData ) {
if ( ! privateData ) privateData = { } ;
privateData . wrapper = obj ;
obj [ impl ] = new Impl . implementation ( constructorArgs , privateData ) ;
obj [ impl ] [ utils . wrapperSymbol ] = obj ;
} ,
interface : URL ,
expose : {
Window : { URL : URL } ,
Worker : { URL : URL }
}
} ;
/***/ } ) ,
/***/ 3323 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
exports . URL = _ _nccwpck _require _ _ ( 653 ) [ "interface" ] ;
exports . serializeURL = _ _nccwpck _require _ _ ( 33 ) . serializeURL ;
exports . serializeURLOrigin = _ _nccwpck _require _ _ ( 33 ) . serializeURLOrigin ;
exports . basicURLParse = _ _nccwpck _require _ _ ( 33 ) . basicURLParse ;
exports . setTheUsername = _ _nccwpck _require _ _ ( 33 ) . setTheUsername ;
exports . setThePassword = _ _nccwpck _require _ _ ( 33 ) . setThePassword ;
exports . serializeHost = _ _nccwpck _require _ _ ( 33 ) . serializeHost ;
exports . serializeInteger = _ _nccwpck _require _ _ ( 33 ) . serializeInteger ;
exports . parseURL = _ _nccwpck _require _ _ ( 33 ) . parseURL ;
/***/ } ) ,
/***/ 33 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
const punycode = _ _nccwpck _require _ _ ( 5477 ) ;
const tr46 = _ _nccwpck _require _ _ ( 2299 ) ;
const specialSchemes = {
ftp : 21 ,
file : null ,
gopher : 70 ,
http : 80 ,
https : 443 ,
ws : 80 ,
wss : 443
} ;
const failure = Symbol ( "failure" ) ;
function countSymbols ( str ) {
return punycode . ucs2 . decode ( str ) . length ;
}
function at ( input , idx ) {
const c = input [ idx ] ;
return isNaN ( c ) ? undefined : String . fromCodePoint ( c ) ;
}
function isASCIIDigit ( c ) {
return c >= 0x30 && c <= 0x39 ;
}
function isASCIIAlpha ( c ) {
return ( c >= 0x41 && c <= 0x5A ) || ( c >= 0x61 && c <= 0x7A ) ;
}
function isASCIIAlphanumeric ( c ) {
return isASCIIAlpha ( c ) || isASCIIDigit ( c ) ;
}
function isASCIIHex ( c ) {
return isASCIIDigit ( c ) || ( c >= 0x41 && c <= 0x46 ) || ( c >= 0x61 && c <= 0x66 ) ;
}
function isSingleDot ( buffer ) {
return buffer === "." || buffer . toLowerCase ( ) === "%2e" ;
}
function isDoubleDot ( buffer ) {
buffer = buffer . toLowerCase ( ) ;
return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e" ;
}
function isWindowsDriveLetterCodePoints ( cp1 , cp2 ) {
return isASCIIAlpha ( cp1 ) && ( cp2 === 58 || cp2 === 124 ) ;
}
function isWindowsDriveLetterString ( string ) {
return string . length === 2 && isASCIIAlpha ( string . codePointAt ( 0 ) ) && ( string [ 1 ] === ":" || string [ 1 ] === "|" ) ;
}
function isNormalizedWindowsDriveLetterString ( string ) {
return string . length === 2 && isASCIIAlpha ( string . codePointAt ( 0 ) ) && string [ 1 ] === ":" ;
}
function containsForbiddenHostCodePoint ( string ) {
return string . search ( /\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/ ) !== - 1 ;
}
function containsForbiddenHostCodePointExcludingPercent ( string ) {
return string . search ( /\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/ ) !== - 1 ;
}
function isSpecialScheme ( scheme ) {
return specialSchemes [ scheme ] !== undefined ;
}
function isSpecial ( url ) {
return isSpecialScheme ( url . scheme ) ;
}
function defaultPort ( scheme ) {
return specialSchemes [ scheme ] ;
}
function percentEncode ( c ) {
let hex = c . toString ( 16 ) . toUpperCase ( ) ;
if ( hex . length === 1 ) {
hex = "0" + hex ;
}
return "%" + hex ;
}
function utf8PercentEncode ( c ) {
const buf = new Buffer ( c ) ;
let str = "" ;
for ( let i = 0 ; i < buf . length ; ++ i ) {
str += percentEncode ( buf [ i ] ) ;
}
return str ;
}
function utf8PercentDecode ( str ) {
const input = new Buffer ( str ) ;
const output = [ ] ;
for ( let i = 0 ; i < input . length ; ++ i ) {
if ( input [ i ] !== 37 ) {
output . push ( input [ i ] ) ;
} else if ( input [ i ] === 37 && isASCIIHex ( input [ i + 1 ] ) && isASCIIHex ( input [ i + 2 ] ) ) {
output . push ( parseInt ( input . slice ( i + 1 , i + 3 ) . toString ( ) , 16 ) ) ;
i += 2 ;
} else {
output . push ( input [ i ] ) ;
}
}
return new Buffer ( output ) . toString ( ) ;
}
function isC0ControlPercentEncode ( c ) {
return c <= 0x1F || c > 0x7E ;
}
const extraPathPercentEncodeSet = new Set ( [ 32 , 34 , 35 , 60 , 62 , 63 , 96 , 123 , 125 ] ) ;
function isPathPercentEncode ( c ) {
return isC0ControlPercentEncode ( c ) || extraPathPercentEncodeSet . has ( c ) ;
}
const extraUserinfoPercentEncodeSet =
new Set ( [ 47 , 58 , 59 , 61 , 64 , 91 , 92 , 93 , 94 , 124 ] ) ;
function isUserinfoPercentEncode ( c ) {
return isPathPercentEncode ( c ) || extraUserinfoPercentEncodeSet . has ( c ) ;
}
function percentEncodeChar ( c , encodeSetPredicate ) {
const cStr = String . fromCodePoint ( c ) ;
if ( encodeSetPredicate ( c ) ) {
return utf8PercentEncode ( cStr ) ;
}
return cStr ;
}
function parseIPv4Number ( input ) {
let R = 10 ;
if ( input . length >= 2 && input . charAt ( 0 ) === "0" && input . charAt ( 1 ) . toLowerCase ( ) === "x" ) {
input = input . substring ( 2 ) ;
R = 16 ;
} else if ( input . length >= 2 && input . charAt ( 0 ) === "0" ) {
input = input . substring ( 1 ) ;
R = 8 ;
}
if ( input === "" ) {
return 0 ;
}
const regex = R === 10 ? /[^0-9]/ : ( R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/ ) ;
if ( regex . test ( input ) ) {
return failure ;
}
return parseInt ( input , R ) ;
}
function parseIPv4 ( input ) {
const parts = input . split ( "." ) ;
if ( parts [ parts . length - 1 ] === "" ) {
if ( parts . length > 1 ) {
parts . pop ( ) ;
}
}
if ( parts . length > 4 ) {
return input ;
}
const numbers = [ ] ;
for ( const part of parts ) {
if ( part === "" ) {
return input ;
}
const n = parseIPv4Number ( part ) ;
if ( n === failure ) {
return input ;
}
numbers . push ( n ) ;
}
for ( let i = 0 ; i < numbers . length - 1 ; ++ i ) {
if ( numbers [ i ] > 255 ) {
return failure ;
}
}
if ( numbers [ numbers . length - 1 ] >= Math . pow ( 256 , 5 - numbers . length ) ) {
return failure ;
}
let ipv4 = numbers . pop ( ) ;
let counter = 0 ;
for ( const n of numbers ) {
ipv4 += n * Math . pow ( 256 , 3 - counter ) ;
++ counter ;
}
return ipv4 ;
}
function serializeIPv4 ( address ) {
let output = "" ;
let n = address ;
for ( let i = 1 ; i <= 4 ; ++ i ) {
output = String ( n % 256 ) + output ;
if ( i !== 4 ) {
output = "." + output ;
}
n = Math . floor ( n / 256 ) ;
}
return output ;
}
function parseIPv6 ( input ) {
const address = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ;
let pieceIndex = 0 ;
let compress = null ;
let pointer = 0 ;
input = punycode . ucs2 . decode ( input ) ;
if ( input [ pointer ] === 58 ) {
if ( input [ pointer + 1 ] !== 58 ) {
return failure ;
}
pointer += 2 ;
++ pieceIndex ;
compress = pieceIndex ;
}
while ( pointer < input . length ) {
if ( pieceIndex === 8 ) {
return failure ;
}
if ( input [ pointer ] === 58 ) {
if ( compress !== null ) {
return failure ;
}
++ pointer ;
++ pieceIndex ;
compress = pieceIndex ;
continue ;
}
let value = 0 ;
let length = 0 ;
while ( length < 4 && isASCIIHex ( input [ pointer ] ) ) {
value = value * 0x10 + parseInt ( at ( input , pointer ) , 16 ) ;
++ pointer ;
++ length ;
}
if ( input [ pointer ] === 46 ) {
if ( length === 0 ) {
return failure ;
}
pointer -= length ;
if ( pieceIndex > 6 ) {
return failure ;
}
let numbersSeen = 0 ;
while ( input [ pointer ] !== undefined ) {
let ipv4Piece = null ;
if ( numbersSeen > 0 ) {
if ( input [ pointer ] === 46 && numbersSeen < 4 ) {
++ pointer ;
} else {
return failure ;
}
}
if ( ! isASCIIDigit ( input [ pointer ] ) ) {
return failure ;
}
while ( isASCIIDigit ( input [ pointer ] ) ) {
const number = parseInt ( at ( input , pointer ) ) ;
if ( ipv4Piece === null ) {
ipv4Piece = number ;
} else if ( ipv4Piece === 0 ) {
return failure ;
} else {
ipv4Piece = ipv4Piece * 10 + number ;
}
if ( ipv4Piece > 255 ) {
return failure ;
}
++ pointer ;
}
address [ pieceIndex ] = address [ pieceIndex ] * 0x100 + ipv4Piece ;
++ numbersSeen ;
if ( numbersSeen === 2 || numbersSeen === 4 ) {
++ pieceIndex ;
}
}
if ( numbersSeen !== 4 ) {
return failure ;
}
break ;
} else if ( input [ pointer ] === 58 ) {
++ pointer ;
if ( input [ pointer ] === undefined ) {
return failure ;
}
} else if ( input [ pointer ] !== undefined ) {
return failure ;
}
address [ pieceIndex ] = value ;
++ pieceIndex ;
}
if ( compress !== null ) {
let swaps = pieceIndex - compress ;
pieceIndex = 7 ;
while ( pieceIndex !== 0 && swaps > 0 ) {
const temp = address [ compress + swaps - 1 ] ;
address [ compress + swaps - 1 ] = address [ pieceIndex ] ;
address [ pieceIndex ] = temp ;
-- pieceIndex ;
-- swaps ;
}
} else if ( compress === null && pieceIndex !== 8 ) {
return failure ;
}
return address ;
}
function serializeIPv6 ( address ) {
let output = "" ;
const seqResult = findLongestZeroSequence ( address ) ;
const compress = seqResult . idx ;
let ignore0 = false ;
for ( let pieceIndex = 0 ; pieceIndex <= 7 ; ++ pieceIndex ) {
if ( ignore0 && address [ pieceIndex ] === 0 ) {
continue ;
} else if ( ignore0 ) {
ignore0 = false ;
}
if ( compress === pieceIndex ) {
const separator = pieceIndex === 0 ? "::" : ":" ;
output += separator ;
ignore0 = true ;
continue ;
}
output += address [ pieceIndex ] . toString ( 16 ) ;
if ( pieceIndex !== 7 ) {
output += ":" ;
}
}
return output ;
}
function parseHost ( input , isSpecialArg ) {
if ( input [ 0 ] === "[" ) {
if ( input [ input . length - 1 ] !== "]" ) {
return failure ;
}
return parseIPv6 ( input . substring ( 1 , input . length - 1 ) ) ;
}
if ( ! isSpecialArg ) {
return parseOpaqueHost ( input ) ;
}
const domain = utf8PercentDecode ( input ) ;
const asciiDomain = tr46 . toASCII ( domain , false , tr46 . PROCESSING _OPTIONS . NONTRANSITIONAL , false ) ;
if ( asciiDomain === null ) {
return failure ;
}
if ( containsForbiddenHostCodePoint ( asciiDomain ) ) {
return failure ;
}
const ipv4Host = parseIPv4 ( asciiDomain ) ;
if ( typeof ipv4Host === "number" || ipv4Host === failure ) {
return ipv4Host ;
}
return asciiDomain ;
}
function parseOpaqueHost ( input ) {
if ( containsForbiddenHostCodePointExcludingPercent ( input ) ) {
return failure ;
}
let output = "" ;
const decoded = punycode . ucs2 . decode ( input ) ;
for ( let i = 0 ; i < decoded . length ; ++ i ) {
output += percentEncodeChar ( decoded [ i ] , isC0ControlPercentEncode ) ;
}
return output ;
}
function findLongestZeroSequence ( arr ) {
let maxIdx = null ;
let maxLen = 1 ; // only find elements > 1
let currStart = null ;
let currLen = 0 ;
for ( let i = 0 ; i < arr . length ; ++ i ) {
if ( arr [ i ] !== 0 ) {
if ( currLen > maxLen ) {
maxIdx = currStart ;
maxLen = currLen ;
}
currStart = null ;
currLen = 0 ;
} else {
if ( currStart === null ) {
currStart = i ;
}
++ currLen ;
}
}
// if trailing zeros
if ( currLen > maxLen ) {
maxIdx = currStart ;
maxLen = currLen ;
}
return {
idx : maxIdx ,
len : maxLen
} ;
}
function serializeHost ( host ) {
if ( typeof host === "number" ) {
return serializeIPv4 ( host ) ;
}
// IPv6 serializer
if ( host instanceof Array ) {
return "[" + serializeIPv6 ( host ) + "]" ;
}
return host ;
}
function trimControlChars ( url ) {
return url . replace ( /^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g , "" ) ;
}
function trimTabAndNewline ( url ) {
return url . replace ( /\u0009|\u000A|\u000D/g , "" ) ;
}
function shortenPath ( url ) {
const path = url . path ;
if ( path . length === 0 ) {
return ;
}
if ( url . scheme === "file" && path . length === 1 && isNormalizedWindowsDriveLetter ( path [ 0 ] ) ) {
return ;
}
path . pop ( ) ;
}
function includesCredentials ( url ) {
return url . username !== "" || url . password !== "" ;
}
function cannotHaveAUsernamePasswordPort ( url ) {
return url . host === null || url . host === "" || url . cannotBeABaseURL || url . scheme === "file" ;
}
function isNormalizedWindowsDriveLetter ( string ) {
return /^[A-Za-z]:$/ . test ( string ) ;
}
function URLStateMachine ( input , base , encodingOverride , url , stateOverride ) {
this . pointer = 0 ;
this . input = input ;
this . base = base || null ;
this . encodingOverride = encodingOverride || "utf-8" ;
this . stateOverride = stateOverride ;
this . url = url ;
this . failure = false ;
this . parseError = false ;
if ( ! this . url ) {
this . url = {
scheme : "" ,
username : "" ,
password : "" ,
host : null ,
port : null ,
path : [ ] ,
query : null ,
fragment : null ,
cannotBeABaseURL : false
} ;
const res = trimControlChars ( this . input ) ;
if ( res !== this . input ) {
this . parseError = true ;
}
this . input = res ;
}
const res = trimTabAndNewline ( this . input ) ;
if ( res !== this . input ) {
this . parseError = true ;
}
this . input = res ;
this . state = stateOverride || "scheme start" ;
this . buffer = "" ;
this . atFlag = false ;
this . arrFlag = false ;
this . passwordTokenSeenFlag = false ;
this . input = punycode . ucs2 . decode ( this . input ) ;
for ( ; this . pointer <= this . input . length ; ++ this . pointer ) {
const c = this . input [ this . pointer ] ;
const cStr = isNaN ( c ) ? undefined : String . fromCodePoint ( c ) ;
// exec state machine
const ret = this [ "parse " + this . state ] ( c , cStr ) ;
if ( ! ret ) {
break ; // terminate algorithm
} else if ( ret === failure ) {
this . failure = true ;
break ;
}
}
}
URLStateMachine . prototype [ "parse scheme start" ] = function parseSchemeStart ( c , cStr ) {
if ( isASCIIAlpha ( c ) ) {
this . buffer += cStr . toLowerCase ( ) ;
this . state = "scheme" ;
} else if ( ! this . stateOverride ) {
this . state = "no scheme" ;
-- this . pointer ;
} else {
this . parseError = true ;
return failure ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse scheme" ] = function parseScheme ( c , cStr ) {
if ( isASCIIAlphanumeric ( c ) || c === 43 || c === 45 || c === 46 ) {
this . buffer += cStr . toLowerCase ( ) ;
} else if ( c === 58 ) {
if ( this . stateOverride ) {
if ( isSpecial ( this . url ) && ! isSpecialScheme ( this . buffer ) ) {
return false ;
}
if ( ! isSpecial ( this . url ) && isSpecialScheme ( this . buffer ) ) {
return false ;
}
if ( ( includesCredentials ( this . url ) || this . url . port !== null ) && this . buffer === "file" ) {
return false ;
}
if ( this . url . scheme === "file" && ( this . url . host === "" || this . url . host === null ) ) {
return false ;
}
}
this . url . scheme = this . buffer ;
this . buffer = "" ;
if ( this . stateOverride ) {
return false ;
}
if ( this . url . scheme === "file" ) {
if ( this . input [ this . pointer + 1 ] !== 47 || this . input [ this . pointer + 2 ] !== 47 ) {
this . parseError = true ;
}
this . state = "file" ;
} else if ( isSpecial ( this . url ) && this . base !== null && this . base . scheme === this . url . scheme ) {
this . state = "special relative or authority" ;
} else if ( isSpecial ( this . url ) ) {
this . state = "special authority slashes" ;
} else if ( this . input [ this . pointer + 1 ] === 47 ) {
this . state = "path or authority" ;
++ this . pointer ;
} else {
this . url . cannotBeABaseURL = true ;
this . url . path . push ( "" ) ;
this . state = "cannot-be-a-base-URL path" ;
}
} else if ( ! this . stateOverride ) {
this . buffer = "" ;
this . state = "no scheme" ;
this . pointer = - 1 ;
} else {
this . parseError = true ;
return failure ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse no scheme" ] = function parseNoScheme ( c ) {
if ( this . base === null || ( this . base . cannotBeABaseURL && c !== 35 ) ) {
return failure ;
} else if ( this . base . cannotBeABaseURL && c === 35 ) {
this . url . scheme = this . base . scheme ;
this . url . path = this . base . path . slice ( ) ;
this . url . query = this . base . query ;
this . url . fragment = "" ;
this . url . cannotBeABaseURL = true ;
this . state = "fragment" ;
} else if ( this . base . scheme === "file" ) {
this . state = "file" ;
-- this . pointer ;
} else {
this . state = "relative" ;
-- this . pointer ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse special relative or authority" ] = function parseSpecialRelativeOrAuthority ( c ) {
if ( c === 47 && this . input [ this . pointer + 1 ] === 47 ) {
this . state = "special authority ignore slashes" ;
++ this . pointer ;
} else {
this . parseError = true ;
this . state = "relative" ;
-- this . pointer ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse path or authority" ] = function parsePathOrAuthority ( c ) {
if ( c === 47 ) {
this . state = "authority" ;
} else {
this . state = "path" ;
-- this . pointer ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse relative" ] = function parseRelative ( c ) {
this . url . scheme = this . base . scheme ;
if ( isNaN ( c ) ) {
this . url . username = this . base . username ;
this . url . password = this . base . password ;
this . url . host = this . base . host ;
this . url . port = this . base . port ;
this . url . path = this . base . path . slice ( ) ;
this . url . query = this . base . query ;
} else if ( c === 47 ) {
this . state = "relative slash" ;
} else if ( c === 63 ) {
this . url . username = this . base . username ;
this . url . password = this . base . password ;
this . url . host = this . base . host ;
this . url . port = this . base . port ;
this . url . path = this . base . path . slice ( ) ;
this . url . query = "" ;
this . state = "query" ;
} else if ( c === 35 ) {
this . url . username = this . base . username ;
this . url . password = this . base . password ;
this . url . host = this . base . host ;
this . url . port = this . base . port ;
this . url . path = this . base . path . slice ( ) ;
this . url . query = this . base . query ;
this . url . fragment = "" ;
this . state = "fragment" ;
} else if ( isSpecial ( this . url ) && c === 92 ) {
this . parseError = true ;
this . state = "relative slash" ;
} else {
this . url . username = this . base . username ;
this . url . password = this . base . password ;
this . url . host = this . base . host ;
this . url . port = this . base . port ;
this . url . path = this . base . path . slice ( 0 , this . base . path . length - 1 ) ;
this . state = "path" ;
-- this . pointer ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse relative slash" ] = function parseRelativeSlash ( c ) {
if ( isSpecial ( this . url ) && ( c === 47 || c === 92 ) ) {
if ( c === 92 ) {
this . parseError = true ;
}
this . state = "special authority ignore slashes" ;
} else if ( c === 47 ) {
this . state = "authority" ;
} else {
this . url . username = this . base . username ;
this . url . password = this . base . password ;
this . url . host = this . base . host ;
this . url . port = this . base . port ;
this . state = "path" ;
-- this . pointer ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse special authority slashes" ] = function parseSpecialAuthoritySlashes ( c ) {
if ( c === 47 && this . input [ this . pointer + 1 ] === 47 ) {
this . state = "special authority ignore slashes" ;
++ this . pointer ;
} else {
this . parseError = true ;
this . state = "special authority ignore slashes" ;
-- this . pointer ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse special authority ignore slashes" ] = function parseSpecialAuthorityIgnoreSlashes ( c ) {
if ( c !== 47 && c !== 92 ) {
this . state = "authority" ;
-- this . pointer ;
} else {
this . parseError = true ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse authority" ] = function parseAuthority ( c , cStr ) {
if ( c === 64 ) {
this . parseError = true ;
if ( this . atFlag ) {
this . buffer = "%40" + this . buffer ;
}
this . atFlag = true ;
// careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars
const len = countSymbols ( this . buffer ) ;
for ( let pointer = 0 ; pointer < len ; ++ pointer ) {
const codePoint = this . buffer . codePointAt ( pointer ) ;
if ( codePoint === 58 && ! this . passwordTokenSeenFlag ) {
this . passwordTokenSeenFlag = true ;
continue ;
}
const encodedCodePoints = percentEncodeChar ( codePoint , isUserinfoPercentEncode ) ;
if ( this . passwordTokenSeenFlag ) {
this . url . password += encodedCodePoints ;
} else {
this . url . username += encodedCodePoints ;
}
}
this . buffer = "" ;
} else if ( isNaN ( c ) || c === 47 || c === 63 || c === 35 ||
( isSpecial ( this . url ) && c === 92 ) ) {
if ( this . atFlag && this . buffer === "" ) {
this . parseError = true ;
return failure ;
}
this . pointer -= countSymbols ( this . buffer ) + 1 ;
this . buffer = "" ;
this . state = "host" ;
} else {
this . buffer += cStr ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse hostname" ] =
URLStateMachine . prototype [ "parse host" ] = function parseHostName ( c , cStr ) {
if ( this . stateOverride && this . url . scheme === "file" ) {
-- this . pointer ;
this . state = "file host" ;
} else if ( c === 58 && ! this . arrFlag ) {
if ( this . buffer === "" ) {
this . parseError = true ;
return failure ;
}
const host = parseHost ( this . buffer , isSpecial ( this . url ) ) ;
if ( host === failure ) {
return failure ;
}
this . url . host = host ;
this . buffer = "" ;
this . state = "port" ;
if ( this . stateOverride === "hostname" ) {
return false ;
}
} else if ( isNaN ( c ) || c === 47 || c === 63 || c === 35 ||
( isSpecial ( this . url ) && c === 92 ) ) {
-- this . pointer ;
if ( isSpecial ( this . url ) && this . buffer === "" ) {
this . parseError = true ;
return failure ;
} else if ( this . stateOverride && this . buffer === "" &&
( includesCredentials ( this . url ) || this . url . port !== null ) ) {
this . parseError = true ;
return false ;
}
const host = parseHost ( this . buffer , isSpecial ( this . url ) ) ;
if ( host === failure ) {
return failure ;
}
this . url . host = host ;
this . buffer = "" ;
this . state = "path start" ;
if ( this . stateOverride ) {
return false ;
}
} else {
if ( c === 91 ) {
this . arrFlag = true ;
} else if ( c === 93 ) {
this . arrFlag = false ;
}
this . buffer += cStr ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse port" ] = function parsePort ( c , cStr ) {
if ( isASCIIDigit ( c ) ) {
this . buffer += cStr ;
} else if ( isNaN ( c ) || c === 47 || c === 63 || c === 35 ||
( isSpecial ( this . url ) && c === 92 ) ||
this . stateOverride ) {
if ( this . buffer !== "" ) {
const port = parseInt ( this . buffer ) ;
if ( port > Math . pow ( 2 , 16 ) - 1 ) {
this . parseError = true ;
return failure ;
}
this . url . port = port === defaultPort ( this . url . scheme ) ? null : port ;
this . buffer = "" ;
}
if ( this . stateOverride ) {
return false ;
}
this . state = "path start" ;
-- this . pointer ;
} else {
this . parseError = true ;
return failure ;
}
return true ;
} ;
const fileOtherwiseCodePoints = new Set ( [ 47 , 92 , 63 , 35 ] ) ;
URLStateMachine . prototype [ "parse file" ] = function parseFile ( c ) {
this . url . scheme = "file" ;
if ( c === 47 || c === 92 ) {
if ( c === 92 ) {
this . parseError = true ;
}
this . state = "file slash" ;
} else if ( this . base !== null && this . base . scheme === "file" ) {
if ( isNaN ( c ) ) {
this . url . host = this . base . host ;
this . url . path = this . base . path . slice ( ) ;
this . url . query = this . base . query ;
} else if ( c === 63 ) {
this . url . host = this . base . host ;
this . url . path = this . base . path . slice ( ) ;
this . url . query = "" ;
this . state = "query" ;
} else if ( c === 35 ) {
this . url . host = this . base . host ;
this . url . path = this . base . path . slice ( ) ;
this . url . query = this . base . query ;
this . url . fragment = "" ;
this . state = "fragment" ;
} else {
if ( this . input . length - this . pointer - 1 === 0 || // remaining consists of 0 code points
! isWindowsDriveLetterCodePoints ( c , this . input [ this . pointer + 1 ] ) ||
( this . input . length - this . pointer - 1 >= 2 && // remaining has at least 2 code points
! fileOtherwiseCodePoints . has ( this . input [ this . pointer + 2 ] ) ) ) {
this . url . host = this . base . host ;
this . url . path = this . base . path . slice ( ) ;
shortenPath ( this . url ) ;
} else {
this . parseError = true ;
}
this . state = "path" ;
-- this . pointer ;
}
} else {
this . state = "path" ;
-- this . pointer ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse file slash" ] = function parseFileSlash ( c ) {
if ( c === 47 || c === 92 ) {
if ( c === 92 ) {
this . parseError = true ;
}
this . state = "file host" ;
} else {
if ( this . base !== null && this . base . scheme === "file" ) {
if ( isNormalizedWindowsDriveLetterString ( this . base . path [ 0 ] ) ) {
this . url . path . push ( this . base . path [ 0 ] ) ;
} else {
this . url . host = this . base . host ;
}
}
this . state = "path" ;
-- this . pointer ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse file host" ] = function parseFileHost ( c , cStr ) {
if ( isNaN ( c ) || c === 47 || c === 92 || c === 63 || c === 35 ) {
-- this . pointer ;
if ( ! this . stateOverride && isWindowsDriveLetterString ( this . buffer ) ) {
this . parseError = true ;
this . state = "path" ;
} else if ( this . buffer === "" ) {
this . url . host = "" ;
if ( this . stateOverride ) {
return false ;
}
this . state = "path start" ;
} else {
let host = parseHost ( this . buffer , isSpecial ( this . url ) ) ;
if ( host === failure ) {
return failure ;
}
if ( host === "localhost" ) {
host = "" ;
}
this . url . host = host ;
if ( this . stateOverride ) {
return false ;
}
this . buffer = "" ;
this . state = "path start" ;
}
} else {
this . buffer += cStr ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse path start" ] = function parsePathStart ( c ) {
if ( isSpecial ( this . url ) ) {
if ( c === 92 ) {
this . parseError = true ;
}
this . state = "path" ;
if ( c !== 47 && c !== 92 ) {
-- this . pointer ;
}
} else if ( ! this . stateOverride && c === 63 ) {
this . url . query = "" ;
this . state = "query" ;
} else if ( ! this . stateOverride && c === 35 ) {
this . url . fragment = "" ;
this . state = "fragment" ;
} else if ( c !== undefined ) {
this . state = "path" ;
if ( c !== 47 ) {
-- this . pointer ;
}
}
return true ;
} ;
URLStateMachine . prototype [ "parse path" ] = function parsePath ( c ) {
if ( isNaN ( c ) || c === 47 || ( isSpecial ( this . url ) && c === 92 ) ||
( ! this . stateOverride && ( c === 63 || c === 35 ) ) ) {
if ( isSpecial ( this . url ) && c === 92 ) {
this . parseError = true ;
}
if ( isDoubleDot ( this . buffer ) ) {
shortenPath ( this . url ) ;
if ( c !== 47 && ! ( isSpecial ( this . url ) && c === 92 ) ) {
this . url . path . push ( "" ) ;
}
} else if ( isSingleDot ( this . buffer ) && c !== 47 &&
! ( isSpecial ( this . url ) && c === 92 ) ) {
this . url . path . push ( "" ) ;
} else if ( ! isSingleDot ( this . buffer ) ) {
if ( this . url . scheme === "file" && this . url . path . length === 0 && isWindowsDriveLetterString ( this . buffer ) ) {
if ( this . url . host !== "" && this . url . host !== null ) {
this . parseError = true ;
this . url . host = "" ;
}
this . buffer = this . buffer [ 0 ] + ":" ;
}
this . url . path . push ( this . buffer ) ;
}
this . buffer = "" ;
if ( this . url . scheme === "file" && ( c === undefined || c === 63 || c === 35 ) ) {
while ( this . url . path . length > 1 && this . url . path [ 0 ] === "" ) {
this . parseError = true ;
this . url . path . shift ( ) ;
}
}
if ( c === 63 ) {
this . url . query = "" ;
this . state = "query" ;
}
if ( c === 35 ) {
this . url . fragment = "" ;
this . state = "fragment" ;
}
} else {
// TODO: If c is not a URL code point and not "%", parse error.
if ( c === 37 &&
( ! isASCIIHex ( this . input [ this . pointer + 1 ] ) ||
! isASCIIHex ( this . input [ this . pointer + 2 ] ) ) ) {
this . parseError = true ;
}
this . buffer += percentEncodeChar ( c , isPathPercentEncode ) ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse cannot-be-a-base-URL path" ] = function parseCannotBeABaseURLPath ( c ) {
if ( c === 63 ) {
this . url . query = "" ;
this . state = "query" ;
} else if ( c === 35 ) {
this . url . fragment = "" ;
this . state = "fragment" ;
} else {
// TODO: Add: not a URL code point
if ( ! isNaN ( c ) && c !== 37 ) {
this . parseError = true ;
}
if ( c === 37 &&
( ! isASCIIHex ( this . input [ this . pointer + 1 ] ) ||
! isASCIIHex ( this . input [ this . pointer + 2 ] ) ) ) {
this . parseError = true ;
}
if ( ! isNaN ( c ) ) {
this . url . path [ 0 ] = this . url . path [ 0 ] + percentEncodeChar ( c , isC0ControlPercentEncode ) ;
}
}
return true ;
} ;
URLStateMachine . prototype [ "parse query" ] = function parseQuery ( c , cStr ) {
if ( isNaN ( c ) || ( ! this . stateOverride && c === 35 ) ) {
if ( ! isSpecial ( this . url ) || this . url . scheme === "ws" || this . url . scheme === "wss" ) {
this . encodingOverride = "utf-8" ;
}
const buffer = new Buffer ( this . buffer ) ; // TODO: Use encoding override instead
for ( let i = 0 ; i < buffer . length ; ++ i ) {
if ( buffer [ i ] < 0x21 || buffer [ i ] > 0x7E || buffer [ i ] === 0x22 || buffer [ i ] === 0x23 ||
buffer [ i ] === 0x3C || buffer [ i ] === 0x3E ) {
this . url . query += percentEncode ( buffer [ i ] ) ;
} else {
this . url . query += String . fromCodePoint ( buffer [ i ] ) ;
}
}
this . buffer = "" ;
if ( c === 35 ) {
this . url . fragment = "" ;
this . state = "fragment" ;
}
} else {
// TODO: If c is not a URL code point and not "%", parse error.
if ( c === 37 &&
( ! isASCIIHex ( this . input [ this . pointer + 1 ] ) ||
! isASCIIHex ( this . input [ this . pointer + 2 ] ) ) ) {
this . parseError = true ;
}
this . buffer += cStr ;
}
return true ;
} ;
URLStateMachine . prototype [ "parse fragment" ] = function parseFragment ( c ) {
if ( isNaN ( c ) ) { // do nothing
} else if ( c === 0x0 ) {
this . parseError = true ;
} else {
// TODO: If c is not a URL code point and not "%", parse error.
if ( c === 37 &&
( ! isASCIIHex ( this . input [ this . pointer + 1 ] ) ||
! isASCIIHex ( this . input [ this . pointer + 2 ] ) ) ) {
this . parseError = true ;
}
this . url . fragment += percentEncodeChar ( c , isC0ControlPercentEncode ) ;
}
return true ;
} ;
function serializeURL ( url , excludeFragment ) {
let output = url . scheme + ":" ;
if ( url . host !== null ) {
output += "//" ;
if ( url . username !== "" || url . password !== "" ) {
output += url . username ;
if ( url . password !== "" ) {
output += ":" + url . password ;
}
output += "@" ;
}
output += serializeHost ( url . host ) ;
if ( url . port !== null ) {
output += ":" + url . port ;
}
} else if ( url . host === null && url . scheme === "file" ) {
output += "//" ;
}
if ( url . cannotBeABaseURL ) {
output += url . path [ 0 ] ;
} else {
for ( const string of url . path ) {
output += "/" + string ;
}
}
if ( url . query !== null ) {
output += "?" + url . query ;
}
if ( ! excludeFragment && url . fragment !== null ) {
output += "#" + url . fragment ;
}
return output ;
}
function serializeOrigin ( tuple ) {
let result = tuple . scheme + "://" ;
result += serializeHost ( tuple . host ) ;
if ( tuple . port !== null ) {
result += ":" + tuple . port ;
}
return result ;
}
module . exports . serializeURL = serializeURL ;
module . exports . serializeURLOrigin = function ( url ) {
// https://url.spec.whatwg.org/#concept-url-origin
switch ( url . scheme ) {
case "blob" :
try {
return module . exports . serializeURLOrigin ( module . exports . parseURL ( url . path [ 0 ] ) ) ;
} catch ( e ) {
// serializing an opaque origin returns "null"
return "null" ;
}
case "ftp" :
case "gopher" :
case "http" :
case "https" :
case "ws" :
case "wss" :
return serializeOrigin ( {
scheme : url . scheme ,
host : url . host ,
port : url . port
} ) ;
case "file" :
// spec says "exercise to the reader", chrome says "file://"
return "file://" ;
default :
// serializing an opaque origin returns "null"
return "null" ;
}
} ;
module . exports . basicURLParse = function ( input , options ) {
if ( options === undefined ) {
options = { } ;
}
const usm = new URLStateMachine ( input , options . baseURL , options . encodingOverride , options . url , options . stateOverride ) ;
if ( usm . failure ) {
return "failure" ;
}
return usm . url ;
} ;
module . exports . setTheUsername = function ( url , username ) {
url . username = "" ;
const decoded = punycode . ucs2 . decode ( username ) ;
for ( let i = 0 ; i < decoded . length ; ++ i ) {
url . username += percentEncodeChar ( decoded [ i ] , isUserinfoPercentEncode ) ;
}
} ;
module . exports . setThePassword = function ( url , password ) {
url . password = "" ;
const decoded = punycode . ucs2 . decode ( password ) ;
for ( let i = 0 ; i < decoded . length ; ++ i ) {
url . password += percentEncodeChar ( decoded [ i ] , isUserinfoPercentEncode ) ;
}
} ;
module . exports . serializeHost = serializeHost ;
module . exports . cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort ;
module . exports . serializeInteger = function ( integer ) {
return String ( integer ) ;
} ;
module . exports . parseURL = function ( input , options ) {
if ( options === undefined ) {
options = { } ;
}
// We don't handle blobs, so this just delegates:
return module . exports . basicURLParse ( input , { baseURL : options . baseURL , encodingOverride : options . encodingOverride } ) ;
} ;
/***/ } ) ,
/***/ 276 :
/***/ ( ( module ) => {
"use strict" ;
module . exports . mixin = function mixin ( target , source ) {
const keys = Object . getOwnPropertyNames ( source ) ;
for ( let i = 0 ; i < keys . length ; ++ i ) {
Object . defineProperty ( target , keys [ i ] , Object . getOwnPropertyDescriptor ( source , keys [ i ] ) ) ;
}
} ;
module . exports . wrapperSymbol = Symbol ( "wrapper" ) ;
module . exports . implSymbol = Symbol ( "impl" ) ;
module . exports . wrapperForImpl = function ( impl ) {
return impl [ module . exports . wrapperSymbol ] ;
} ;
module . exports . implForWrapper = function ( wrapper ) {
return wrapper [ module . exports . implSymbol ] ;
} ;
/***/ } ) ,
/***/ 1223 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
var wrappy = _ _nccwpck _require _ _ ( 2940 )
module . exports = wrappy ( once )
module . exports . strict = wrappy ( onceStrict )
once . proto = once ( function ( ) {
Object . defineProperty ( Function . prototype , 'once' , {
value : function ( ) {
return once ( this )
} ,
configurable : true
} )
Object . defineProperty ( Function . prototype , 'onceStrict' , {
value : function ( ) {
return onceStrict ( this )
} ,
configurable : true
} )
} )
function once ( fn ) {
var f = function ( ) {
if ( f . called ) return f . value
f . called = true
return f . value = fn . apply ( this , arguments )
}
f . called = false
return f
}
function onceStrict ( fn ) {
var f = function ( ) {
if ( f . called )
throw new Error ( f . onceError )
f . called = true
return f . value = fn . apply ( this , arguments )
}
var name = fn . name || 'Function wrapped with `once`'
f . onceError = name + " shouldn't be called more than once"
f . called = false
return f
}
/***/ } ) ,
/***/ 2043 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
; ( function ( sax ) { // wrapper for non-node envs
sax . parser = function ( strict , opt ) { return new SAXParser ( strict , opt ) }
sax . SAXParser = SAXParser
sax . SAXStream = SAXStream
sax . createStream = createStream
// When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.
// When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),
// since that's the earliest that a buffer overrun could occur. This way, checks are
// as rare as required, but as often as necessary to ensure never crossing this bound.
// Furthermore, buffers are only tested at most once per write(), so passing a very
// large string into write() might have undesirable effects, but this is manageable by
// the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme
// edge case, result in creating at most one complete copy of the string passed in.
// Set to Infinity to have unlimited buffers.
sax . MAX _BUFFER _LENGTH = 64 * 1024
var buffers = [
'comment' , 'sgmlDecl' , 'textNode' , 'tagName' , 'doctype' ,
'procInstName' , 'procInstBody' , 'entity' , 'attribName' ,
'attribValue' , 'cdata' , 'script'
]
sax . EVENTS = [
'text' ,
'processinginstruction' ,
'sgmldeclaration' ,
'doctype' ,
'comment' ,
'opentagstart' ,
'attribute' ,
'opentag' ,
'closetag' ,
'opencdata' ,
'cdata' ,
'closecdata' ,
'error' ,
'end' ,
'ready' ,
'script' ,
'opennamespace' ,
'closenamespace'
]
function SAXParser ( strict , opt ) {
if ( ! ( this instanceof SAXParser ) ) {
return new SAXParser ( strict , opt )
}
var parser = this
clearBuffers ( parser )
parser . q = parser . c = ''
parser . bufferCheckPosition = sax . MAX _BUFFER _LENGTH
parser . opt = opt || { }
parser . opt . lowercase = parser . opt . lowercase || parser . opt . lowercasetags
parser . looseCase = parser . opt . lowercase ? 'toLowerCase' : 'toUpperCase'
parser . tags = [ ]
parser . closed = parser . closedRoot = parser . sawRoot = false
parser . tag = parser . error = null
parser . strict = ! ! strict
parser . noscript = ! ! ( strict || parser . opt . noscript )
parser . state = S . BEGIN
parser . strictEntities = parser . opt . strictEntities
parser . ENTITIES = parser . strictEntities ? Object . create ( sax . XML _ENTITIES ) : Object . create ( sax . ENTITIES )
parser . attribList = [ ]
// namespaces form a prototype chain.
// it always points at the current tag,
// which protos to its parent tag.
if ( parser . opt . xmlns ) {
parser . ns = Object . create ( rootNS )
}
// mostly just for error reporting
parser . trackPosition = parser . opt . position !== false
if ( parser . trackPosition ) {
parser . position = parser . line = parser . column = 0
}
emit ( parser , 'onready' )
}
if ( ! Object . create ) {
Object . create = function ( o ) {
function F ( ) { }
F . prototype = o
var newf = new F ( )
return newf
}
}
if ( ! Object . keys ) {
Object . keys = function ( o ) {
var a = [ ]
for ( var i in o ) if ( o . hasOwnProperty ( i ) ) a . push ( i )
return a
}
}
function checkBufferLength ( parser ) {
var maxAllowed = Math . max ( sax . MAX _BUFFER _LENGTH , 10 )
var maxActual = 0
for ( var i = 0 , l = buffers . length ; i < l ; i ++ ) {
var len = parser [ buffers [ i ] ] . length
if ( len > maxAllowed ) {
// Text/cdata nodes can get big, and since they're buffered,
// we can get here under normal conditions.
// Avoid issues by emitting the text node now,
// so at least it won't get any bigger.
switch ( buffers [ i ] ) {
case 'textNode' :
closeText ( parser )
break
case 'cdata' :
emitNode ( parser , 'oncdata' , parser . cdata )
parser . cdata = ''
break
case 'script' :
emitNode ( parser , 'onscript' , parser . script )
parser . script = ''
break
default :
error ( parser , 'Max buffer length exceeded: ' + buffers [ i ] )
}
}
maxActual = Math . max ( maxActual , len )
}
// schedule the next check for the earliest possible buffer overrun.
var m = sax . MAX _BUFFER _LENGTH - maxActual
parser . bufferCheckPosition = m + parser . position
}
function clearBuffers ( parser ) {
for ( var i = 0 , l = buffers . length ; i < l ; i ++ ) {
parser [ buffers [ i ] ] = ''
}
}
function flushBuffers ( parser ) {
closeText ( parser )
if ( parser . cdata !== '' ) {
emitNode ( parser , 'oncdata' , parser . cdata )
parser . cdata = ''
}
if ( parser . script !== '' ) {
emitNode ( parser , 'onscript' , parser . script )
parser . script = ''
}
}
SAXParser . prototype = {
end : function ( ) { end ( this ) } ,
write : write ,
resume : function ( ) { this . error = null ; return this } ,
close : function ( ) { return this . write ( null ) } ,
flush : function ( ) { flushBuffers ( this ) }
}
var Stream
try {
Stream = ( _ _nccwpck _require _ _ ( 2781 ) . Stream )
} catch ( ex ) {
Stream = function ( ) { }
}
var streamWraps = sax . EVENTS . filter ( function ( ev ) {
return ev !== 'error' && ev !== 'end'
} )
function createStream ( strict , opt ) {
return new SAXStream ( strict , opt )
}
function SAXStream ( strict , opt ) {
if ( ! ( this instanceof SAXStream ) ) {
return new SAXStream ( strict , opt )
}
Stream . apply ( this )
this . _parser = new SAXParser ( strict , opt )
this . writable = true
this . readable = true
var me = this
this . _parser . onend = function ( ) {
me . emit ( 'end' )
}
this . _parser . onerror = function ( er ) {
me . emit ( 'error' , er )
// if didn't throw, then means error was handled.
// go ahead and clear error, so we can write again.
me . _parser . error = null
}
this . _decoder = null
streamWraps . forEach ( function ( ev ) {
Object . defineProperty ( me , 'on' + ev , {
get : function ( ) {
return me . _parser [ 'on' + ev ]
} ,
set : function ( h ) {
if ( ! h ) {
me . removeAllListeners ( ev )
me . _parser [ 'on' + ev ] = h
return h
}
me . on ( ev , h )
} ,
enumerable : true ,
configurable : false
} )
} )
}
SAXStream . prototype = Object . create ( Stream . prototype , {
constructor : {
value : SAXStream
}
} )
SAXStream . prototype . write = function ( data ) {
if ( typeof Buffer === 'function' &&
typeof Buffer . isBuffer === 'function' &&
Buffer . isBuffer ( data ) ) {
if ( ! this . _decoder ) {
var SD = ( _ _nccwpck _require _ _ ( 1576 ) . StringDecoder )
this . _decoder = new SD ( 'utf8' )
}
data = this . _decoder . write ( data )
}
this . _parser . write ( data . toString ( ) )
this . emit ( 'data' , data )
return true
}
SAXStream . prototype . end = function ( chunk ) {
if ( chunk && chunk . length ) {
this . write ( chunk )
}
this . _parser . end ( )
return true
}
SAXStream . prototype . on = function ( ev , handler ) {
var me = this
if ( ! me . _parser [ 'on' + ev ] && streamWraps . indexOf ( ev ) !== - 1 ) {
me . _parser [ 'on' + ev ] = function ( ) {
var args = arguments . length === 1 ? [ arguments [ 0 ] ] : Array . apply ( null , arguments )
args . splice ( 0 , 0 , ev )
me . emit . apply ( me , args )
}
}
return Stream . prototype . on . call ( me , ev , handler )
}
// this really needs to be replaced with character classes.
// XML allows all manner of ridiculous numbers and digits.
var CDATA = '[CDATA['
var DOCTYPE = 'DOCTYPE'
var XML _NAMESPACE = 'http://www.w3.org/XML/1998/namespace'
var XMLNS _NAMESPACE = 'http://www.w3.org/2000/xmlns/'
var rootNS = { xml : XML _NAMESPACE , xmlns : XMLNS _NAMESPACE }
// http://www.w3.org/TR/REC-xml/#NT-NameStartChar
// This implementation works on strings, a single character at a time
// as such, it cannot ever support astral-plane characters (10000-EFFFF)
// without a significant breaking change to either this parser, or the
// JavaScript language. Implementation of an emoji-capable xml parser
// is left as an exercise for the reader.
var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/
var entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
var entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/
function isWhitespace ( c ) {
return c === ' ' || c === '\n' || c === '\r' || c === '\t'
}
function isQuote ( c ) {
return c === '"' || c === '\''
}
function isAttribEnd ( c ) {
return c === '>' || isWhitespace ( c )
}
function isMatch ( regex , c ) {
return regex . test ( c )
}
function notMatch ( regex , c ) {
return ! isMatch ( regex , c )
}
var S = 0
sax . STATE = {
BEGIN : S ++ , // leading byte order mark or whitespace
BEGIN _WHITESPACE : S ++ , // leading whitespace
TEXT : S ++ , // general stuff
TEXT _ENTITY : S ++ , // & and such.
OPEN _WAKA : S ++ , // <
SGML _DECL : S ++ , // <!BLARG
SGML _DECL _QUOTED : S ++ , // <!BLARG foo "bar
DOCTYPE : S ++ , // <!DOCTYPE
DOCTYPE _QUOTED : S ++ , // <!DOCTYPE "//blah
DOCTYPE _DTD : S ++ , // <!DOCTYPE "//blah" [ ...
DOCTYPE _DTD _QUOTED : S ++ , // <!DOCTYPE "//blah" [ "foo
COMMENT _STARTING : S ++ , // <!-
COMMENT : S ++ , // <!--
COMMENT _ENDING : S ++ , // <!-- blah -
COMMENT _ENDED : S ++ , // <!-- blah --
CDATA : S ++ , // <![CDATA[ something
CDATA _ENDING : S ++ , // ]
CDATA _ENDING _2 : S ++ , // ]]
PROC _INST : S ++ , // <?hi
PROC _INST _BODY : S ++ , // <?hi there
PROC _INST _ENDING : S ++ , // <?hi "there" ?
OPEN _TAG : S ++ , // <strong
OPEN _TAG _SLASH : S ++ , // <strong /
ATTRIB : S ++ , // <a
ATTRIB _NAME : S ++ , // <a foo
ATTRIB _NAME _SAW _WHITE : S ++ , // <a foo _
ATTRIB _VALUE : S ++ , // <a foo=
ATTRIB _VALUE _QUOTED : S ++ , // <a foo="bar
ATTRIB _VALUE _CLOSED : S ++ , // <a foo="bar"
ATTRIB _VALUE _UNQUOTED : S ++ , // <a foo=bar
ATTRIB _VALUE _ENTITY _Q : S ++ , // <foo bar="""
ATTRIB _VALUE _ENTITY _U : S ++ , // <foo bar="
CLOSE _TAG : S ++ , // </a
CLOSE _TAG _SAW _WHITE : S ++ , // </a >
SCRIPT : S ++ , // <script> ...
SCRIPT _ENDING : S ++ // <script> ... <
}
sax . XML _ENTITIES = {
'amp' : '&' ,
'gt' : '>' ,
'lt' : '<' ,
'quot' : '"' ,
'apos' : "'"
}
sax . ENTITIES = {
'amp' : '&' ,
'gt' : '>' ,
'lt' : '<' ,
'quot' : '"' ,
'apos' : "'" ,
'AElig' : 198 ,
'Aacute' : 193 ,
'Acirc' : 194 ,
'Agrave' : 192 ,
'Aring' : 197 ,
'Atilde' : 195 ,
'Auml' : 196 ,
'Ccedil' : 199 ,
'ETH' : 208 ,
'Eacute' : 201 ,
'Ecirc' : 202 ,
'Egrave' : 200 ,
'Euml' : 203 ,
'Iacute' : 205 ,
'Icirc' : 206 ,
'Igrave' : 204 ,
'Iuml' : 207 ,
'Ntilde' : 209 ,
'Oacute' : 211 ,
'Ocirc' : 212 ,
'Ograve' : 210 ,
'Oslash' : 216 ,
'Otilde' : 213 ,
'Ouml' : 214 ,
'THORN' : 222 ,
'Uacute' : 218 ,
'Ucirc' : 219 ,
'Ugrave' : 217 ,
'Uuml' : 220 ,
'Yacute' : 221 ,
'aacute' : 225 ,
'acirc' : 226 ,
'aelig' : 230 ,
'agrave' : 224 ,
'aring' : 229 ,
'atilde' : 227 ,
'auml' : 228 ,
'ccedil' : 231 ,
'eacute' : 233 ,
'ecirc' : 234 ,
'egrave' : 232 ,
'eth' : 240 ,
'euml' : 235 ,
'iacute' : 237 ,
'icirc' : 238 ,
'igrave' : 236 ,
'iuml' : 239 ,
'ntilde' : 241 ,
'oacute' : 243 ,
'ocirc' : 244 ,
'ograve' : 242 ,
'oslash' : 248 ,
'otilde' : 245 ,
'ouml' : 246 ,
'szlig' : 223 ,
'thorn' : 254 ,
'uacute' : 250 ,
'ucirc' : 251 ,
'ugrave' : 249 ,
'uuml' : 252 ,
'yacute' : 253 ,
'yuml' : 255 ,
'copy' : 169 ,
'reg' : 174 ,
'nbsp' : 160 ,
'iexcl' : 161 ,
'cent' : 162 ,
'pound' : 163 ,
'curren' : 164 ,
'yen' : 165 ,
'brvbar' : 166 ,
'sect' : 167 ,
'uml' : 168 ,
'ordf' : 170 ,
'laquo' : 171 ,
'not' : 172 ,
'shy' : 173 ,
'macr' : 175 ,
'deg' : 176 ,
'plusmn' : 177 ,
'sup1' : 185 ,
'sup2' : 178 ,
'sup3' : 179 ,
'acute' : 180 ,
'micro' : 181 ,
'para' : 182 ,
'middot' : 183 ,
'cedil' : 184 ,
'ordm' : 186 ,
'raquo' : 187 ,
'frac14' : 188 ,
'frac12' : 189 ,
'frac34' : 190 ,
'iquest' : 191 ,
'times' : 215 ,
'divide' : 247 ,
'OElig' : 338 ,
'oelig' : 339 ,
'Scaron' : 352 ,
'scaron' : 353 ,
'Yuml' : 376 ,
'fnof' : 402 ,
'circ' : 710 ,
'tilde' : 732 ,
'Alpha' : 913 ,
'Beta' : 914 ,
'Gamma' : 915 ,
'Delta' : 916 ,
'Epsilon' : 917 ,
'Zeta' : 918 ,
'Eta' : 919 ,
'Theta' : 920 ,
'Iota' : 921 ,
'Kappa' : 922 ,
'Lambda' : 923 ,
'Mu' : 924 ,
'Nu' : 925 ,
'Xi' : 926 ,
'Omicron' : 927 ,
'Pi' : 928 ,
'Rho' : 929 ,
'Sigma' : 931 ,
'Tau' : 932 ,
'Upsilon' : 933 ,
'Phi' : 934 ,
'Chi' : 935 ,
'Psi' : 936 ,
'Omega' : 937 ,
'alpha' : 945 ,
'beta' : 946 ,
'gamma' : 947 ,
'delta' : 948 ,
'epsilon' : 949 ,
'zeta' : 950 ,
'eta' : 951 ,
'theta' : 952 ,
'iota' : 953 ,
'kappa' : 954 ,
'lambda' : 955 ,
'mu' : 956 ,
'nu' : 957 ,
'xi' : 958 ,
'omicron' : 959 ,
'pi' : 960 ,
'rho' : 961 ,
'sigmaf' : 962 ,
'sigma' : 963 ,
'tau' : 964 ,
'upsilon' : 965 ,
'phi' : 966 ,
'chi' : 967 ,
'psi' : 968 ,
'omega' : 969 ,
'thetasym' : 977 ,
'upsih' : 978 ,
'piv' : 982 ,
'ensp' : 8194 ,
'emsp' : 8195 ,
'thinsp' : 8201 ,
'zwnj' : 8204 ,
'zwj' : 8205 ,
'lrm' : 8206 ,
'rlm' : 8207 ,
'ndash' : 8211 ,
'mdash' : 8212 ,
'lsquo' : 8216 ,
'rsquo' : 8217 ,
'sbquo' : 8218 ,
'ldquo' : 8220 ,
'rdquo' : 8221 ,
'bdquo' : 8222 ,
'dagger' : 8224 ,
'Dagger' : 8225 ,
'bull' : 8226 ,
'hellip' : 8230 ,
'permil' : 8240 ,
'prime' : 8242 ,
'Prime' : 8243 ,
'lsaquo' : 8249 ,
'rsaquo' : 8250 ,
'oline' : 8254 ,
'frasl' : 8260 ,
'euro' : 8364 ,
'image' : 8465 ,
'weierp' : 8472 ,
'real' : 8476 ,
'trade' : 8482 ,
'alefsym' : 8501 ,
'larr' : 8592 ,
'uarr' : 8593 ,
'rarr' : 8594 ,
'darr' : 8595 ,
'harr' : 8596 ,
'crarr' : 8629 ,
'lArr' : 8656 ,
'uArr' : 8657 ,
'rArr' : 8658 ,
'dArr' : 8659 ,
'hArr' : 8660 ,
'forall' : 8704 ,
'part' : 8706 ,
'exist' : 8707 ,
'empty' : 8709 ,
'nabla' : 8711 ,
'isin' : 8712 ,
'notin' : 8713 ,
'ni' : 8715 ,
'prod' : 8719 ,
'sum' : 8721 ,
'minus' : 8722 ,
'lowast' : 8727 ,
'radic' : 8730 ,
'prop' : 8733 ,
'infin' : 8734 ,
'ang' : 8736 ,
'and' : 8743 ,
'or' : 8744 ,
'cap' : 8745 ,
'cup' : 8746 ,
'int' : 8747 ,
'there4' : 8756 ,
'sim' : 8764 ,
'cong' : 8773 ,
'asymp' : 8776 ,
'ne' : 8800 ,
'equiv' : 8801 ,
'le' : 8804 ,
'ge' : 8805 ,
'sub' : 8834 ,
'sup' : 8835 ,
'nsub' : 8836 ,
'sube' : 8838 ,
'supe' : 8839 ,
'oplus' : 8853 ,
'otimes' : 8855 ,
'perp' : 8869 ,
'sdot' : 8901 ,
'lceil' : 8968 ,
'rceil' : 8969 ,
'lfloor' : 8970 ,
'rfloor' : 8971 ,
'lang' : 9001 ,
'rang' : 9002 ,
'loz' : 9674 ,
'spades' : 9824 ,
'clubs' : 9827 ,
'hearts' : 9829 ,
'diams' : 9830
}
Object . keys ( sax . ENTITIES ) . forEach ( function ( key ) {
var e = sax . ENTITIES [ key ]
var s = typeof e === 'number' ? String . fromCharCode ( e ) : e
sax . ENTITIES [ key ] = s
} )
for ( var s in sax . STATE ) {
sax . STATE [ sax . STATE [ s ] ] = s
}
// shorthand
S = sax . STATE
function emit ( parser , event , data ) {
parser [ event ] && parser [ event ] ( data )
}
function emitNode ( parser , nodeType , data ) {
if ( parser . textNode ) closeText ( parser )
emit ( parser , nodeType , data )
}
function closeText ( parser ) {
parser . textNode = textopts ( parser . opt , parser . textNode )
if ( parser . textNode ) emit ( parser , 'ontext' , parser . textNode )
parser . textNode = ''
}
function textopts ( opt , text ) {
if ( opt . trim ) text = text . trim ( )
if ( opt . normalize ) text = text . replace ( /\s+/g , ' ' )
return text
}
function error ( parser , er ) {
closeText ( parser )
if ( parser . trackPosition ) {
er += '\nLine: ' + parser . line +
'\nColumn: ' + parser . column +
'\nChar: ' + parser . c
}
er = new Error ( er )
parser . error = er
emit ( parser , 'onerror' , er )
return parser
}
function end ( parser ) {
if ( parser . sawRoot && ! parser . closedRoot ) strictFail ( parser , 'Unclosed root tag' )
if ( ( parser . state !== S . BEGIN ) &&
( parser . state !== S . BEGIN _WHITESPACE ) &&
( parser . state !== S . TEXT ) ) {
error ( parser , 'Unexpected end' )
}
closeText ( parser )
parser . c = ''
parser . closed = true
emit ( parser , 'onend' )
SAXParser . call ( parser , parser . strict , parser . opt )
return parser
}
function strictFail ( parser , message ) {
if ( typeof parser !== 'object' || ! ( parser instanceof SAXParser ) ) {
throw new Error ( 'bad call to strictFail' )
}
if ( parser . strict ) {
error ( parser , message )
}
}
function newTag ( parser ) {
if ( ! parser . strict ) parser . tagName = parser . tagName [ parser . looseCase ] ( )
var parent = parser . tags [ parser . tags . length - 1 ] || parser
var tag = parser . tag = { name : parser . tagName , attributes : { } }
// will be overridden if tag contails an xmlns="foo" or xmlns:foo="bar"
if ( parser . opt . xmlns ) {
tag . ns = parent . ns
}
parser . attribList . length = 0
emitNode ( parser , 'onopentagstart' , tag )
}
function qname ( name , attribute ) {
var i = name . indexOf ( ':' )
var qualName = i < 0 ? [ '' , name ] : name . split ( ':' )
var prefix = qualName [ 0 ]
var local = qualName [ 1 ]
// <x "xmlns"="http://foo">
if ( attribute && name === 'xmlns' ) {
prefix = 'xmlns'
local = ''
}
return { prefix : prefix , local : local }
}
function attrib ( parser ) {
if ( ! parser . strict ) {
parser . attribName = parser . attribName [ parser . looseCase ] ( )
}
if ( parser . attribList . indexOf ( parser . attribName ) !== - 1 ||
parser . tag . attributes . hasOwnProperty ( parser . attribName ) ) {
parser . attribName = parser . attribValue = ''
return
}
if ( parser . opt . xmlns ) {
var qn = qname ( parser . attribName , true )
var prefix = qn . prefix
var local = qn . local
if ( prefix === 'xmlns' ) {
// namespace binding attribute. push the binding into scope
if ( local === 'xml' && parser . attribValue !== XML _NAMESPACE ) {
strictFail ( parser ,
'xml: prefix must be bound to ' + XML _NAMESPACE + '\n' +
'Actual: ' + parser . attribValue )
} else if ( local === 'xmlns' && parser . attribValue !== XMLNS _NAMESPACE ) {
strictFail ( parser ,
'xmlns: prefix must be bound to ' + XMLNS _NAMESPACE + '\n' +
'Actual: ' + parser . attribValue )
} else {
var tag = parser . tag
var parent = parser . tags [ parser . tags . length - 1 ] || parser
if ( tag . ns === parent . ns ) {
tag . ns = Object . create ( parent . ns )
}
tag . ns [ local ] = parser . attribValue
}
}
// defer onattribute events until all attributes have been seen
// so any new bindings can take effect. preserve attribute order
// so deferred events can be emitted in document order
parser . attribList . push ( [ parser . attribName , parser . attribValue ] )
} else {
// in non-xmlns mode, we can emit the event right away
parser . tag . attributes [ parser . attribName ] = parser . attribValue
emitNode ( parser , 'onattribute' , {
name : parser . attribName ,
value : parser . attribValue
} )
}
parser . attribName = parser . attribValue = ''
}
function openTag ( parser , selfClosing ) {
if ( parser . opt . xmlns ) {
// emit namespace binding events
var tag = parser . tag
// add namespace info to tag
var qn = qname ( parser . tagName )
tag . prefix = qn . prefix
tag . local = qn . local
tag . uri = tag . ns [ qn . prefix ] || ''
if ( tag . prefix && ! tag . uri ) {
strictFail ( parser , 'Unbound namespace prefix: ' +
JSON . stringify ( parser . tagName ) )
tag . uri = qn . prefix
}
var parent = parser . tags [ parser . tags . length - 1 ] || parser
if ( tag . ns && parent . ns !== tag . ns ) {
Object . keys ( tag . ns ) . forEach ( function ( p ) {
emitNode ( parser , 'onopennamespace' , {
prefix : p ,
uri : tag . ns [ p ]
} )
} )
}
// handle deferred onattribute events
// Note: do not apply default ns to attributes:
// http://www.w3.org/TR/REC-xml-names/#defaulting
for ( var i = 0 , l = parser . attribList . length ; i < l ; i ++ ) {
var nv = parser . attribList [ i ]
var name = nv [ 0 ]
var value = nv [ 1 ]
var qualName = qname ( name , true )
var prefix = qualName . prefix
var local = qualName . local
var uri = prefix === '' ? '' : ( tag . ns [ prefix ] || '' )
var a = {
name : name ,
value : value ,
prefix : prefix ,
local : local ,
uri : uri
}
// if there's any attributes with an undefined namespace,
// then fail on them now.
if ( prefix && prefix !== 'xmlns' && ! uri ) {
strictFail ( parser , 'Unbound namespace prefix: ' +
JSON . stringify ( prefix ) )
a . uri = prefix
}
parser . tag . attributes [ name ] = a
emitNode ( parser , 'onattribute' , a )
}
parser . attribList . length = 0
}
parser . tag . isSelfClosing = ! ! selfClosing
// process the tag
parser . sawRoot = true
parser . tags . push ( parser . tag )
emitNode ( parser , 'onopentag' , parser . tag )
if ( ! selfClosing ) {
// special case for <script> in non-strict mode.
if ( ! parser . noscript && parser . tagName . toLowerCase ( ) === 'script' ) {
parser . state = S . SCRIPT
} else {
parser . state = S . TEXT
}
parser . tag = null
parser . tagName = ''
}
parser . attribName = parser . attribValue = ''
parser . attribList . length = 0
}
function closeTag ( parser ) {
if ( ! parser . tagName ) {
strictFail ( parser , 'Weird empty close tag.' )
parser . textNode += '</>'
parser . state = S . TEXT
return
}
if ( parser . script ) {
if ( parser . tagName !== 'script' ) {
parser . script += '</' + parser . tagName + '>'
parser . tagName = ''
parser . state = S . SCRIPT
return
}
emitNode ( parser , 'onscript' , parser . script )
parser . script = ''
}
// first make sure that the closing tag actually exists.
// <a><b></c></b></a> will close everything, otherwise.
var t = parser . tags . length
var tagName = parser . tagName
if ( ! parser . strict ) {
tagName = tagName [ parser . looseCase ] ( )
}
var closeTo = tagName
while ( t -- ) {
var close = parser . tags [ t ]
if ( close . name !== closeTo ) {
// fail the first time in strict mode
strictFail ( parser , 'Unexpected close tag' )
} else {
break
}
}
// didn't find it. we already failed for strict, so just abort.
if ( t < 0 ) {
strictFail ( parser , 'Unmatched closing tag: ' + parser . tagName )
parser . textNode += '</' + parser . tagName + '>'
parser . state = S . TEXT
return
}
parser . tagName = tagName
var s = parser . tags . length
while ( s -- > t ) {
var tag = parser . tag = parser . tags . pop ( )
parser . tagName = parser . tag . name
emitNode ( parser , 'onclosetag' , parser . tagName )
var x = { }
for ( var i in tag . ns ) {
x [ i ] = tag . ns [ i ]
}
var parent = parser . tags [ parser . tags . length - 1 ] || parser
if ( parser . opt . xmlns && tag . ns !== parent . ns ) {
// remove namespace bindings introduced by tag
Object . keys ( tag . ns ) . forEach ( function ( p ) {
var n = tag . ns [ p ]
emitNode ( parser , 'onclosenamespace' , { prefix : p , uri : n } )
} )
}
}
if ( t === 0 ) parser . closedRoot = true
parser . tagName = parser . attribValue = parser . attribName = ''
parser . attribList . length = 0
parser . state = S . TEXT
}
function parseEntity ( parser ) {
var entity = parser . entity
var entityLC = entity . toLowerCase ( )
var num
var numStr = ''
if ( parser . ENTITIES [ entity ] ) {
return parser . ENTITIES [ entity ]
}
if ( parser . ENTITIES [ entityLC ] ) {
return parser . ENTITIES [ entityLC ]
}
entity = entityLC
if ( entity . charAt ( 0 ) === '#' ) {
if ( entity . charAt ( 1 ) === 'x' ) {
entity = entity . slice ( 2 )
num = parseInt ( entity , 16 )
numStr = num . toString ( 16 )
} else {
entity = entity . slice ( 1 )
num = parseInt ( entity , 10 )
numStr = num . toString ( 10 )
}
}
entity = entity . replace ( /^0+/ , '' )
if ( isNaN ( num ) || numStr . toLowerCase ( ) !== entity ) {
strictFail ( parser , 'Invalid character entity' )
return '&' + parser . entity + ';'
}
return String . fromCodePoint ( num )
}
function beginWhiteSpace ( parser , c ) {
if ( c === '<' ) {
parser . state = S . OPEN _WAKA
parser . startTagPosition = parser . position
} else if ( ! isWhitespace ( c ) ) {
// have to process this as a text node.
// weird, but happens.
strictFail ( parser , 'Non-whitespace before first tag.' )
parser . textNode = c
parser . state = S . TEXT
}
}
function charAt ( chunk , i ) {
var result = ''
if ( i < chunk . length ) {
result = chunk . charAt ( i )
}
return result
}
function write ( chunk ) {
var parser = this
if ( this . error ) {
throw this . error
}
if ( parser . closed ) {
return error ( parser ,
'Cannot write after close. Assign an onready handler.' )
}
if ( chunk === null ) {
return end ( parser )
}
if ( typeof chunk === 'object' ) {
chunk = chunk . toString ( )
}
var i = 0
var c = ''
while ( true ) {
c = charAt ( chunk , i ++ )
parser . c = c
if ( ! c ) {
break
}
if ( parser . trackPosition ) {
parser . position ++
if ( c === '\n' ) {
parser . line ++
parser . column = 0
} else {
parser . column ++
}
}
switch ( parser . state ) {
case S . BEGIN :
parser . state = S . BEGIN _WHITESPACE
if ( c === '\uFEFF' ) {
continue
}
beginWhiteSpace ( parser , c )
continue
case S . BEGIN _WHITESPACE :
beginWhiteSpace ( parser , c )
continue
case S . TEXT :
if ( parser . sawRoot && ! parser . closedRoot ) {
var starti = i - 1
while ( c && c !== '<' && c !== '&' ) {
c = charAt ( chunk , i ++ )
if ( c && parser . trackPosition ) {
parser . position ++
if ( c === '\n' ) {
parser . line ++
parser . column = 0
} else {
parser . column ++
}
}
}
parser . textNode += chunk . substring ( starti , i - 1 )
}
if ( c === '<' && ! ( parser . sawRoot && parser . closedRoot && ! parser . strict ) ) {
parser . state = S . OPEN _WAKA
parser . startTagPosition = parser . position
} else {
if ( ! isWhitespace ( c ) && ( ! parser . sawRoot || parser . closedRoot ) ) {
strictFail ( parser , 'Text data outside of root node.' )
}
if ( c === '&' ) {
parser . state = S . TEXT _ENTITY
} else {
parser . textNode += c
}
}
continue
case S . SCRIPT :
// only non-strict
if ( c === '<' ) {
parser . state = S . SCRIPT _ENDING
} else {
parser . script += c
}
continue
case S . SCRIPT _ENDING :
if ( c === '/' ) {
parser . state = S . CLOSE _TAG
} else {
parser . script += '<' + c
parser . state = S . SCRIPT
}
continue
case S . OPEN _WAKA :
// either a /, ?, !, or text is coming next.
if ( c === '!' ) {
parser . state = S . SGML _DECL
parser . sgmlDecl = ''
} else if ( isWhitespace ( c ) ) {
// wait for it...
} else if ( isMatch ( nameStart , c ) ) {
parser . state = S . OPEN _TAG
parser . tagName = c
} else if ( c === '/' ) {
parser . state = S . CLOSE _TAG
parser . tagName = ''
} else if ( c === '?' ) {
parser . state = S . PROC _INST
parser . procInstName = parser . procInstBody = ''
} else {
strictFail ( parser , 'Unencoded <' )
// if there was some whitespace, then add that in.
if ( parser . startTagPosition + 1 < parser . position ) {
var pad = parser . position - parser . startTagPosition
c = new Array ( pad ) . join ( ' ' ) + c
}
parser . textNode += '<' + c
parser . state = S . TEXT
}
continue
case S . SGML _DECL :
if ( ( parser . sgmlDecl + c ) . toUpperCase ( ) === CDATA ) {
emitNode ( parser , 'onopencdata' )
parser . state = S . CDATA
parser . sgmlDecl = ''
parser . cdata = ''
} else if ( parser . sgmlDecl + c === '--' ) {
parser . state = S . COMMENT
parser . comment = ''
parser . sgmlDecl = ''
} else if ( ( parser . sgmlDecl + c ) . toUpperCase ( ) === DOCTYPE ) {
parser . state = S . DOCTYPE
if ( parser . doctype || parser . sawRoot ) {
strictFail ( parser ,
'Inappropriately located doctype declaration' )
}
parser . doctype = ''
parser . sgmlDecl = ''
} else if ( c === '>' ) {
emitNode ( parser , 'onsgmldeclaration' , parser . sgmlDecl )
parser . sgmlDecl = ''
parser . state = S . TEXT
} else if ( isQuote ( c ) ) {
parser . state = S . SGML _DECL _QUOTED
parser . sgmlDecl += c
} else {
parser . sgmlDecl += c
}
continue
case S . SGML _DECL _QUOTED :
if ( c === parser . q ) {
parser . state = S . SGML _DECL
parser . q = ''
}
parser . sgmlDecl += c
continue
case S . DOCTYPE :
if ( c === '>' ) {
parser . state = S . TEXT
emitNode ( parser , 'ondoctype' , parser . doctype )
parser . doctype = true // just remember that we saw it.
} else {
parser . doctype += c
if ( c === '[' ) {
parser . state = S . DOCTYPE _DTD
} else if ( isQuote ( c ) ) {
parser . state = S . DOCTYPE _QUOTED
parser . q = c
}
}
continue
case S . DOCTYPE _QUOTED :
parser . doctype += c
if ( c === parser . q ) {
parser . q = ''
parser . state = S . DOCTYPE
}
continue
case S . DOCTYPE _DTD :
parser . doctype += c
if ( c === ']' ) {
parser . state = S . DOCTYPE
} else if ( isQuote ( c ) ) {
parser . state = S . DOCTYPE _DTD _QUOTED
parser . q = c
}
continue
case S . DOCTYPE _DTD _QUOTED :
parser . doctype += c
if ( c === parser . q ) {
parser . state = S . DOCTYPE _DTD
parser . q = ''
}
continue
case S . COMMENT :
if ( c === '-' ) {
parser . state = S . COMMENT _ENDING
} else {
parser . comment += c
}
continue
case S . COMMENT _ENDING :
if ( c === '-' ) {
parser . state = S . COMMENT _ENDED
parser . comment = textopts ( parser . opt , parser . comment )
if ( parser . comment ) {
emitNode ( parser , 'oncomment' , parser . comment )
}
parser . comment = ''
} else {
parser . comment += '-' + c
parser . state = S . COMMENT
}
continue
case S . COMMENT _ENDED :
if ( c !== '>' ) {
strictFail ( parser , 'Malformed comment' )
// allow <!-- blah -- bloo --> in non-strict mode,
// which is a comment of " blah -- bloo "
parser . comment += '--' + c
parser . state = S . COMMENT
} else {
parser . state = S . TEXT
}
continue
case S . CDATA :
if ( c === ']' ) {
parser . state = S . CDATA _ENDING
} else {
parser . cdata += c
}
continue
case S . CDATA _ENDING :
if ( c === ']' ) {
parser . state = S . CDATA _ENDING _2
} else {
parser . cdata += ']' + c
parser . state = S . CDATA
}
continue
case S . CDATA _ENDING _2 :
if ( c === '>' ) {
if ( parser . cdata ) {
emitNode ( parser , 'oncdata' , parser . cdata )
}
emitNode ( parser , 'onclosecdata' )
parser . cdata = ''
parser . state = S . TEXT
} else if ( c === ']' ) {
parser . cdata += ']'
} else {
parser . cdata += ']]' + c
parser . state = S . CDATA
}
continue
case S . PROC _INST :
if ( c === '?' ) {
parser . state = S . PROC _INST _ENDING
} else if ( isWhitespace ( c ) ) {
parser . state = S . PROC _INST _BODY
} else {
parser . procInstName += c
}
continue
case S . PROC _INST _BODY :
if ( ! parser . procInstBody && isWhitespace ( c ) ) {
continue
} else if ( c === '?' ) {
parser . state = S . PROC _INST _ENDING
} else {
parser . procInstBody += c
}
continue
case S . PROC _INST _ENDING :
if ( c === '>' ) {
emitNode ( parser , 'onprocessinginstruction' , {
name : parser . procInstName ,
body : parser . procInstBody
} )
parser . procInstName = parser . procInstBody = ''
parser . state = S . TEXT
} else {
parser . procInstBody += '?' + c
parser . state = S . PROC _INST _BODY
}
continue
case S . OPEN _TAG :
if ( isMatch ( nameBody , c ) ) {
parser . tagName += c
} else {
newTag ( parser )
if ( c === '>' ) {
openTag ( parser )
} else if ( c === '/' ) {
parser . state = S . OPEN _TAG _SLASH
} else {
if ( ! isWhitespace ( c ) ) {
strictFail ( parser , 'Invalid character in tag name' )
}
parser . state = S . ATTRIB
}
}
continue
case S . OPEN _TAG _SLASH :
if ( c === '>' ) {
openTag ( parser , true )
closeTag ( parser )
} else {
strictFail ( parser , 'Forward-slash in opening tag not followed by >' )
parser . state = S . ATTRIB
}
continue
case S . ATTRIB :
// haven't read the attribute name yet.
if ( isWhitespace ( c ) ) {
continue
} else if ( c === '>' ) {
openTag ( parser )
} else if ( c === '/' ) {
parser . state = S . OPEN _TAG _SLASH
} else if ( isMatch ( nameStart , c ) ) {
parser . attribName = c
parser . attribValue = ''
parser . state = S . ATTRIB _NAME
} else {
strictFail ( parser , 'Invalid attribute name' )
}
continue
case S . ATTRIB _NAME :
if ( c === '=' ) {
parser . state = S . ATTRIB _VALUE
} else if ( c === '>' ) {
strictFail ( parser , 'Attribute without value' )
parser . attribValue = parser . attribName
attrib ( parser )
openTag ( parser )
} else if ( isWhitespace ( c ) ) {
parser . state = S . ATTRIB _NAME _SAW _WHITE
} else if ( isMatch ( nameBody , c ) ) {
parser . attribName += c
} else {
strictFail ( parser , 'Invalid attribute name' )
}
continue
case S . ATTRIB _NAME _SAW _WHITE :
if ( c === '=' ) {
parser . state = S . ATTRIB _VALUE
} else if ( isWhitespace ( c ) ) {
continue
} else {
strictFail ( parser , 'Attribute without value' )
parser . tag . attributes [ parser . attribName ] = ''
parser . attribValue = ''
emitNode ( parser , 'onattribute' , {
name : parser . attribName ,
value : ''
} )
parser . attribName = ''
if ( c === '>' ) {
openTag ( parser )
} else if ( isMatch ( nameStart , c ) ) {
parser . attribName = c
parser . state = S . ATTRIB _NAME
} else {
strictFail ( parser , 'Invalid attribute name' )
parser . state = S . ATTRIB
}
}
continue
case S . ATTRIB _VALUE :
if ( isWhitespace ( c ) ) {
continue
} else if ( isQuote ( c ) ) {
parser . q = c
parser . state = S . ATTRIB _VALUE _QUOTED
} else {
strictFail ( parser , 'Unquoted attribute value' )
parser . state = S . ATTRIB _VALUE _UNQUOTED
parser . attribValue = c
}
continue
case S . ATTRIB _VALUE _QUOTED :
if ( c !== parser . q ) {
if ( c === '&' ) {
parser . state = S . ATTRIB _VALUE _ENTITY _Q
} else {
parser . attribValue += c
}
continue
}
attrib ( parser )
parser . q = ''
parser . state = S . ATTRIB _VALUE _CLOSED
continue
case S . ATTRIB _VALUE _CLOSED :
if ( isWhitespace ( c ) ) {
parser . state = S . ATTRIB
} else if ( c === '>' ) {
openTag ( parser )
} else if ( c === '/' ) {
parser . state = S . OPEN _TAG _SLASH
} else if ( isMatch ( nameStart , c ) ) {
strictFail ( parser , 'No whitespace between attributes' )
parser . attribName = c
parser . attribValue = ''
parser . state = S . ATTRIB _NAME
} else {
strictFail ( parser , 'Invalid attribute name' )
}
continue
case S . ATTRIB _VALUE _UNQUOTED :
if ( ! isAttribEnd ( c ) ) {
if ( c === '&' ) {
parser . state = S . ATTRIB _VALUE _ENTITY _U
} else {
parser . attribValue += c
}
continue
}
attrib ( parser )
if ( c === '>' ) {
openTag ( parser )
} else {
parser . state = S . ATTRIB
}
continue
case S . CLOSE _TAG :
if ( ! parser . tagName ) {
if ( isWhitespace ( c ) ) {
continue
} else if ( notMatch ( nameStart , c ) ) {
if ( parser . script ) {
parser . script += '</' + c
parser . state = S . SCRIPT
} else {
strictFail ( parser , 'Invalid tagname in closing tag.' )
}
} else {
parser . tagName = c
}
} else if ( c === '>' ) {
closeTag ( parser )
} else if ( isMatch ( nameBody , c ) ) {
parser . tagName += c
} else if ( parser . script ) {
parser . script += '</' + parser . tagName
parser . tagName = ''
parser . state = S . SCRIPT
} else {
if ( ! isWhitespace ( c ) ) {
strictFail ( parser , 'Invalid tagname in closing tag' )
}
parser . state = S . CLOSE _TAG _SAW _WHITE
}
continue
case S . CLOSE _TAG _SAW _WHITE :
if ( isWhitespace ( c ) ) {
continue
}
if ( c === '>' ) {
closeTag ( parser )
} else {
strictFail ( parser , 'Invalid characters in closing tag' )
}
continue
case S . TEXT _ENTITY :
case S . ATTRIB _VALUE _ENTITY _Q :
case S . ATTRIB _VALUE _ENTITY _U :
var returnState
var buffer
switch ( parser . state ) {
case S . TEXT _ENTITY :
returnState = S . TEXT
buffer = 'textNode'
break
case S . ATTRIB _VALUE _ENTITY _Q :
returnState = S . ATTRIB _VALUE _QUOTED
buffer = 'attribValue'
break
case S . ATTRIB _VALUE _ENTITY _U :
returnState = S . ATTRIB _VALUE _UNQUOTED
buffer = 'attribValue'
break
}
if ( c === ';' ) {
parser [ buffer ] += parseEntity ( parser )
parser . entity = ''
parser . state = returnState
} else if ( isMatch ( parser . entity . length ? entityBody : entityStart , c ) ) {
parser . entity += c
} else {
strictFail ( parser , 'Invalid character in entity name' )
parser [ buffer ] += '&' + parser . entity + c
parser . entity = ''
parser . state = returnState
}
continue
default :
throw new Error ( parser , 'Unknown state: ' + parser . state )
}
} // while
if ( parser . position >= parser . bufferCheckPosition ) {
checkBufferLength ( parser )
}
return parser
}
/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */
/* istanbul ignore next */
if ( ! String . fromCodePoint ) {
( function ( ) {
var stringFromCharCode = String . fromCharCode
var floor = Math . floor
var fromCodePoint = function ( ) {
var MAX _SIZE = 0x4000
var codeUnits = [ ]
var highSurrogate
var lowSurrogate
var index = - 1
var length = arguments . length
if ( ! length ) {
return ''
}
var result = ''
while ( ++ index < length ) {
var codePoint = Number ( arguments [ index ] )
if (
! isFinite ( codePoint ) || // `NaN`, `+Infinity`, or `-Infinity`
codePoint < 0 || // not a valid Unicode code point
codePoint > 0x10FFFF || // not a valid Unicode code point
floor ( codePoint ) !== codePoint // not an integer
) {
throw RangeError ( 'Invalid code point: ' + codePoint )
}
if ( codePoint <= 0xFFFF ) { // BMP code point
codeUnits . push ( codePoint )
} else { // Astral code point; split in surrogate halves
// http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
codePoint -= 0x10000
highSurrogate = ( codePoint >> 10 ) + 0xD800
lowSurrogate = ( codePoint % 0x400 ) + 0xDC00
codeUnits . push ( highSurrogate , lowSurrogate )
}
if ( index + 1 === length || codeUnits . length > MAX _SIZE ) {
result += stringFromCharCode . apply ( null , codeUnits )
codeUnits . length = 0
}
}
return result
}
/* istanbul ignore next */
if ( Object . defineProperty ) {
Object . defineProperty ( String , 'fromCodePoint' , {
value : fromCodePoint ,
configurable : true ,
writable : true
} )
} else {
String . fromCodePoint = fromCodePoint
}
} ( ) )
}
} ) ( false ? 0 : exports )
/***/ } ) ,
/***/ 6375 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
/* -*- Mode: js; js-indent-level: 2; -*- */
/ *
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE or :
* http : //opensource.org/licenses/BSD-3-Clause
* /
var util = _ _nccwpck _require _ _ ( 2344 ) ;
var has = Object . prototype . hasOwnProperty ;
var hasNativeMap = typeof Map !== "undefined" ;
/ * *
* A data structure which is a combination of an array and a set . Adding a new
* member is O ( 1 ) , testing for membership is O ( 1 ) , and finding the index of an
* element is O ( 1 ) . Removing elements from the set is not supported . Only
* strings are supported for membership .
* /
function ArraySet ( ) {
this . _array = [ ] ;
this . _set = hasNativeMap ? new Map ( ) : Object . create ( null ) ;
}
/ * *
* Static method for creating ArraySet instances from an existing array .
* /
ArraySet . fromArray = function ArraySet _fromArray ( aArray , aAllowDuplicates ) {
var set = new ArraySet ( ) ;
for ( var i = 0 , len = aArray . length ; i < len ; i ++ ) {
set . add ( aArray [ i ] , aAllowDuplicates ) ;
}
return set ;
} ;
/ * *
* Return how many unique items are in this ArraySet . If duplicates have been
* added , than those do not count towards the size .
*
* @ returns Number
* /
ArraySet . prototype . size = function ArraySet _size ( ) {
return hasNativeMap ? this . _set . size : Object . getOwnPropertyNames ( this . _set ) . length ;
} ;
/ * *
* Add the given string to this set .
*
* @ param String aStr
* /
ArraySet . prototype . add = function ArraySet _add ( aStr , aAllowDuplicates ) {
var sStr = hasNativeMap ? aStr : util . toSetString ( aStr ) ;
var isDuplicate = hasNativeMap ? this . has ( aStr ) : has . call ( this . _set , sStr ) ;
var idx = this . _array . length ;
if ( ! isDuplicate || aAllowDuplicates ) {
this . _array . push ( aStr ) ;
}
if ( ! isDuplicate ) {
if ( hasNativeMap ) {
this . _set . set ( aStr , idx ) ;
} else {
this . _set [ sStr ] = idx ;
}
}
} ;
/ * *
* Is the given string a member of this set ?
*
* @ param String aStr
* /
ArraySet . prototype . has = function ArraySet _has ( aStr ) {
if ( hasNativeMap ) {
return this . _set . has ( aStr ) ;
} else {
var sStr = util . toSetString ( aStr ) ;
return has . call ( this . _set , sStr ) ;
}
} ;
/ * *
* What is the index of the given string in the array ?
*
* @ param String aStr
* /
ArraySet . prototype . indexOf = function ArraySet _indexOf ( aStr ) {
if ( hasNativeMap ) {
var idx = this . _set . get ( aStr ) ;
if ( idx >= 0 ) {
return idx ;
}
} else {
var sStr = util . toSetString ( aStr ) ;
if ( has . call ( this . _set , sStr ) ) {
return this . _set [ sStr ] ;
}
}
throw new Error ( '"' + aStr + '" is not in the set.' ) ;
} ;
/ * *
* What is the element at the given index ?
*
* @ param Number aIdx
* /
ArraySet . prototype . at = function ArraySet _at ( aIdx ) {
if ( aIdx >= 0 && aIdx < this . _array . length ) {
return this . _array [ aIdx ] ;
}
throw new Error ( 'No element indexed by ' + aIdx ) ;
} ;
/ * *
* Returns the array representation of this set ( which has the proper indices
* indicated by indexOf ) . Note that this is a copy of the internal array used
* for storing the members so that no one can mess with internal state .
* /
ArraySet . prototype . toArray = function ArraySet _toArray ( ) {
return this . _array . slice ( ) ;
} ;
exports . I = ArraySet ;
/***/ } ) ,
/***/ 5807 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
/* -*- Mode: js; js-indent-level: 2; -*- */
/ *
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE or :
* http : //opensource.org/licenses/BSD-3-Clause
*
* Based on the Base 64 VLQ implementation in Closure Compiler :
* https : //code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
*
* Copyright 2011 The Closure Compiler Authors . All rights reserved .
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions are
* met :
*
* * Redistributions of source code must retain the above copyright
* notice , this list of conditions and the following disclaimer .
* * Redistributions in binary form must reproduce the above
* copyright notice , this list of conditions and the following
* disclaimer in the documentation and / or other materials provided
* with the distribution .
* * Neither the name of Google Inc . nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission .
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT
* LIMITED TO , THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL ,
* SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT
* LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE ,
* DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT
* ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
* /
var base64 = _ _nccwpck _require _ _ ( 6156 ) ;
// A single base 64 digit can contain 6 bits of data. For the base 64 variable
// length quantities we use in the source map spec, the first bit is the sign,
// the next four bits are the actual value, and the 6th bit is the
// continuation bit. The continuation bit tells us whether there are more
// digits in this value following this digit.
//
// Continuation
// | Sign
// | |
// V V
// 101011
var VLQ _BASE _SHIFT = 5 ;
// binary: 100000
var VLQ _BASE = 1 << VLQ _BASE _SHIFT ;
// binary: 011111
var VLQ _BASE _MASK = VLQ _BASE - 1 ;
// binary: 100000
var VLQ _CONTINUATION _BIT = VLQ _BASE ;
/ * *
* Converts from a two - complement value to a value where the sign bit is
* placed in the least significant bit . For example , as decimals :
* 1 becomes 2 ( 10 binary ) , - 1 becomes 3 ( 11 binary )
* 2 becomes 4 ( 100 binary ) , - 2 becomes 5 ( 101 binary )
* /
function toVLQSigned ( aValue ) {
return aValue < 0
? ( ( - aValue ) << 1 ) + 1
: ( aValue << 1 ) + 0 ;
}
/ * *
* Converts to a two - complement value from a value where the sign bit is
* placed in the least significant bit . For example , as decimals :
* 2 ( 10 binary ) becomes 1 , 3 ( 11 binary ) becomes - 1
* 4 ( 100 binary ) becomes 2 , 5 ( 101 binary ) becomes - 2
* /
function fromVLQSigned ( aValue ) {
var isNegative = ( aValue & 1 ) === 1 ;
var shifted = aValue >> 1 ;
return isNegative
? - shifted
: shifted ;
}
/ * *
* Returns the base 64 VLQ encoded value .
* /
exports . encode = function base64VLQ _encode ( aValue ) {
var encoded = "" ;
var digit ;
var vlq = toVLQSigned ( aValue ) ;
do {
digit = vlq & VLQ _BASE _MASK ;
vlq >>>= VLQ _BASE _SHIFT ;
if ( vlq > 0 ) {
// There are still more digits in this value, so we must make sure the
// continuation bit is marked.
digit |= VLQ _CONTINUATION _BIT ;
}
encoded += base64 . encode ( digit ) ;
} while ( vlq > 0 ) ;
return encoded ;
} ;
/ * *
* Decodes the next base 64 VLQ value from the given string and returns the
* value and the rest of the string via the out parameter .
* /
exports . decode = function base64VLQ _decode ( aStr , aIndex , aOutParam ) {
var strLen = aStr . length ;
var result = 0 ;
var shift = 0 ;
var continuation , digit ;
do {
if ( aIndex >= strLen ) {
throw new Error ( "Expected more digits in base 64 VLQ value." ) ;
}
digit = base64 . decode ( aStr . charCodeAt ( aIndex ++ ) ) ;
if ( digit === - 1 ) {
throw new Error ( "Invalid base64 digit: " + aStr . charAt ( aIndex - 1 ) ) ;
}
continuation = ! ! ( digit & VLQ _CONTINUATION _BIT ) ;
digit &= VLQ _BASE _MASK ;
result = result + ( digit << shift ) ;
shift += VLQ _BASE _SHIFT ;
} while ( continuation ) ;
aOutParam . value = fromVLQSigned ( result ) ;
aOutParam . rest = aIndex ;
} ;
/***/ } ) ,
/***/ 6156 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
/* -*- Mode: js; js-indent-level: 2; -*- */
/ *
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE or :
* http : //opensource.org/licenses/BSD-3-Clause
* /
var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' . split ( '' ) ;
/ * *
* Encode an integer in the range of 0 to 63 to a single base 64 digit .
* /
exports . encode = function ( number ) {
if ( 0 <= number && number < intToCharMap . length ) {
return intToCharMap [ number ] ;
}
throw new TypeError ( "Must be between 0 and 63: " + number ) ;
} ;
/ * *
* Decode a single base 64 character code digit to an integer . Returns - 1 on
* failure .
* /
exports . decode = function ( charCode ) {
var bigA = 65 ; // 'A'
var bigZ = 90 ; // 'Z'
var littleA = 97 ; // 'a'
var littleZ = 122 ; // 'z'
var zero = 48 ; // '0'
var nine = 57 ; // '9'
var plus = 43 ; // '+'
var slash = 47 ; // '/'
var littleOffset = 26 ;
var numberOffset = 52 ;
// 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
if ( bigA <= charCode && charCode <= bigZ ) {
return ( charCode - bigA ) ;
}
// 26 - 51: abcdefghijklmnopqrstuvwxyz
if ( littleA <= charCode && charCode <= littleZ ) {
return ( charCode - littleA + littleOffset ) ;
}
// 52 - 61: 0123456789
if ( zero <= charCode && charCode <= nine ) {
return ( charCode - zero + numberOffset ) ;
}
// 62: +
if ( charCode == plus ) {
return 62 ;
}
// 63: /
if ( charCode == slash ) {
return 63 ;
}
// Invalid base64 digit.
return - 1 ;
} ;
/***/ } ) ,
/***/ 3600 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
/* -*- Mode: js; js-indent-level: 2; -*- */
/ *
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE or :
* http : //opensource.org/licenses/BSD-3-Clause
* /
exports . GREATEST _LOWER _BOUND = 1 ;
exports . LEAST _UPPER _BOUND = 2 ;
/ * *
* Recursive implementation of binary search .
*
* @ param aLow Indices here and lower do not contain the needle .
* @ param aHigh Indices here and higher do not contain the needle .
* @ param aNeedle The element being searched for .
* @ param aHaystack The non - empty array being searched .
* @ param aCompare Function which takes two elements and returns - 1 , 0 , or 1.
* @ param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
* 'binarySearch.LEAST_UPPER_BOUND' . Specifies whether to return the
* closest element that is smaller than or greater than the one we are
* searching for , respectively , if the exact element cannot be found .
* /
function recursiveSearch ( aLow , aHigh , aNeedle , aHaystack , aCompare , aBias ) {
// This function terminates when one of the following is true:
//
// 1. We find the exact element we are looking for.
//
// 2. We did not find the exact element, but we can return the index of
// the next-closest element.
//
// 3. We did not find the exact element, and there is no next-closest
// element than the one we are searching for, so we return -1.
var mid = Math . floor ( ( aHigh - aLow ) / 2 ) + aLow ;
var cmp = aCompare ( aNeedle , aHaystack [ mid ] , true ) ;
if ( cmp === 0 ) {
// Found the element we are looking for.
return mid ;
}
else if ( cmp > 0 ) {
// Our needle is greater than aHaystack[mid].
if ( aHigh - mid > 1 ) {
// The element is in the upper half.
return recursiveSearch ( mid , aHigh , aNeedle , aHaystack , aCompare , aBias ) ;
}
// The exact needle element was not found in this haystack. Determine if
// we are in termination case (3) or (2) and return the appropriate thing.
if ( aBias == exports . LEAST _UPPER _BOUND ) {
return aHigh < aHaystack . length ? aHigh : - 1 ;
} else {
return mid ;
}
}
else {
// Our needle is less than aHaystack[mid].
if ( mid - aLow > 1 ) {
// The element is in the lower half.
return recursiveSearch ( aLow , mid , aNeedle , aHaystack , aCompare , aBias ) ;
}
// we are in termination case (3) or (2) and return the appropriate thing.
if ( aBias == exports . LEAST _UPPER _BOUND ) {
return mid ;
} else {
return aLow < 0 ? - 1 : aLow ;
}
}
}
/ * *
* This is an implementation of binary search which will always try and return
* the index of the closest element if there is no exact hit . This is because
* mappings between original and generated line / col pairs are single points ,
* and there is an implicit region between each of them , so a miss just means
* that you aren ' t on the very start of a region .
*
* @ param aNeedle The element you are looking for .
* @ param aHaystack The array that is being searched .
* @ param aCompare A function which takes the needle and an element in the
* array and returns - 1 , 0 , or 1 depending on whether the needle is less
* than , equal to , or greater than the element , respectively .
* @ param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
* 'binarySearch.LEAST_UPPER_BOUND' . Specifies whether to return the
* closest element that is smaller than or greater than the one we are
* searching for , respectively , if the exact element cannot be found .
* Defaults to 'binarySearch.GREATEST_LOWER_BOUND' .
* /
exports . search = function search ( aNeedle , aHaystack , aCompare , aBias ) {
if ( aHaystack . length === 0 ) {
return - 1 ;
}
var index = recursiveSearch ( - 1 , aHaystack . length , aNeedle , aHaystack ,
aCompare , aBias || exports . GREATEST _LOWER _BOUND ) ;
if ( index < 0 ) {
return - 1 ;
}
// We have found either the exact element, or the next-closest element than
// the one we are searching for. However, there may be more than one such
// element. Make sure we always return the smallest of these.
while ( index - 1 >= 0 ) {
if ( aCompare ( aHaystack [ index ] , aHaystack [ index - 1 ] , true ) !== 0 ) {
break ;
}
-- index ;
}
return index ;
} ;
/***/ } ) ,
/***/ 6817 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
/* -*- Mode: js; js-indent-level: 2; -*- */
/ *
* Copyright 2014 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE or :
* http : //opensource.org/licenses/BSD-3-Clause
* /
var util = _ _nccwpck _require _ _ ( 2344 ) ;
/ * *
* Determine whether mappingB is after mappingA with respect to generated
* position .
* /
function generatedPositionAfter ( mappingA , mappingB ) {
// Optimized for most common case
var lineA = mappingA . generatedLine ;
var lineB = mappingB . generatedLine ;
var columnA = mappingA . generatedColumn ;
var columnB = mappingB . generatedColumn ;
return lineB > lineA || lineB == lineA && columnB >= columnA ||
util . compareByGeneratedPositionsInflated ( mappingA , mappingB ) <= 0 ;
}
/ * *
* A data structure to provide a sorted view of accumulated mappings in a
* performance conscious manner . It trades a neglibable overhead in general
* case for a large speedup in case of mappings being added in order .
* /
function MappingList ( ) {
this . _array = [ ] ;
this . _sorted = true ;
// Serves as infimum
this . _last = { generatedLine : - 1 , generatedColumn : 0 } ;
}
/ * *
* Iterate through internal items . This method takes the same arguments that
* ` Array.prototype.forEach ` takes .
*
* NOTE : The order of the mappings is NOT guaranteed .
* /
MappingList . prototype . unsortedForEach =
function MappingList _forEach ( aCallback , aThisArg ) {
this . _array . forEach ( aCallback , aThisArg ) ;
} ;
/ * *
* Add the given source mapping .
*
* @ param Object aMapping
* /
MappingList . prototype . add = function MappingList _add ( aMapping ) {
if ( generatedPositionAfter ( this . _last , aMapping ) ) {
this . _last = aMapping ;
this . _array . push ( aMapping ) ;
} else {
this . _sorted = false ;
this . _array . push ( aMapping ) ;
}
} ;
/ * *
* Returns the flat , sorted array of mappings . The mappings are sorted by
* generated position .
*
* WARNING : This method returns internal data without copying , for
* performance . The return value must NOT be mutated , and should be treated as
* an immutable borrow . If you want to take ownership , you must make your own
* copy .
* /
MappingList . prototype . toArray = function MappingList _toArray ( ) {
if ( ! this . _sorted ) {
this . _array . sort ( util . compareByGeneratedPositionsInflated ) ;
this . _sorted = true ;
}
return this . _array ;
} ;
exports . H = MappingList ;
/***/ } ) ,
/***/ 3254 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
/* -*- Mode: js; js-indent-level: 2; -*- */
/ *
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE or :
* http : //opensource.org/licenses/BSD-3-Clause
* /
// It turns out that some (most?) JavaScript engines don't self-host
// `Array.prototype.sort`. This makes sense because C++ will likely remain
// faster than JS when doing raw CPU-intensive sorting. However, when using a
// custom comparator function, calling back and forth between the VM's C++ and
// JIT'd JS is rather slow *and* loses JIT type information, resulting in
// worse generated code for the comparator function than would be optimal. In
// fact, when sorting with a comparator, these costs outweigh the benefits of
// sorting in C++. By using our own JS-implemented Quick Sort (below), we get
// a ~3500ms mean speed-up in `bench/bench.html`.
/ * *
* Swap the elements indexed by ` x ` and ` y ` in the array ` ary ` .
*
* @ param { Array } ary
* The array .
* @ param { Number } x
* The index of the first item .
* @ param { Number } y
* The index of the second item .
* /
function swap ( ary , x , y ) {
var temp = ary [ x ] ;
ary [ x ] = ary [ y ] ;
ary [ y ] = temp ;
}
/ * *
* Returns a random integer within the range ` low .. high ` inclusive .
*
* @ param { Number } low
* The lower bound on the range .
* @ param { Number } high
* The upper bound on the range .
* /
function randomIntInRange ( low , high ) {
return Math . round ( low + ( Math . random ( ) * ( high - low ) ) ) ;
}
/ * *
* The Quick Sort algorithm .
*
* @ param { Array } ary
* An array to sort .
* @ param { function } comparator
* Function to use to compare two items .
* @ param { Number } p
* Start index of the array
* @ param { Number } r
* End index of the array
* /
function doQuickSort ( ary , comparator , p , r ) {
// If our lower bound is less than our upper bound, we (1) partition the
// array into two pieces and (2) recurse on each half. If it is not, this is
// the empty array and our base case.
if ( p < r ) {
// (1) Partitioning.
//
// The partitioning chooses a pivot between `p` and `r` and moves all
// elements that are less than or equal to the pivot to the before it, and
// all the elements that are greater than it after it. The effect is that
// once partition is done, the pivot is in the exact place it will be when
// the array is put in sorted order, and it will not need to be moved
// again. This runs in O(n) time.
// Always choose a random pivot so that an input array which is reverse
// sorted does not cause O(n^2) running time.
var pivotIndex = randomIntInRange ( p , r ) ;
var i = p - 1 ;
swap ( ary , pivotIndex , r ) ;
var pivot = ary [ r ] ;
// Immediately after `j` is incremented in this loop, the following hold
// true:
//
// * Every element in `ary[p .. i]` is less than or equal to the pivot.
//
// * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
for ( var j = p ; j < r ; j ++ ) {
if ( comparator ( ary [ j ] , pivot ) <= 0 ) {
i += 1 ;
swap ( ary , i , j ) ;
}
}
swap ( ary , i + 1 , j ) ;
var q = i + 1 ;
// (2) Recurse on each half.
doQuickSort ( ary , comparator , p , q - 1 ) ;
doQuickSort ( ary , comparator , q + 1 , r ) ;
}
}
/ * *
* Sort the given array in - place with the given comparator function .
*
* @ param { Array } ary
* An array to sort .
* @ param { function } comparator
* Function to use to compare two items .
* /
exports . U = function ( ary , comparator ) {
doQuickSort ( ary , comparator , 0 , ary . length - 1 ) ;
} ;
/***/ } ) ,
/***/ 5155 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
var _ _webpack _unused _export _ _ ;
/* -*- Mode: js; js-indent-level: 2; -*- */
/ *
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE or :
* http : //opensource.org/licenses/BSD-3-Clause
* /
var util = _ _nccwpck _require _ _ ( 2344 ) ;
var binarySearch = _ _nccwpck _require _ _ ( 3600 ) ;
var ArraySet = ( _ _nccwpck _require _ _ ( 6375 ) /* .ArraySet */ . I ) ;
var base64VLQ = _ _nccwpck _require _ _ ( 5807 ) ;
var quickSort = ( _ _nccwpck _require _ _ ( 3254 ) /* .quickSort */ . U ) ;
function SourceMapConsumer ( aSourceMap , aSourceMapURL ) {
var sourceMap = aSourceMap ;
if ( typeof aSourceMap === 'string' ) {
sourceMap = util . parseSourceMapInput ( aSourceMap ) ;
}
return sourceMap . sections != null
? new IndexedSourceMapConsumer ( sourceMap , aSourceMapURL )
: new BasicSourceMapConsumer ( sourceMap , aSourceMapURL ) ;
}
SourceMapConsumer . fromSourceMap = function ( aSourceMap , aSourceMapURL ) {
return BasicSourceMapConsumer . fromSourceMap ( aSourceMap , aSourceMapURL ) ;
}
/ * *
* The version of the source mapping spec that we are consuming .
* /
SourceMapConsumer . prototype . _version = 3 ;
// `__generatedMappings` and `__originalMappings` are arrays that hold the
// parsed mapping coordinates from the source map's "mappings" attribute. They
// are lazily instantiated, accessed via the `_generatedMappings` and
// `_originalMappings` getters respectively, and we only parse the mappings
// and create these arrays once queried for a source location. We jump through
// these hoops because there can be many thousands of mappings, and parsing
// them is expensive, so we only want to do it if we must.
//
// Each object in the arrays is of the form:
//
// {
// generatedLine: The line number in the generated code,
// generatedColumn: The column number in the generated code,
// source: The path to the original source file that generated this
// chunk of code,
// originalLine: The line number in the original source that
// corresponds to this chunk of generated code,
// originalColumn: The column number in the original source that
// corresponds to this chunk of generated code,
// name: The name of the original symbol which generated this chunk of
// code.
// }
//
// All properties except for `generatedLine` and `generatedColumn` can be
// `null`.
//
// `_generatedMappings` is ordered by the generated positions.
//
// `_originalMappings` is ordered by the original positions.
SourceMapConsumer . prototype . _ _generatedMappings = null ;
Object . defineProperty ( SourceMapConsumer . prototype , '_generatedMappings' , {
configurable : true ,
enumerable : true ,
get : function ( ) {
if ( ! this . _ _generatedMappings ) {
this . _parseMappings ( this . _mappings , this . sourceRoot ) ;
}
return this . _ _generatedMappings ;
}
} ) ;
SourceMapConsumer . prototype . _ _originalMappings = null ;
Object . defineProperty ( SourceMapConsumer . prototype , '_originalMappings' , {
configurable : true ,
enumerable : true ,
get : function ( ) {
if ( ! this . _ _originalMappings ) {
this . _parseMappings ( this . _mappings , this . sourceRoot ) ;
}
return this . _ _originalMappings ;
}
} ) ;
SourceMapConsumer . prototype . _charIsMappingSeparator =
function SourceMapConsumer _charIsMappingSeparator ( aStr , index ) {
var c = aStr . charAt ( index ) ;
return c === ";" || c === "," ;
} ;
/ * *
* Parse the mappings in a string in to a data structure which we can easily
* query ( the ordered arrays in the ` this.__generatedMappings ` and
* ` this.__originalMappings ` properties ) .
* /
SourceMapConsumer . prototype . _parseMappings =
function SourceMapConsumer _parseMappings ( aStr , aSourceRoot ) {
throw new Error ( "Subclasses must implement _parseMappings" ) ;
} ;
SourceMapConsumer . GENERATED _ORDER = 1 ;
SourceMapConsumer . ORIGINAL _ORDER = 2 ;
SourceMapConsumer . GREATEST _LOWER _BOUND = 1 ;
SourceMapConsumer . LEAST _UPPER _BOUND = 2 ;
/ * *
* Iterate over each mapping between an original source / line / column and a
* generated line / column in this source map .
*
* @ param Function aCallback
* The function that is called with each mapping .
* @ param Object aContext
* Optional . If specified , this object will be the value of ` this ` every
* time that ` aCallback ` is called .
* @ param aOrder
* Either ` SourceMapConsumer.GENERATED_ORDER ` or
* ` SourceMapConsumer.ORIGINAL_ORDER ` . Specifies whether you want to
* iterate over the mappings sorted by the generated file ' s line / column
* order or the original ' s source / line / column order , respectively . Defaults to
* ` SourceMapConsumer.GENERATED_ORDER ` .
* /
SourceMapConsumer . prototype . eachMapping =
function SourceMapConsumer _eachMapping ( aCallback , aContext , aOrder ) {
var context = aContext || null ;
var order = aOrder || SourceMapConsumer . GENERATED _ORDER ;
var mappings ;
switch ( order ) {
case SourceMapConsumer . GENERATED _ORDER :
mappings = this . _generatedMappings ;
break ;
case SourceMapConsumer . ORIGINAL _ORDER :
mappings = this . _originalMappings ;
break ;
default :
throw new Error ( "Unknown order of iteration." ) ;
}
var sourceRoot = this . sourceRoot ;
mappings . map ( function ( mapping ) {
var source = mapping . source === null ? null : this . _sources . at ( mapping . source ) ;
source = util . computeSourceURL ( sourceRoot , source , this . _sourceMapURL ) ;
return {
source : source ,
generatedLine : mapping . generatedLine ,
generatedColumn : mapping . generatedColumn ,
originalLine : mapping . originalLine ,
originalColumn : mapping . originalColumn ,
name : mapping . name === null ? null : this . _names . at ( mapping . name )
} ;
} , this ) . forEach ( aCallback , context ) ;
} ;
/ * *
* Returns all generated line and column information for the original source ,
* line , and column provided . If no column is provided , returns all mappings
* corresponding to a either the line we are searching for or the next
* closest line that has any mappings . Otherwise , returns all mappings
* corresponding to the given line and either the column we are searching for
* or the next closest column that has any offsets .
*
* The only argument is an object with the following properties :
*
* - source : The filename of the original source .
* - line : The line number in the original source . The line number is 1 - based .
* - column : Optional . the column number in the original source .
* The column number is 0 - based .
*
* and an array of objects is returned , each with the following properties :
*
* - line : The line number in the generated source , or null . The
* line number is 1 - based .
* - column : The column number in the generated source , or null .
* The column number is 0 - based .
* /
SourceMapConsumer . prototype . allGeneratedPositionsFor =
function SourceMapConsumer _allGeneratedPositionsFor ( aArgs ) {
var line = util . getArg ( aArgs , 'line' ) ;
// When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
// returns the index of the closest mapping less than the needle. By
// setting needle.originalColumn to 0, we thus find the last mapping for
// the given line, provided such a mapping exists.
var needle = {
source : util . getArg ( aArgs , 'source' ) ,
originalLine : line ,
originalColumn : util . getArg ( aArgs , 'column' , 0 )
} ;
needle . source = this . _findSourceIndex ( needle . source ) ;
if ( needle . source < 0 ) {
return [ ] ;
}
var mappings = [ ] ;
var index = this . _findMapping ( needle ,
this . _originalMappings ,
"originalLine" ,
"originalColumn" ,
util . compareByOriginalPositions ,
binarySearch . LEAST _UPPER _BOUND ) ;
if ( index >= 0 ) {
var mapping = this . _originalMappings [ index ] ;
if ( aArgs . column === undefined ) {
var originalLine = mapping . originalLine ;
// Iterate until either we run out of mappings, or we run into
// a mapping for a different line than the one we found. Since
// mappings are sorted, this is guaranteed to find all mappings for
// the line we found.
while ( mapping && mapping . originalLine === originalLine ) {
mappings . push ( {
line : util . getArg ( mapping , 'generatedLine' , null ) ,
column : util . getArg ( mapping , 'generatedColumn' , null ) ,
lastColumn : util . getArg ( mapping , 'lastGeneratedColumn' , null )
} ) ;
mapping = this . _originalMappings [ ++ index ] ;
}
} else {
var originalColumn = mapping . originalColumn ;
// Iterate until either we run out of mappings, or we run into
// a mapping for a different line than the one we were searching for.
// Since mappings are sorted, this is guaranteed to find all mappings for
// the line we are searching for.
while ( mapping &&
mapping . originalLine === line &&
mapping . originalColumn == originalColumn ) {
mappings . push ( {
line : util . getArg ( mapping , 'generatedLine' , null ) ,
column : util . getArg ( mapping , 'generatedColumn' , null ) ,
lastColumn : util . getArg ( mapping , 'lastGeneratedColumn' , null )
} ) ;
mapping = this . _originalMappings [ ++ index ] ;
}
}
}
return mappings ;
} ;
exports . SourceMapConsumer = SourceMapConsumer ;
/ * *
* A BasicSourceMapConsumer instance represents a parsed source map which we can
* query for information about the original file positions by giving it a file
* position in the generated source .
*
* The first parameter is the raw source map ( either as a JSON string , or
* already parsed to an object ) . According to the spec , source maps have the
* following attributes :
*
* - version : Which version of the source map spec this map is following .
* - sources : An array of URLs to the original source files .
* - names : An array of identifiers which can be referrenced by individual mappings .
* - sourceRoot : Optional . The URL root from which all sources are relative .
* - sourcesContent : Optional . An array of contents of the original source files .
* - mappings : A string of base64 VLQs which contain the actual mappings .
* - file : Optional . The generated file this source map is associated with .
*
* Here is an example source map , taken from the source map spec [ 0 ] :
*
* {
* version : 3 ,
* file : "out.js" ,
* sourceRoot : "" ,
* sources : [ "foo.js" , "bar.js" ] ,
* names : [ "src" , "maps" , "are" , "fun" ] ,
* mappings : "AA,AB;;ABCDE;"
* }
*
* The second parameter , if given , is a string whose value is the URL
* at which the source map was found . This URL is used to compute the
* sources array .
*
* [ 0 ] : https : //docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
* /
function BasicSourceMapConsumer ( aSourceMap , aSourceMapURL ) {
var sourceMap = aSourceMap ;
if ( typeof aSourceMap === 'string' ) {
sourceMap = util . parseSourceMapInput ( aSourceMap ) ;
}
var version = util . getArg ( sourceMap , 'version' ) ;
var sources = util . getArg ( sourceMap , 'sources' ) ;
// Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
// requires the array) to play nice here.
var names = util . getArg ( sourceMap , 'names' , [ ] ) ;
var sourceRoot = util . getArg ( sourceMap , 'sourceRoot' , null ) ;
var sourcesContent = util . getArg ( sourceMap , 'sourcesContent' , null ) ;
var mappings = util . getArg ( sourceMap , 'mappings' ) ;
var file = util . getArg ( sourceMap , 'file' , null ) ;
// Once again, Sass deviates from the spec and supplies the version as a
// string rather than a number, so we use loose equality checking here.
if ( version != this . _version ) {
throw new Error ( 'Unsupported version: ' + version ) ;
}
if ( sourceRoot ) {
sourceRoot = util . normalize ( sourceRoot ) ;
}
sources = sources
. map ( String )
// Some source maps produce relative source paths like "./foo.js" instead of
// "foo.js". Normalize these first so that future comparisons will succeed.
// See bugzil.la/1090768.
. map ( util . normalize )
// Always ensure that absolute sources are internally stored relative to
// the source root, if the source root is absolute. Not doing this would
// be particularly problematic when the source root is a prefix of the
// source (valid, but why??). See github issue #199 and bugzil.la/1188982.
. map ( function ( source ) {
return sourceRoot && util . isAbsolute ( sourceRoot ) && util . isAbsolute ( source )
? util . relative ( sourceRoot , source )
: source ;
} ) ;
// Pass `true` below to allow duplicate names and sources. While source maps
// are intended to be compressed and deduplicated, the TypeScript compiler
// sometimes generates source maps with duplicates in them. See Github issue
// #72 and bugzil.la/889492.
this . _names = ArraySet . fromArray ( names . map ( String ) , true ) ;
this . _sources = ArraySet . fromArray ( sources , true ) ;
this . _absoluteSources = this . _sources . toArray ( ) . map ( function ( s ) {
return util . computeSourceURL ( sourceRoot , s , aSourceMapURL ) ;
} ) ;
this . sourceRoot = sourceRoot ;
this . sourcesContent = sourcesContent ;
this . _mappings = mappings ;
this . _sourceMapURL = aSourceMapURL ;
this . file = file ;
}
BasicSourceMapConsumer . prototype = Object . create ( SourceMapConsumer . prototype ) ;
BasicSourceMapConsumer . prototype . consumer = SourceMapConsumer ;
/ * *
* Utility function to find the index of a source . Returns - 1 if not
* found .
* /
BasicSourceMapConsumer . prototype . _findSourceIndex = function ( aSource ) {
var relativeSource = aSource ;
if ( this . sourceRoot != null ) {
relativeSource = util . relative ( this . sourceRoot , relativeSource ) ;
}
if ( this . _sources . has ( relativeSource ) ) {
return this . _sources . indexOf ( relativeSource ) ;
}
// Maybe aSource is an absolute URL as returned by |sources|. In
// this case we can't simply undo the transform.
var i ;
for ( i = 0 ; i < this . _absoluteSources . length ; ++ i ) {
if ( this . _absoluteSources [ i ] == aSource ) {
return i ;
}
}
return - 1 ;
} ;
/ * *
* Create a BasicSourceMapConsumer from a SourceMapGenerator .
*
* @ param SourceMapGenerator aSourceMap
* The source map that will be consumed .
* @ param String aSourceMapURL
* The URL at which the source map can be found ( optional )
* @ returns BasicSourceMapConsumer
* /
BasicSourceMapConsumer . fromSourceMap =
function SourceMapConsumer _fromSourceMap ( aSourceMap , aSourceMapURL ) {
var smc = Object . create ( BasicSourceMapConsumer . prototype ) ;
var names = smc . _names = ArraySet . fromArray ( aSourceMap . _names . toArray ( ) , true ) ;
var sources = smc . _sources = ArraySet . fromArray ( aSourceMap . _sources . toArray ( ) , true ) ;
smc . sourceRoot = aSourceMap . _sourceRoot ;
smc . sourcesContent = aSourceMap . _generateSourcesContent ( smc . _sources . toArray ( ) ,
smc . sourceRoot ) ;
smc . file = aSourceMap . _file ;
smc . _sourceMapURL = aSourceMapURL ;
smc . _absoluteSources = smc . _sources . toArray ( ) . map ( function ( s ) {
return util . computeSourceURL ( smc . sourceRoot , s , aSourceMapURL ) ;
} ) ;
// Because we are modifying the entries (by converting string sources and
// names to indices into the sources and names ArraySets), we have to make
// a copy of the entry or else bad things happen. Shared mutable state
// strikes again! See github issue #191.
var generatedMappings = aSourceMap . _mappings . toArray ( ) . slice ( ) ;
var destGeneratedMappings = smc . _ _generatedMappings = [ ] ;
var destOriginalMappings = smc . _ _originalMappings = [ ] ;
for ( var i = 0 , length = generatedMappings . length ; i < length ; i ++ ) {
var srcMapping = generatedMappings [ i ] ;
var destMapping = new Mapping ;
destMapping . generatedLine = srcMapping . generatedLine ;
destMapping . generatedColumn = srcMapping . generatedColumn ;
if ( srcMapping . source ) {
destMapping . source = sources . indexOf ( srcMapping . source ) ;
destMapping . originalLine = srcMapping . originalLine ;
destMapping . originalColumn = srcMapping . originalColumn ;
if ( srcMapping . name ) {
destMapping . name = names . indexOf ( srcMapping . name ) ;
}
destOriginalMappings . push ( destMapping ) ;
}
destGeneratedMappings . push ( destMapping ) ;
}
quickSort ( smc . _ _originalMappings , util . compareByOriginalPositions ) ;
return smc ;
} ;
/ * *
* The version of the source mapping spec that we are consuming .
* /
BasicSourceMapConsumer . prototype . _version = 3 ;
/ * *
* The list of original sources .
* /
Object . defineProperty ( BasicSourceMapConsumer . prototype , 'sources' , {
get : function ( ) {
return this . _absoluteSources . slice ( ) ;
}
} ) ;
/ * *
* Provide the JIT with a nice shape / hidden class .
* /
function Mapping ( ) {
this . generatedLine = 0 ;
this . generatedColumn = 0 ;
this . source = null ;
this . originalLine = null ;
this . originalColumn = null ;
this . name = null ;
}
/ * *
* Parse the mappings in a string in to a data structure which we can easily
* query ( the ordered arrays in the ` this.__generatedMappings ` and
* ` this.__originalMappings ` properties ) .
* /
BasicSourceMapConsumer . prototype . _parseMappings =
function SourceMapConsumer _parseMappings ( aStr , aSourceRoot ) {
var generatedLine = 1 ;
var previousGeneratedColumn = 0 ;
var previousOriginalLine = 0 ;
var previousOriginalColumn = 0 ;
var previousSource = 0 ;
var previousName = 0 ;
var length = aStr . length ;
var index = 0 ;
var cachedSegments = { } ;
var temp = { } ;
var originalMappings = [ ] ;
var generatedMappings = [ ] ;
var mapping , str , segment , end , value ;
while ( index < length ) {
if ( aStr . charAt ( index ) === ';' ) {
generatedLine ++ ;
index ++ ;
previousGeneratedColumn = 0 ;
}
else if ( aStr . charAt ( index ) === ',' ) {
index ++ ;
}
else {
mapping = new Mapping ( ) ;
mapping . generatedLine = generatedLine ;
// Because each offset is encoded relative to the previous one,
// many segments often have the same encoding. We can exploit this
// fact by caching the parsed variable length fields of each segment,
// allowing us to avoid a second parse if we encounter the same
// segment again.
for ( end = index ; end < length ; end ++ ) {
if ( this . _charIsMappingSeparator ( aStr , end ) ) {
break ;
}
}
str = aStr . slice ( index , end ) ;
segment = cachedSegments [ str ] ;
if ( segment ) {
index += str . length ;
} else {
segment = [ ] ;
while ( index < end ) {
base64VLQ . decode ( aStr , index , temp ) ;
value = temp . value ;
index = temp . rest ;
segment . push ( value ) ;
}
if ( segment . length === 2 ) {
throw new Error ( 'Found a source, but no line and column' ) ;
}
if ( segment . length === 3 ) {
throw new Error ( 'Found a source and line, but no column' ) ;
}
cachedSegments [ str ] = segment ;
}
// Generated column.
mapping . generatedColumn = previousGeneratedColumn + segment [ 0 ] ;
previousGeneratedColumn = mapping . generatedColumn ;
if ( segment . length > 1 ) {
// Original source.
mapping . source = previousSource + segment [ 1 ] ;
previousSource += segment [ 1 ] ;
// Original line.
mapping . originalLine = previousOriginalLine + segment [ 2 ] ;
previousOriginalLine = mapping . originalLine ;
// Lines are stored 0-based
mapping . originalLine += 1 ;
// Original column.
mapping . originalColumn = previousOriginalColumn + segment [ 3 ] ;
previousOriginalColumn = mapping . originalColumn ;
if ( segment . length > 4 ) {
// Original name.
mapping . name = previousName + segment [ 4 ] ;
previousName += segment [ 4 ] ;
}
}
generatedMappings . push ( mapping ) ;
if ( typeof mapping . originalLine === 'number' ) {
originalMappings . push ( mapping ) ;
}
}
}
quickSort ( generatedMappings , util . compareByGeneratedPositionsDeflated ) ;
this . _ _generatedMappings = generatedMappings ;
quickSort ( originalMappings , util . compareByOriginalPositions ) ;
this . _ _originalMappings = originalMappings ;
} ;
/ * *
* Find the mapping that best matches the hypothetical "needle" mapping that
* we are searching for in the given "haystack" of mappings .
* /
BasicSourceMapConsumer . prototype . _findMapping =
function SourceMapConsumer _findMapping ( aNeedle , aMappings , aLineName ,
aColumnName , aComparator , aBias ) {
// To return the position we are searching for, we must first find the
// mapping for the given position and then return the opposite position it
// points to. Because the mappings are sorted, we can use binary search to
// find the best mapping.
if ( aNeedle [ aLineName ] <= 0 ) {
throw new TypeError ( 'Line must be greater than or equal to 1, got '
+ aNeedle [ aLineName ] ) ;
}
if ( aNeedle [ aColumnName ] < 0 ) {
throw new TypeError ( 'Column must be greater than or equal to 0, got '
+ aNeedle [ aColumnName ] ) ;
}
return binarySearch . search ( aNeedle , aMappings , aComparator , aBias ) ;
} ;
/ * *
* Compute the last column for each generated mapping . The last column is
* inclusive .
* /
BasicSourceMapConsumer . prototype . computeColumnSpans =
function SourceMapConsumer _computeColumnSpans ( ) {
for ( var index = 0 ; index < this . _generatedMappings . length ; ++ index ) {
var mapping = this . _generatedMappings [ index ] ;
// Mappings do not contain a field for the last generated columnt. We
// can come up with an optimistic estimate, however, by assuming that
// mappings are contiguous (i.e. given two consecutive mappings, the
// first mapping ends where the second one starts).
if ( index + 1 < this . _generatedMappings . length ) {
var nextMapping = this . _generatedMappings [ index + 1 ] ;
if ( mapping . generatedLine === nextMapping . generatedLine ) {
mapping . lastGeneratedColumn = nextMapping . generatedColumn - 1 ;
continue ;
}
}
// The last mapping for each line spans the entire line.
mapping . lastGeneratedColumn = Infinity ;
}
} ;
/ * *
* Returns the original source , line , and column information for the generated
* source ' s line and column positions provided . The only argument is an object
* with the following properties :
*
* - line : The line number in the generated source . The line number
* is 1 - based .
* - column : The column number in the generated source . The column
* number is 0 - based .
* - bias : Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
* 'SourceMapConsumer.LEAST_UPPER_BOUND' . Specifies whether to return the
* closest element that is smaller than or greater than the one we are
* searching for , respectively , if the exact element cannot be found .
* Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND' .
*
* and an object is returned with the following properties :
*
* - source : The original source file , or null .
* - line : The line number in the original source , or null . The
* line number is 1 - based .
* - column : The column number in the original source , or null . The
* column number is 0 - based .
* - name : The original identifier , or null .
* /
BasicSourceMapConsumer . prototype . originalPositionFor =
function SourceMapConsumer _originalPositionFor ( aArgs ) {
var needle = {
generatedLine : util . getArg ( aArgs , 'line' ) ,
generatedColumn : util . getArg ( aArgs , 'column' )
} ;
var index = this . _findMapping (
needle ,
this . _generatedMappings ,
"generatedLine" ,
"generatedColumn" ,
util . compareByGeneratedPositionsDeflated ,
util . getArg ( aArgs , 'bias' , SourceMapConsumer . GREATEST _LOWER _BOUND )
) ;
if ( index >= 0 ) {
var mapping = this . _generatedMappings [ index ] ;
if ( mapping . generatedLine === needle . generatedLine ) {
var source = util . getArg ( mapping , 'source' , null ) ;
if ( source !== null ) {
source = this . _sources . at ( source ) ;
source = util . computeSourceURL ( this . sourceRoot , source , this . _sourceMapURL ) ;
}
var name = util . getArg ( mapping , 'name' , null ) ;
if ( name !== null ) {
name = this . _names . at ( name ) ;
}
return {
source : source ,
line : util . getArg ( mapping , 'originalLine' , null ) ,
column : util . getArg ( mapping , 'originalColumn' , null ) ,
name : name
} ;
}
}
return {
source : null ,
line : null ,
column : null ,
name : null
} ;
} ;
/ * *
* Return true if we have the source content for every source in the source
* map , false otherwise .
* /
BasicSourceMapConsumer . prototype . hasContentsOfAllSources =
function BasicSourceMapConsumer _hasContentsOfAllSources ( ) {
if ( ! this . sourcesContent ) {
return false ;
}
return this . sourcesContent . length >= this . _sources . size ( ) &&
! this . sourcesContent . some ( function ( sc ) { return sc == null ; } ) ;
} ;
/ * *
* Returns the original source content . The only argument is the url of the
* original source file . Returns null if no original source content is
* available .
* /
BasicSourceMapConsumer . prototype . sourceContentFor =
function SourceMapConsumer _sourceContentFor ( aSource , nullOnMissing ) {
if ( ! this . sourcesContent ) {
return null ;
}
var index = this . _findSourceIndex ( aSource ) ;
if ( index >= 0 ) {
return this . sourcesContent [ index ] ;
}
var relativeSource = aSource ;
if ( this . sourceRoot != null ) {
relativeSource = util . relative ( this . sourceRoot , relativeSource ) ;
}
var url ;
if ( this . sourceRoot != null
&& ( url = util . urlParse ( this . sourceRoot ) ) ) {
// XXX: file:// URIs and absolute paths lead to unexpected behavior for
// many users. We can help them out when they expect file:// URIs to
// behave like it would if they were running a local HTTP server. See
// https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
var fileUriAbsPath = relativeSource . replace ( /^file:\/\// , "" ) ;
if ( url . scheme == "file"
&& this . _sources . has ( fileUriAbsPath ) ) {
return this . sourcesContent [ this . _sources . indexOf ( fileUriAbsPath ) ]
}
if ( ( ! url . path || url . path == "/" )
&& this . _sources . has ( "/" + relativeSource ) ) {
return this . sourcesContent [ this . _sources . indexOf ( "/" + relativeSource ) ] ;
}
}
// This function is used recursively from
// IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
// don't want to throw if we can't find the source - we just want to
// return null, so we provide a flag to exit gracefully.
if ( nullOnMissing ) {
return null ;
}
else {
throw new Error ( '"' + relativeSource + '" is not in the SourceMap.' ) ;
}
} ;
/ * *
* Returns the generated line and column information for the original source ,
* line , and column positions provided . The only argument is an object with
* the following properties :
*
* - source : The filename of the original source .
* - line : The line number in the original source . The line number
* is 1 - based .
* - column : The column number in the original source . The column
* number is 0 - based .
* - bias : Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
* 'SourceMapConsumer.LEAST_UPPER_BOUND' . Specifies whether to return the
* closest element that is smaller than or greater than the one we are
* searching for , respectively , if the exact element cannot be found .
* Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND' .
*
* and an object is returned with the following properties :
*
* - line : The line number in the generated source , or null . The
* line number is 1 - based .
* - column : The column number in the generated source , or null .
* The column number is 0 - based .
* /
BasicSourceMapConsumer . prototype . generatedPositionFor =
function SourceMapConsumer _generatedPositionFor ( aArgs ) {
var source = util . getArg ( aArgs , 'source' ) ;
source = this . _findSourceIndex ( source ) ;
if ( source < 0 ) {
return {
line : null ,
column : null ,
lastColumn : null
} ;
}
var needle = {
source : source ,
originalLine : util . getArg ( aArgs , 'line' ) ,
originalColumn : util . getArg ( aArgs , 'column' )
} ;
var index = this . _findMapping (
needle ,
this . _originalMappings ,
"originalLine" ,
"originalColumn" ,
util . compareByOriginalPositions ,
util . getArg ( aArgs , 'bias' , SourceMapConsumer . GREATEST _LOWER _BOUND )
) ;
if ( index >= 0 ) {
var mapping = this . _originalMappings [ index ] ;
if ( mapping . source === needle . source ) {
return {
line : util . getArg ( mapping , 'generatedLine' , null ) ,
column : util . getArg ( mapping , 'generatedColumn' , null ) ,
lastColumn : util . getArg ( mapping , 'lastGeneratedColumn' , null )
} ;
}
}
return {
line : null ,
column : null ,
lastColumn : null
} ;
} ;
_ _webpack _unused _export _ _ = BasicSourceMapConsumer ;
/ * *
* An IndexedSourceMapConsumer instance represents a parsed source map which
* we can query for information . It differs from BasicSourceMapConsumer in
* that it takes "indexed" source maps ( i . e . ones with a "sections" field ) as
* input .
*
* The first parameter is a raw source map ( either as a JSON string , or already
* parsed to an object ) . According to the spec for indexed source maps , they
* have the following attributes :
*
* - version : Which version of the source map spec this map is following .
* - file : Optional . The generated file this source map is associated with .
* - sections : A list of section definitions .
*
* Each value under the "sections" field has two fields :
* - offset : The offset into the original specified at which this section
* begins to apply , defined as an object with a "line" and "column"
* field .
* - map : A source map definition . This source map could also be indexed ,
* but doesn ' t have to be .
*
* Instead of the "map" field , it ' s also possible to have a "url" field
* specifying a URL to retrieve a source map from , but that ' s currently
* unsupported .
*
* Here ' s an example source map , taken from the source map spec [ 0 ] , but
* modified to omit a section which uses the "url" field .
*
* {
* version : 3 ,
* file : "app.js" ,
* sections : [ {
* offset : { line : 100 , column : 10 } ,
* map : {
* version : 3 ,
* file : "section.js" ,
* sources : [ "foo.js" , "bar.js" ] ,
* names : [ "src" , "maps" , "are" , "fun" ] ,
* mappings : "AAAA,E;;ABCDE;"
* }
* } ] ,
* }
*
* The second parameter , if given , is a string whose value is the URL
* at which the source map was found . This URL is used to compute the
* sources array .
*
* [ 0 ] : https : //docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
* /
function IndexedSourceMapConsumer ( aSourceMap , aSourceMapURL ) {
var sourceMap = aSourceMap ;
if ( typeof aSourceMap === 'string' ) {
sourceMap = util . parseSourceMapInput ( aSourceMap ) ;
}
var version = util . getArg ( sourceMap , 'version' ) ;
var sections = util . getArg ( sourceMap , 'sections' ) ;
if ( version != this . _version ) {
throw new Error ( 'Unsupported version: ' + version ) ;
}
this . _sources = new ArraySet ( ) ;
this . _names = new ArraySet ( ) ;
var lastOffset = {
line : - 1 ,
column : 0
} ;
this . _sections = sections . map ( function ( s ) {
if ( s . url ) {
// The url field will require support for asynchronicity.
// See https://github.com/mozilla/source-map/issues/16
throw new Error ( 'Support for url field in sections not implemented.' ) ;
}
var offset = util . getArg ( s , 'offset' ) ;
var offsetLine = util . getArg ( offset , 'line' ) ;
var offsetColumn = util . getArg ( offset , 'column' ) ;
if ( offsetLine < lastOffset . line ||
( offsetLine === lastOffset . line && offsetColumn < lastOffset . column ) ) {
throw new Error ( 'Section offsets must be ordered and non-overlapping.' ) ;
}
lastOffset = offset ;
return {
generatedOffset : {
// The offset fields are 0-based, but we use 1-based indices when
// encoding/decoding from VLQ.
generatedLine : offsetLine + 1 ,
generatedColumn : offsetColumn + 1
} ,
consumer : new SourceMapConsumer ( util . getArg ( s , 'map' ) , aSourceMapURL )
}
} ) ;
}
IndexedSourceMapConsumer . prototype = Object . create ( SourceMapConsumer . prototype ) ;
IndexedSourceMapConsumer . prototype . constructor = SourceMapConsumer ;
/ * *
* The version of the source mapping spec that we are consuming .
* /
IndexedSourceMapConsumer . prototype . _version = 3 ;
/ * *
* The list of original sources .
* /
Object . defineProperty ( IndexedSourceMapConsumer . prototype , 'sources' , {
get : function ( ) {
var sources = [ ] ;
for ( var i = 0 ; i < this . _sections . length ; i ++ ) {
for ( var j = 0 ; j < this . _sections [ i ] . consumer . sources . length ; j ++ ) {
sources . push ( this . _sections [ i ] . consumer . sources [ j ] ) ;
}
}
return sources ;
}
} ) ;
/ * *
* Returns the original source , line , and column information for the generated
* source ' s line and column positions provided . The only argument is an object
* with the following properties :
*
* - line : The line number in the generated source . The line number
* is 1 - based .
* - column : The column number in the generated source . The column
* number is 0 - based .
*
* and an object is returned with the following properties :
*
* - source : The original source file , or null .
* - line : The line number in the original source , or null . The
* line number is 1 - based .
* - column : The column number in the original source , or null . The
* column number is 0 - based .
* - name : The original identifier , or null .
* /
IndexedSourceMapConsumer . prototype . originalPositionFor =
function IndexedSourceMapConsumer _originalPositionFor ( aArgs ) {
var needle = {
generatedLine : util . getArg ( aArgs , 'line' ) ,
generatedColumn : util . getArg ( aArgs , 'column' )
} ;
// Find the section containing the generated position we're trying to map
// to an original position.
var sectionIndex = binarySearch . search ( needle , this . _sections ,
function ( needle , section ) {
var cmp = needle . generatedLine - section . generatedOffset . generatedLine ;
if ( cmp ) {
return cmp ;
}
return ( needle . generatedColumn -
section . generatedOffset . generatedColumn ) ;
} ) ;
var section = this . _sections [ sectionIndex ] ;
if ( ! section ) {
return {
source : null ,
line : null ,
column : null ,
name : null
} ;
}
return section . consumer . originalPositionFor ( {
line : needle . generatedLine -
( section . generatedOffset . generatedLine - 1 ) ,
column : needle . generatedColumn -
( section . generatedOffset . generatedLine === needle . generatedLine
? section . generatedOffset . generatedColumn - 1
: 0 ) ,
bias : aArgs . bias
} ) ;
} ;
/ * *
* Return true if we have the source content for every source in the source
* map , false otherwise .
* /
IndexedSourceMapConsumer . prototype . hasContentsOfAllSources =
function IndexedSourceMapConsumer _hasContentsOfAllSources ( ) {
return this . _sections . every ( function ( s ) {
return s . consumer . hasContentsOfAllSources ( ) ;
} ) ;
} ;
/ * *
* Returns the original source content . The only argument is the url of the
* original source file . Returns null if no original source content is
* available .
* /
IndexedSourceMapConsumer . prototype . sourceContentFor =
function IndexedSourceMapConsumer _sourceContentFor ( aSource , nullOnMissing ) {
for ( var i = 0 ; i < this . _sections . length ; i ++ ) {
var section = this . _sections [ i ] ;
var content = section . consumer . sourceContentFor ( aSource , true ) ;
if ( content ) {
return content ;
}
}
if ( nullOnMissing ) {
return null ;
}
else {
throw new Error ( '"' + aSource + '" is not in the SourceMap.' ) ;
}
} ;
/ * *
* Returns the generated line and column information for the original source ,
* line , and column positions provided . The only argument is an object with
* the following properties :
*
* - source : The filename of the original source .
* - line : The line number in the original source . The line number
* is 1 - based .
* - column : The column number in the original source . The column
* number is 0 - based .
*
* and an object is returned with the following properties :
*
* - line : The line number in the generated source , or null . The
* line number is 1 - based .
* - column : The column number in the generated source , or null .
* The column number is 0 - based .
* /
IndexedSourceMapConsumer . prototype . generatedPositionFor =
function IndexedSourceMapConsumer _generatedPositionFor ( aArgs ) {
for ( var i = 0 ; i < this . _sections . length ; i ++ ) {
var section = this . _sections [ i ] ;
// Only consider this section if the requested source is in the list of
// sources of the consumer.
if ( section . consumer . _findSourceIndex ( util . getArg ( aArgs , 'source' ) ) === - 1 ) {
continue ;
}
var generatedPosition = section . consumer . generatedPositionFor ( aArgs ) ;
if ( generatedPosition ) {
var ret = {
line : generatedPosition . line +
( section . generatedOffset . generatedLine - 1 ) ,
column : generatedPosition . column +
( section . generatedOffset . generatedLine === generatedPosition . line
? section . generatedOffset . generatedColumn - 1
: 0 )
} ;
return ret ;
}
}
return {
line : null ,
column : null
} ;
} ;
/ * *
* Parse the mappings in a string in to a data structure which we can easily
* query ( the ordered arrays in the ` this.__generatedMappings ` and
* ` this.__originalMappings ` properties ) .
* /
IndexedSourceMapConsumer . prototype . _parseMappings =
function IndexedSourceMapConsumer _parseMappings ( aStr , aSourceRoot ) {
this . _ _generatedMappings = [ ] ;
this . _ _originalMappings = [ ] ;
for ( var i = 0 ; i < this . _sections . length ; i ++ ) {
var section = this . _sections [ i ] ;
var sectionMappings = section . consumer . _generatedMappings ;
for ( var j = 0 ; j < sectionMappings . length ; j ++ ) {
var mapping = sectionMappings [ j ] ;
var source = section . consumer . _sources . at ( mapping . source ) ;
source = util . computeSourceURL ( section . consumer . sourceRoot , source , this . _sourceMapURL ) ;
this . _sources . add ( source ) ;
source = this . _sources . indexOf ( source ) ;
var name = null ;
if ( mapping . name ) {
name = section . consumer . _names . at ( mapping . name ) ;
this . _names . add ( name ) ;
name = this . _names . indexOf ( name ) ;
}
// The mappings coming from the consumer for the section have
// generated positions relative to the start of the section, so we
// need to offset them to be relative to the start of the concatenated
// generated file.
var adjustedMapping = {
source : source ,
generatedLine : mapping . generatedLine +
( section . generatedOffset . generatedLine - 1 ) ,
generatedColumn : mapping . generatedColumn +
( section . generatedOffset . generatedLine === mapping . generatedLine
? section . generatedOffset . generatedColumn - 1
: 0 ) ,
originalLine : mapping . originalLine ,
originalColumn : mapping . originalColumn ,
name : name
} ;
this . _ _generatedMappings . push ( adjustedMapping ) ;
if ( typeof adjustedMapping . originalLine === 'number' ) {
this . _ _originalMappings . push ( adjustedMapping ) ;
}
}
}
quickSort ( this . _ _generatedMappings , util . compareByGeneratedPositionsDeflated ) ;
quickSort ( this . _ _originalMappings , util . compareByOriginalPositions ) ;
} ;
_ _webpack _unused _export _ _ = IndexedSourceMapConsumer ;
/***/ } ) ,
/***/ 9425 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
/* -*- Mode: js; js-indent-level: 2; -*- */
/ *
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE or :
* http : //opensource.org/licenses/BSD-3-Clause
* /
var base64VLQ = _ _nccwpck _require _ _ ( 5807 ) ;
var util = _ _nccwpck _require _ _ ( 2344 ) ;
var ArraySet = ( _ _nccwpck _require _ _ ( 6375 ) /* .ArraySet */ . I ) ;
var MappingList = ( _ _nccwpck _require _ _ ( 6817 ) /* .MappingList */ . H ) ;
/ * *
* An instance of the SourceMapGenerator represents a source map which is
* being built incrementally . You may pass an object with the following
* properties :
*
* - file : The filename of the generated source .
* - sourceRoot : A root for all relative URLs in this source map .
* /
function SourceMapGenerator ( aArgs ) {
if ( ! aArgs ) {
aArgs = { } ;
}
this . _file = util . getArg ( aArgs , 'file' , null ) ;
this . _sourceRoot = util . getArg ( aArgs , 'sourceRoot' , null ) ;
this . _skipValidation = util . getArg ( aArgs , 'skipValidation' , false ) ;
this . _sources = new ArraySet ( ) ;
this . _names = new ArraySet ( ) ;
this . _mappings = new MappingList ( ) ;
this . _sourcesContents = null ;
}
SourceMapGenerator . prototype . _version = 3 ;
/ * *
* Creates a new SourceMapGenerator based on a SourceMapConsumer
*
* @ param aSourceMapConsumer The SourceMap .
* /
SourceMapGenerator . fromSourceMap =
function SourceMapGenerator _fromSourceMap ( aSourceMapConsumer ) {
var sourceRoot = aSourceMapConsumer . sourceRoot ;
var generator = new SourceMapGenerator ( {
file : aSourceMapConsumer . file ,
sourceRoot : sourceRoot
} ) ;
aSourceMapConsumer . eachMapping ( function ( mapping ) {
var newMapping = {
generated : {
line : mapping . generatedLine ,
column : mapping . generatedColumn
}
} ;
if ( mapping . source != null ) {
newMapping . source = mapping . source ;
if ( sourceRoot != null ) {
newMapping . source = util . relative ( sourceRoot , newMapping . source ) ;
}
newMapping . original = {
line : mapping . originalLine ,
column : mapping . originalColumn
} ;
if ( mapping . name != null ) {
newMapping . name = mapping . name ;
}
}
generator . addMapping ( newMapping ) ;
} ) ;
aSourceMapConsumer . sources . forEach ( function ( sourceFile ) {
var sourceRelative = sourceFile ;
if ( sourceRoot !== null ) {
sourceRelative = util . relative ( sourceRoot , sourceFile ) ;
}
if ( ! generator . _sources . has ( sourceRelative ) ) {
generator . _sources . add ( sourceRelative ) ;
}
var content = aSourceMapConsumer . sourceContentFor ( sourceFile ) ;
if ( content != null ) {
generator . setSourceContent ( sourceFile , content ) ;
}
} ) ;
return generator ;
} ;
/ * *
* Add a single mapping from original source line and column to the generated
* source ' s line and column for this source map being created . The mapping
* object should have the following properties :
*
* - generated : An object with the generated line and column positions .
* - original : An object with the original line and column positions .
* - source : The original source file ( relative to the sourceRoot ) .
* - name : An optional original token name for this mapping .
* /
SourceMapGenerator . prototype . addMapping =
function SourceMapGenerator _addMapping ( aArgs ) {
var generated = util . getArg ( aArgs , 'generated' ) ;
var original = util . getArg ( aArgs , 'original' , null ) ;
var source = util . getArg ( aArgs , 'source' , null ) ;
var name = util . getArg ( aArgs , 'name' , null ) ;
if ( ! this . _skipValidation ) {
this . _validateMapping ( generated , original , source , name ) ;
}
if ( source != null ) {
source = String ( source ) ;
if ( ! this . _sources . has ( source ) ) {
this . _sources . add ( source ) ;
}
}
if ( name != null ) {
name = String ( name ) ;
if ( ! this . _names . has ( name ) ) {
this . _names . add ( name ) ;
}
}
this . _mappings . add ( {
generatedLine : generated . line ,
generatedColumn : generated . column ,
originalLine : original != null && original . line ,
originalColumn : original != null && original . column ,
source : source ,
name : name
} ) ;
} ;
/ * *
* Set the source content for a source file .
* /
SourceMapGenerator . prototype . setSourceContent =
function SourceMapGenerator _setSourceContent ( aSourceFile , aSourceContent ) {
var source = aSourceFile ;
if ( this . _sourceRoot != null ) {
source = util . relative ( this . _sourceRoot , source ) ;
}
if ( aSourceContent != null ) {
// Add the source content to the _sourcesContents map.
// Create a new _sourcesContents map if the property is null.
if ( ! this . _sourcesContents ) {
this . _sourcesContents = Object . create ( null ) ;
}
this . _sourcesContents [ util . toSetString ( source ) ] = aSourceContent ;
} else if ( this . _sourcesContents ) {
// Remove the source file from the _sourcesContents map.
// If the _sourcesContents map is empty, set the property to null.
delete this . _sourcesContents [ util . toSetString ( source ) ] ;
if ( Object . keys ( this . _sourcesContents ) . length === 0 ) {
this . _sourcesContents = null ;
}
}
} ;
/ * *
* Applies the mappings of a sub - source - map for a specific source file to the
* source map being generated . Each mapping to the supplied source file is
* rewritten using the supplied source map . Note : The resolution for the
* resulting mappings is the minimium of this map and the supplied map .
*
* @ param aSourceMapConsumer The source map to be applied .
* @ param aSourceFile Optional . The filename of the source file .
* If omitted , SourceMapConsumer ' s file property will be used .
* @ param aSourceMapPath Optional . The dirname of the path to the source map
* to be applied . If relative , it is relative to the SourceMapConsumer .
* This parameter is needed when the two source maps aren ' t in the same
* directory , and the source map to be applied contains relative source
* paths . If so , those relative source paths need to be rewritten
* relative to the SourceMapGenerator .
* /
SourceMapGenerator . prototype . applySourceMap =
function SourceMapGenerator _applySourceMap ( aSourceMapConsumer , aSourceFile , aSourceMapPath ) {
var sourceFile = aSourceFile ;
// If aSourceFile is omitted, we will use the file property of the SourceMap
if ( aSourceFile == null ) {
if ( aSourceMapConsumer . file == null ) {
throw new Error (
'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
'or the source map\'s "file" property. Both were omitted.'
) ;
}
sourceFile = aSourceMapConsumer . file ;
}
var sourceRoot = this . _sourceRoot ;
// Make "sourceFile" relative if an absolute Url is passed.
if ( sourceRoot != null ) {
sourceFile = util . relative ( sourceRoot , sourceFile ) ;
}
// Applying the SourceMap can add and remove items from the sources and
// the names array.
var newSources = new ArraySet ( ) ;
var newNames = new ArraySet ( ) ;
// Find mappings for the "sourceFile"
this . _mappings . unsortedForEach ( function ( mapping ) {
if ( mapping . source === sourceFile && mapping . originalLine != null ) {
// Check if it can be mapped by the source map, then update the mapping.
var original = aSourceMapConsumer . originalPositionFor ( {
line : mapping . originalLine ,
column : mapping . originalColumn
} ) ;
if ( original . source != null ) {
// Copy mapping
mapping . source = original . source ;
if ( aSourceMapPath != null ) {
mapping . source = util . join ( aSourceMapPath , mapping . source )
}
if ( sourceRoot != null ) {
mapping . source = util . relative ( sourceRoot , mapping . source ) ;
}
mapping . originalLine = original . line ;
mapping . originalColumn = original . column ;
if ( original . name != null ) {
mapping . name = original . name ;
}
}
}
var source = mapping . source ;
if ( source != null && ! newSources . has ( source ) ) {
newSources . add ( source ) ;
}
var name = mapping . name ;
if ( name != null && ! newNames . has ( name ) ) {
newNames . add ( name ) ;
}
} , this ) ;
this . _sources = newSources ;
this . _names = newNames ;
// Copy sourcesContents of applied map.
aSourceMapConsumer . sources . forEach ( function ( sourceFile ) {
var content = aSourceMapConsumer . sourceContentFor ( sourceFile ) ;
if ( content != null ) {
if ( aSourceMapPath != null ) {
sourceFile = util . join ( aSourceMapPath , sourceFile ) ;
}
if ( sourceRoot != null ) {
sourceFile = util . relative ( sourceRoot , sourceFile ) ;
}
this . setSourceContent ( sourceFile , content ) ;
}
} , this ) ;
} ;
/ * *
* A mapping can have one of the three levels of data :
*
* 1. Just the generated position .
* 2. The Generated position , original position , and original source .
* 3. Generated and original position , original source , as well as a name
* token .
*
* To maintain consistency , we validate that any new mapping being added falls
* in to one of these categories .
* /
SourceMapGenerator . prototype . _validateMapping =
function SourceMapGenerator _validateMapping ( aGenerated , aOriginal , aSource ,
aName ) {
// When aOriginal is truthy but has empty values for .line and .column,
// it is most likely a programmer error. In this case we throw a very
// specific error message to try to guide them the right way.
// For example: https://github.com/Polymer/polymer-bundler/pull/519
if ( aOriginal && typeof aOriginal . line !== 'number' && typeof aOriginal . column !== 'number' ) {
throw new Error (
'original.line and original.column are not numbers -- you probably meant to omit ' +
'the original mapping entirely and only map the generated position. If so, pass ' +
'null for the original mapping instead of an object with empty or null values.'
) ;
}
if ( aGenerated && 'line' in aGenerated && 'column' in aGenerated
&& aGenerated . line > 0 && aGenerated . column >= 0
&& ! aOriginal && ! aSource && ! aName ) {
// Case 1.
return ;
}
else if ( aGenerated && 'line' in aGenerated && 'column' in aGenerated
&& aOriginal && 'line' in aOriginal && 'column' in aOriginal
&& aGenerated . line > 0 && aGenerated . column >= 0
&& aOriginal . line > 0 && aOriginal . column >= 0
&& aSource ) {
// Cases 2 and 3.
return ;
}
else {
throw new Error ( 'Invalid mapping: ' + JSON . stringify ( {
generated : aGenerated ,
source : aSource ,
original : aOriginal ,
name : aName
} ) ) ;
}
} ;
/ * *
* Serialize the accumulated mappings in to the stream of base 64 VLQs
* specified by the source map format .
* /
SourceMapGenerator . prototype . _serializeMappings =
function SourceMapGenerator _serializeMappings ( ) {
var previousGeneratedColumn = 0 ;
var previousGeneratedLine = 1 ;
var previousOriginalColumn = 0 ;
var previousOriginalLine = 0 ;
var previousName = 0 ;
var previousSource = 0 ;
var result = '' ;
var next ;
var mapping ;
var nameIdx ;
var sourceIdx ;
var mappings = this . _mappings . toArray ( ) ;
for ( var i = 0 , len = mappings . length ; i < len ; i ++ ) {
mapping = mappings [ i ] ;
next = ''
if ( mapping . generatedLine !== previousGeneratedLine ) {
previousGeneratedColumn = 0 ;
while ( mapping . generatedLine !== previousGeneratedLine ) {
next += ';' ;
previousGeneratedLine ++ ;
}
}
else {
if ( i > 0 ) {
if ( ! util . compareByGeneratedPositionsInflated ( mapping , mappings [ i - 1 ] ) ) {
continue ;
}
next += ',' ;
}
}
next += base64VLQ . encode ( mapping . generatedColumn
- previousGeneratedColumn ) ;
previousGeneratedColumn = mapping . generatedColumn ;
if ( mapping . source != null ) {
sourceIdx = this . _sources . indexOf ( mapping . source ) ;
next += base64VLQ . encode ( sourceIdx - previousSource ) ;
previousSource = sourceIdx ;
// lines are stored 0-based in SourceMap spec version 3
next += base64VLQ . encode ( mapping . originalLine - 1
- previousOriginalLine ) ;
previousOriginalLine = mapping . originalLine - 1 ;
next += base64VLQ . encode ( mapping . originalColumn
- previousOriginalColumn ) ;
previousOriginalColumn = mapping . originalColumn ;
if ( mapping . name != null ) {
nameIdx = this . _names . indexOf ( mapping . name ) ;
next += base64VLQ . encode ( nameIdx - previousName ) ;
previousName = nameIdx ;
}
}
result += next ;
}
return result ;
} ;
SourceMapGenerator . prototype . _generateSourcesContent =
function SourceMapGenerator _generateSourcesContent ( aSources , aSourceRoot ) {
return aSources . map ( function ( source ) {
if ( ! this . _sourcesContents ) {
return null ;
}
if ( aSourceRoot != null ) {
source = util . relative ( aSourceRoot , source ) ;
}
var key = util . toSetString ( source ) ;
return Object . prototype . hasOwnProperty . call ( this . _sourcesContents , key )
? this . _sourcesContents [ key ]
: null ;
} , this ) ;
} ;
/ * *
* Externalize the source map .
* /
SourceMapGenerator . prototype . toJSON =
function SourceMapGenerator _toJSON ( ) {
var map = {
version : this . _version ,
sources : this . _sources . toArray ( ) ,
names : this . _names . toArray ( ) ,
mappings : this . _serializeMappings ( )
} ;
if ( this . _file != null ) {
map . file = this . _file ;
}
if ( this . _sourceRoot != null ) {
map . sourceRoot = this . _sourceRoot ;
}
if ( this . _sourcesContents ) {
map . sourcesContent = this . _generateSourcesContent ( map . sources , map . sourceRoot ) ;
}
return map ;
} ;
/ * *
* Render the source map being generated to a string .
* /
SourceMapGenerator . prototype . toString =
function SourceMapGenerator _toString ( ) {
return JSON . stringify ( this . toJSON ( ) ) ;
} ;
exports . SourceMapGenerator = SourceMapGenerator ;
/***/ } ) ,
/***/ 2616 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
/* -*- Mode: js; js-indent-level: 2; -*- */
/ *
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE or :
* http : //opensource.org/licenses/BSD-3-Clause
* /
var SourceMapGenerator = ( _ _nccwpck _require _ _ ( 9425 ) . SourceMapGenerator ) ;
var util = _ _nccwpck _require _ _ ( 2344 ) ;
// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
// operating systems these days (capturing the result).
var REGEX _NEWLINE = /(\r?\n)/ ;
// Newline character code for charCodeAt() comparisons
var NEWLINE _CODE = 10 ;
// Private symbol for identifying `SourceNode`s when multiple versions of
// the source-map library are loaded. This MUST NOT CHANGE across
// versions!
var isSourceNode = "$$$isSourceNode$$$" ;
/ * *
* SourceNodes provide a way to abstract over interpolating / concatenating
* snippets of generated JavaScript source code while maintaining the line and
* column information associated with the original source code .
*
* @ param aLine The original line number .
* @ param aColumn The original column number .
* @ param aSource The original source ' s filename .
* @ param aChunks Optional . An array of strings which are snippets of
* generated JS , or other SourceNodes .
* @ param aName The original identifier .
* /
function SourceNode ( aLine , aColumn , aSource , aChunks , aName ) {
this . children = [ ] ;
this . sourceContents = { } ;
this . line = aLine == null ? null : aLine ;
this . column = aColumn == null ? null : aColumn ;
this . source = aSource == null ? null : aSource ;
this . name = aName == null ? null : aName ;
this [ isSourceNode ] = true ;
if ( aChunks != null ) this . add ( aChunks ) ;
}
/ * *
* Creates a SourceNode from generated code and a SourceMapConsumer .
*
* @ param aGeneratedCode The generated code
* @ param aSourceMapConsumer The SourceMap for the generated code
* @ param aRelativePath Optional . The path that relative sources in the
* SourceMapConsumer should be relative to .
* /
SourceNode . fromStringWithSourceMap =
function SourceNode _fromStringWithSourceMap ( aGeneratedCode , aSourceMapConsumer , aRelativePath ) {
// The SourceNode we want to fill with the generated code
// and the SourceMap
var node = new SourceNode ( ) ;
// All even indices of this array are one line of the generated code,
// while all odd indices are the newlines between two adjacent lines
// (since `REGEX_NEWLINE` captures its match).
// Processed fragments are accessed by calling `shiftNextLine`.
var remainingLines = aGeneratedCode . split ( REGEX _NEWLINE ) ;
var remainingLinesIndex = 0 ;
var shiftNextLine = function ( ) {
var lineContents = getNextLine ( ) ;
// The last line of a file might not have a newline.
var newLine = getNextLine ( ) || "" ;
return lineContents + newLine ;
function getNextLine ( ) {
return remainingLinesIndex < remainingLines . length ?
remainingLines [ remainingLinesIndex ++ ] : undefined ;
}
} ;
// We need to remember the position of "remainingLines"
var lastGeneratedLine = 1 , lastGeneratedColumn = 0 ;
// The generate SourceNodes we need a code range.
// To extract it current and last mapping is used.
// Here we store the last mapping.
var lastMapping = null ;
aSourceMapConsumer . eachMapping ( function ( mapping ) {
if ( lastMapping !== null ) {
// We add the code from "lastMapping" to "mapping":
// First check if there is a new line in between.
if ( lastGeneratedLine < mapping . generatedLine ) {
// Associate first line with "lastMapping"
addMappingWithCode ( lastMapping , shiftNextLine ( ) ) ;
lastGeneratedLine ++ ;
lastGeneratedColumn = 0 ;
// The remaining code is added without mapping
} else {
// There is no new line in between.
// Associate the code between "lastGeneratedColumn" and
// "mapping.generatedColumn" with "lastMapping"
var nextLine = remainingLines [ remainingLinesIndex ] || '' ;
var code = nextLine . substr ( 0 , mapping . generatedColumn -
lastGeneratedColumn ) ;
remainingLines [ remainingLinesIndex ] = nextLine . substr ( mapping . generatedColumn -
lastGeneratedColumn ) ;
lastGeneratedColumn = mapping . generatedColumn ;
addMappingWithCode ( lastMapping , code ) ;
// No more remaining code, continue
lastMapping = mapping ;
return ;
}
}
// We add the generated code until the first mapping
// to the SourceNode without any mapping.
// Each line is added as separate string.
while ( lastGeneratedLine < mapping . generatedLine ) {
node . add ( shiftNextLine ( ) ) ;
lastGeneratedLine ++ ;
}
if ( lastGeneratedColumn < mapping . generatedColumn ) {
var nextLine = remainingLines [ remainingLinesIndex ] || '' ;
node . add ( nextLine . substr ( 0 , mapping . generatedColumn ) ) ;
remainingLines [ remainingLinesIndex ] = nextLine . substr ( mapping . generatedColumn ) ;
lastGeneratedColumn = mapping . generatedColumn ;
}
lastMapping = mapping ;
} , this ) ;
// We have processed all mappings.
if ( remainingLinesIndex < remainingLines . length ) {
if ( lastMapping ) {
// Associate the remaining code in the current line with "lastMapping"
addMappingWithCode ( lastMapping , shiftNextLine ( ) ) ;
}
// and add the remaining lines without any mapping
node . add ( remainingLines . splice ( remainingLinesIndex ) . join ( "" ) ) ;
}
// Copy sourcesContent into SourceNode
aSourceMapConsumer . sources . forEach ( function ( sourceFile ) {
var content = aSourceMapConsumer . sourceContentFor ( sourceFile ) ;
if ( content != null ) {
if ( aRelativePath != null ) {
sourceFile = util . join ( aRelativePath , sourceFile ) ;
}
node . setSourceContent ( sourceFile , content ) ;
}
} ) ;
return node ;
function addMappingWithCode ( mapping , code ) {
if ( mapping === null || mapping . source === undefined ) {
node . add ( code ) ;
} else {
var source = aRelativePath
? util . join ( aRelativePath , mapping . source )
: mapping . source ;
node . add ( new SourceNode ( mapping . originalLine ,
mapping . originalColumn ,
source ,
code ,
mapping . name ) ) ;
}
}
} ;
/ * *
* Add a chunk of generated JS to this source node .
*
* @ param aChunk A string snippet of generated JS code , another instance of
* SourceNode , or an array where each member is one of those things .
* /
SourceNode . prototype . add = function SourceNode _add ( aChunk ) {
if ( Array . isArray ( aChunk ) ) {
aChunk . forEach ( function ( chunk ) {
this . add ( chunk ) ;
} , this ) ;
}
else if ( aChunk [ isSourceNode ] || typeof aChunk === "string" ) {
if ( aChunk ) {
this . children . push ( aChunk ) ;
}
}
else {
throw new TypeError (
"Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
) ;
}
return this ;
} ;
/ * *
* Add a chunk of generated JS to the beginning of this source node .
*
* @ param aChunk A string snippet of generated JS code , another instance of
* SourceNode , or an array where each member is one of those things .
* /
SourceNode . prototype . prepend = function SourceNode _prepend ( aChunk ) {
if ( Array . isArray ( aChunk ) ) {
for ( var i = aChunk . length - 1 ; i >= 0 ; i -- ) {
this . prepend ( aChunk [ i ] ) ;
}
}
else if ( aChunk [ isSourceNode ] || typeof aChunk === "string" ) {
this . children . unshift ( aChunk ) ;
}
else {
throw new TypeError (
"Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
) ;
}
return this ;
} ;
/ * *
* Walk over the tree of JS snippets in this node and its children . The
* walking function is called once for each snippet of JS and is passed that
* snippet and the its original associated source ' s line / column location .
*
* @ param aFn The traversal function .
* /
SourceNode . prototype . walk = function SourceNode _walk ( aFn ) {
var chunk ;
for ( var i = 0 , len = this . children . length ; i < len ; i ++ ) {
chunk = this . children [ i ] ;
if ( chunk [ isSourceNode ] ) {
chunk . walk ( aFn ) ;
}
else {
if ( chunk !== '' ) {
aFn ( chunk , { source : this . source ,
line : this . line ,
column : this . column ,
name : this . name } ) ;
}
}
}
} ;
/ * *
* Like ` String.prototype.join ` except for SourceNodes . Inserts ` aStr ` between
* each of ` this.children ` .
*
* @ param aSep The separator .
* /
SourceNode . prototype . join = function SourceNode _join ( aSep ) {
var newChildren ;
var i ;
var len = this . children . length ;
if ( len > 0 ) {
newChildren = [ ] ;
for ( i = 0 ; i < len - 1 ; i ++ ) {
newChildren . push ( this . children [ i ] ) ;
newChildren . push ( aSep ) ;
}
newChildren . push ( this . children [ i ] ) ;
this . children = newChildren ;
}
return this ;
} ;
/ * *
* Call String . prototype . replace on the very right - most source snippet . Useful
* for trimming whitespace from the end of a source node , etc .
*
* @ param aPattern The pattern to replace .
* @ param aReplacement The thing to replace the pattern with .
* /
SourceNode . prototype . replaceRight = function SourceNode _replaceRight ( aPattern , aReplacement ) {
var lastChild = this . children [ this . children . length - 1 ] ;
if ( lastChild [ isSourceNode ] ) {
lastChild . replaceRight ( aPattern , aReplacement ) ;
}
else if ( typeof lastChild === 'string' ) {
this . children [ this . children . length - 1 ] = lastChild . replace ( aPattern , aReplacement ) ;
}
else {
this . children . push ( '' . replace ( aPattern , aReplacement ) ) ;
}
return this ;
} ;
/ * *
* Set the source content for a source file . This will be added to the SourceMapGenerator
* in the sourcesContent field .
*
* @ param aSourceFile The filename of the source file
* @ param aSourceContent The content of the source file
* /
SourceNode . prototype . setSourceContent =
function SourceNode _setSourceContent ( aSourceFile , aSourceContent ) {
this . sourceContents [ util . toSetString ( aSourceFile ) ] = aSourceContent ;
} ;
/ * *
* Walk over the tree of SourceNodes . The walking function is called for each
* source file content and is passed the filename and source content .
*
* @ param aFn The traversal function .
* /
SourceNode . prototype . walkSourceContents =
function SourceNode _walkSourceContents ( aFn ) {
for ( var i = 0 , len = this . children . length ; i < len ; i ++ ) {
if ( this . children [ i ] [ isSourceNode ] ) {
this . children [ i ] . walkSourceContents ( aFn ) ;
}
}
var sources = Object . keys ( this . sourceContents ) ;
for ( var i = 0 , len = sources . length ; i < len ; i ++ ) {
aFn ( util . fromSetString ( sources [ i ] ) , this . sourceContents [ sources [ i ] ] ) ;
}
} ;
/ * *
* Return the string representation of this source node . Walks over the tree
* and concatenates all the various snippets together to one string .
* /
SourceNode . prototype . toString = function SourceNode _toString ( ) {
var str = "" ;
this . walk ( function ( chunk ) {
str += chunk ;
} ) ;
return str ;
} ;
/ * *
* Returns the string representation of this source node along with a source
* map .
* /
SourceNode . prototype . toStringWithSourceMap = function SourceNode _toStringWithSourceMap ( aArgs ) {
var generated = {
code : "" ,
line : 1 ,
column : 0
} ;
var map = new SourceMapGenerator ( aArgs ) ;
var sourceMappingActive = false ;
var lastOriginalSource = null ;
var lastOriginalLine = null ;
var lastOriginalColumn = null ;
var lastOriginalName = null ;
this . walk ( function ( chunk , original ) {
generated . code += chunk ;
if ( original . source !== null
&& original . line !== null
&& original . column !== null ) {
if ( lastOriginalSource !== original . source
|| lastOriginalLine !== original . line
|| lastOriginalColumn !== original . column
|| lastOriginalName !== original . name ) {
map . addMapping ( {
source : original . source ,
original : {
line : original . line ,
column : original . column
} ,
generated : {
line : generated . line ,
column : generated . column
} ,
name : original . name
} ) ;
}
lastOriginalSource = original . source ;
lastOriginalLine = original . line ;
lastOriginalColumn = original . column ;
lastOriginalName = original . name ;
sourceMappingActive = true ;
} else if ( sourceMappingActive ) {
map . addMapping ( {
generated : {
line : generated . line ,
column : generated . column
}
} ) ;
lastOriginalSource = null ;
sourceMappingActive = false ;
}
for ( var idx = 0 , length = chunk . length ; idx < length ; idx ++ ) {
if ( chunk . charCodeAt ( idx ) === NEWLINE _CODE ) {
generated . line ++ ;
generated . column = 0 ;
// Mappings end at eol
if ( idx + 1 === length ) {
lastOriginalSource = null ;
sourceMappingActive = false ;
} else if ( sourceMappingActive ) {
map . addMapping ( {
source : original . source ,
original : {
line : original . line ,
column : original . column
} ,
generated : {
line : generated . line ,
column : generated . column
} ,
name : original . name
} ) ;
}
} else {
generated . column ++ ;
}
}
} ) ;
this . walkSourceContents ( function ( sourceFile , sourceContent ) {
map . setSourceContent ( sourceFile , sourceContent ) ;
} ) ;
return { code : generated . code , map : map } ;
} ;
exports . SourceNode = SourceNode ;
/***/ } ) ,
/***/ 2344 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
/* -*- Mode: js; js-indent-level: 2; -*- */
/ *
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE or :
* http : //opensource.org/licenses/BSD-3-Clause
* /
/ * *
* This is a helper function for getting values from parameter / options
* objects .
*
* @ param args The object we are extracting values from
* @ param name The name of the property we are getting .
* @ param defaultValue An optional value to return if the property is missing
* from the object . If this is not specified and the property is missing , an
* error will be thrown .
* /
function getArg ( aArgs , aName , aDefaultValue ) {
if ( aName in aArgs ) {
return aArgs [ aName ] ;
} else if ( arguments . length === 3 ) {
return aDefaultValue ;
} else {
throw new Error ( '"' + aName + '" is a required argument.' ) ;
}
}
exports . getArg = getArg ;
var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/ ;
var dataUrlRegexp = /^data:.+\,.+$/ ;
function urlParse ( aUrl ) {
var match = aUrl . match ( urlRegexp ) ;
if ( ! match ) {
return null ;
}
return {
scheme : match [ 1 ] ,
auth : match [ 2 ] ,
host : match [ 3 ] ,
port : match [ 4 ] ,
path : match [ 5 ]
} ;
}
exports . urlParse = urlParse ;
function urlGenerate ( aParsedUrl ) {
var url = '' ;
if ( aParsedUrl . scheme ) {
url += aParsedUrl . scheme + ':' ;
}
url += '//' ;
if ( aParsedUrl . auth ) {
url += aParsedUrl . auth + '@' ;
}
if ( aParsedUrl . host ) {
url += aParsedUrl . host ;
}
if ( aParsedUrl . port ) {
url += ":" + aParsedUrl . port
}
if ( aParsedUrl . path ) {
url += aParsedUrl . path ;
}
return url ;
}
exports . urlGenerate = urlGenerate ;
/ * *
* Normalizes a path , or the path portion of a URL :
*
* - Replaces consecutive slashes with one slash .
* - Removes unnecessary '.' parts .
* - Removes unnecessary '<dir>/..' parts .
*
* Based on code in the Node . js 'path' core module .
*
* @ param aPath The path or url to normalize .
* /
function normalize ( aPath ) {
var path = aPath ;
var url = urlParse ( aPath ) ;
if ( url ) {
if ( ! url . path ) {
return aPath ;
}
path = url . path ;
}
var isAbsolute = exports . isAbsolute ( path ) ;
var parts = path . split ( /\/+/ ) ;
for ( var part , up = 0 , i = parts . length - 1 ; i >= 0 ; i -- ) {
part = parts [ i ] ;
if ( part === '.' ) {
parts . splice ( i , 1 ) ;
} else if ( part === '..' ) {
up ++ ;
} else if ( up > 0 ) {
if ( part === '' ) {
// The first part is blank if the path is absolute. Trying to go
// above the root is a no-op. Therefore we can remove all '..' parts
// directly after the root.
parts . splice ( i + 1 , up ) ;
up = 0 ;
} else {
parts . splice ( i , 2 ) ;
up -- ;
}
}
}
path = parts . join ( '/' ) ;
if ( path === '' ) {
path = isAbsolute ? '/' : '.' ;
}
if ( url ) {
url . path = path ;
return urlGenerate ( url ) ;
}
return path ;
}
exports . normalize = normalize ;
/ * *
* Joins two paths / URLs .
*
* @ param aRoot The root path or URL .
* @ param aPath The path or URL to be joined with the root .
*
* - If aPath is a URL or a data URI , aPath is returned , unless aPath is a
* scheme - relative URL : Then the scheme of aRoot , if any , is prepended
* first .
* - Otherwise aPath is a path . If aRoot is a URL , then its path portion
* is updated with the result and aRoot is returned . Otherwise the result
* is returned .
* - If aPath is absolute , the result is aPath .
* - Otherwise the two paths are joined with a slash .
* - Joining for example 'http://' and 'www.example.com' is also supported .
* /
function join ( aRoot , aPath ) {
if ( aRoot === "" ) {
aRoot = "." ;
}
if ( aPath === "" ) {
aPath = "." ;
}
var aPathUrl = urlParse ( aPath ) ;
var aRootUrl = urlParse ( aRoot ) ;
if ( aRootUrl ) {
aRoot = aRootUrl . path || '/' ;
}
// `join(foo, '//www.example.org')`
if ( aPathUrl && ! aPathUrl . scheme ) {
if ( aRootUrl ) {
aPathUrl . scheme = aRootUrl . scheme ;
}
return urlGenerate ( aPathUrl ) ;
}
if ( aPathUrl || aPath . match ( dataUrlRegexp ) ) {
return aPath ;
}
// `join('http://', 'www.example.com')`
if ( aRootUrl && ! aRootUrl . host && ! aRootUrl . path ) {
aRootUrl . host = aPath ;
return urlGenerate ( aRootUrl ) ;
}
var joined = aPath . charAt ( 0 ) === '/'
? aPath
: normalize ( aRoot . replace ( /\/+$/ , '' ) + '/' + aPath ) ;
if ( aRootUrl ) {
aRootUrl . path = joined ;
return urlGenerate ( aRootUrl ) ;
}
return joined ;
}
exports . join = join ;
exports . isAbsolute = function ( aPath ) {
return aPath . charAt ( 0 ) === '/' || urlRegexp . test ( aPath ) ;
} ;
/ * *
* Make a path relative to a URL or another path .
*
* @ param aRoot The root path or URL .
* @ param aPath The path or URL to be made relative to aRoot .
* /
function relative ( aRoot , aPath ) {
if ( aRoot === "" ) {
aRoot = "." ;
}
aRoot = aRoot . replace ( /\/$/ , '' ) ;
// It is possible for the path to be above the root. In this case, simply
// checking whether the root is a prefix of the path won't work. Instead, we
// need to remove components from the root one by one, until either we find
// a prefix that fits, or we run out of components to remove.
var level = 0 ;
while ( aPath . indexOf ( aRoot + '/' ) !== 0 ) {
var index = aRoot . lastIndexOf ( "/" ) ;
if ( index < 0 ) {
return aPath ;
}
// If the only part of the root that is left is the scheme (i.e. http://,
// file:///, etc.), one or more slashes (/), or simply nothing at all, we
// have exhausted all components, so the path is not relative to the root.
aRoot = aRoot . slice ( 0 , index ) ;
if ( aRoot . match ( /^([^\/]+:\/)?\/*$/ ) ) {
return aPath ;
}
++ level ;
}
// Make sure we add a "../" for each component we removed from the root.
return Array ( level + 1 ) . join ( "../" ) + aPath . substr ( aRoot . length + 1 ) ;
}
exports . relative = relative ;
var supportsNullProto = ( function ( ) {
var obj = Object . create ( null ) ;
return ! ( '__proto__' in obj ) ;
} ( ) ) ;
function identity ( s ) {
return s ;
}
/ * *
* Because behavior goes wacky when you set ` __proto__ ` on objects , we
* have to prefix all the strings in our set with an arbitrary character .
*
* See https : //github.com/mozilla/source-map/pull/31 and
* https : //github.com/mozilla/source-map/issues/30
*
* @ param String aStr
* /
function toSetString ( aStr ) {
if ( isProtoString ( aStr ) ) {
return '$' + aStr ;
}
return aStr ;
}
exports . toSetString = supportsNullProto ? identity : toSetString ;
function fromSetString ( aStr ) {
if ( isProtoString ( aStr ) ) {
return aStr . slice ( 1 ) ;
}
return aStr ;
}
exports . fromSetString = supportsNullProto ? identity : fromSetString ;
function isProtoString ( s ) {
if ( ! s ) {
return false ;
}
var length = s . length ;
if ( length < 9 /* "__proto__".length */ ) {
return false ;
}
if ( s . charCodeAt ( length - 1 ) !== 95 /* '_' */ ||
s . charCodeAt ( length - 2 ) !== 95 /* '_' */ ||
s . charCodeAt ( length - 3 ) !== 111 /* 'o' */ ||
s . charCodeAt ( length - 4 ) !== 116 /* 't' */ ||
s . charCodeAt ( length - 5 ) !== 111 /* 'o' */ ||
s . charCodeAt ( length - 6 ) !== 114 /* 'r' */ ||
s . charCodeAt ( length - 7 ) !== 112 /* 'p' */ ||
s . charCodeAt ( length - 8 ) !== 95 /* '_' */ ||
s . charCodeAt ( length - 9 ) !== 95 /* '_' */ ) {
return false ;
}
for ( var i = length - 10 ; i >= 0 ; i -- ) {
if ( s . charCodeAt ( i ) !== 36 /* '$' */ ) {
return false ;
}
}
return true ;
}
/ * *
* Comparator between two mappings where the original positions are compared .
*
* Optionally pass in ` true ` as ` onlyCompareGenerated ` to consider two
* mappings with the same original source / line / column , but different generated
* line and column the same . Useful when searching for a mapping with a
* stubbed out mapping .
* /
function compareByOriginalPositions ( mappingA , mappingB , onlyCompareOriginal ) {
var cmp = strcmp ( mappingA . source , mappingB . source ) ;
if ( cmp !== 0 ) {
return cmp ;
}
cmp = mappingA . originalLine - mappingB . originalLine ;
if ( cmp !== 0 ) {
return cmp ;
}
cmp = mappingA . originalColumn - mappingB . originalColumn ;
if ( cmp !== 0 || onlyCompareOriginal ) {
return cmp ;
}
cmp = mappingA . generatedColumn - mappingB . generatedColumn ;
if ( cmp !== 0 ) {
return cmp ;
}
cmp = mappingA . generatedLine - mappingB . generatedLine ;
if ( cmp !== 0 ) {
return cmp ;
}
return strcmp ( mappingA . name , mappingB . name ) ;
}
exports . compareByOriginalPositions = compareByOriginalPositions ;
/ * *
* Comparator between two mappings with deflated source and name indices where
* the generated positions are compared .
*
* Optionally pass in ` true ` as ` onlyCompareGenerated ` to consider two
* mappings with the same generated line and column , but different
* source / name / original line and column the same . Useful when searching for a
* mapping with a stubbed out mapping .
* /
function compareByGeneratedPositionsDeflated ( mappingA , mappingB , onlyCompareGenerated ) {
var cmp = mappingA . generatedLine - mappingB . generatedLine ;
if ( cmp !== 0 ) {
return cmp ;
}
cmp = mappingA . generatedColumn - mappingB . generatedColumn ;
if ( cmp !== 0 || onlyCompareGenerated ) {
return cmp ;
}
cmp = strcmp ( mappingA . source , mappingB . source ) ;
if ( cmp !== 0 ) {
return cmp ;
}
cmp = mappingA . originalLine - mappingB . originalLine ;
if ( cmp !== 0 ) {
return cmp ;
}
cmp = mappingA . originalColumn - mappingB . originalColumn ;
if ( cmp !== 0 ) {
return cmp ;
}
return strcmp ( mappingA . name , mappingB . name ) ;
}
exports . compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated ;
function strcmp ( aStr1 , aStr2 ) {
if ( aStr1 === aStr2 ) {
return 0 ;
}
if ( aStr1 === null ) {
return 1 ; // aStr2 !== null
}
if ( aStr2 === null ) {
return - 1 ; // aStr1 !== null
}
if ( aStr1 > aStr2 ) {
return 1 ;
}
return - 1 ;
}
/ * *
* Comparator between two mappings with inflated source and name strings where
* the generated positions are compared .
* /
function compareByGeneratedPositionsInflated ( mappingA , mappingB ) {
var cmp = mappingA . generatedLine - mappingB . generatedLine ;
if ( cmp !== 0 ) {
return cmp ;
}
cmp = mappingA . generatedColumn - mappingB . generatedColumn ;
if ( cmp !== 0 ) {
return cmp ;
}
cmp = strcmp ( mappingA . source , mappingB . source ) ;
if ( cmp !== 0 ) {
return cmp ;
}
cmp = mappingA . originalLine - mappingB . originalLine ;
if ( cmp !== 0 ) {
return cmp ;
}
cmp = mappingA . originalColumn - mappingB . originalColumn ;
if ( cmp !== 0 ) {
return cmp ;
}
return strcmp ( mappingA . name , mappingB . name ) ;
}
exports . compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated ;
/ * *
* Strip any JSON XSSI avoidance prefix from the string ( as documented
* in the source maps specification ) , and then parse the string as
* JSON .
* /
function parseSourceMapInput ( str ) {
return JSON . parse ( str . replace ( /^\)]}'[^\n]*\n/ , '' ) ) ;
}
exports . parseSourceMapInput = parseSourceMapInput ;
/ * *
* Compute the URL of a source given the the source root , the source ' s
* URL , and the source map ' s URL .
* /
function computeSourceURL ( sourceRoot , sourceURL , sourceMapURL ) {
sourceURL = sourceURL || '' ;
if ( sourceRoot ) {
// This follows what Chrome does.
if ( sourceRoot [ sourceRoot . length - 1 ] !== '/' && sourceURL [ 0 ] !== '/' ) {
sourceRoot += '/' ;
}
// The spec says:
// Line 4: An optional source root, useful for relocating source
// files on a server or removing repeated values in the
// “sources” entry. This value is prepended to the individual
// entries in the “source” field.
sourceURL = sourceRoot + sourceURL ;
}
// Historically, SourceMapConsumer did not take the sourceMapURL as
// a parameter. This mode is still somewhat supported, which is why
// this code block is conditional. However, it's preferable to pass
// the source map URL to SourceMapConsumer, so that this function
// can implement the source URL resolution algorithm as outlined in
// the spec. This block is basically the equivalent of:
// new URL(sourceURL, sourceMapURL).toString()
// ... except it avoids using URL, which wasn't available in the
// older releases of node still supported by this library.
//
// The spec says:
// If the sources are not absolute URLs after prepending of the
// “sourceRoot”, the sources are resolved relative to the
// SourceMap (like resolving script src in a html document).
if ( sourceMapURL ) {
var parsed = urlParse ( sourceMapURL ) ;
if ( ! parsed ) {
throw new Error ( "sourceMapURL could not be parsed" ) ;
}
if ( parsed . path ) {
// Strip the last path component, but keep the "/".
var index = parsed . path . lastIndexOf ( '/' ) ;
if ( index >= 0 ) {
parsed . path = parsed . path . substring ( 0 , index + 1 ) ;
}
}
sourceURL = join ( urlGenerate ( parsed ) , sourceURL ) ;
}
return normalize ( sourceURL ) ;
}
exports . computeSourceURL = computeSourceURL ;
/***/ } ) ,
/***/ 6594 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
/ *
* Copyright 2009 - 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license . See LICENSE . txt or :
* http : //opensource.org/licenses/BSD-3-Clause
* /
exports . SourceMapGenerator = _ _nccwpck _require _ _ ( 9425 ) . SourceMapGenerator ;
exports . SourceMapConsumer = _ _nccwpck _require _ _ ( 5155 ) . SourceMapConsumer ;
exports . SourceNode = _ _nccwpck _require _ _ ( 2616 ) . SourceNode ;
/***/ } ) ,
/***/ 4294 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
module . exports = _ _nccwpck _require _ _ ( 4219 ) ;
/***/ } ) ,
/***/ 4219 :
/***/ ( ( _ _unused _webpack _module , exports , _ _nccwpck _require _ _ ) => {
"use strict" ;
var net = _ _nccwpck _require _ _ ( 1808 ) ;
var tls = _ _nccwpck _require _ _ ( 4404 ) ;
var http = _ _nccwpck _require _ _ ( 3685 ) ;
var https = _ _nccwpck _require _ _ ( 5687 ) ;
var events = _ _nccwpck _require _ _ ( 2361 ) ;
var assert = _ _nccwpck _require _ _ ( 9491 ) ;
var util = _ _nccwpck _require _ _ ( 3837 ) ;
exports . httpOverHttp = httpOverHttp ;
exports . httpsOverHttp = httpsOverHttp ;
exports . httpOverHttps = httpOverHttps ;
exports . httpsOverHttps = httpsOverHttps ;
function httpOverHttp ( options ) {
var agent = new TunnelingAgent ( options ) ;
agent . request = http . request ;
return agent ;
}
function httpsOverHttp ( options ) {
var agent = new TunnelingAgent ( options ) ;
agent . request = http . request ;
agent . createSocket = createSecureSocket ;
agent . defaultPort = 443 ;
return agent ;
}
function httpOverHttps ( options ) {
var agent = new TunnelingAgent ( options ) ;
agent . request = https . request ;
return agent ;
}
function httpsOverHttps ( options ) {
var agent = new TunnelingAgent ( options ) ;
agent . request = https . request ;
agent . createSocket = createSecureSocket ;
agent . defaultPort = 443 ;
return agent ;
}
function TunnelingAgent ( options ) {
var self = this ;
self . options = options || { } ;
self . proxyOptions = self . options . proxy || { } ;
self . maxSockets = self . options . maxSockets || http . Agent . defaultMaxSockets ;
self . requests = [ ] ;
self . sockets = [ ] ;
self . on ( 'free' , function onFree ( socket , host , port , localAddress ) {
var options = toOptions ( host , port , localAddress ) ;
for ( var i = 0 , len = self . requests . length ; i < len ; ++ i ) {
var pending = self . requests [ i ] ;
if ( pending . host === options . host && pending . port === options . port ) {
// Detect the request to connect same origin server,
// reuse the connection.
self . requests . splice ( i , 1 ) ;
pending . request . onSocket ( socket ) ;
return ;
}
}
socket . destroy ( ) ;
self . removeSocket ( socket ) ;
} ) ;
}
util . inherits ( TunnelingAgent , events . EventEmitter ) ;
TunnelingAgent . prototype . addRequest = function addRequest ( req , host , port , localAddress ) {
var self = this ;
var options = mergeOptions ( { request : req } , self . options , toOptions ( host , port , localAddress ) ) ;
if ( self . sockets . length >= this . maxSockets ) {
// We are over limit so we'll add it to the queue.
self . requests . push ( options ) ;
return ;
}
// If we are under maxSockets create a new one.
self . createSocket ( options , function ( socket ) {
socket . on ( 'free' , onFree ) ;
socket . on ( 'close' , onCloseOrRemove ) ;
socket . on ( 'agentRemove' , onCloseOrRemove ) ;
req . onSocket ( socket ) ;
function onFree ( ) {
self . emit ( 'free' , socket , options ) ;
}
function onCloseOrRemove ( err ) {
self . removeSocket ( socket ) ;
socket . removeListener ( 'free' , onFree ) ;
socket . removeListener ( 'close' , onCloseOrRemove ) ;
socket . removeListener ( 'agentRemove' , onCloseOrRemove ) ;
}
} ) ;
} ;
TunnelingAgent . prototype . createSocket = function createSocket ( options , cb ) {
var self = this ;
var placeholder = { } ;
self . sockets . push ( placeholder ) ;
var connectOptions = mergeOptions ( { } , self . proxyOptions , {
method : 'CONNECT' ,
path : options . host + ':' + options . port ,
agent : false ,
headers : {
host : options . host + ':' + options . port
}
} ) ;
if ( options . localAddress ) {
connectOptions . localAddress = options . localAddress ;
}
if ( connectOptions . proxyAuth ) {
connectOptions . headers = connectOptions . headers || { } ;
connectOptions . headers [ 'Proxy-Authorization' ] = 'Basic ' +
new Buffer ( connectOptions . proxyAuth ) . toString ( 'base64' ) ;
}
debug ( 'making CONNECT request' ) ;
var connectReq = self . request ( connectOptions ) ;
connectReq . useChunkedEncodingByDefault = false ; // for v0.6
connectReq . once ( 'response' , onResponse ) ; // for v0.6
connectReq . once ( 'upgrade' , onUpgrade ) ; // for v0.6
connectReq . once ( 'connect' , onConnect ) ; // for v0.7 or later
connectReq . once ( 'error' , onError ) ;
connectReq . end ( ) ;
function onResponse ( res ) {
// Very hacky. This is necessary to avoid http-parser leaks.
res . upgrade = true ;
}
function onUpgrade ( res , socket , head ) {
// Hacky.
process . nextTick ( function ( ) {
onConnect ( res , socket , head ) ;
} ) ;
}
function onConnect ( res , socket , head ) {
connectReq . removeAllListeners ( ) ;
socket . removeAllListeners ( ) ;
if ( res . statusCode !== 200 ) {
debug ( 'tunneling socket could not be established, statusCode=%d' ,
res . statusCode ) ;
socket . destroy ( ) ;
var error = new Error ( 'tunneling socket could not be established, ' +
'statusCode=' + res . statusCode ) ;
error . code = 'ECONNRESET' ;
options . request . emit ( 'error' , error ) ;
self . removeSocket ( placeholder ) ;
return ;
}
if ( head . length > 0 ) {
debug ( 'got illegal response body from proxy' ) ;
socket . destroy ( ) ;
var error = new Error ( 'got illegal response body from proxy' ) ;
error . code = 'ECONNRESET' ;
options . request . emit ( 'error' , error ) ;
self . removeSocket ( placeholder ) ;
return ;
}
debug ( 'tunneling connection has established' ) ;
self . sockets [ self . sockets . indexOf ( placeholder ) ] = socket ;
return cb ( socket ) ;
}
function onError ( cause ) {
connectReq . removeAllListeners ( ) ;
debug ( 'tunneling socket could not be established, cause=%s\n' ,
cause . message , cause . stack ) ;
var error = new Error ( 'tunneling socket could not be established, ' +
'cause=' + cause . message ) ;
error . code = 'ECONNRESET' ;
options . request . emit ( 'error' , error ) ;
self . removeSocket ( placeholder ) ;
}
} ;
TunnelingAgent . prototype . removeSocket = function removeSocket ( socket ) {
var pos = this . sockets . indexOf ( socket )
if ( pos === - 1 ) {
return ;
}
this . sockets . splice ( pos , 1 ) ;
var pending = this . requests . shift ( ) ;
if ( pending ) {
// If we have pending requests and a socket gets closed a new one
// needs to be created to take over in the pool for the one that closed.
this . createSocket ( pending , function ( socket ) {
pending . request . onSocket ( socket ) ;
} ) ;
}
} ;
function createSecureSocket ( options , cb ) {
var self = this ;
TunnelingAgent . prototype . createSocket . call ( self , options , function ( socket ) {
var hostHeader = options . request . getHeader ( 'host' ) ;
var tlsOptions = mergeOptions ( { } , self . options , {
socket : socket ,
servername : hostHeader ? hostHeader . replace ( /:.*$/ , '' ) : options . host
} ) ;
// 0 is dummy port for v0.6
var secureSocket = tls . connect ( 0 , tlsOptions ) ;
self . sockets [ self . sockets . indexOf ( socket ) ] = secureSocket ;
cb ( secureSocket ) ;
} ) ;
}
function toOptions ( host , port , localAddress ) {
if ( typeof host === 'string' ) { // since v0.10
return {
host : host ,
port : port ,
localAddress : localAddress
} ;
}
return host ; // for v0.11 or later
}
function mergeOptions ( target ) {
for ( var i = 1 , len = arguments . length ; i < len ; ++ i ) {
var overrides = arguments [ i ] ;
if ( typeof overrides === 'object' ) {
var keys = Object . keys ( overrides ) ;
for ( var j = 0 , keyLen = keys . length ; j < keyLen ; ++ j ) {
var k = keys [ j ] ;
if ( overrides [ k ] !== undefined ) {
target [ k ] = overrides [ k ] ;
}
}
}
}
return target ;
}
var debug ;
if ( process . env . NODE _DEBUG && /\btunnel\b/ . test ( process . env . NODE _DEBUG ) ) {
debug = function ( ) {
var args = Array . prototype . slice . call ( arguments ) ;
if ( typeof args [ 0 ] === 'string' ) {
args [ 0 ] = 'TUNNEL: ' + args [ 0 ] ;
} else {
args . unshift ( 'TUNNEL:' ) ;
}
console . error . apply ( console , args ) ;
}
} else {
debug = function ( ) { } ;
}
exports . debug = debug ; // for test
/***/ } ) ,
/***/ 5030 :
/***/ ( ( _ _unused _webpack _module , exports ) => {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
function getUserAgent ( ) {
if ( typeof navigator === "object" && "userAgent" in navigator ) {
return navigator . userAgent ;
}
if ( typeof process === "object" && "version" in process ) {
return ` Node.js/ ${ process . version . substr ( 1 ) } ( ${ process . platform } ; ${ process . arch } ) ` ;
}
return "<environment undetectable>" ;
}
exports . getUserAgent = getUserAgent ;
//# sourceMappingURL=index.js.map
/***/ } ) ,
/***/ 2940 :
/***/ ( ( module ) => {
// Returns a wrapper function that returns a wrapped callback
// The wrapper function should do some stuff, and return a
// presumably different callback function.
// This makes sure that own properties are retained, so that
// decorations and such are not lost along the way.
module . exports = wrappy
function wrappy ( fn , cb ) {
if ( fn && cb ) return wrappy ( fn ) ( cb )
if ( typeof fn !== 'function' )
throw new TypeError ( 'need wrapper function' )
Object . keys ( fn ) . forEach ( function ( k ) {
wrapper [ k ] = fn [ k ]
} )
return wrapper
function wrapper ( ) {
var args = new Array ( arguments . length )
for ( var i = 0 ; i < args . length ; i ++ ) {
args [ i ] = arguments [ i ]
}
var ret = fn . apply ( this , args )
var cb = args [ args . length - 1 ]
if ( typeof ret === 'function' && ret !== cb ) {
Object . keys ( cb ) . forEach ( function ( k ) {
ret [ k ] = cb [ k ]
} )
}
return ret
}
}
/***/ } ) ,
/***/ 1709 :
/***/ ( ( module ) => {
module . exports = {
isArray : function ( value ) {
if ( Array . isArray ) {
return Array . isArray ( value ) ;
}
// fallback for older browsers like IE 8
return Object . prototype . toString . call ( value ) === '[object Array]' ;
}
} ;
/***/ } ) ,
/***/ 8821 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
/*jslint node:true */
var xml2js = _ _nccwpck _require _ _ ( 2903 ) ;
var xml2json = _ _nccwpck _require _ _ ( 8919 ) ;
var js2xml = _ _nccwpck _require _ _ ( 4453 ) ;
var json2xml = _ _nccwpck _require _ _ ( 1900 ) ;
module . exports = {
xml2js : xml2js ,
xml2json : xml2json ,
js2xml : js2xml ,
json2xml : json2xml
} ;
/***/ } ) ,
/***/ 4453 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
var helper = _ _nccwpck _require _ _ ( 6717 ) ;
var isArray = ( _ _nccwpck _require _ _ ( 1709 ) . isArray ) ;
var currentElement , currentElementName ;
function validateOptions ( userOptions ) {
var options = helper . copyOptions ( userOptions ) ;
helper . ensureFlagExists ( 'ignoreDeclaration' , options ) ;
helper . ensureFlagExists ( 'ignoreInstruction' , options ) ;
helper . ensureFlagExists ( 'ignoreAttributes' , options ) ;
helper . ensureFlagExists ( 'ignoreText' , options ) ;
helper . ensureFlagExists ( 'ignoreComment' , options ) ;
helper . ensureFlagExists ( 'ignoreCdata' , options ) ;
helper . ensureFlagExists ( 'ignoreDoctype' , options ) ;
helper . ensureFlagExists ( 'compact' , options ) ;
helper . ensureFlagExists ( 'indentText' , options ) ;
helper . ensureFlagExists ( 'indentCdata' , options ) ;
helper . ensureFlagExists ( 'indentAttributes' , options ) ;
helper . ensureFlagExists ( 'indentInstruction' , options ) ;
helper . ensureFlagExists ( 'fullTagEmptyElement' , options ) ;
helper . ensureFlagExists ( 'noQuotesForNativeAttributes' , options ) ;
helper . ensureSpacesExists ( options ) ;
if ( typeof options . spaces === 'number' ) {
options . spaces = Array ( options . spaces + 1 ) . join ( ' ' ) ;
}
helper . ensureKeyExists ( 'declaration' , options ) ;
helper . ensureKeyExists ( 'instruction' , options ) ;
helper . ensureKeyExists ( 'attributes' , options ) ;
helper . ensureKeyExists ( 'text' , options ) ;
helper . ensureKeyExists ( 'comment' , options ) ;
helper . ensureKeyExists ( 'cdata' , options ) ;
helper . ensureKeyExists ( 'doctype' , options ) ;
helper . ensureKeyExists ( 'type' , options ) ;
helper . ensureKeyExists ( 'name' , options ) ;
helper . ensureKeyExists ( 'elements' , options ) ;
helper . checkFnExists ( 'doctype' , options ) ;
helper . checkFnExists ( 'instruction' , options ) ;
helper . checkFnExists ( 'cdata' , options ) ;
helper . checkFnExists ( 'comment' , options ) ;
helper . checkFnExists ( 'text' , options ) ;
helper . checkFnExists ( 'instructionName' , options ) ;
helper . checkFnExists ( 'elementName' , options ) ;
helper . checkFnExists ( 'attributeName' , options ) ;
helper . checkFnExists ( 'attributeValue' , options ) ;
helper . checkFnExists ( 'attributes' , options ) ;
helper . checkFnExists ( 'fullTagEmptyElement' , options ) ;
return options ;
}
function writeIndentation ( options , depth , firstLine ) {
return ( ! firstLine && options . spaces ? '\n' : '' ) + Array ( depth + 1 ) . join ( options . spaces ) ;
}
function writeAttributes ( attributes , options , depth ) {
if ( options . ignoreAttributes ) {
return '' ;
}
if ( 'attributesFn' in options ) {
attributes = options . attributesFn ( attributes , currentElementName , currentElement ) ;
}
var key , attr , attrName , quote , result = [ ] ;
for ( key in attributes ) {
if ( attributes . hasOwnProperty ( key ) && attributes [ key ] !== null && attributes [ key ] !== undefined ) {
quote = options . noQuotesForNativeAttributes && typeof attributes [ key ] !== 'string' ? '' : '"' ;
attr = '' + attributes [ key ] ; // ensure number and boolean are converted to String
attr = attr . replace ( /"/g , '"' ) ;
attrName = 'attributeNameFn' in options ? options . attributeNameFn ( key , attr , currentElementName , currentElement ) : key ;
result . push ( ( options . spaces && options . indentAttributes ? writeIndentation ( options , depth + 1 , false ) : ' ' ) ) ;
result . push ( attrName + '=' + quote + ( 'attributeValueFn' in options ? options . attributeValueFn ( attr , key , currentElementName , currentElement ) : attr ) + quote ) ;
}
}
if ( attributes && Object . keys ( attributes ) . length && options . spaces && options . indentAttributes ) {
result . push ( writeIndentation ( options , depth , false ) ) ;
}
return result . join ( '' ) ;
}
function writeDeclaration ( declaration , options , depth ) {
currentElement = declaration ;
currentElementName = 'xml' ;
return options . ignoreDeclaration ? '' : '<?' + 'xml' + writeAttributes ( declaration [ options . attributesKey ] , options , depth ) + '?>' ;
}
function writeInstruction ( instruction , options , depth ) {
if ( options . ignoreInstruction ) {
return '' ;
}
var key ;
for ( key in instruction ) {
if ( instruction . hasOwnProperty ( key ) ) {
break ;
}
}
var instructionName = 'instructionNameFn' in options ? options . instructionNameFn ( key , instruction [ key ] , currentElementName , currentElement ) : key ;
if ( typeof instruction [ key ] === 'object' ) {
currentElement = instruction ;
currentElementName = instructionName ;
return '<?' + instructionName + writeAttributes ( instruction [ key ] [ options . attributesKey ] , options , depth ) + '?>' ;
} else {
var instructionValue = instruction [ key ] ? instruction [ key ] : '' ;
if ( 'instructionFn' in options ) instructionValue = options . instructionFn ( instructionValue , key , currentElementName , currentElement ) ;
return '<?' + instructionName + ( instructionValue ? ' ' + instructionValue : '' ) + '?>' ;
}
}
function writeComment ( comment , options ) {
return options . ignoreComment ? '' : '<!--' + ( 'commentFn' in options ? options . commentFn ( comment , currentElementName , currentElement ) : comment ) + '-->' ;
}
function writeCdata ( cdata , options ) {
return options . ignoreCdata ? '' : '<![CDATA[' + ( 'cdataFn' in options ? options . cdataFn ( cdata , currentElementName , currentElement ) : cdata . replace ( ']]>' , ']]]]><![CDATA[>' ) ) + ']]>' ;
}
function writeDoctype ( doctype , options ) {
return options . ignoreDoctype ? '' : '<!DOCTYPE ' + ( 'doctypeFn' in options ? options . doctypeFn ( doctype , currentElementName , currentElement ) : doctype ) + '>' ;
}
function writeText ( text , options ) {
if ( options . ignoreText ) return '' ;
text = '' + text ; // ensure Number and Boolean are converted to String
text = text . replace ( /&/g , '&' ) ; // desanitize to avoid double sanitization
text = text . replace ( /&/g , '&' ) . replace ( /</g , '<' ) . replace ( />/g , '>' ) ;
return 'textFn' in options ? options . textFn ( text , currentElementName , currentElement ) : text ;
}
function hasContent ( element , options ) {
var i ;
if ( element . elements && element . elements . length ) {
for ( i = 0 ; i < element . elements . length ; ++ i ) {
switch ( element . elements [ i ] [ options . typeKey ] ) {
case 'text' :
if ( options . indentText ) {
return true ;
}
break ; // skip to next key
case 'cdata' :
if ( options . indentCdata ) {
return true ;
}
break ; // skip to next key
case 'instruction' :
if ( options . indentInstruction ) {
return true ;
}
break ; // skip to next key
case 'doctype' :
case 'comment' :
case 'element' :
return true ;
default :
return true ;
}
}
}
return false ;
}
function writeElement ( element , options , depth ) {
currentElement = element ;
currentElementName = element . name ;
var xml = [ ] , elementName = 'elementNameFn' in options ? options . elementNameFn ( element . name , element ) : element . name ;
xml . push ( '<' + elementName ) ;
if ( element [ options . attributesKey ] ) {
xml . push ( writeAttributes ( element [ options . attributesKey ] , options , depth ) ) ;
}
var withClosingTag = element [ options . elementsKey ] && element [ options . elementsKey ] . length || element [ options . attributesKey ] && element [ options . attributesKey ] [ 'xml:space' ] === 'preserve' ;
if ( ! withClosingTag ) {
if ( 'fullTagEmptyElementFn' in options ) {
withClosingTag = options . fullTagEmptyElementFn ( element . name , element ) ;
} else {
withClosingTag = options . fullTagEmptyElement ;
}
}
if ( withClosingTag ) {
xml . push ( '>' ) ;
if ( element [ options . elementsKey ] && element [ options . elementsKey ] . length ) {
xml . push ( writeElements ( element [ options . elementsKey ] , options , depth + 1 ) ) ;
currentElement = element ;
currentElementName = element . name ;
}
xml . push ( options . spaces && hasContent ( element , options ) ? '\n' + Array ( depth + 1 ) . join ( options . spaces ) : '' ) ;
xml . push ( '</' + elementName + '>' ) ;
} else {
xml . push ( '/>' ) ;
}
return xml . join ( '' ) ;
}
function writeElements ( elements , options , depth , firstLine ) {
return elements . reduce ( function ( xml , element ) {
var indent = writeIndentation ( options , depth , firstLine && ! xml ) ;
switch ( element . type ) {
case 'element' : return xml + indent + writeElement ( element , options , depth ) ;
case 'comment' : return xml + indent + writeComment ( element [ options . commentKey ] , options ) ;
case 'doctype' : return xml + indent + writeDoctype ( element [ options . doctypeKey ] , options ) ;
case 'cdata' : return xml + ( options . indentCdata ? indent : '' ) + writeCdata ( element [ options . cdataKey ] , options ) ;
case 'text' : return xml + ( options . indentText ? indent : '' ) + writeText ( element [ options . textKey ] , options ) ;
case 'instruction' :
var instruction = { } ;
instruction [ element [ options . nameKey ] ] = element [ options . attributesKey ] ? element : element [ options . instructionKey ] ;
return xml + ( options . indentInstruction ? indent : '' ) + writeInstruction ( instruction , options , depth ) ;
}
} , '' ) ;
}
function hasContentCompact ( element , options , anyContent ) {
var key ;
for ( key in element ) {
if ( element . hasOwnProperty ( key ) ) {
switch ( key ) {
case options . parentKey :
case options . attributesKey :
break ; // skip to next key
case options . textKey :
if ( options . indentText || anyContent ) {
return true ;
}
break ; // skip to next key
case options . cdataKey :
if ( options . indentCdata || anyContent ) {
return true ;
}
break ; // skip to next key
case options . instructionKey :
if ( options . indentInstruction || anyContent ) {
return true ;
}
break ; // skip to next key
case options . doctypeKey :
case options . commentKey :
return true ;
default :
return true ;
}
}
}
return false ;
}
function writeElementCompact ( element , name , options , depth , indent ) {
currentElement = element ;
currentElementName = name ;
var elementName = 'elementNameFn' in options ? options . elementNameFn ( name , element ) : name ;
if ( typeof element === 'undefined' || element === null || element === '' ) {
return 'fullTagEmptyElementFn' in options && options . fullTagEmptyElementFn ( name , element ) || options . fullTagEmptyElement ? '<' + elementName + '></' + elementName + '>' : '<' + elementName + '/>' ;
}
var xml = [ ] ;
if ( name ) {
xml . push ( '<' + elementName ) ;
if ( typeof element !== 'object' ) {
xml . push ( '>' + writeText ( element , options ) + '</' + elementName + '>' ) ;
return xml . join ( '' ) ;
}
if ( element [ options . attributesKey ] ) {
xml . push ( writeAttributes ( element [ options . attributesKey ] , options , depth ) ) ;
}
var withClosingTag = hasContentCompact ( element , options , true ) || element [ options . attributesKey ] && element [ options . attributesKey ] [ 'xml:space' ] === 'preserve' ;
if ( ! withClosingTag ) {
if ( 'fullTagEmptyElementFn' in options ) {
withClosingTag = options . fullTagEmptyElementFn ( name , element ) ;
} else {
withClosingTag = options . fullTagEmptyElement ;
}
}
if ( withClosingTag ) {
xml . push ( '>' ) ;
} else {
xml . push ( '/>' ) ;
return xml . join ( '' ) ;
}
}
xml . push ( writeElementsCompact ( element , options , depth + 1 , false ) ) ;
currentElement = element ;
currentElementName = name ;
if ( name ) {
xml . push ( ( indent ? writeIndentation ( options , depth , false ) : '' ) + '</' + elementName + '>' ) ;
}
return xml . join ( '' ) ;
}
function writeElementsCompact ( element , options , depth , firstLine ) {
var i , key , nodes , xml = [ ] ;
for ( key in element ) {
if ( element . hasOwnProperty ( key ) ) {
nodes = isArray ( element [ key ] ) ? element [ key ] : [ element [ key ] ] ;
for ( i = 0 ; i < nodes . length ; ++ i ) {
switch ( key ) {
case options . declarationKey : xml . push ( writeDeclaration ( nodes [ i ] , options , depth ) ) ; break ;
case options . instructionKey : xml . push ( ( options . indentInstruction ? writeIndentation ( options , depth , firstLine ) : '' ) + writeInstruction ( nodes [ i ] , options , depth ) ) ; break ;
case options . attributesKey : case options . parentKey : break ; // skip
case options . textKey : xml . push ( ( options . indentText ? writeIndentation ( options , depth , firstLine ) : '' ) + writeText ( nodes [ i ] , options ) ) ; break ;
case options . cdataKey : xml . push ( ( options . indentCdata ? writeIndentation ( options , depth , firstLine ) : '' ) + writeCdata ( nodes [ i ] , options ) ) ; break ;
case options . doctypeKey : xml . push ( writeIndentation ( options , depth , firstLine ) + writeDoctype ( nodes [ i ] , options ) ) ; break ;
case options . commentKey : xml . push ( writeIndentation ( options , depth , firstLine ) + writeComment ( nodes [ i ] , options ) ) ; break ;
default : xml . push ( writeIndentation ( options , depth , firstLine ) + writeElementCompact ( nodes [ i ] , key , options , depth , hasContentCompact ( nodes [ i ] , options ) ) ) ;
}
firstLine = firstLine && ! xml . length ;
}
}
}
return xml . join ( '' ) ;
}
module . exports = function ( js , options ) {
options = validateOptions ( options ) ;
var xml = [ ] ;
currentElement = js ;
currentElementName = '_root_' ;
if ( options . compact ) {
xml . push ( writeElementsCompact ( js , options , 0 , true ) ) ;
} else {
if ( js [ options . declarationKey ] ) {
xml . push ( writeDeclaration ( js [ options . declarationKey ] , options , 0 ) ) ;
}
if ( js [ options . elementsKey ] && js [ options . elementsKey ] . length ) {
xml . push ( writeElements ( js [ options . elementsKey ] , options , 0 , ! xml . length ) ) ;
}
}
return xml . join ( '' ) ;
} ;
/***/ } ) ,
/***/ 1900 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
var js2xml = _ _nccwpck _require _ _ ( 4453 ) ;
module . exports = function ( json , options ) {
if ( json instanceof Buffer ) {
json = json . toString ( ) ;
}
var js = null ;
if ( typeof ( json ) === 'string' ) {
try {
js = JSON . parse ( json ) ;
} catch ( e ) {
throw new Error ( 'The JSON structure is invalid' ) ;
}
} else {
js = json ;
}
return js2xml ( js , options ) ;
} ;
/***/ } ) ,
/***/ 6717 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
var isArray = ( _ _nccwpck _require _ _ ( 1709 ) . isArray ) ;
module . exports = {
copyOptions : function ( options ) {
var key , copy = { } ;
for ( key in options ) {
if ( options . hasOwnProperty ( key ) ) {
copy [ key ] = options [ key ] ;
}
}
return copy ;
} ,
ensureFlagExists : function ( item , options ) {
if ( ! ( item in options ) || typeof options [ item ] !== 'boolean' ) {
options [ item ] = false ;
}
} ,
ensureSpacesExists : function ( options ) {
if ( ! ( 'spaces' in options ) || ( typeof options . spaces !== 'number' && typeof options . spaces !== 'string' ) ) {
options . spaces = 0 ;
}
} ,
ensureAlwaysArrayExists : function ( options ) {
if ( ! ( 'alwaysArray' in options ) || ( typeof options . alwaysArray !== 'boolean' && ! isArray ( options . alwaysArray ) ) ) {
options . alwaysArray = false ;
}
} ,
ensureKeyExists : function ( key , options ) {
if ( ! ( key + 'Key' in options ) || typeof options [ key + 'Key' ] !== 'string' ) {
options [ key + 'Key' ] = options . compact ? '_' + key : key ;
}
} ,
checkFnExists : function ( key , options ) {
return key + 'Fn' in options ;
}
} ;
/***/ } ) ,
/***/ 2903 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
var sax = _ _nccwpck _require _ _ ( 2043 ) ;
var expat /*= require('node-expat');*/ = { on : function ( ) { } , parse : function ( ) { } } ;
var helper = _ _nccwpck _require _ _ ( 6717 ) ;
var isArray = ( _ _nccwpck _require _ _ ( 1709 ) . isArray ) ;
var options ;
var pureJsParser = true ;
var currentElement ;
function validateOptions ( userOptions ) {
options = helper . copyOptions ( userOptions ) ;
helper . ensureFlagExists ( 'ignoreDeclaration' , options ) ;
helper . ensureFlagExists ( 'ignoreInstruction' , options ) ;
helper . ensureFlagExists ( 'ignoreAttributes' , options ) ;
helper . ensureFlagExists ( 'ignoreText' , options ) ;
helper . ensureFlagExists ( 'ignoreComment' , options ) ;
helper . ensureFlagExists ( 'ignoreCdata' , options ) ;
helper . ensureFlagExists ( 'ignoreDoctype' , options ) ;
helper . ensureFlagExists ( 'compact' , options ) ;
helper . ensureFlagExists ( 'alwaysChildren' , options ) ;
helper . ensureFlagExists ( 'addParent' , options ) ;
helper . ensureFlagExists ( 'trim' , options ) ;
helper . ensureFlagExists ( 'nativeType' , options ) ;
helper . ensureFlagExists ( 'nativeTypeAttributes' , options ) ;
helper . ensureFlagExists ( 'sanitize' , options ) ;
helper . ensureFlagExists ( 'instructionHasAttributes' , options ) ;
helper . ensureFlagExists ( 'captureSpacesBetweenElements' , options ) ;
helper . ensureAlwaysArrayExists ( options ) ;
helper . ensureKeyExists ( 'declaration' , options ) ;
helper . ensureKeyExists ( 'instruction' , options ) ;
helper . ensureKeyExists ( 'attributes' , options ) ;
helper . ensureKeyExists ( 'text' , options ) ;
helper . ensureKeyExists ( 'comment' , options ) ;
helper . ensureKeyExists ( 'cdata' , options ) ;
helper . ensureKeyExists ( 'doctype' , options ) ;
helper . ensureKeyExists ( 'type' , options ) ;
helper . ensureKeyExists ( 'name' , options ) ;
helper . ensureKeyExists ( 'elements' , options ) ;
helper . ensureKeyExists ( 'parent' , options ) ;
helper . checkFnExists ( 'doctype' , options ) ;
helper . checkFnExists ( 'instruction' , options ) ;
helper . checkFnExists ( 'cdata' , options ) ;
helper . checkFnExists ( 'comment' , options ) ;
helper . checkFnExists ( 'text' , options ) ;
helper . checkFnExists ( 'instructionName' , options ) ;
helper . checkFnExists ( 'elementName' , options ) ;
helper . checkFnExists ( 'attributeName' , options ) ;
helper . checkFnExists ( 'attributeValue' , options ) ;
helper . checkFnExists ( 'attributes' , options ) ;
return options ;
}
function nativeType ( value ) {
var nValue = Number ( value ) ;
if ( ! isNaN ( nValue ) ) {
return nValue ;
}
var bValue = value . toLowerCase ( ) ;
if ( bValue === 'true' ) {
return true ;
} else if ( bValue === 'false' ) {
return false ;
}
return value ;
}
function addField ( type , value ) {
var key ;
if ( options . compact ) {
if (
! currentElement [ options [ type + 'Key' ] ] &&
( isArray ( options . alwaysArray ) ? options . alwaysArray . indexOf ( options [ type + 'Key' ] ) !== - 1 : options . alwaysArray )
) {
currentElement [ options [ type + 'Key' ] ] = [ ] ;
}
if ( currentElement [ options [ type + 'Key' ] ] && ! isArray ( currentElement [ options [ type + 'Key' ] ] ) ) {
currentElement [ options [ type + 'Key' ] ] = [ currentElement [ options [ type + 'Key' ] ] ] ;
}
if ( type + 'Fn' in options && typeof value === 'string' ) {
value = options [ type + 'Fn' ] ( value , currentElement ) ;
}
if ( type === 'instruction' && ( 'instructionFn' in options || 'instructionNameFn' in options ) ) {
for ( key in value ) {
if ( value . hasOwnProperty ( key ) ) {
if ( 'instructionFn' in options ) {
value [ key ] = options . instructionFn ( value [ key ] , key , currentElement ) ;
} else {
var temp = value [ key ] ;
delete value [ key ] ;
value [ options . instructionNameFn ( key , temp , currentElement ) ] = temp ;
}
}
}
}
if ( isArray ( currentElement [ options [ type + 'Key' ] ] ) ) {
currentElement [ options [ type + 'Key' ] ] . push ( value ) ;
} else {
currentElement [ options [ type + 'Key' ] ] = value ;
}
} else {
if ( ! currentElement [ options . elementsKey ] ) {
currentElement [ options . elementsKey ] = [ ] ;
}
var element = { } ;
element [ options . typeKey ] = type ;
if ( type === 'instruction' ) {
for ( key in value ) {
if ( value . hasOwnProperty ( key ) ) {
break ;
}
}
element [ options . nameKey ] = 'instructionNameFn' in options ? options . instructionNameFn ( key , value , currentElement ) : key ;
if ( options . instructionHasAttributes ) {
element [ options . attributesKey ] = value [ key ] [ options . attributesKey ] ;
if ( 'instructionFn' in options ) {
element [ options . attributesKey ] = options . instructionFn ( element [ options . attributesKey ] , key , currentElement ) ;
}
} else {
if ( 'instructionFn' in options ) {
value [ key ] = options . instructionFn ( value [ key ] , key , currentElement ) ;
}
element [ options . instructionKey ] = value [ key ] ;
}
} else {
if ( type + 'Fn' in options ) {
value = options [ type + 'Fn' ] ( value , currentElement ) ;
}
element [ options [ type + 'Key' ] ] = value ;
}
if ( options . addParent ) {
element [ options . parentKey ] = currentElement ;
}
currentElement [ options . elementsKey ] . push ( element ) ;
}
}
function manipulateAttributes ( attributes ) {
if ( 'attributesFn' in options && attributes ) {
attributes = options . attributesFn ( attributes , currentElement ) ;
}
if ( ( options . trim || 'attributeValueFn' in options || 'attributeNameFn' in options || options . nativeTypeAttributes ) && attributes ) {
var key ;
for ( key in attributes ) {
if ( attributes . hasOwnProperty ( key ) ) {
if ( options . trim ) attributes [ key ] = attributes [ key ] . trim ( ) ;
if ( options . nativeTypeAttributes ) {
attributes [ key ] = nativeType ( attributes [ key ] ) ;
}
if ( 'attributeValueFn' in options ) attributes [ key ] = options . attributeValueFn ( attributes [ key ] , key , currentElement ) ;
if ( 'attributeNameFn' in options ) {
var temp = attributes [ key ] ;
delete attributes [ key ] ;
attributes [ options . attributeNameFn ( key , attributes [ key ] , currentElement ) ] = temp ;
}
}
}
}
return attributes ;
}
function onInstruction ( instruction ) {
var attributes = { } ;
if ( instruction . body && ( instruction . name . toLowerCase ( ) === 'xml' || options . instructionHasAttributes ) ) {
var attrsRegExp = /([\w:-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|(\w+))\s*/g ;
var match ;
while ( ( match = attrsRegExp . exec ( instruction . body ) ) !== null ) {
attributes [ match [ 1 ] ] = match [ 2 ] || match [ 3 ] || match [ 4 ] ;
}
attributes = manipulateAttributes ( attributes ) ;
}
if ( instruction . name . toLowerCase ( ) === 'xml' ) {
if ( options . ignoreDeclaration ) {
return ;
}
currentElement [ options . declarationKey ] = { } ;
if ( Object . keys ( attributes ) . length ) {
currentElement [ options . declarationKey ] [ options . attributesKey ] = attributes ;
}
if ( options . addParent ) {
currentElement [ options . declarationKey ] [ options . parentKey ] = currentElement ;
}
} else {
if ( options . ignoreInstruction ) {
return ;
}
if ( options . trim ) {
instruction . body = instruction . body . trim ( ) ;
}
var value = { } ;
if ( options . instructionHasAttributes && Object . keys ( attributes ) . length ) {
value [ instruction . name ] = { } ;
value [ instruction . name ] [ options . attributesKey ] = attributes ;
} else {
value [ instruction . name ] = instruction . body ;
}
addField ( 'instruction' , value ) ;
}
}
function onStartElement ( name , attributes ) {
var element ;
if ( typeof name === 'object' ) {
attributes = name . attributes ;
name = name . name ;
}
attributes = manipulateAttributes ( attributes ) ;
if ( 'elementNameFn' in options ) {
name = options . elementNameFn ( name , currentElement ) ;
}
if ( options . compact ) {
element = { } ;
if ( ! options . ignoreAttributes && attributes && Object . keys ( attributes ) . length ) {
element [ options . attributesKey ] = { } ;
var key ;
for ( key in attributes ) {
if ( attributes . hasOwnProperty ( key ) ) {
element [ options . attributesKey ] [ key ] = attributes [ key ] ;
}
}
}
if (
! ( name in currentElement ) &&
( isArray ( options . alwaysArray ) ? options . alwaysArray . indexOf ( name ) !== - 1 : options . alwaysArray )
) {
currentElement [ name ] = [ ] ;
}
if ( currentElement [ name ] && ! isArray ( currentElement [ name ] ) ) {
currentElement [ name ] = [ currentElement [ name ] ] ;
}
if ( isArray ( currentElement [ name ] ) ) {
currentElement [ name ] . push ( element ) ;
} else {
currentElement [ name ] = element ;
}
} else {
if ( ! currentElement [ options . elementsKey ] ) {
currentElement [ options . elementsKey ] = [ ] ;
}
element = { } ;
element [ options . typeKey ] = 'element' ;
element [ options . nameKey ] = name ;
if ( ! options . ignoreAttributes && attributes && Object . keys ( attributes ) . length ) {
element [ options . attributesKey ] = attributes ;
}
if ( options . alwaysChildren ) {
element [ options . elementsKey ] = [ ] ;
}
currentElement [ options . elementsKey ] . push ( element ) ;
}
element [ options . parentKey ] = currentElement ; // will be deleted in onEndElement() if !options.addParent
currentElement = element ;
}
function onText ( text ) {
if ( options . ignoreText ) {
return ;
}
if ( ! text . trim ( ) && ! options . captureSpacesBetweenElements ) {
return ;
}
if ( options . trim ) {
text = text . trim ( ) ;
}
if ( options . nativeType ) {
text = nativeType ( text ) ;
}
if ( options . sanitize ) {
text = text . replace ( /&/g , '&' ) . replace ( /</g , '<' ) . replace ( />/g , '>' ) ;
}
addField ( 'text' , text ) ;
}
function onComment ( comment ) {
if ( options . ignoreComment ) {
return ;
}
if ( options . trim ) {
comment = comment . trim ( ) ;
}
addField ( 'comment' , comment ) ;
}
function onEndElement ( name ) {
var parentElement = currentElement [ options . parentKey ] ;
if ( ! options . addParent ) {
delete currentElement [ options . parentKey ] ;
}
currentElement = parentElement ;
}
function onCdata ( cdata ) {
if ( options . ignoreCdata ) {
return ;
}
if ( options . trim ) {
cdata = cdata . trim ( ) ;
}
addField ( 'cdata' , cdata ) ;
}
function onDoctype ( doctype ) {
if ( options . ignoreDoctype ) {
return ;
}
doctype = doctype . replace ( /^ / , '' ) ;
if ( options . trim ) {
doctype = doctype . trim ( ) ;
}
addField ( 'doctype' , doctype ) ;
}
function onError ( error ) {
error . note = error ; //console.error(error);
}
module . exports = function ( xml , userOptions ) {
var parser = pureJsParser ? sax . parser ( true , { } ) : parser = new expat . Parser ( 'UTF-8' ) ;
var result = { } ;
currentElement = result ;
options = validateOptions ( userOptions ) ;
if ( pureJsParser ) {
parser . opt = { strictEntities : true } ;
parser . onopentag = onStartElement ;
parser . ontext = onText ;
parser . oncomment = onComment ;
parser . onclosetag = onEndElement ;
parser . onerror = onError ;
parser . oncdata = onCdata ;
parser . ondoctype = onDoctype ;
parser . onprocessinginstruction = onInstruction ;
} else {
parser . on ( 'startElement' , onStartElement ) ;
parser . on ( 'text' , onText ) ;
parser . on ( 'comment' , onComment ) ;
parser . on ( 'endElement' , onEndElement ) ;
parser . on ( 'error' , onError ) ;
//parser.on('startCdata', onStartCdata);
//parser.on('endCdata', onEndCdata);
//parser.on('entityDecl', onEntityDecl);
}
if ( pureJsParser ) {
parser . write ( xml ) . close ( ) ;
} else {
if ( ! parser . parse ( xml ) ) {
throw new Error ( 'XML parsing error: ' + parser . getError ( ) ) ;
}
}
if ( result [ options . elementsKey ] ) {
var temp = result [ options . elementsKey ] ;
delete result [ options . elementsKey ] ;
result [ options . elementsKey ] = temp ;
delete result . text ;
}
return result ;
} ;
/***/ } ) ,
/***/ 8919 :
/***/ ( ( module , _ _unused _webpack _exports , _ _nccwpck _require _ _ ) => {
var helper = _ _nccwpck _require _ _ ( 6717 ) ;
var xml2js = _ _nccwpck _require _ _ ( 2903 ) ;
function validateOptions ( userOptions ) {
var options = helper . copyOptions ( userOptions ) ;
helper . ensureSpacesExists ( options ) ;
return options ;
}
module . exports = function ( xml , userOptions ) {
var options , js , json , parentKey ;
options = validateOptions ( userOptions ) ;
js = xml2js ( xml , options ) ;
parentKey = 'compact' in options && options . compact ? '_parent' : 'parent' ;
// parentKey = ptions.compact ? '_parent' : 'parent'; // consider this
if ( 'addParent' in options && options . addParent ) {
json = JSON . stringify ( js , function ( k , v ) { return k === parentKey ? '_' : v ; } , options . spaces ) ;
} else {
json = JSON . stringify ( js , null , options . spaces ) ;
}
return json . replace ( /\u2028/g , '\\u2028' ) . replace ( /\u2029/g , '\\u2029' ) ;
} ;
/***/ } ) ,
/***/ 2877 :
/***/ ( ( module ) => {
module . exports = eval ( "require" ) ( "encoding" ) ;
/***/ } ) ,
/***/ 9491 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "assert" ) ;
/***/ } ) ,
/***/ 2081 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "child_process" ) ;
/***/ } ) ,
/***/ 2361 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "events" ) ;
/***/ } ) ,
/***/ 7147 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "fs" ) ;
/***/ } ) ,
/***/ 3685 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "http" ) ;
/***/ } ) ,
/***/ 5687 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "https" ) ;
/***/ } ) ,
/***/ 1808 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "net" ) ;
/***/ } ) ,
/***/ 2037 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "os" ) ;
/***/ } ) ,
/***/ 1017 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "path" ) ;
/***/ } ) ,
/***/ 5477 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "punycode" ) ;
/***/ } ) ,
/***/ 2781 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "stream" ) ;
/***/ } ) ,
/***/ 1576 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "string_decoder" ) ;
/***/ } ) ,
/***/ 9512 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "timers" ) ;
/***/ } ) ,
/***/ 4404 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "tls" ) ;
/***/ } ) ,
/***/ 7310 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "url" ) ;
/***/ } ) ,
/***/ 3837 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "util" ) ;
/***/ } ) ,
/***/ 9796 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = require ( "zlib" ) ;
/***/ } ) ,
/***/ 1907 :
/***/ ( ( module ) => {
"use strict" ;
module . exports = JSON . parse ( ' [ [ [ 0 , 44 ] , "disallowed_STD3_valid" ] , [ [ 45 , 46 ] , "valid" ] , [ [ 47 , 47 ] , "disallowed_STD3_valid" ] , [ [ 48 , 57 ] , "valid" ] , [ [ 58 , 64 ] , "disallowed_STD3_valid" ] , [ [ 65 , 65 ] , "mapped" , [ 97 ] ] , [ [ 66 , 66 ] , "mapped" , [ 98 ] ] , [ [ 67 , 67 ] , "mapped" , [ 99 ] ] , [ [ 68 , 68 ] , "mapped" , [ 100 ] ] , [ [ 69 , 69 ] , "mapped" , [ 101 ] ] , [ [ 70 , 70 ] , "mapped" , [ 102 ] ] , [ [ 71 , 71 ] , "mapped" , [ 103 ] ] , [ [ 72 , 72 ] , "mapped" , [ 104 ] ] , [ [ 73 , 73 ] , "mapped" , [ 105 ] ] , [ [ 74 , 74 ] , "mapped" , [ 106 ] ] , [ [ 75 , 75 ] , "mapped" , [ 107 ] ] , [ [ 76 , 76 ] , "mapped" , [ 108 ] ] , [ [ 77 , 77 ] , "mapped" , [ 109 ] ] , [ [ 78 , 78 ] , "mapped" , [ 110 ] ] , [ [ 79 , 79 ] , "mapped" , [ 111 ] ] , [ [ 80 , 80 ] , "mapped" , [ 112 ] ] , [ [ 81 , 81 ] , "mapped" , [ 113 ] ] , [ [ 82 , 82 ] , "mapped" , [ 114 ] ] , [ [ 83 , 83 ] , "mapped" , [ 115 ] ] , [ [ 84 , 84 ] , "mapped" , [ 116 ] ] , [ [ 85 , 85 ] , "mapped" , [ 117 ] ] , [ [ 86 , 86 ] , "mapped" , [ 118 ] ] , [ [ 87 , 87 ] , "mapped" , [ 119 ] ] , [ [ 88 , 88 ] , "mapped" , [ 120 ] ] , [ [ 89 , 89 ] , "mapped" , [ 121 ] ] , [ [ 90 , 90 ] , "mapped" , [ 122 ] ] , [ [ 91 , 96 ] , "disallowed_STD3_valid" ] , [ [ 97 , 122 ] , "valid" ] , [ [ 123 , 127 ] , "disallowed_STD3_valid" ] , [ [ 128 , 159 ] , "disallowed" ] , [ [ 160 , 160 ] , "disallowed_STD3_mapped" , [ 32 ] ] , [ [ 161 , 167 ] , "valid" , [ ] , "NV8" ] , [ [ 168 , 168 ] , "disallowed_STD3_mapped" , [ 32 , 776 ] ] , [ [ 169 , 169 ] , "valid" , [ ] , "NV8" ] , [ [ 170 , 170 ] , "mapped" , [ 97 ] ] , [ [ 171 , 172 ] , "valid" , [ ] , "NV8" ] , [ [ 173 , 173 ] , "ignored" ] , [ [ 174 , 174 ] , "valid" , [ ] , "NV8" ] , [ [ 175 , 175 ] , "disallowed_STD3_mapped" , [ 32 , 772 ] ] , [ [ 176 , 177 ] , "valid" , [ ] , "NV8" ] , [ [ 178 , 178 ] , "mapped" , [ 50 ] ] , [ [ 179 , 179 ] , "mapped" , [ 51 ] ] , [ [ 180 , 180 ] , "disallowed_STD3_mapped" , [ 32 , 769 ] ] , [ [ 181 , 181 ] , "mapped" , [ 956 ] ] , [ [ 182 , 182 ] , "valid" , [ ] , "NV8" ] , [ [ 183 , 183 ] , "valid" ] , [ [ 184 , 184 ] , "disallowed_STD3_mapped" , [ 32 , 807 ] ] , [ [ 185 , 185 ] , "mapped" , [ 49 ] ] , [ [ 186 , 186 ] , "mapped" , [ 111 ] ] , [ [ 187 , 187 ] , "valid" , [ ] , "NV8" ] , [ [ 188 , 188 ] , "mapped" , [ 49 , 8260 , 52 ] ] , [ [ 189 , 189 ] , "mapped" , [ 49 , 8260 , 50 ] ] , [ [ 190 , 190 ] , "mapped" , [ 51 , 8260 , 52 ] ] , [ [ 191 , 191 ] , "valid" , [ ] , "NV8" ] , [ [ 192 , 192 ] , "mapped" , [ 224 ] ] , [ [ 193 , 193 ] , "mapped" , [ 225 ] ] , [ [ 194 , 194 ] , "mapped" , [ 226 ] ] , [ [ 195 , 195 ] , "mapped" , [ 227 ] ] , [ [ 196 , 196 ] , "mapped" , [ 228 ] ] , [ [ 197 , 197 ] , "mapped" , [ 229 ] ] , [ [ 198 , 198 ] , "mapped" , [ 230 ] ] , [ [ 199 , 199 ] , "mapped" , [ 231 ] ] , [ [ 200 , 200 ] , "mapped" , [ 232 ] ] , [ [ 201 , 201 ] , "mapped" , [ 233 ] ] , [ [ 202 , 202 ] , "mapped" , [ 234 ] ] , [ [ 203 , 203 ] , "mapped" , [ 235 ] ] , [ [ 204 , 204 ] , "mapped" , [ 236 ] ] , [ [ 205 , 205 ] , "mapped" , [ 237 ] ] , [ [ 206 , 206 ] , "mapped" , [ 238 ] ] , [ [ 207 , 207 ] , "mapped" , [ 239 ] ] , [ [ 208 , 208 ] , "mapped" , [ 240 ] ] , [ [ 209 , 209 ] , "mapped" , [ 241 ] ] , [ [ 210 , 210 ] , "mapped" , [ 242 ] ] , [ [ 211 , 211 ] , "mapped" , [ 243 ] ] , [ [ 212 , 212 ] , "mapped" , [ 244 ] ] , [ [ 213 , 213 ] , "mapped" , [ 245 ] ] , [ [ 214 , 214 ] , "mapped" , [ 246 ] ] , [ [ 215 , 215 ] , "valid" , [ ] , "NV8" ] , [ [ 216 , 216 ] , "mapped" , [ 248 ] ] , [ [ 217 , 217 ] , "mapped" , [ 249 ] ] , [ [ 218 , 218 ] , "mapped" , [ 250 ] ] , [ [ 219 , 219 ] , "mapped" , [ 251 ] ] , [ [ 220 , 220 ] , "mapped" , [ 252 ] ] , [ [ 221 , 221 ] , "mapped" , [ 253 ] ] , [ [ 222 , 222 ] , "mapped" , [ 254 ] ] , [ [ 223 , 223 ] , "deviation" , [ 115 , 115 ] ] , [ [ 224 , 246 ] , "valid" ] , [ [ 247 , 247 ] , "valid" , [ ] , "NV8" ] , [ [ 248 , 255 ] , "valid" ] , [ [ 256 , 256 ] , "mapped" , [ 257 ] ] , [ [ 257 , 257 ] , "valid" ] , [ [ 258 , 258 ] , "mapped" , [ 259 ] ] , [ [ 259 , 259 ] , "valid" ] , [ [ 260 , 260 ] , "mapped" , [ 261 ] ] , [ [ 261 , 261 ] , "valid" ] , [ [ 262 , 262 ] , "mapped" , [ 263 ] ] , [ [ 263 , 263 ] , "valid" ] , [ [ 264 , 264 ] , "mapped" , [ 265 ] ] , [ [ 265 , 265 ] , "valid" ] , [ [ 266 , 266 ] , "mapped" , [ 267 ] ] , [ [ 267 , 267 ] , "valid" ] , [ [ 268 , 268 ] , "mapped" , [ 269 ] ] , [ [ 269 , 269 ] , "valid" ] , [ [ 270 , 270 ] , "mapped" , [ 271 ] ] , [ [ 271 , 271 ] , "valid" ] , [ [ 272 , 272 ] , "mapped" , [ 273 ] ] , [ [ 273 , 273 ] , "valid" ] , [ [ 274 , 274 ] , "mapped" , [ 275 ] ] , [ [ 275 , 275 ] , "valid" ] , [ [ 276 , 276 ] , "mapped" , [ 277 ] ] , [ [ 277 , 277 ] , "valid" ] , [ [ 278 , 278 ] , "mapped" , [ 279 ] ] , [ [ 279 , 279 ] , "valid" ] , [ [ 280 , 280 ] , "mapped" , [ 281 ] ] , [ [ 281 , 281 ] , "valid" ] , [ [ 282 , 282 ] , "mapped" , [ 283 ] ] , [ [ 283 , 283 ] , "valid" ] , [ [ 284 , 284 ] , "mapped" , [ 285 ] ] , [ [ 285 , 285 ] , "valid" ] , [ [ 286 , 286 ] , "mapped" , [ 287 ] ] , [ [ 287 , 287 ] , "valid" ] , [ [ 288 , 288 ] , "mapped" , [ 289 ] ] , [ [ 289 , 289 ] , "valid" ] , [ [ 290 , 290 ] , "mapped" , [ 291 ] ] , [ [ 291 , 291 ] , "valid" ] , [ [ 292 , 292 ] , "mapped" , [ 293 ] ] , [ [ 293 , 293 ] , "valid" ] , [ [ 294 , 294 ] , "mapped" , [ 295 ] ] , [ [ 295 , 295 ] , "valid" ] , [ [ 296 , 296 ] , "mapped" , [ 297 ] ] , [ [ 297 , 297 ] , "valid" ] , [ [ 298 , 298 ] , "mapped" , [ 299 ] ] , [ [ 299 , 299 ] , "valid" ] , [ [ 300 , 300 ] , "mapped" , [ 301 ] ] , [ [ 301 , 301 ] , "valid" ] , [ [ 302 , 302 ] , "mapped" , [ 303 ] ] , [ [ 303 , 303 ] , "valid" ] , [ [ 304 , 304 ] , "mapped" , [ 105 , 775 ] ] , [ [ 305 , 305 ] , "valid" ] , [ [ 306 , 307 ] , "mapped" , [ 105 , 106 ] ] , [ [ 308 , 308 ] , "mapped" , [ 309 ] ] , [ [ 309 , 309 ] , "valid" ] , [ [ 310 , 310 ] , "mapped" , [ 311 ] ] , [ [ 311 , 312 ] , "valid" ] , [ [ 313 , 313 ] , "mapped" , [ 314 ] ] , [ [ 314 , 314 ] , "valid" ] , [ [ 315 , 315 ] , "mapped" , [ 316 ] ] , [ [ 316 , 316 ] , "valid" ] , [ [ 317 , 317 ] , "mapped" , [ 318 ] ] , [ [ 318 , 318 ] , "valid" ] , [ [ 319 , 320 ] , "mapped" ,
/***/ } )
/******/ } ) ;
/************************************************************************/
/******/ // The module cache
/******/ var _ _webpack _module _cache _ _ = { } ;
/******/
/******/ // The require function
/******/ function _ _nccwpck _require _ _ ( moduleId ) {
/******/ // Check if module is in cache
/******/ var cachedModule = _ _webpack _module _cache _ _ [ moduleId ] ;
/******/ if ( cachedModule !== undefined ) {
/******/ return cachedModule . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = _ _webpack _module _cache _ _ [ moduleId ] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ var threw = true ;
/******/ try {
/******/ _ _webpack _modules _ _ [ moduleId ] . call ( module . exports , module , module . exports , _ _nccwpck _require _ _ ) ;
/******/ threw = false ;
/******/ } finally {
/******/ if ( threw ) delete _ _webpack _module _cache _ _ [ moduleId ] ;
/******/ }
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat */
/******/
/******/ if ( typeof _ _nccwpck _require _ _ !== 'undefined' ) _ _nccwpck _require _ _ . ab = _ _dirname + "/" ;
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module is referenced by other modules so it can't be inlined
/******/ var _ _webpack _exports _ _ = _ _nccwpck _require _ _ ( 4822 ) ;
/******/ module . exports = _ _webpack _exports _ _ ;
/******/
/******/ } ) ( )
;
//# sourceMappingURL=index.js.map