mirror of
				https://code.forgejo.org/actions/checkout.git
				synced 2025-10-30 20:42:30 +00:00 
			
		
		
		
	updating actions io
This commit is contained in:
		
							parent
							
								
									52a68f14f0
								
							
						
					
					
						commit
						e67d32c5d0
					
				
					 5 changed files with 682 additions and 129 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								actions-io-1.1.2.tgz
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								actions-io-1.1.2.tgz
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										795
									
								
								dist/index.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										795
									
								
								dist/index.js
									
										
									
									
										vendored
									
									
								
							|  | @ -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,13 +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 { | ||||
|                 if (yield ioUtil.isDirectory(inputPath, true)) { | ||||
|                     yield exec(`rd /s /q "${inputPath}"`); | ||||
|                 } | ||||
|                 else { | ||||
|                     yield exec(`del /f /a "${inputPath}"`); | ||||
|                 } | ||||
|                 const cmdPath = ioUtil.getCmdPath(); | ||||
|                 // if (await ioUtil.isDirectory(inputPath, true)) {
 | ||||
|                 //   await execFile(`${cmdPath} /s /c "rd /s /q "%inputPath%""`, {
 | ||||
|                 //     env: {inputPath}
 | ||||
|                 //   })
 | ||||
|                 // } else {
 | ||||
|                 yield execFile(`${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
 | ||||
|  | @ -221,9 +252,9 @@ function rmRF(inputPath) { | |||
|             } | ||||
|         } | ||||
|         else { | ||||
|             let isDir = false; | ||||
|             // let isDir = false
 | ||||
|             try { | ||||
|                 isDir = yield ioUtil.isDirectory(inputPath); | ||||
|                 // isDir = await ioUtil.isDirectory(inputPath)
 | ||||
|             } | ||||
|             catch (err) { | ||||
|                 // if you try to delete a file that doesn't exist, desired result is achieved
 | ||||
|  | @ -232,12 +263,11 @@ function rmRF(inputPath) { | |||
|                     throw err; | ||||
|                 return; | ||||
|             } | ||||
|             if (isDir) { | ||||
|                 yield exec(`rm -rf "${inputPath}"`); | ||||
|             } | ||||
|             else { | ||||
|                 yield ioUtil.unlink(inputPath); | ||||
|             } | ||||
|             // if (isDir) {
 | ||||
|             yield execFile(`rm`, [`-rf`, `${inputPath}`]); | ||||
|             // } else {
 | ||||
|             // await ioUtil.unlink(inputPath)
 | ||||
|             // }
 | ||||
|         } | ||||
|     }); | ||||
| } | ||||
|  | @ -251,7 +281,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,62 +310,80 @@ 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; | ||||
|         } | ||||
|         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 (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('/') || (ioUtil.IS_WINDOWS && tool.includes('\\'))) { | ||||
|                 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); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             // return the first match
 | ||||
|             for (const directory of directories) { | ||||
|                 const filePath = yield ioUtil.tryGetExecutablePath(directory + path.sep + tool, extensions); | ||||
|                 if (filePath) { | ||||
|                     return filePath; | ||||
|                 } | ||||
|             } | ||||
|             return ''; | ||||
|         } | ||||
|         catch (err) { | ||||
|             throw new Error(`which failed with message ${err.message}`); | ||||
|         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); | ||||
|     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 +4759,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 +12381,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); | ||||
|  | @ -16385,6 +16434,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 +16794,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 +16824,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.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 +16867,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 | ||||
|  | @ -16590,6 +16963,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
 | ||||
| 
 | ||||
| /***/ }), | ||||
|  | @ -37418,6 +37797,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: | ||||
|  |  | |||
							
								
								
									
										14
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										14
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							|  | @ -59,18 +59,8 @@ | |||
|       } | ||||
|     }, | ||||
|     "@actions/io": { | ||||
|       "version": "file:actions-exec-1.1.1.tgz", | ||||
|       "integrity": "sha512-Tx9iCldWRCHdXshU+wFNrtf3ibEiIh38inEVVF1nvXrpDwyqECsa2E63VvpmO0BXr6/QOnCsOYthrf8zzQjTwQ==", | ||||
|       "requires": { | ||||
|         "@actions/io": "^1.0.1" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "@actions/io": { | ||||
|           "version": "1.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", | ||||
|           "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" | ||||
|         } | ||||
|       } | ||||
|       "version": "file:actions-io-1.1.2.tgz", | ||||
|       "integrity": "sha512-/IuonxgI4LQ40baK2OdXByx6aH1/BwlzJGXeeRDjpXXL+KaFPMTC7uYjK4dCHBD96LQDZxKDbqjwbEuJfyzkWw==" | ||||
|     }, | ||||
|     "@actions/tool-cache": { | ||||
|       "version": "1.1.2", | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ | |||
|     "@actions/core": "^1.10.0", | ||||
|     "@actions/exec": "^1.0.1", | ||||
|     "@actions/github": "^2.2.0", | ||||
|     "@actions/io": "actions-exec-1.1.1.tgz", | ||||
|     "@actions/io": "actions-io-1.1.2.tgz", | ||||
|     "@actions/tool-cache": "^1.1.2", | ||||
|     "uuid": "^3.3.3" | ||||
|   }, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue