@ -98,6 +98,25 @@ module.exports = Octokit;
"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 ) {
@ -108,11 +127,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
const childProcess = _ _webpack _require _ _ ( 129 ) ;
const path = _ _webpack _require _ _ ( 622 ) ;
exports . findInPath = exports . which = exports . mkdirP = exports . rmRF = exports . mv = exports . cp = void 0 ;
const assert _1 = _ _webpack _require _ _ ( 357 ) ;
const childProcess = _ _importStar ( _ _webpack _require _ _ ( 129 ) ) ;
const path = _ _importStar ( _ _webpack _require _ _ ( 622 ) ) ;
const util _1 = _ _webpack _require _ _ ( 669 ) ;
const ioUtil = _ _webpack _require _ _ ( 672 ) ;
const ioUtil = _ _ importStar( _ _ webpack_require _ _ ( 672 ) ) ;
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
@ -123,14 +145,14 @@ const exec = util_1.promisify(childProcess.exec);
* /
function cp ( source , dest , options = { } ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const { force , recursive } = readCopyOptions ( options ) ;
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 ( )
const newDest = destStat && destStat . isDirectory ( ) && copySourceDirectory
? path . join ( dest , path . basename ( source ) )
: dest ;
if ( ! ( yield ioUtil . exists ( source ) ) ) {
@ -195,12 +217,22 @@ function rmRF(inputPath) {
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 ( ` rd /s /q " ${ inputPath } " ` ) ;
yield exec ( ` ${ cmdPath } /s /c "rd /s /q "%inputPath%"" ` , {
env : { inputPath }
} ) ;
}
else {
yield exec ( ` del /f /a " ${ inputPath } " ` ) ;
yield exec ( ` ${ cmdPath } /s /c "del /f /a "%inputPath%"" ` , {
env : { inputPath }
} ) ;
}
}
catch ( err ) {
@ -233,7 +265,7 @@ function rmRF(inputPath) {
return ;
}
if ( isDir ) {
yield exec ( ` rm -rf " ${ inputPath } " ` ) ;
yield exec File( ` rm ` , [ ` -rf ` , ` ${ inputPath } ` ] ) ;
}
else {
yield ioUtil . unlink ( inputPath ) ;
@ -251,7 +283,8 @@ exports.rmRF = rmRF;
* /
function mkdirP ( fsPath ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
yield ioUtil . mkdirP ( fsPath ) ;
assert _1 . ok ( fsPath , 'a path argument must be provided' ) ;
yield ioUtil . mkdir ( fsPath , { recursive : true } ) ;
} ) ;
}
exports . mkdirP = mkdirP ;
@ -279,12 +312,30 @@ function which(tool, check) {
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" ) ;
}
try {
// 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 ( ioUtil . IS _WINDOWS && process . env ['PATHEXT' ] ) {
for ( const extension of process . env ['PATHEXT' ] . split ( path . delimiter ) ) {
if ( extension ) {
extensions . push ( extension ) ;
}
@ -294,13 +345,13 @@ function which(tool, check) {
if ( ioUtil . isRooted ( tool ) ) {
const filePath = yield ioUtil . tryGetExecutablePath ( tool , extensions ) ;
if ( filePath ) {
return filePath ;
return [ filePath ] ;
}
return '' ;
return [ ] ;
}
// if any path separators, return empty
if ( tool . includes ( '/' ) || ( ioUtil . IS _WINDOWS && tool . includes ( '\\' ) ) ) {
return '' ;
if ( tool . includes ( path . sep ) ) {
return [ ] ;
}
// build the list of directories
//
@ -316,25 +367,25 @@ function which(tool, check) {
}
}
}
// return the first match
// find all matches
const matches = [ ] ;
for ( const directory of directories ) {
const filePath = yield ioUtil . tryGetExecutablePath ( directory + path . sep + tool , extensions ) ;
const filePath = yield ioUtil . tryGetExecutablePath ( path. join ( directory , tool ) , extensions ) ;
if ( filePath ) {
return filePath ;
matches . push ( filePath ) ;
}
}
return '' ;
}
catch ( err ) {
throw new Error ( ` which failed with message ${ err . message } ` ) ;
}
return matches ;
} ) ;
}
exports . which = whic h;
exports . findInPath = findInPath ;
function readCopyOptions ( options ) {
const force = options . force == null ? true : options . force ;
const recursive = Boolean ( options . recursive ) ;
return { force , 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 * ( ) {
@ -4710,7 +4761,7 @@ module.exports = require("punycode");
/***/ 215 :
/***/ ( function ( module ) {
module . exports = { "name" : "@octokit/rest" , "version" : "16.43.1" , "publishConfig" : { "access" : "public" } , "description" : "GitHub REST API client for Node.js" , "keywords" : [ "octokit" , "github" , "rest" , "api-client" ] , "author" : "Gregor Martynus (https://github.com/gr2m)" , "contributors" : [ { "name" : "Mike de Boer" , "email" : "info@mikedeboer.nl" } , { "name" : "Fabian Jakobs" , "email" : "fabian@c9.io" } , { "name" : "Joe Gallo" , "email" : "joe@brassafrax.com" } , { "name" : "Gregor Martynus" , "url" : "https://github.com/gr2m" } ] , "repository" : "https://github.com/octokit/rest.js" , "dependencies" : { "@octokit/auth-token" : "^2.4.0" , "@octokit/plugin-paginate-rest" : "^1.1.1" , "@octokit/plugin-request-log" : "^1.0.0" , "@octokit/plugin-rest-endpoint-methods" : "2.4.0" , "@octokit/request" : "^5.2.0" , "@octokit/request-error" : "^1.0.2" , "atob-lite" : "^2.0.0" , "before-after-hook" : "^2.0.0" , "btoa-lite" : "^1.0.0" , "deprecation" : "^2.0.0" , "lodash.get" : "^4.4.2" , "lodash.set" : "^4.3.2" , "lodash.uniq" : "^4.5.0" , "octokit-pagination-methods" : "^1.1.0" , "once" : "^1.4.0" , "universal-user-agent" : "^4.0.0" } , "devDependencies" : { "@gimenete/type-writer" : "^0.1.3" , "@octokit/auth" : "^1.1.1" , "@octokit/fixtures-server" : "^5.0.6" , "@octokit/graphql" : "^4.2.0" , "@types/node" : "^13.1.0" , "bundlesize" : "^0.18.0" , "chai" : "^4.1.2" , "compression-webpack-plugin" : "^3.1.0" , "cypress" : "^3.0.0" , "glob" : "^7.1.2" , "http-proxy-agent" : "^4.0.0" , "lodash.camelcase" : "^4.3.0" , "lodash.merge" : "^4.6.1" , "lodash.upperfirst" : "^4.3.1" , "lolex" : "^5.1.2" , "mkdirp" : "^1.0.0" , "mocha" : "^7.0.1" , "mustache" : "^4.0.0" , "nock" : "^11.3.3" , "npm-run-all" : "^4.1.2" , "nyc" : "^15.0.0" , "prettier" : "^1.14.2" , "proxy" : "^1.0.0" , "semantic-release" : "^17.0.0" , "sinon" : "^8.0.0" , "sinon-chai" : "^3.0.0" , "sort-keys" : "^4.0.0" , "string-to-arraybuffer" : "^1.0.0" , "string-to-jsdoc-comment" : "^1.0.0" , "typescript" : "^3.3.1" , "webpack" : "^4.0.0" , "webpack-bundle-analyzer" : "^3.0.0" , "webpack-cli" : "^3.0.0" } , "types" : "index.d.ts" , "scripts" : { "coverage" : "nyc report --reporter=html && open coverage/index.html" , "lint" : "prettier --check '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json" , "lint:fix" : "prettier --write '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json" , "pretest" : "npm run -s lint" , "test" : "nyc mocha test/mocha-node-setup.js \"test/*/**/*-test.js\"" , "test:browser" : "cypress run --browser chrome" , "build" : "npm-run-all build:*" , "build:ts" : "npm run -s update-endpoints:typescript" , "prebuild:browser" : "mkdirp dist/" , "build:browser" : "npm-run-all build:browser:*" , "build:browser:development" : "webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json" , "build:browser:production" : "webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map" , "generate-bundle-report" : "webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html" , "update-endpoints" : "npm-run-all update-endpoints:*" , "update-endpoints:fetch-json" : "node scripts/update-endpoints/fetch-json" , "update-endpoints:typescript" : "node scripts/update-endpoints/typescript" , "prevalidate:ts" : "npm run -s build:ts" , "validate:ts" : "tsc --target es6 --noImplicitAny index.d.ts" , "postvalidate:ts" : "tsc --noEmit --target es6 test/typescript-validate.ts" , "start-fixtures-server" : "octokit-fixtures-server" } , "license" : "MIT" , "files" : [ "index.js" , "index.d.ts" , "lib" , "plugins" ] , "nyc" : { "ignore" : [ "test" ] } , "release" : { "publish" : [ "@semantic-release/npm" , { "path" : "@semantic-release/github" , "assets" : [ "dist/*" , "!dist/*.map.gz" ] } ] } , "bundlesize" : [ { "path" : "./dist/octokit-rest.min.js.gz" , "maxSize" : "33 kB" } ] };
module . exports = { "name" : "@octokit/rest" , "version" : "16.43.1" , "publishConfig" : { "access" : "public" } , "description" : "GitHub REST API client for Node.js" , "keywords" : [ "octokit" , "github" , "rest" , "api-client" ] , "author" : "Gregor Martynus (https://github.com/gr2m)" , "contributors" : [ { "name" : "Mike de Boer" , "email" : "info@mikedeboer.nl" } , { "name" : "Fabian Jakobs" , "email" : "fabian@c9.io" } , { "name" : "Joe Gallo" , "email" : "joe@brassafrax.com" } , { "name" : "Gregor Martynus" , "url" : "https://github.com/gr2m" } ] , "repository" : "https://github.com/octokit/rest.js" , "dependencies" : { "@octokit/auth-token" : "^2.4.0" , "@octokit/plugin-paginate-rest" : "^1.1.1" , "@octokit/plugin-request-log" : "^1.0.0" , "@octokit/plugin-rest-endpoint-methods" : "2.4.0" , "@octokit/request" : "^5.2.0" , "@octokit/request-error" : "^1.0.2" , "atob-lite" : "^2.0.0" , "before-after-hook" : "^2.0.0" , "btoa-lite" : "^1.0.0" , "deprecation" : "^2.0.0" , "lodash.get" : "^4.4.2" , "lodash.set" : "^4.3.2" , "lodash.uniq" : "^4.5.0" , "octokit-pagination-methods" : "^1.1.0" , "once" : "^1.4.0" , "universal-user-agent" : "^4.0.0" } , "devDependencies" : { "@gimenete/type-writer" : "^0.1.3" , "@octokit/auth" : "^1.1.1" , "@octokit/fixtures-server" : "^5.0.6" , "@octokit/graphql" : "^4.2.0" , "@types/node" : "^13.1.0" , "bundlesize" : "^0.18.0" , "chai" : "^4.1.2" , "compression-webpack-plugin" : "^3.1.0" , "cypress" : "^3.0.0" , "glob" : "^7.1.2" , "http-proxy-agent" : "^4.0.0" , "lodash.camelcase" : "^4.3.0" , "lodash.merge" : "^4.6.1" , "lodash.upperfirst" : "^4.3.1" , "lolex" : "^5.1.2" , "mkdirp" : "^1.0.0" , "mocha" : "^7.0.1" , "mustache" : "^4.0.0" , "nock" : "^11.3.3" , "npm-run-all" : "^4.1.2" , "nyc" : "^15.0.0" , "prettier" : "^1.14.2" , "proxy" : "^1.0.0" , "semantic-release" : "^17.0.0" , "sinon" : "^8.0.0" , "sinon-chai" : "^3.0.0" , "sort-keys" : "^4.0.0" , "string-to-arraybuffer" : "^1.0.0" , "string-to-jsdoc-comment" : "^1.0.0" , "typescript" : "^3.3.1" , "webpack" : "^4.0.0" , "webpack-bundle-analyzer" : "^3.0.0" , "webpack-cli" : "^3.0.0" } , "types" : "index.d.ts" , "scripts" : { "coverage" : "nyc report --reporter=html && open coverage/index.html" , "lint" : "prettier --check '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json" , "lint:fix" : "prettier --write '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json" , "pretest" : "npm run -s lint" , "test" : "nyc mocha test/mocha-node-setup.js \"test/*/**/*-test.js\"" , "test:browser" : "cypress run --browser chrome" , "build" : "npm-run-all build:*" , "build:ts" : "npm run -s update-endpoints:typescript" , "prebuild:browser" : "mkdirp dist/" , "build:browser" : "npm-run-all build:browser:*" , "build:browser:development" : "webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json" , "build:browser:production" : "webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map" , "generate-bundle-report" : "webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html" , "update-endpoints" : "npm-run-all update-endpoints:*" , "update-endpoints:fetch-json" : "node scripts/update-endpoints/fetch-json" , "update-endpoints:typescript" : "node scripts/update-endpoints/typescript" , "prevalidate:ts" : "npm run -s build:ts" , "validate:ts" : "tsc --target es6 --noImplicitAny index.d.ts" , "postvalidate:ts" : "tsc --noEmit --target es6 test/typescript-validate.ts" , "start-fixtures-server" : "octokit-fixtures-server" } , "license" : "MIT" , "files" : [ "index.js" , "index.d.ts" , "lib" , "plugins" ] , "nyc" : { "ignore" : [ "test" ] } , "release" : { "publish" : [ "@semantic-release/npm" , { "path" : "@semantic-release/github" , "assets" : [ "dist/*" , "!dist/*.map.gz" ] } ] } , "bundlesize" : [ { "path" : "./dist/octokit-rest.min.js.gz" , "maxSize" : "33 kB" } ] ,"_resolved" : "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.1.tgz" , "_integrity" : "sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw==" , "_from" : "@octokit/rest@16.43.1" };
/***/ } ) ,
@ -12332,7 +12383,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
} ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
const core = _ _webpack _require _ _ ( 470 ) ;
const io = _ _webpack _require _ _ ( 1 ) ;
const io = _ _webpack _require _ _ ( 667 ) ;
const fs = _ _webpack _require _ _ ( 747 ) ;
const os = _ _webpack _require _ _ ( 87 ) ;
const path = _ _webpack _require _ _ ( 622 ) ;
@ -13896,6 +13947,7 @@ var encode = function encode(str, defaultEncoder, charset, kind, format) {
i += 1 ;
c = 0x10000 + ( ( ( c & 0x3FF ) << 10 ) | ( string . charCodeAt ( i ) & 0x3FF ) ) ;
/* eslint operator-linebreak: [2, "before"] */
out += hexTable [ 0xF0 | ( c >> 18 ) ]
+ hexTable [ 0x80 | ( ( c >> 12 ) & 0x3F ) ]
+ hexTable [ 0x80 | ( ( c >> 6 ) & 0x3F ) ]
@ -16385,6 +16437,354 @@ exports.summary = _summary;
/***/ } ) ,
/***/ 667 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _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 = _ _webpack _require _ _ ( 357 ) ;
const childProcess = _ _importStar ( _ _webpack _require _ _ ( 129 ) ) ;
const path = _ _importStar ( _ _webpack _require _ _ ( 622 ) ) ;
const util _1 = _ _webpack _require _ _ ( 669 ) ;
const ioUtil = _ _importStar ( _ _webpack _require _ _ ( 971 ) ) ;
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
/***/ } ) ,
/***/ 669 :
/***/ ( function ( module ) {
@ -16397,6 +16797,25 @@ module.exports = require("util");
"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 ) {
@ -16408,9 +16827,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
} ;
var _a ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
const assert _1 = _ _webpack _require _ _ ( 357 ) ;
const fs = _ _ webpack_require _ _ ( 747 ) ;
const path = _ _ webpack_require _ _ ( 622 ) ;
exports . getCmdPath = exports . normalizeSeparators = 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( _ _ webpack_require _ _ ( 747 ) ) ;
const path = _ _ importStar( _ _ webpack_require _ _ ( 622 ) ) ;
_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 ) {
@ -16451,49 +16870,6 @@ function isRooted(p) {
return p . startsWith ( '/' ) ;
}
exports . isRooted = isRooted ;
/ * *
* Recursively create a directory at ` fsPath ` .
*
* This implementation is optimistic , meaning it attempts to create the full
* path first , and backs up the path stack from there .
*
* @ param fsPath The path to create
* @ param maxDepth The maximum recursion depth
* @ param depth The current recursion depth
* /
function mkdirP ( fsPath , maxDepth = 1000 , depth = 1 ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
assert _1 . ok ( fsPath , 'a path argument must be provided' ) ;
fsPath = path . resolve ( fsPath ) ;
if ( depth >= maxDepth )
return exports . mkdir ( fsPath ) ;
try {
yield exports . mkdir ( fsPath ) ;
return ;
}
catch ( err ) {
switch ( err . code ) {
case 'ENOENT' : {
yield mkdirP ( path . dirname ( fsPath ) , maxDepth , depth + 1 ) ;
yield exports . mkdir ( fsPath ) ;
return ;
}
default : {
let stats ;
try {
stats = yield exports . stat ( fsPath ) ;
}
catch ( err2 ) {
throw err ;
}
if ( ! stats . isDirectory ( ) )
throw err ;
}
}
}
} ) ;
}
exports . mkdirP = mkdirP ;
/ * *
* Best effort attempt to determine whether a file exists and is executable .
* @ param filePath file path to check
@ -16582,6 +16958,7 @@ function normalizeSeparators(p) {
// remove redundant slashes
return p . replace ( /\/\/+/g , '/' ) ;
}
exports . normalizeSeparators = normalizeSeparators ;
// 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
@ -16590,6 +16967,12 @@ function isUnixExecutable(stats) {
( ( 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
/***/ } ) ,
@ -17539,7 +17922,7 @@ var parseObject = function (chain, val, options, valuesParsed) {
) {
obj = [ ] ;
obj [ index ] = leaf ;
} else {
} else if ( cleanRoot !== '__proto__' ) {
obj [ cleanRoot ] = leaf ;
}
}
@ -34671,6 +35054,7 @@ var arrayPrefixGenerators = {
} ;
var isArray = Array . isArray ;
var split = String . prototype . split ;
var push = Array . prototype . push ;
var pushToArray = function ( arr , valueOrArray ) {
push . apply ( arr , isArray ( valueOrArray ) ? valueOrArray : [ valueOrArray ] ) ;
@ -34707,10 +35091,13 @@ var isNonNullishPrimitive = function isNonNullishPrimitive(v) {
|| typeof v === 'bigint' ;
} ;
var sentinel = { } ;
var stringify = function stringify (
object ,
prefix ,
generateArrayPrefix ,
commaRoundTrip ,
strictNullHandling ,
skipNulls ,
encoder ,
@ -34726,8 +35113,23 @@ var stringify = function stringify(
) {
var obj = object ;
if ( sideChannel . has ( object ) ) {
var tmpSc = sideChannel ;
var step = 0 ;
var findFlag = false ;
while ( ( tmpSc = tmpSc . get ( sentinel ) ) !== void undefined && ! findFlag ) {
// Where object last appeared in the ref tree
var pos = tmpSc . get ( object ) ;
step += 1 ;
if ( typeof pos !== 'undefined' ) {
if ( pos === step ) {
throw new RangeError ( 'Cyclic object value' ) ;
} else {
findFlag = true ; // Break while
}
}
if ( typeof tmpSc . get ( sentinel ) === 'undefined' ) {
step = 0 ;
}
}
if ( typeof filter === 'function' ) {
@ -34754,6 +35156,14 @@ var stringify = function stringify(
if ( isNonNullishPrimitive ( obj ) || utils . isBuffer ( obj ) ) {
if ( encoder ) {
var keyValue = encodeValuesOnly ? prefix : encoder ( prefix , defaults . encoder , charset , 'key' , format ) ;
if ( generateArrayPrefix === 'comma' && encodeValuesOnly ) {
var valuesArray = split . call ( String ( obj ) , ',' ) ;
var valuesJoined = '' ;
for ( var i = 0 ; i < valuesArray . length ; ++ i ) {
valuesJoined += ( i === 0 ? '' : ',' ) + formatter ( encoder ( valuesArray [ i ] , defaults . encoder , charset , 'value' , format ) ) ;
}
return [ formatter ( keyValue ) + ( commaRoundTrip && isArray ( obj ) && valuesArray . length === 1 ? '[]' : '' ) + '=' + valuesJoined ] ;
}
return [ formatter ( keyValue ) + '=' + formatter ( encoder ( obj , defaults . encoder , charset , 'value' , format ) ) ] ;
}
return [ formatter ( prefix ) + '=' + formatter ( String ( obj ) ) ] ;
@ -34768,7 +35178,7 @@ var stringify = function stringify(
var objKeys ;
if ( generateArrayPrefix === 'comma' && isArray ( obj ) ) {
// we need to join elements in
objKeys = [ { value : obj . length > 0 ? obj . join ( ',' ) || null : undefined } ] ;
objKeys = [ { value : obj . length > 0 ? obj . join ( ',' ) || null : void undefined } ] ;
} else if ( isArray ( filter ) ) {
objKeys = filter ;
} else {
@ -34776,24 +35186,28 @@ var stringify = function stringify(
objKeys = sort ? keys . sort ( sort ) : keys ;
}
for ( var i = 0 ; i < objKeys . length ; ++ i ) {
var key = objKeys [ i ] ;
var value = typeof key === 'object' && key . value !== undefined ? key . value : obj [ key ] ;
var adjustedPrefix = commaRoundTrip && isArray ( obj ) && obj . length === 1 ? prefix + '[]' : prefix ;
for ( var j = 0 ; j < objKeys . length ; ++ j ) {
var key = objKeys [ j ] ;
var value = typeof key === 'object' && typeof key . value !== 'undefined' ? key . value : obj [ key ] ;
if ( skipNulls && value === null ) {
continue ;
}
var keyPrefix = isArray ( obj )
? typeof generateArrayPrefix === 'function' ? generateArrayPrefix ( prefix, key ) : p refix
: p refix + ( allowDots ? '.' + key : '[' + key + ']' ) ;
? typeof generateArrayPrefix === 'function' ? generateArrayPrefix ( adjustedPrefix, key ) : adjustedP refix
: adjustedP refix + ( allowDots ? '.' + key : '[' + key + ']' ) ;
sideChannel . set ( object , true ) ;
sideChannel . set ( object , step ) ;
var valueSideChannel = getSideChannel ( ) ;
valueSideChannel . set ( sentinel , sideChannel ) ;
pushToArray ( values , stringify (
value ,
keyPrefix ,
generateArrayPrefix ,
commaRoundTrip ,
strictNullHandling ,
skipNulls ,
encoder ,
@ -34817,7 +35231,7 @@ var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
return defaults ;
}
if ( opts . encoder !== null && opts . encoder !== undefined && typeof opts . encoder !== 'function' ) {
if ( opts . encoder !== null && typeof opts . encoder !== 'undefined' && typeof opts . encoder !== 'function' ) {
throw new TypeError ( 'Encoder has to be a function.' ) ;
}
@ -34890,6 +35304,10 @@ module.exports = function (object, opts) {
}
var generateArrayPrefix = arrayPrefixGenerators [ arrayFormat ] ;
if ( opts && 'commaRoundTrip' in opts && typeof opts . commaRoundTrip !== 'boolean' ) {
throw new TypeError ( '`commaRoundTrip` must be a boolean, or absent' ) ;
}
var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts . commaRoundTrip ;
if ( ! objKeys ) {
objKeys = Object . keys ( obj ) ;
@ -34910,6 +35328,7 @@ module.exports = function (object, opts) {
obj [ key ] ,
key ,
generateArrayPrefix ,
commaRoundTrip ,
options . strictNullHandling ,
options . skipNulls ,
options . encode ? options . encoder : null ,
@ -37418,6 +37837,190 @@ function onceStrict (fn) {
}
/***/ } ) ,
/***/ 971 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _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 ( _ _webpack _require _ _ ( 747 ) ) ;
const path = _ _importStar ( _ _webpack _require _ _ ( 622 ) ) ;
_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
/***/ } ) ,
/***/ 976 :