From e67d32c5d0239aedcfd8def4578e101960e84384 Mon Sep 17 00:00:00 2001 From: Vallie Joseph Date: Fri, 2 Dec 2022 19:57:31 +0000 Subject: [PATCH] updating actions io --- actions-exec-1.1.1.tgz | Bin 14375 -> 0 bytes actions-io-1.1.2.tgz | Bin 0 -> 10442 bytes dist/index.js | 795 +++++++++++++++++++++++++++++++++++------ package-lock.json | 14 +- package.json | 2 +- 5 files changed, 682 insertions(+), 129 deletions(-) delete mode 100644 actions-exec-1.1.1.tgz create mode 100644 actions-io-1.1.2.tgz diff --git a/actions-exec-1.1.1.tgz b/actions-exec-1.1.1.tgz deleted file mode 100644 index f7c86b87f7812cf3e8302d58d94304688b9e465e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14375 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 diff --git a/actions-io-1.1.2.tgz b/actions-io-1.1.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ec824eab162cab0c1cf81616be0b9d5b387c2ae4 GIT binary patch literal 10442 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 literal 0 HcmV?d00001 diff --git a/dist/index.js b/dist/index.js index 47a99f1..4ba9ad6 100644 --- a/dist/index.js +++ b/dist/index.js @@ -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 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 + */ +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 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 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: diff --git a/package-lock.json b/package-lock.json index cccb7be..278ef35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index ea471b5..5d41f01 100644 --- a/package.json +++ b/package.json @@ -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" },