You've already forked setup-node
mirror of
https://github.com/actions/setup-node.git
synced 2025-07-01 12:43:13 +07:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
0d7d2ca665 |
90
.gitignore
vendored
90
.gitignore
vendored
@ -1,92 +1,2 @@
|
|||||||
# Explicitly not ignoring node_modules so that they are included in package downloaded by runner
|
|
||||||
!node_modules/
|
!node_modules/
|
||||||
__tests__/runner/*
|
__tests__/runner/*
|
||||||
|
|
||||||
# Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
|
|
||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
lerna-debug.log*
|
|
||||||
|
|
||||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
|
||||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
|
||||||
|
|
||||||
# Runtime data
|
|
||||||
pids
|
|
||||||
*.pid
|
|
||||||
*.seed
|
|
||||||
*.pid.lock
|
|
||||||
|
|
||||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
||||||
lib-cov
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
*.lcov
|
|
||||||
|
|
||||||
# nyc test coverage
|
|
||||||
.nyc_output
|
|
||||||
|
|
||||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
|
||||||
.grunt
|
|
||||||
|
|
||||||
# Bower dependency directory (https://bower.io/)
|
|
||||||
bower_components
|
|
||||||
|
|
||||||
# node-waf configuration
|
|
||||||
.lock-wscript
|
|
||||||
|
|
||||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
|
||||||
build/Release
|
|
||||||
|
|
||||||
# Dependency directories
|
|
||||||
jspm_packages/
|
|
||||||
|
|
||||||
# TypeScript v1 declaration files
|
|
||||||
typings/
|
|
||||||
|
|
||||||
# TypeScript cache
|
|
||||||
*.tsbuildinfo
|
|
||||||
|
|
||||||
# Optional npm cache directory
|
|
||||||
.npm
|
|
||||||
|
|
||||||
# Optional eslint cache
|
|
||||||
.eslintcache
|
|
||||||
|
|
||||||
# Optional REPL history
|
|
||||||
.node_repl_history
|
|
||||||
|
|
||||||
# Output of 'npm pack'
|
|
||||||
*.tgz
|
|
||||||
|
|
||||||
# Yarn Integrity file
|
|
||||||
.yarn-integrity
|
|
||||||
|
|
||||||
# dotenv environment variables file
|
|
||||||
.env
|
|
||||||
.env.test
|
|
||||||
|
|
||||||
# parcel-bundler cache (https://parceljs.org/)
|
|
||||||
.cache
|
|
||||||
|
|
||||||
# next.js build output
|
|
||||||
.next
|
|
||||||
|
|
||||||
# nuxt.js build output
|
|
||||||
.nuxt
|
|
||||||
|
|
||||||
# vuepress build output
|
|
||||||
.vuepress/dist
|
|
||||||
|
|
||||||
# Serverless directories
|
|
||||||
.serverless/
|
|
||||||
|
|
||||||
# FuseBox cache
|
|
||||||
.fusebox/
|
|
||||||
|
|
||||||
# DynamoDB Local files
|
|
||||||
.dynamodb/
|
|
||||||
|
66
README.md
66
README.md
@ -1,9 +1,5 @@
|
|||||||
# setup-node
|
# setup-node
|
||||||
|
|
||||||
<p align="left">
|
|
||||||
<a href="https://github.com/actions/setup-node"><img alt="GitHub Actions status" src="https://github.com/actions/setup-node/workflows/Main%20workflow/badge.svg"></a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
This action sets by node environment for use in actions by:
|
This action sets by node environment for use in actions by:
|
||||||
|
|
||||||
- optionally downloading and caching a version of node - npm by version spec and add to PATH
|
- optionally downloading and caching a version of node - npm by version spec and add to PATH
|
||||||
@ -19,7 +15,7 @@ steps:
|
|||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '10.x'
|
version: '10.x'
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm test
|
- run: npm test
|
||||||
```
|
```
|
||||||
@ -38,69 +34,11 @@ jobs:
|
|||||||
- name: Setup node
|
- name: Setup node
|
||||||
uses: actions/setup-node@v1
|
uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node }}
|
version: ${{ matrix.node }}
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm test
|
- run: npm test
|
||||||
```
|
```
|
||||||
|
|
||||||
Publish to npmjs and GPR with npm:
|
|
||||||
```yaml
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
node-version: '10.x'
|
|
||||||
registry-url: 'https://registry.npmjs.org'
|
|
||||||
- run: npm install
|
|
||||||
- run: npm publish
|
|
||||||
env:
|
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
registry-url: 'https://npm.pkg.github.com'
|
|
||||||
- run: npm publish
|
|
||||||
env:
|
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
|
||||||
|
|
||||||
Publish to npmjs and GPR with yarn:
|
|
||||||
```yaml
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
node-version: '10.x'
|
|
||||||
registry-url: <registry url>
|
|
||||||
- run: yarn install
|
|
||||||
- run: yarn publish
|
|
||||||
env:
|
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.YARN_TOKEN }}
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
registry-url: 'https://npm.pkg.github.com'
|
|
||||||
- run: yarn publish
|
|
||||||
env:
|
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
|
||||||
|
|
||||||
Use private packages:
|
|
||||||
```yaml
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
node-version: '10.x'
|
|
||||||
registry-url: 'https://registry.npmjs.org'
|
|
||||||
# Skip post-install scripts here, as a malicious
|
|
||||||
# script could steal NODE_AUTH_TOKEN.
|
|
||||||
- run: npm install --ignore-scripts
|
|
||||||
env:
|
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
||||||
# `npm rebuild` will run all those post-install scritps for us.
|
|
||||||
- run: npm rebuild && npm run prepare --if-present
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
The scripts and documentation in this project are released under the [MIT License](LICENSE)
|
The scripts and documentation in this project are released under the [MIT License](LICENSE)
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
||||||
|
|
||||||
exports[`installer tests Appends trailing slash to registry 1`] = `
|
|
||||||
"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
|
|
||||||
registry=https://registry.npmjs.org/
|
|
||||||
always-auth=false"
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`installer tests Automatically configures GPR scope 1`] = `
|
|
||||||
"npm.pkg.github.com/:_authToken=\${NODE_AUTH_TOKEN}
|
|
||||||
@ownername:registry=npm.pkg.github.com/
|
|
||||||
always-auth=false"
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`installer tests Configures scoped npm registries 1`] = `
|
|
||||||
"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
|
|
||||||
@myscope:registry=https://registry.npmjs.org/
|
|
||||||
always-auth=false"
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`installer tests Sets up npmrc for always-auth true 1`] = `
|
|
||||||
"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
|
|
||||||
registry=https://registry.npmjs.org/
|
|
||||||
always-auth=true"
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`installer tests Sets up npmrc for npmjs 1`] = `
|
|
||||||
"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
|
|
||||||
registry=https://registry.npmjs.org/
|
|
||||||
always-auth=false"
|
|
||||||
`;
|
|
@ -1,68 +0,0 @@
|
|||||||
import io = require('@actions/io');
|
|
||||||
import fs = require('fs');
|
|
||||||
import path = require('path');
|
|
||||||
|
|
||||||
const tempDir = path.join(
|
|
||||||
__dirname,
|
|
||||||
'runner',
|
|
||||||
path.join(
|
|
||||||
Math.random()
|
|
||||||
.toString(36)
|
|
||||||
.substring(7)
|
|
||||||
),
|
|
||||||
'temp'
|
|
||||||
);
|
|
||||||
|
|
||||||
const rcFile = path.join(tempDir, '.npmrc');
|
|
||||||
|
|
||||||
process.env['GITHUB_REPOSITORY'] = 'OwnerName/repo';
|
|
||||||
process.env['RUNNER_TEMP'] = tempDir;
|
|
||||||
import * as auth from '../src/authutil';
|
|
||||||
|
|
||||||
describe('installer tests', () => {
|
|
||||||
beforeAll(async () => {
|
|
||||||
await io.rmRF(tempDir);
|
|
||||||
await io.mkdirP(tempDir);
|
|
||||||
}, 100000);
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
if (fs.existsSync(rcFile)) {
|
|
||||||
fs.unlinkSync(rcFile);
|
|
||||||
}
|
|
||||||
process.env['INPUT_SCOPE'] = '';
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Sets up npmrc for npmjs', async () => {
|
|
||||||
await auth.configAuthentication('https://registry.npmjs.org/', 'false');
|
|
||||||
expect(fs.existsSync(rcFile)).toBe(true);
|
|
||||||
expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Appends trailing slash to registry', async () => {
|
|
||||||
await auth.configAuthentication('https://registry.npmjs.org', 'false');
|
|
||||||
|
|
||||||
expect(fs.existsSync(rcFile)).toBe(true);
|
|
||||||
expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Configures scoped npm registries', async () => {
|
|
||||||
process.env['INPUT_SCOPE'] = 'myScope';
|
|
||||||
await auth.configAuthentication('https://registry.npmjs.org', 'false');
|
|
||||||
|
|
||||||
expect(fs.existsSync(rcFile)).toBe(true);
|
|
||||||
expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Automatically configures GPR scope', async () => {
|
|
||||||
await auth.configAuthentication('npm.pkg.github.com', 'false');
|
|
||||||
|
|
||||||
expect(fs.existsSync(rcFile)).toBe(true);
|
|
||||||
expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Sets up npmrc for always-auth true', async () => {
|
|
||||||
await auth.configAuthentication('https://registry.npmjs.org/', 'true');
|
|
||||||
expect(fs.existsSync(rcFile)).toBe(true);
|
|
||||||
expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
|
|
||||||
});
|
|
||||||
});
|
|
@ -4,7 +4,7 @@ import os = require('os');
|
|||||||
import path = require('path');
|
import path = require('path');
|
||||||
|
|
||||||
const toolDir = path.join(
|
const toolDir = path.join(
|
||||||
__dirname,
|
process.cwd(),
|
||||||
'runner',
|
'runner',
|
||||||
path.join(
|
path.join(
|
||||||
Math.random()
|
Math.random()
|
||||||
@ -14,7 +14,7 @@ const toolDir = path.join(
|
|||||||
'tools'
|
'tools'
|
||||||
);
|
);
|
||||||
const tempDir = path.join(
|
const tempDir = path.join(
|
||||||
__dirname,
|
process.cwd(),
|
||||||
'runner',
|
'runner',
|
||||||
path.join(
|
path.join(
|
||||||
Math.random()
|
Math.random()
|
||||||
@ -36,6 +36,15 @@ describe('installer tests', () => {
|
|||||||
await io.rmRF(tempDir);
|
await io.rmRF(tempDir);
|
||||||
}, 100000);
|
}, 100000);
|
||||||
|
|
||||||
|
afterAll(async () => {
|
||||||
|
try {
|
||||||
|
await io.rmRF(toolDir);
|
||||||
|
await io.rmRF(tempDir);
|
||||||
|
} catch {
|
||||||
|
console.log('Failed to remove test directories');
|
||||||
|
}
|
||||||
|
}, 100000);
|
||||||
|
|
||||||
it('Acquires version of node if no matching version is installed', async () => {
|
it('Acquires version of node if no matching version is installed', async () => {
|
||||||
await installer.getNode('10.16.0');
|
await installer.getNode('10.16.0');
|
||||||
const nodeDir = path.join(toolDir, 'node', '10.16.0', os.arch());
|
const nodeDir = path.join(toolDir, 'node', '10.16.0', os.arch());
|
||||||
|
19
action.yml
19
action.yml
@ -1,21 +1,10 @@
|
|||||||
name: 'Setup Node.js environment'
|
name: 'Setup Node.js for use with actions'
|
||||||
description: 'Setup a Node.js environment and add it to the PATH, additionally providing proxy support'
|
description: 'Setup a Node.js environment and add it to the PATH, additionally providing proxy support'
|
||||||
author: 'GitHub'
|
author: 'GitHub'
|
||||||
inputs:
|
inputs:
|
||||||
always-auth:
|
|
||||||
description: 'Set always-auth in npmrc'
|
|
||||||
default: 'false'
|
|
||||||
node-version:
|
|
||||||
description: 'Version Spec of the version to use. Examples: 10.x, 10.15.1, >=10.15.0'
|
|
||||||
default: '10.x'
|
|
||||||
registry-url:
|
|
||||||
description: 'Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file, and set up auth to read in from env.NODE_AUTH_TOKEN'
|
|
||||||
scope:
|
|
||||||
description: 'Optional scope for authenticating against scoped registries'
|
|
||||||
# Deprecated option, do not use. Will not be supported after October 1, 2019
|
|
||||||
version:
|
version:
|
||||||
description: 'Deprecated. Use node-version instead. Will not be supported after October 1, 2019'
|
description: 'Version Spec of the version to use. Examples: 10.x, 10.15.1, >=10.15.0, lts'
|
||||||
deprecationMessage: 'The version property will not be supported after October 1, 2019. Use node-version instead'
|
default: '10.x'
|
||||||
runs:
|
runs:
|
||||||
using: 'node12'
|
using: 'node12'
|
||||||
main: 'lib/setup-node.js'
|
main: 'lib/setup-node.js'
|
||||||
|
@ -1,56 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
|
||||||
result["default"] = mod;
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
const fs = __importStar(require("fs"));
|
|
||||||
const os = __importStar(require("os"));
|
|
||||||
const path = __importStar(require("path"));
|
|
||||||
const core = __importStar(require("@actions/core"));
|
|
||||||
const github = __importStar(require("@actions/github"));
|
|
||||||
function configAuthentication(registryUrl, alwaysAuth) {
|
|
||||||
const npmrc = path.resolve(process.env['RUNNER_TEMP'] || process.cwd(), '.npmrc');
|
|
||||||
if (!registryUrl.endsWith('/')) {
|
|
||||||
registryUrl += '/';
|
|
||||||
}
|
|
||||||
writeRegistryToFile(registryUrl, npmrc, alwaysAuth);
|
|
||||||
}
|
|
||||||
exports.configAuthentication = configAuthentication;
|
|
||||||
function writeRegistryToFile(registryUrl, fileLocation, alwaysAuth) {
|
|
||||||
let scope = core.getInput('scope');
|
|
||||||
if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) {
|
|
||||||
scope = github.context.repo.owner;
|
|
||||||
}
|
|
||||||
if (scope && scope[0] != '@') {
|
|
||||||
scope = '@' + scope;
|
|
||||||
}
|
|
||||||
if (scope) {
|
|
||||||
scope = scope.toLowerCase();
|
|
||||||
}
|
|
||||||
core.debug(`Setting auth in ${fileLocation}`);
|
|
||||||
let newContents = '';
|
|
||||||
if (fs.existsSync(fileLocation)) {
|
|
||||||
const curContents = fs.readFileSync(fileLocation, 'utf8');
|
|
||||||
curContents.split(os.EOL).forEach((line) => {
|
|
||||||
// Add current contents unless they are setting the registry
|
|
||||||
if (!line.toLowerCase().startsWith('registry')) {
|
|
||||||
newContents += line + os.EOL;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// Remove http: or https: from front of registry.
|
|
||||||
const authString = registryUrl.replace(/(^\w+:|^)/, '') + ':_authToken=${NODE_AUTH_TOKEN}';
|
|
||||||
const registryString = scope
|
|
||||||
? `${scope}:registry=${registryUrl}`
|
|
||||||
: `registry=${registryUrl}`;
|
|
||||||
const alwaysAuthString = `always-auth=${alwaysAuth}`;
|
|
||||||
newContents += `${authString}${os.EOL}${registryString}${os.EOL}${alwaysAuthString}`;
|
|
||||||
fs.writeFileSync(fileLocation, newContents);
|
|
||||||
core.exportVariable('NPM_CONFIG_USERCONFIG', fileLocation);
|
|
||||||
// Export empty node_auth_token so npm doesn't complain about not being able to find it
|
|
||||||
core.exportVariable('NODE_AUTH_TOKEN', 'XXXXX-XXXXX-XXXXX-XXXXX');
|
|
||||||
}
|
|
@ -103,7 +103,7 @@ function queryLatestMatch(versionSpec) {
|
|||||||
}
|
}
|
||||||
let versions = [];
|
let versions = [];
|
||||||
let dataUrl = 'https://nodejs.org/dist/index.json';
|
let dataUrl = 'https://nodejs.org/dist/index.json';
|
||||||
let rest = new restm.RestClient('setup-node');
|
let rest = new restm.RestClient('vsts-node-tool');
|
||||||
let nodeVersions = (yield rest.get(dataUrl)).result || [];
|
let nodeVersions = (yield rest.get(dataUrl)).result || [];
|
||||||
nodeVersions.forEach((nodeVersion) => {
|
nodeVersions.forEach((nodeVersion) => {
|
||||||
// ensure this version supports your os and platform
|
// ensure this version supports your os and platform
|
||||||
@ -205,18 +205,18 @@ function acquireNodeFromFallbackLocation(version) {
|
|||||||
exeUrl = `https://nodejs.org/dist/v${version}/win-${os.arch()}/node.exe`;
|
exeUrl = `https://nodejs.org/dist/v${version}/win-${os.arch()}/node.exe`;
|
||||||
libUrl = `https://nodejs.org/dist/v${version}/win-${os.arch()}/node.lib`;
|
libUrl = `https://nodejs.org/dist/v${version}/win-${os.arch()}/node.lib`;
|
||||||
const exePath = yield tc.downloadTool(exeUrl);
|
const exePath = yield tc.downloadTool(exeUrl);
|
||||||
yield io.cp(exePath, path.join(tempDir, 'node.exe'));
|
yield io.mv(exePath, path.join(tempDir, 'node.exe'));
|
||||||
const libPath = yield tc.downloadTool(libUrl);
|
const libPath = yield tc.downloadTool(libUrl);
|
||||||
yield io.cp(libPath, path.join(tempDir, 'node.lib'));
|
yield io.mv(libPath, path.join(tempDir, 'node.lib'));
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
if (err instanceof tc.HTTPError && err.httpStatusCode == 404) {
|
if (err instanceof tc.HTTPError && err.httpStatusCode == 404) {
|
||||||
exeUrl = `https://nodejs.org/dist/v${version}/node.exe`;
|
exeUrl = `https://nodejs.org/dist/v${version}/node.exe`;
|
||||||
libUrl = `https://nodejs.org/dist/v${version}/node.lib`;
|
libUrl = `https://nodejs.org/dist/v${version}/node.lib`;
|
||||||
const exePath = yield tc.downloadTool(exeUrl);
|
const exePath = yield tc.downloadTool(exeUrl);
|
||||||
yield io.cp(exePath, path.join(tempDir, 'node.exe'));
|
yield io.mv(exePath, path.join(tempDir, 'node.exe'));
|
||||||
const libPath = yield tc.downloadTool(libUrl);
|
const libPath = yield tc.downloadTool(libUrl);
|
||||||
yield io.cp(libPath, path.join(tempDir, 'node.lib'));
|
yield io.mv(libPath, path.join(tempDir, 'node.lib'));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw err;
|
throw err;
|
||||||
|
@ -17,7 +17,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const core = __importStar(require("@actions/core"));
|
const core = __importStar(require("@actions/core"));
|
||||||
const installer = __importStar(require("./installer"));
|
const installer = __importStar(require("./installer"));
|
||||||
const auth = __importStar(require("./authutil"));
|
|
||||||
const path = __importStar(require("path"));
|
const path = __importStar(require("path"));
|
||||||
function run() {
|
function run() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
@ -26,19 +25,11 @@ function run() {
|
|||||||
// Version is optional. If supplied, install / use from the tool cache
|
// Version is optional. If supplied, install / use from the tool cache
|
||||||
// If not supplied then task is still used to setup proxy, auth, etc...
|
// If not supplied then task is still used to setup proxy, auth, etc...
|
||||||
//
|
//
|
||||||
let version = core.getInput('version');
|
const version = core.getInput('version');
|
||||||
if (!version) {
|
|
||||||
version = core.getInput('node-version');
|
|
||||||
}
|
|
||||||
if (version) {
|
if (version) {
|
||||||
// TODO: installer doesn't support proxy
|
// TODO: installer doesn't support proxy
|
||||||
yield installer.getNode(version);
|
yield installer.getNode(version);
|
||||||
}
|
}
|
||||||
const registryUrl = core.getInput('registry-url');
|
|
||||||
const alwaysAuth = core.getInput('always-auth');
|
|
||||||
if (registryUrl) {
|
|
||||||
auth.configAuthentication(registryUrl, alwaysAuth);
|
|
||||||
}
|
|
||||||
// TODO: setup proxy from runner proxy config
|
// TODO: setup proxy from runner proxy config
|
||||||
const matchersPath = path.join(__dirname, '..', '.github');
|
const matchersPath = path.join(__dirname, '..', '.github');
|
||||||
console.log(`##[add-matcher]${path.join(matchersPath, 'tsc.json')}`);
|
console.log(`##[add-matcher]${path.join(matchersPath, 'tsc.json')}`);
|
||||||
|
15
node_modules/.bin/semver
generated
vendored
15
node_modules/.bin/semver
generated
vendored
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
||||||
|
|
||||||
case `uname` in
|
|
||||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -x "$basedir/node" ]; then
|
|
||||||
"$basedir/node" "$basedir/../semver/bin/semver" "$@"
|
|
||||||
ret=$?
|
|
||||||
else
|
|
||||||
node "$basedir/../semver/bin/semver" "$@"
|
|
||||||
ret=$?
|
|
||||||
fi
|
|
||||||
exit $ret
|
|
1
node_modules/.bin/semver
generated
vendored
Symbolic link
1
node_modules/.bin/semver
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../semver/bin/semver
|
7
node_modules/.bin/semver.cmd
generated
vendored
7
node_modules/.bin/semver.cmd
generated
vendored
@ -1,7 +0,0 @@
|
|||||||
@IF EXIST "%~dp0\node.exe" (
|
|
||||||
"%~dp0\node.exe" "%~dp0\..\semver\bin\semver" %*
|
|
||||||
) ELSE (
|
|
||||||
@SETLOCAL
|
|
||||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
|
||||||
node "%~dp0\..\semver\bin\semver" %*
|
|
||||||
)
|
|
1
node_modules/.bin/shjs
generated
vendored
Symbolic link
1
node_modules/.bin/shjs
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../shelljs/bin/shjs
|
15
node_modules/.bin/uuid
generated
vendored
15
node_modules/.bin/uuid
generated
vendored
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
||||||
|
|
||||||
case `uname` in
|
|
||||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -x "$basedir/node" ]; then
|
|
||||||
"$basedir/node" "$basedir/../uuid/bin/uuid" "$@"
|
|
||||||
ret=$?
|
|
||||||
else
|
|
||||||
node "$basedir/../uuid/bin/uuid" "$@"
|
|
||||||
ret=$?
|
|
||||||
fi
|
|
||||||
exit $ret
|
|
1
node_modules/.bin/uuid
generated
vendored
Symbolic link
1
node_modules/.bin/uuid
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../uuid/bin/uuid
|
7
node_modules/.bin/uuid.cmd
generated
vendored
7
node_modules/.bin/uuid.cmd
generated
vendored
@ -1,7 +0,0 @@
|
|||||||
@IF EXIST "%~dp0\node.exe" (
|
|
||||||
"%~dp0\node.exe" "%~dp0\..\uuid\bin\uuid" %*
|
|
||||||
) ELSE (
|
|
||||||
@SETLOCAL
|
|
||||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
|
||||||
node "%~dp0\..\uuid\bin\uuid" %*
|
|
||||||
)
|
|
15
node_modules/.bin/which
generated
vendored
15
node_modules/.bin/which
generated
vendored
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
||||||
|
|
||||||
case `uname` in
|
|
||||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -x "$basedir/node" ]; then
|
|
||||||
"$basedir/node" "$basedir/../which/bin/which" "$@"
|
|
||||||
ret=$?
|
|
||||||
else
|
|
||||||
node "$basedir/../which/bin/which" "$@"
|
|
||||||
ret=$?
|
|
||||||
fi
|
|
||||||
exit $ret
|
|
7
node_modules/.bin/which.cmd
generated
vendored
7
node_modules/.bin/which.cmd
generated
vendored
@ -1,7 +0,0 @@
|
|||||||
@IF EXIST "%~dp0\node.exe" (
|
|
||||||
"%~dp0\node.exe" "%~dp0\..\which\bin\which" %*
|
|
||||||
) ELSE (
|
|
||||||
@SETLOCAL
|
|
||||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
|
||||||
node "%~dp0\..\which\bin\which" %*
|
|
||||||
)
|
|
7
node_modules/@actions/core/LICENSE.md
generated
vendored
7
node_modules/@actions/core/LICENSE.md
generated
vendored
@ -1,7 +0,0 @@
|
|||||||
Copyright 2019 GitHub
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
88
node_modules/@actions/core/README.md
generated
vendored
88
node_modules/@actions/core/README.md
generated
vendored
@ -1,81 +1,7 @@
|
|||||||
# `@actions/core`
|
# `@actions/core`
|
||||||
|
|
||||||
> Core functions for setting results, logging, registering secrets and exporting variables across actions
|
> Core functions for setting results, logging, registering secrets and exporting variables across actions
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
#### Inputs/Outputs
|
See [src/core.ts](src/core.ts).
|
||||||
|
|
||||||
You can use this library to get inputs or set outputs:
|
|
||||||
|
|
||||||
```
|
|
||||||
const core = require('@actions/core');
|
|
||||||
|
|
||||||
const myInput = core.getInput('inputName', { required: true });
|
|
||||||
|
|
||||||
// Do stuff
|
|
||||||
|
|
||||||
core.setOutput('outputKey', 'outputVal');
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Exporting variables/secrets
|
|
||||||
|
|
||||||
You can also export variables and secrets for future steps. Variables get set in the environment automatically, while secrets must be scoped into the environment from a workflow using `{{ secret.FOO }}`. Secrets will also be masked from the logs:
|
|
||||||
|
|
||||||
```
|
|
||||||
const core = require('@actions/core');
|
|
||||||
|
|
||||||
// Do stuff
|
|
||||||
|
|
||||||
core.exportVariable('envVar', 'Val');
|
|
||||||
core.exportSecret('secretVar', variableWithSecretValue);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### PATH Manipulation
|
|
||||||
|
|
||||||
You can explicitly add items to the path for all remaining steps in a workflow:
|
|
||||||
|
|
||||||
```
|
|
||||||
const core = require('@actions/core');
|
|
||||||
|
|
||||||
core.addPath('pathToTool');
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Exit codes
|
|
||||||
|
|
||||||
You should use this library to set the failing exit code for your action:
|
|
||||||
|
|
||||||
```
|
|
||||||
const core = require('@actions/core');
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Do stuff
|
|
||||||
}
|
|
||||||
catch (err) {
|
|
||||||
// setFailed logs the message and sets a failing exit code
|
|
||||||
core.setFailed(`Action failed with error ${err}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Logging
|
|
||||||
|
|
||||||
Finally, this library provides some utilities for logging:
|
|
||||||
|
|
||||||
```
|
|
||||||
const core = require('@actions/core');
|
|
||||||
|
|
||||||
const myInput = core.getInput('input');
|
|
||||||
try {
|
|
||||||
core.debug('Inside try block');
|
|
||||||
|
|
||||||
if (!myInput) {
|
|
||||||
core.warning('myInput wasnt set');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do stuff
|
|
||||||
}
|
|
||||||
catch (err) {
|
|
||||||
core.error('Error ${err}, action may still succeed though');
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
32
node_modules/@actions/core/lib/command.d.ts
generated
vendored
32
node_modules/@actions/core/lib/command.d.ts
generated
vendored
@ -1,16 +1,16 @@
|
|||||||
interface CommandProperties {
|
interface CommandProperties {
|
||||||
[key: string]: string;
|
[key: string]: string;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Commands
|
* Commands
|
||||||
*
|
*
|
||||||
* Command Format:
|
* Command Format:
|
||||||
* ##[name key=value;key=value]message
|
* ##[name key=value;key=value]message
|
||||||
*
|
*
|
||||||
* Examples:
|
* Examples:
|
||||||
* ##[warning]This is the user warning message
|
* ##[warning]This is the user warning message
|
||||||
* ##[set-secret name=mypassword]definatelyNotAPassword!
|
* ##[set-secret name=mypassword]definatelyNotAPassword!
|
||||||
*/
|
*/
|
||||||
export declare function issueCommand(command: string, properties: CommandProperties, message: string): void;
|
export declare function issueCommand(command: string, properties: CommandProperties, message: string): void;
|
||||||
export declare function issue(name: string, message: string): void;
|
export declare function issue(name: string, message: string): void;
|
||||||
export {};
|
export {};
|
||||||
|
130
node_modules/@actions/core/lib/command.js
generated
vendored
130
node_modules/@actions/core/lib/command.js
generated
vendored
@ -1,66 +1,66 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const os = require("os");
|
const os = require("os");
|
||||||
/**
|
/**
|
||||||
* Commands
|
* Commands
|
||||||
*
|
*
|
||||||
* Command Format:
|
* Command Format:
|
||||||
* ##[name key=value;key=value]message
|
* ##[name key=value;key=value]message
|
||||||
*
|
*
|
||||||
* Examples:
|
* Examples:
|
||||||
* ##[warning]This is the user warning message
|
* ##[warning]This is the user warning message
|
||||||
* ##[set-secret name=mypassword]definatelyNotAPassword!
|
* ##[set-secret name=mypassword]definatelyNotAPassword!
|
||||||
*/
|
*/
|
||||||
function issueCommand(command, properties, message) {
|
function issueCommand(command, properties, message) {
|
||||||
const cmd = new Command(command, properties, message);
|
const cmd = new Command(command, properties, message);
|
||||||
process.stdout.write(cmd.toString() + os.EOL);
|
process.stdout.write(cmd.toString() + os.EOL);
|
||||||
}
|
}
|
||||||
exports.issueCommand = issueCommand;
|
exports.issueCommand = issueCommand;
|
||||||
function issue(name, message) {
|
function issue(name, message) {
|
||||||
issueCommand(name, {}, message);
|
issueCommand(name, {}, message);
|
||||||
}
|
}
|
||||||
exports.issue = issue;
|
exports.issue = issue;
|
||||||
const CMD_PREFIX = '##[';
|
const CMD_PREFIX = '##[';
|
||||||
class Command {
|
class Command {
|
||||||
constructor(command, properties, message) {
|
constructor(command, properties, message) {
|
||||||
if (!command) {
|
if (!command) {
|
||||||
command = 'missing.command';
|
command = 'missing.command';
|
||||||
}
|
}
|
||||||
this.command = command;
|
this.command = command;
|
||||||
this.properties = properties;
|
this.properties = properties;
|
||||||
this.message = message;
|
this.message = message;
|
||||||
}
|
}
|
||||||
toString() {
|
toString() {
|
||||||
let cmdStr = CMD_PREFIX + this.command;
|
let cmdStr = CMD_PREFIX + this.command;
|
||||||
if (this.properties && Object.keys(this.properties).length > 0) {
|
if (this.properties && Object.keys(this.properties).length > 0) {
|
||||||
cmdStr += ' ';
|
cmdStr += ' ';
|
||||||
for (const key in this.properties) {
|
for (const key in this.properties) {
|
||||||
if (this.properties.hasOwnProperty(key)) {
|
if (this.properties.hasOwnProperty(key)) {
|
||||||
const val = this.properties[key];
|
const val = this.properties[key];
|
||||||
if (val) {
|
if (val) {
|
||||||
// safely append the val - avoid blowing up when attempting to
|
// safely append the val - avoid blowing up when attempting to
|
||||||
// call .replace() if message is not a string for some reason
|
// call .replace() if message is not a string for some reason
|
||||||
cmdStr += `${key}=${escape(`${val || ''}`)};`;
|
cmdStr += `${key}=${escape(`${val || ''}`)};`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cmdStr += ']';
|
cmdStr += ']';
|
||||||
// safely append the message - avoid blowing up when attempting to
|
// safely append the message - avoid blowing up when attempting to
|
||||||
// call .replace() if message is not a string for some reason
|
// call .replace() if message is not a string for some reason
|
||||||
const message = `${this.message || ''}`;
|
const message = `${this.message || ''}`;
|
||||||
cmdStr += escapeData(message);
|
cmdStr += escapeData(message);
|
||||||
return cmdStr;
|
return cmdStr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function escapeData(s) {
|
function escapeData(s) {
|
||||||
return s.replace(/\r/g, '%0D').replace(/\n/g, '%0A');
|
return s.replace(/\r/g, '%0D').replace(/\n/g, '%0A');
|
||||||
}
|
}
|
||||||
function escape(s) {
|
function escape(s) {
|
||||||
return s
|
return s
|
||||||
.replace(/\r/g, '%0D')
|
.replace(/\r/g, '%0D')
|
||||||
.replace(/\n/g, '%0A')
|
.replace(/\n/g, '%0A')
|
||||||
.replace(/]/g, '%5D')
|
.replace(/]/g, '%5D')
|
||||||
.replace(/;/g, '%3B');
|
.replace(/;/g, '%3B');
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=command.js.map
|
//# sourceMappingURL=command.js.map
|
130
node_modules/@actions/core/lib/core.d.ts
generated
vendored
130
node_modules/@actions/core/lib/core.d.ts
generated
vendored
@ -1,73 +1,57 @@
|
|||||||
/**
|
/**
|
||||||
* Interface for getInput options
|
* Interface for getInput options
|
||||||
*/
|
*/
|
||||||
export interface InputOptions {
|
export interface InputOptions {
|
||||||
/** Optional. Whether the input is required. If required and not present, will throw. Defaults to false */
|
/** Optional. Whether the input is required. If required and not present, will throw. Defaults to false */
|
||||||
required?: boolean;
|
required?: boolean;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* The code to exit an action
|
* sets env variable for this action and future actions in the job
|
||||||
*/
|
* @param name the name of the variable to set
|
||||||
export declare enum ExitCode {
|
* @param val the value of the variable
|
||||||
/**
|
*/
|
||||||
* A code indicating that the action was successful
|
export declare function exportVariable(name: string, val: string): void;
|
||||||
*/
|
/**
|
||||||
Success = 0,
|
* exports the variable and registers a secret which will get masked from logs
|
||||||
/**
|
* @param name the name of the variable to set
|
||||||
* A code indicating that the action was a failure
|
* @param val value of the secret
|
||||||
*/
|
*/
|
||||||
Failure = 1
|
export declare function exportSecret(name: string, val: string): void;
|
||||||
}
|
/**
|
||||||
/**
|
* Prepends inputPath to the PATH (for this action and future actions)
|
||||||
* sets env variable for this action and future actions in the job
|
* @param inputPath
|
||||||
* @param name the name of the variable to set
|
*/
|
||||||
* @param val the value of the variable
|
export declare function addPath(inputPath: string): void;
|
||||||
*/
|
/**
|
||||||
export declare function exportVariable(name: string, val: string): void;
|
* Gets the value of an input. The value is also trimmed.
|
||||||
/**
|
*
|
||||||
* exports the variable and registers a secret which will get masked from logs
|
* @param name name of the input to get
|
||||||
* @param name the name of the variable to set
|
* @param options optional. See InputOptions.
|
||||||
* @param val value of the secret
|
* @returns string
|
||||||
*/
|
*/
|
||||||
export declare function exportSecret(name: string, val: string): void;
|
export declare function getInput(name: string, options?: InputOptions): string;
|
||||||
/**
|
/**
|
||||||
* Prepends inputPath to the PATH (for this action and future actions)
|
* Sets the action status to neutral
|
||||||
* @param inputPath
|
*/
|
||||||
*/
|
export declare function setNeutral(): void;
|
||||||
export declare function addPath(inputPath: string): void;
|
/**
|
||||||
/**
|
* Sets the action status to failed.
|
||||||
* Gets the value of an input. The value is also trimmed.
|
* When the action exits it will be with an exit code of 1
|
||||||
*
|
* @param message add error issue message
|
||||||
* @param name name of the input to get
|
*/
|
||||||
* @param options optional. See InputOptions.
|
export declare function setFailed(message: string): void;
|
||||||
* @returns string
|
/**
|
||||||
*/
|
* Writes debug message to user log
|
||||||
export declare function getInput(name: string, options?: InputOptions): string;
|
* @param message debug message
|
||||||
/**
|
*/
|
||||||
* Sets the value of an output.
|
export declare function debug(message: string): void;
|
||||||
*
|
/**
|
||||||
* @param name name of the output to set
|
* Adds an error issue
|
||||||
* @param value value to store
|
* @param message error issue message
|
||||||
*/
|
*/
|
||||||
export declare function setOutput(name: string, value: string): void;
|
export declare function error(message: string): void;
|
||||||
/**
|
/**
|
||||||
* Sets the action status to failed.
|
* Adds an warning issue
|
||||||
* When the action exits it will be with an exit code of 1
|
* @param message warning issue message
|
||||||
* @param message add error issue message
|
*/
|
||||||
*/
|
export declare function warning(message: string): void;
|
||||||
export declare function setFailed(message: string): void;
|
|
||||||
/**
|
|
||||||
* Writes debug message to user log
|
|
||||||
* @param message debug message
|
|
||||||
*/
|
|
||||||
export declare function debug(message: string): void;
|
|
||||||
/**
|
|
||||||
* Adds an error issue
|
|
||||||
* @param message error issue message
|
|
||||||
*/
|
|
||||||
export declare function error(message: string): void;
|
|
||||||
/**
|
|
||||||
* Adds an warning issue
|
|
||||||
* @param message warning issue message
|
|
||||||
*/
|
|
||||||
export declare function warning(message: string): void;
|
|
||||||
|
214
node_modules/@actions/core/lib/core.js
generated
vendored
214
node_modules/@actions/core/lib/core.js
generated
vendored
@ -1,116 +1,100 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const command_1 = require("./command");
|
const exit_1 = require("@actions/exit");
|
||||||
const path = require("path");
|
const command_1 = require("./command");
|
||||||
/**
|
const path = require("path");
|
||||||
* The code to exit an action
|
//-----------------------------------------------------------------------
|
||||||
*/
|
// Variables
|
||||||
var ExitCode;
|
//-----------------------------------------------------------------------
|
||||||
(function (ExitCode) {
|
/**
|
||||||
/**
|
* sets env variable for this action and future actions in the job
|
||||||
* A code indicating that the action was successful
|
* @param name the name of the variable to set
|
||||||
*/
|
* @param val the value of the variable
|
||||||
ExitCode[ExitCode["Success"] = 0] = "Success";
|
*/
|
||||||
/**
|
function exportVariable(name, val) {
|
||||||
* A code indicating that the action was a failure
|
process.env[name] = val;
|
||||||
*/
|
command_1.issueCommand('set-env', { name }, val);
|
||||||
ExitCode[ExitCode["Failure"] = 1] = "Failure";
|
}
|
||||||
})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));
|
exports.exportVariable = exportVariable;
|
||||||
//-----------------------------------------------------------------------
|
/**
|
||||||
// Variables
|
* exports the variable and registers a secret which will get masked from logs
|
||||||
//-----------------------------------------------------------------------
|
* @param name the name of the variable to set
|
||||||
/**
|
* @param val value of the secret
|
||||||
* sets env variable for this action and future actions in the job
|
*/
|
||||||
* @param name the name of the variable to set
|
function exportSecret(name, val) {
|
||||||
* @param val the value of the variable
|
exportVariable(name, val);
|
||||||
*/
|
command_1.issueCommand('set-secret', {}, val);
|
||||||
function exportVariable(name, val) {
|
}
|
||||||
process.env[name] = val;
|
exports.exportSecret = exportSecret;
|
||||||
command_1.issueCommand('set-env', { name }, val);
|
/**
|
||||||
}
|
* Prepends inputPath to the PATH (for this action and future actions)
|
||||||
exports.exportVariable = exportVariable;
|
* @param inputPath
|
||||||
/**
|
*/
|
||||||
* exports the variable and registers a secret which will get masked from logs
|
function addPath(inputPath) {
|
||||||
* @param name the name of the variable to set
|
command_1.issueCommand('add-path', {}, inputPath);
|
||||||
* @param val value of the secret
|
process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
|
||||||
*/
|
}
|
||||||
function exportSecret(name, val) {
|
exports.addPath = addPath;
|
||||||
exportVariable(name, val);
|
/**
|
||||||
command_1.issueCommand('set-secret', {}, val);
|
* Gets the value of an input. The value is also trimmed.
|
||||||
}
|
*
|
||||||
exports.exportSecret = exportSecret;
|
* @param name name of the input to get
|
||||||
/**
|
* @param options optional. See InputOptions.
|
||||||
* Prepends inputPath to the PATH (for this action and future actions)
|
* @returns string
|
||||||
* @param inputPath
|
*/
|
||||||
*/
|
function getInput(name, options) {
|
||||||
function addPath(inputPath) {
|
const val = process.env[`INPUT_${name.replace(' ', '_').toUpperCase()}`] || '';
|
||||||
command_1.issueCommand('add-path', {}, inputPath);
|
if (options && options.required && !val) {
|
||||||
process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
|
throw new Error(`Input required and not supplied: ${name}`);
|
||||||
}
|
}
|
||||||
exports.addPath = addPath;
|
return val.trim();
|
||||||
/**
|
}
|
||||||
* Gets the value of an input. The value is also trimmed.
|
exports.getInput = getInput;
|
||||||
*
|
//-----------------------------------------------------------------------
|
||||||
* @param name name of the input to get
|
// Results
|
||||||
* @param options optional. See InputOptions.
|
//-----------------------------------------------------------------------
|
||||||
* @returns string
|
/**
|
||||||
*/
|
* Sets the action status to neutral
|
||||||
function getInput(name, options) {
|
*/
|
||||||
const val = process.env[`INPUT_${name.replace(' ', '_').toUpperCase()}`] || '';
|
function setNeutral() {
|
||||||
if (options && options.required && !val) {
|
process.exitCode = exit_1.ExitCode.Neutral;
|
||||||
throw new Error(`Input required and not supplied: ${name}`);
|
}
|
||||||
}
|
exports.setNeutral = setNeutral;
|
||||||
return val.trim();
|
/**
|
||||||
}
|
* Sets the action status to failed.
|
||||||
exports.getInput = getInput;
|
* When the action exits it will be with an exit code of 1
|
||||||
/**
|
* @param message add error issue message
|
||||||
* Sets the value of an output.
|
*/
|
||||||
*
|
function setFailed(message) {
|
||||||
* @param name name of the output to set
|
process.exitCode = exit_1.ExitCode.Failure;
|
||||||
* @param value value to store
|
error(message);
|
||||||
*/
|
}
|
||||||
function setOutput(name, value) {
|
exports.setFailed = setFailed;
|
||||||
command_1.issueCommand('set-output', { name }, value);
|
//-----------------------------------------------------------------------
|
||||||
}
|
// Logging Commands
|
||||||
exports.setOutput = setOutput;
|
//-----------------------------------------------------------------------
|
||||||
//-----------------------------------------------------------------------
|
/**
|
||||||
// Results
|
* Writes debug message to user log
|
||||||
//-----------------------------------------------------------------------
|
* @param message debug message
|
||||||
/**
|
*/
|
||||||
* Sets the action status to failed.
|
function debug(message) {
|
||||||
* When the action exits it will be with an exit code of 1
|
command_1.issueCommand('debug', {}, message);
|
||||||
* @param message add error issue message
|
}
|
||||||
*/
|
exports.debug = debug;
|
||||||
function setFailed(message) {
|
/**
|
||||||
process.exitCode = ExitCode.Failure;
|
* Adds an error issue
|
||||||
error(message);
|
* @param message error issue message
|
||||||
}
|
*/
|
||||||
exports.setFailed = setFailed;
|
function error(message) {
|
||||||
//-----------------------------------------------------------------------
|
command_1.issue('error', message);
|
||||||
// Logging Commands
|
}
|
||||||
//-----------------------------------------------------------------------
|
exports.error = error;
|
||||||
/**
|
/**
|
||||||
* Writes debug message to user log
|
* Adds an warning issue
|
||||||
* @param message debug message
|
* @param message warning issue message
|
||||||
*/
|
*/
|
||||||
function debug(message) {
|
function warning(message) {
|
||||||
command_1.issueCommand('debug', {}, message);
|
command_1.issue('warning', message);
|
||||||
}
|
}
|
||||||
exports.debug = debug;
|
exports.warning = warning;
|
||||||
/**
|
|
||||||
* Adds an error issue
|
|
||||||
* @param message error issue message
|
|
||||||
*/
|
|
||||||
function error(message) {
|
|
||||||
command_1.issue('error', message);
|
|
||||||
}
|
|
||||||
exports.error = error;
|
|
||||||
/**
|
|
||||||
* Adds an warning issue
|
|
||||||
* @param message warning issue message
|
|
||||||
*/
|
|
||||||
function warning(message) {
|
|
||||||
command_1.issue('warning', message);
|
|
||||||
}
|
|
||||||
exports.warning = warning;
|
|
||||||
//# sourceMappingURL=core.js.map
|
//# sourceMappingURL=core.js.map
|
2
node_modules/@actions/core/lib/core.js.map
generated
vendored
2
node_modules/@actions/core/lib/core.js.map
generated
vendored
@ -1 +1 @@
|
|||||||
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":";;AAAA,uCAA6C;AAE7C,6BAA4B;AAU5B;;GAEG;AACH,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB;;OAEG;IACH,6CAAW,CAAA;IAEX;;OAEG;IACH,6CAAW,CAAA;AACb,CAAC,EAVW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAUnB;AAED,yEAAyE;AACzE,YAAY;AACZ,yEAAyE;AAEzE;;;;GAIG;AACH,SAAgB,cAAc,CAAC,IAAY,EAAE,GAAW;IACtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;IACvB,sBAAY,CAAC,SAAS,EAAE,EAAC,IAAI,EAAC,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC;AAHD,wCAGC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,GAAW;IACpD,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACzB,sBAAY,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;AACrC,CAAC;AAHD,oCAGC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,SAAiB;IACvC,sBAAY,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AAC7E,CAAC;AAHD,0BAGC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,IAAY,EAAE,OAAsB;IAC3D,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IACpE,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAA;KAC5D;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC;AARD,4BAQC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,IAAY,EAAE,KAAa;IACnD,sBAAY,CAAC,YAAY,EAAE,EAAC,IAAI,EAAC,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC;AAFD,8BAEC;AAED,yEAAyE;AACzE,UAAU;AACV,yEAAyE;AAEzE;;;;GAIG;AACH,SAAgB,SAAS,CAAC,OAAe;IACvC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAA;IACnC,KAAK,CAAC,OAAO,CAAC,CAAA;AAChB,CAAC;AAHD,8BAGC;AAED,yEAAyE;AACzE,mBAAmB;AACnB,yEAAyE;AAEzE;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,sBAAY,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,eAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AACzB,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,OAAe;IACrC,eAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAC3B,CAAC;AAFD,0BAEC"}
|
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":";;AAAA,wCAAsC;AACtC,uCAA6C;AAE7C,6BAA4B;AAU5B,yEAAyE;AACzE,YAAY;AACZ,yEAAyE;AAEzE;;;;GAIG;AACH,SAAgB,cAAc,CAAC,IAAY,EAAE,GAAW;IACtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;IACvB,sBAAY,CAAC,SAAS,EAAE,EAAC,IAAI,EAAC,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC;AAHD,wCAGC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,GAAW;IACpD,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACzB,sBAAY,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;AACrC,CAAC;AAHD,oCAGC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,SAAiB;IACvC,sBAAY,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AAC7E,CAAC;AAHD,0BAGC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,IAAY,EAAE,OAAsB;IAC3D,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IACpE,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAA;KAC5D;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC;AARD,4BAQC;AAED,yEAAyE;AACzE,UAAU;AACV,yEAAyE;AAEzE;;GAEG;AACH,SAAgB,UAAU;IACxB,OAAO,CAAC,QAAQ,GAAG,eAAQ,CAAC,OAAO,CAAA;AACrC,CAAC;AAFD,gCAEC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,OAAe;IACvC,OAAO,CAAC,QAAQ,GAAG,eAAQ,CAAC,OAAO,CAAA;IACnC,KAAK,CAAC,OAAO,CAAC,CAAA;AAChB,CAAC;AAHD,8BAGC;AAED,yEAAyE;AACzE,mBAAmB;AACnB,yEAAyE;AAEzE;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,sBAAY,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,eAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AACzB,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,OAAe;IACrC,eAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAC3B,CAAC;AAFD,0BAEC"}
|
32
node_modules/@actions/core/package.json
generated
vendored
32
node_modules/@actions/core/package.json
generated
vendored
@ -1,33 +1,36 @@
|
|||||||
{
|
{
|
||||||
"_from": "@actions/core@^1.0.0",
|
"_from": "file:toolkit/actions-core-0.0.0.tgz",
|
||||||
"_id": "@actions/core@1.0.0",
|
"_id": "@actions/core@0.0.0",
|
||||||
"_inBundle": false,
|
"_inBundle": false,
|
||||||
"_integrity": "sha512-aMIlkx96XH4E/2YZtEOeyrYQfhlas9jIRkfGPqMwXD095Rdkzo4lB6ZmbxPQSzD+e1M+Xsm98ZhuSMYGv/AlqA==",
|
"_integrity": "sha512-58ituSV1rzBMmmsWoFDnrnsT+Wm4kD/u9NgAGbPvZ7rQHWluYtD5bDbIsjDC6rKFuhqytkxDJPsF/TWBdgc/nA==",
|
||||||
"_location": "/@actions/core",
|
"_location": "/@actions/core",
|
||||||
"_phantomChildren": {},
|
"_phantomChildren": {},
|
||||||
"_requested": {
|
"_requested": {
|
||||||
"type": "range",
|
"type": "file",
|
||||||
"registry": true,
|
"where": "/Users/chrispat/Source/work/actions/setup-node",
|
||||||
"raw": "@actions/core@^1.0.0",
|
"raw": "@actions/core@file:toolkit/actions-core-0.0.0.tgz",
|
||||||
"name": "@actions/core",
|
"name": "@actions/core",
|
||||||
"escapedName": "@actions%2fcore",
|
"escapedName": "@actions%2fcore",
|
||||||
"scope": "@actions",
|
"scope": "@actions",
|
||||||
"rawSpec": "^1.0.0",
|
"rawSpec": "file:toolkit/actions-core-0.0.0.tgz",
|
||||||
"saveSpec": null,
|
"saveSpec": "file:toolkit/actions-core-0.0.0.tgz",
|
||||||
"fetchSpec": "^1.0.0"
|
"fetchSpec": "/Users/chrispat/Source/work/actions/setup-node/toolkit/actions-core-0.0.0.tgz"
|
||||||
},
|
},
|
||||||
"_requiredBy": [
|
"_requiredBy": [
|
||||||
"/",
|
"/",
|
||||||
"/@actions/tool-cache"
|
"/@actions/tool-cache"
|
||||||
],
|
],
|
||||||
"_resolved": "https://registry.npmjs.org/@actions/core/-/core-1.0.0.tgz",
|
"_resolved": "/Users/chrispat/Source/work/actions/setup-node/toolkit/actions-core-0.0.0.tgz",
|
||||||
"_shasum": "4a090a2e958cc300b9ea802331034d5faf42d239",
|
"_shasum": "346d90a534fa6c5021bc2e1b732574fd2c66fc35",
|
||||||
"_spec": "@actions/core@^1.0.0",
|
"_spec": "@actions/core@file:toolkit/actions-core-0.0.0.tgz",
|
||||||
"_where": "C:\\Users\\damccorm\\Documents\\setup-node",
|
"_where": "/Users/chrispat/Source/work/actions/setup-node",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/actions/toolkit/issues"
|
"url": "https://github.com/actions/toolkit/issues"
|
||||||
},
|
},
|
||||||
"bundleDependencies": false,
|
"bundleDependencies": false,
|
||||||
|
"dependencies": {
|
||||||
|
"@actions/exit": "^0.0.0"
|
||||||
|
},
|
||||||
"deprecated": false,
|
"deprecated": false,
|
||||||
"description": "Actions core lib",
|
"description": "Actions core lib",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -40,7 +43,6 @@
|
|||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
"gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55",
|
|
||||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/core",
|
"homepage": "https://github.com/actions/toolkit/tree/master/packages/core",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"core",
|
"core",
|
||||||
@ -60,5 +62,5 @@
|
|||||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||||
"tsc": "tsc"
|
"tsc": "tsc"
|
||||||
},
|
},
|
||||||
"version": "1.0.0"
|
"version": "0.0.0"
|
||||||
}
|
}
|
||||||
|
7
node_modules/@actions/exec/LICENSE.md
generated
vendored
7
node_modules/@actions/exec/LICENSE.md
generated
vendored
@ -1,7 +0,0 @@
|
|||||||
Copyright 2019 GitHub
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
67
node_modules/@actions/exec/README.md
generated
vendored
67
node_modules/@actions/exec/README.md
generated
vendored
@ -1,60 +1,7 @@
|
|||||||
# `@actions/exec`
|
# `@actions/exec`
|
||||||
|
|
||||||
## Usage
|
> Functions necessary for running tools on the command line
|
||||||
|
|
||||||
#### Basic
|
## Usage
|
||||||
|
|
||||||
You can use this package to execute your tools on the command line in a cross platform way:
|
See [src/exec.ts](src/exec.ts).
|
||||||
|
|
||||||
```
|
|
||||||
const exec = require('@actions/exec');
|
|
||||||
|
|
||||||
await exec.exec('node index.js');
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Args
|
|
||||||
|
|
||||||
You can also pass in arg arrays:
|
|
||||||
|
|
||||||
```
|
|
||||||
const exec = require('@actions/exec');
|
|
||||||
|
|
||||||
await exec.exec('node', ['index.js', 'foo=bar']);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Output/options
|
|
||||||
|
|
||||||
Capture output or specify [other options](https://github.com/actions/toolkit/blob/d9347d4ab99fd507c0b9104b2cf79fb44fcc827d/packages/exec/src/interfaces.ts#L5):
|
|
||||||
|
|
||||||
```
|
|
||||||
const exec = require('@actions/exec');
|
|
||||||
|
|
||||||
const myOutput = '';
|
|
||||||
const myError = '';
|
|
||||||
|
|
||||||
const options = {};
|
|
||||||
options.listeners = {
|
|
||||||
stdout: (data: Buffer) => {
|
|
||||||
myOutput += data.toString();
|
|
||||||
},
|
|
||||||
stderr: (data: Buffer) => {
|
|
||||||
myError += data.toString();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
options.cwd = './lib';
|
|
||||||
|
|
||||||
await exec.exec('node', ['index.js', 'foo=bar'], options);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Exec tools not in the PATH
|
|
||||||
|
|
||||||
You can use it in conjunction with the `which` function from `@actions/io` to execute tools that are not in the PATH:
|
|
||||||
|
|
||||||
```
|
|
||||||
const exec = require('@actions/exec');
|
|
||||||
const io = require('@actions/io');
|
|
||||||
|
|
||||||
const pythonPath: string = await io.which('python', true)
|
|
||||||
|
|
||||||
await exec.exec(`"${pythonPath}"`, ['main.py']);
|
|
||||||
```
|
|
24
node_modules/@actions/exec/lib/exec.d.ts
generated
vendored
24
node_modules/@actions/exec/lib/exec.d.ts
generated
vendored
@ -1,12 +1,12 @@
|
|||||||
import * as im from './interfaces';
|
import * as im from './interfaces';
|
||||||
/**
|
/**
|
||||||
* Exec a command.
|
* Exec a command.
|
||||||
* Output will be streamed to the live console.
|
* Output will be streamed to the live console.
|
||||||
* Returns promise with return code
|
* Returns promise with return code
|
||||||
*
|
*
|
||||||
* @param commandLine command to execute (can include additional args). Must be correctly escaped.
|
* @param commandLine command to execute (can include additional args). Must be correctly escaped.
|
||||||
* @param args optional arguments for tool. Escaping is handled by the lib.
|
* @param args optional arguments for tool. Escaping is handled by the lib.
|
||||||
* @param options optional exec options. See ExecOptions
|
* @param options optional exec options. See ExecOptions
|
||||||
* @returns Promise<number> exit code
|
* @returns Promise<number> exit code
|
||||||
*/
|
*/
|
||||||
export declare function exec(commandLine: string, args?: string[], options?: im.ExecOptions): Promise<number>;
|
export declare function exec(commandLine: string, args?: string[], options?: im.ExecOptions): Promise<number>;
|
||||||
|
70
node_modules/@actions/exec/lib/exec.js
generated
vendored
70
node_modules/@actions/exec/lib/exec.js
generated
vendored
@ -1,36 +1,36 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
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 rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const tr = require("./toolrunner");
|
const tr = require("./toolrunner");
|
||||||
/**
|
/**
|
||||||
* Exec a command.
|
* Exec a command.
|
||||||
* Output will be streamed to the live console.
|
* Output will be streamed to the live console.
|
||||||
* Returns promise with return code
|
* Returns promise with return code
|
||||||
*
|
*
|
||||||
* @param commandLine command to execute (can include additional args). Must be correctly escaped.
|
* @param commandLine command to execute (can include additional args). Must be correctly escaped.
|
||||||
* @param args optional arguments for tool. Escaping is handled by the lib.
|
* @param args optional arguments for tool. Escaping is handled by the lib.
|
||||||
* @param options optional exec options. See ExecOptions
|
* @param options optional exec options. See ExecOptions
|
||||||
* @returns Promise<number> exit code
|
* @returns Promise<number> exit code
|
||||||
*/
|
*/
|
||||||
function exec(commandLine, args, options) {
|
function exec(commandLine, args, options) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const commandArgs = tr.argStringToArray(commandLine);
|
const commandArgs = tr.argStringToArray(commandLine);
|
||||||
if (commandArgs.length === 0) {
|
if (commandArgs.length === 0) {
|
||||||
throw new Error(`Parameter 'commandLine' cannot be null or empty.`);
|
throw new Error(`Parameter 'commandLine' cannot be null or empty.`);
|
||||||
}
|
}
|
||||||
// Path to tool to execute should be first arg
|
// Path to tool to execute should be first arg
|
||||||
const toolPath = commandArgs[0];
|
const toolPath = commandArgs[0];
|
||||||
args = commandArgs.slice(1).concat(args || []);
|
args = commandArgs.slice(1).concat(args || []);
|
||||||
const runner = new tr.ToolRunner(toolPath, args, options);
|
const runner = new tr.ToolRunner(toolPath, args, options);
|
||||||
return runner.exec();
|
return runner.exec();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.exec = exec;
|
exports.exec = exec;
|
||||||
//# sourceMappingURL=exec.js.map
|
//# sourceMappingURL=exec.js.map
|
70
node_modules/@actions/exec/lib/interfaces.d.ts
generated
vendored
70
node_modules/@actions/exec/lib/interfaces.d.ts
generated
vendored
@ -1,35 +1,35 @@
|
|||||||
/// <reference types="node" />
|
/// <reference types="node" />
|
||||||
import * as stream from 'stream';
|
import * as stream from 'stream';
|
||||||
/**
|
/**
|
||||||
* Interface for exec options
|
* Interface for exec options
|
||||||
*/
|
*/
|
||||||
export interface ExecOptions {
|
export interface ExecOptions {
|
||||||
/** optional working directory. defaults to current */
|
/** optional working directory. defaults to current */
|
||||||
cwd?: string;
|
cwd?: string;
|
||||||
/** optional envvar dictionary. defaults to current process's env */
|
/** optional envvar dictionary. defaults to current process's env */
|
||||||
env?: {
|
env?: {
|
||||||
[key: string]: string;
|
[key: string]: string;
|
||||||
};
|
};
|
||||||
/** optional. defaults to false */
|
/** optional. defaults to false */
|
||||||
silent?: boolean;
|
silent?: boolean;
|
||||||
/** optional out stream to use. Defaults to process.stdout */
|
/** optional out stream to use. Defaults to process.stdout */
|
||||||
outStream?: stream.Writable;
|
outStream?: stream.Writable;
|
||||||
/** optional err stream to use. Defaults to process.stderr */
|
/** optional err stream to use. Defaults to process.stderr */
|
||||||
errStream?: stream.Writable;
|
errStream?: stream.Writable;
|
||||||
/** optional. whether to skip quoting/escaping arguments if needed. defaults to false. */
|
/** optional. whether to skip quoting/escaping arguments if needed. defaults to false. */
|
||||||
windowsVerbatimArguments?: boolean;
|
windowsVerbatimArguments?: boolean;
|
||||||
/** optional. whether to fail if output to stderr. defaults to false */
|
/** optional. whether to fail if output to stderr. defaults to false */
|
||||||
failOnStdErr?: boolean;
|
failOnStdErr?: boolean;
|
||||||
/** optional. defaults to failing on non zero. ignore will not fail leaving it up to the caller */
|
/** optional. defaults to failing on non zero. ignore will not fail leaving it up to the caller */
|
||||||
ignoreReturnCode?: boolean;
|
ignoreReturnCode?: boolean;
|
||||||
/** optional. How long in ms to wait for STDIO streams to close after the exit event of the process before terminating. defaults to 10000 */
|
/** optional. How long in ms to wait for STDIO streams to close after the exit event of the process before terminating. defaults to 10000 */
|
||||||
delay?: number;
|
delay?: number;
|
||||||
/** optional. Listeners for output. Callback functions that will be called on these events */
|
/** optional. Listeners for output. Callback functions that will be called on these events */
|
||||||
listeners?: {
|
listeners?: {
|
||||||
stdout?: (data: Buffer) => void;
|
stdout?: (data: Buffer) => void;
|
||||||
stderr?: (data: Buffer) => void;
|
stderr?: (data: Buffer) => void;
|
||||||
stdline?: (data: string) => void;
|
stdline?: (data: string) => void;
|
||||||
errline?: (data: string) => void;
|
errline?: (data: string) => void;
|
||||||
debug?: (data: string) => void;
|
debug?: (data: string) => void;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
4
node_modules/@actions/exec/lib/interfaces.js
generated
vendored
4
node_modules/@actions/exec/lib/interfaces.js
generated
vendored
@ -1,3 +1,3 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
//# sourceMappingURL=interfaces.js.map
|
//# sourceMappingURL=interfaces.js.map
|
74
node_modules/@actions/exec/lib/toolrunner.d.ts
generated
vendored
74
node_modules/@actions/exec/lib/toolrunner.d.ts
generated
vendored
@ -1,37 +1,37 @@
|
|||||||
/// <reference types="node" />
|
/// <reference types="node" />
|
||||||
import * as events from 'events';
|
import * as events from 'events';
|
||||||
import * as im from './interfaces';
|
import * as im from './interfaces';
|
||||||
export declare class ToolRunner extends events.EventEmitter {
|
export declare class ToolRunner extends events.EventEmitter {
|
||||||
constructor(toolPath: string, args?: string[], options?: im.ExecOptions);
|
constructor(toolPath: string, args?: string[], options?: im.ExecOptions);
|
||||||
private toolPath;
|
private toolPath;
|
||||||
private args;
|
private args;
|
||||||
private options;
|
private options;
|
||||||
private _debug;
|
private _debug;
|
||||||
private _getCommandString;
|
private _getCommandString;
|
||||||
private _processLineBuffer;
|
private _processLineBuffer;
|
||||||
private _getSpawnFileName;
|
private _getSpawnFileName;
|
||||||
private _getSpawnArgs;
|
private _getSpawnArgs;
|
||||||
private _endsWith;
|
private _endsWith;
|
||||||
private _isCmdFile;
|
private _isCmdFile;
|
||||||
private _windowsQuoteCmdArg;
|
private _windowsQuoteCmdArg;
|
||||||
private _uvQuoteCmdArg;
|
private _uvQuoteCmdArg;
|
||||||
private _cloneExecOptions;
|
private _cloneExecOptions;
|
||||||
private _getSpawnOptions;
|
private _getSpawnOptions;
|
||||||
/**
|
/**
|
||||||
* Exec a tool.
|
* Exec a tool.
|
||||||
* Output will be streamed to the live console.
|
* Output will be streamed to the live console.
|
||||||
* Returns promise with return code
|
* Returns promise with return code
|
||||||
*
|
*
|
||||||
* @param tool path to tool to exec
|
* @param tool path to tool to exec
|
||||||
* @param options optional exec options. See ExecOptions
|
* @param options optional exec options. See ExecOptions
|
||||||
* @returns number
|
* @returns number
|
||||||
*/
|
*/
|
||||||
exec(): Promise<number>;
|
exec(): Promise<number>;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Convert an arg string to an array of args. Handles escaping
|
* Convert an arg string to an array of args. Handles escaping
|
||||||
*
|
*
|
||||||
* @param argString string of arguments
|
* @param argString string of arguments
|
||||||
* @returns string[] array of arguments
|
* @returns string[] array of arguments
|
||||||
*/
|
*/
|
||||||
export declare function argStringToArray(argString: string): string[];
|
export declare function argStringToArray(argString: string): string[];
|
||||||
|
1144
node_modules/@actions/exec/lib/toolrunner.js
generated
vendored
1144
node_modules/@actions/exec/lib/toolrunner.js
generated
vendored
File diff suppressed because it is too large
Load Diff
32
node_modules/@actions/exec/package.json
generated
vendored
32
node_modules/@actions/exec/package.json
generated
vendored
@ -1,28 +1,29 @@
|
|||||||
{
|
{
|
||||||
"_from": "@actions/exec@^1.0.0",
|
"_from": "file:toolkit/actions-exec-0.0.0.tgz",
|
||||||
"_id": "@actions/exec@1.0.0",
|
"_id": "@actions/exec@0.0.0",
|
||||||
"_inBundle": false,
|
"_inBundle": false,
|
||||||
"_integrity": "sha512-nquH0+XKng+Ll7rZfCojN7NWSbnGh+ltwUJhzfbLkmOJgxocGX2/yXcZLMyT9fa7+tByEow/NSTrBExNlEj9fw==",
|
"_integrity": "sha512-HHObusC4p1RElxIlrrN0sY/cweBYl+jKm3J/XWHPQZMipgJXB/dkVhUfl4KqH3Vim7oM2KjCGSfn+vTYrqVH3A==",
|
||||||
"_location": "/@actions/exec",
|
"_location": "/@actions/exec",
|
||||||
"_phantomChildren": {},
|
"_phantomChildren": {},
|
||||||
"_requested": {
|
"_requested": {
|
||||||
"type": "range",
|
"type": "file",
|
||||||
"registry": true,
|
"where": "/Users/chrispat/Source/work/actions/setup-node",
|
||||||
"raw": "@actions/exec@^1.0.0",
|
"raw": "@actions/exec@file:toolkit/actions-exec-0.0.0.tgz",
|
||||||
"name": "@actions/exec",
|
"name": "@actions/exec",
|
||||||
"escapedName": "@actions%2fexec",
|
"escapedName": "@actions%2fexec",
|
||||||
"scope": "@actions",
|
"scope": "@actions",
|
||||||
"rawSpec": "^1.0.0",
|
"rawSpec": "file:toolkit/actions-exec-0.0.0.tgz",
|
||||||
"saveSpec": null,
|
"saveSpec": "file:toolkit/actions-exec-0.0.0.tgz",
|
||||||
"fetchSpec": "^1.0.0"
|
"fetchSpec": "/Users/chrispat/Source/work/actions/setup-node/toolkit/actions-exec-0.0.0.tgz"
|
||||||
},
|
},
|
||||||
"_requiredBy": [
|
"_requiredBy": [
|
||||||
|
"/",
|
||||||
"/@actions/tool-cache"
|
"/@actions/tool-cache"
|
||||||
],
|
],
|
||||||
"_resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.0.tgz",
|
"_resolved": "/Users/chrispat/Source/work/actions/setup-node/toolkit/actions-exec-0.0.0.tgz",
|
||||||
"_shasum": "70c8b698c9baa02965c07da5f0b185ca56f0a955",
|
"_shasum": "341d868fe6c4123ded20db9c2106b7b8c16e1d73",
|
||||||
"_spec": "@actions/exec@^1.0.0",
|
"_spec": "@actions/exec@file:toolkit/actions-exec-0.0.0.tgz",
|
||||||
"_where": "C:\\Users\\damccorm\\Documents\\setup-node\\node_modules\\@actions\\tool-cache",
|
"_where": "/Users/chrispat/Source/work/actions/setup-node",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/actions/toolkit/issues"
|
"url": "https://github.com/actions/toolkit/issues"
|
||||||
},
|
},
|
||||||
@ -30,7 +31,7 @@
|
|||||||
"deprecated": false,
|
"deprecated": false,
|
||||||
"description": "Actions exec lib",
|
"description": "Actions exec lib",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@actions/io": "^1.0.0"
|
"@actions/io": "^0.0.0"
|
||||||
},
|
},
|
||||||
"directories": {
|
"directories": {
|
||||||
"lib": "lib",
|
"lib": "lib",
|
||||||
@ -39,7 +40,6 @@
|
|||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
"gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55",
|
|
||||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"exec",
|
"exec",
|
||||||
@ -59,5 +59,5 @@
|
|||||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||||
"tsc": "tsc"
|
"tsc": "tsc"
|
||||||
},
|
},
|
||||||
"version": "1.0.0"
|
"version": "0.0.0"
|
||||||
}
|
}
|
||||||
|
12
node_modules/@actions/io/LICENSE.md → node_modules/@actions/exit/LICENSE.md
generated
vendored
12
node_modules/@actions/io/LICENSE.md → node_modules/@actions/exit/LICENSE.md
generated
vendored
@ -1,7 +1,7 @@
|
|||||||
Copyright 2019 GitHub
|
Copyright 2019 GitHub
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
7
node_modules/@actions/exit/README.md
generated
vendored
Normal file
7
node_modules/@actions/exit/README.md
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# `@actions/exit`
|
||||||
|
|
||||||
|
> TODO: description
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
See [src/exit.ts](src/exit.ts).
|
29
node_modules/@actions/exit/lib/exit.d.ts
generated
vendored
Normal file
29
node_modules/@actions/exit/lib/exit.d.ts
generated
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/**
|
||||||
|
* The code to exit an action
|
||||||
|
*/
|
||||||
|
export declare enum ExitCode {
|
||||||
|
/**
|
||||||
|
* A code indicating that the action was successful
|
||||||
|
*/
|
||||||
|
Success = 0,
|
||||||
|
/**
|
||||||
|
* A code indicating that the action was a failure
|
||||||
|
*/
|
||||||
|
Failure = 1,
|
||||||
|
/**
|
||||||
|
* A code indicating that the action is complete, but neither succeeded nor failed
|
||||||
|
*/
|
||||||
|
Neutral = 78
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Exit the action as a success.
|
||||||
|
*/
|
||||||
|
export declare function success(): void;
|
||||||
|
/**
|
||||||
|
* Exit the action as a failure.
|
||||||
|
*/
|
||||||
|
export declare function failure(): void;
|
||||||
|
/**
|
||||||
|
* Exit the action neither a success or a failure
|
||||||
|
*/
|
||||||
|
export declare function neutral(): void;
|
44
node_modules/@actions/exit/lib/exit.js
generated
vendored
Normal file
44
node_modules/@actions/exit/lib/exit.js
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
/**
|
||||||
|
* The code to exit an action
|
||||||
|
*/
|
||||||
|
var ExitCode;
|
||||||
|
(function (ExitCode) {
|
||||||
|
/**
|
||||||
|
* A code indicating that the action was successful
|
||||||
|
*/
|
||||||
|
ExitCode[ExitCode["Success"] = 0] = "Success";
|
||||||
|
/**
|
||||||
|
* A code indicating that the action was a failure
|
||||||
|
*/
|
||||||
|
ExitCode[ExitCode["Failure"] = 1] = "Failure";
|
||||||
|
/**
|
||||||
|
* A code indicating that the action is complete, but neither succeeded nor failed
|
||||||
|
*/
|
||||||
|
ExitCode[ExitCode["Neutral"] = 78] = "Neutral";
|
||||||
|
})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));
|
||||||
|
// TODO: These exit codes may not behave as expected on the new runtime, due to
|
||||||
|
// complexities of async logging and sync exiting.
|
||||||
|
/**
|
||||||
|
* Exit the action as a success.
|
||||||
|
*/
|
||||||
|
function success() {
|
||||||
|
process.exit(ExitCode.Success);
|
||||||
|
}
|
||||||
|
exports.success = success;
|
||||||
|
/**
|
||||||
|
* Exit the action as a failure.
|
||||||
|
*/
|
||||||
|
function failure() {
|
||||||
|
process.exit(ExitCode.Failure);
|
||||||
|
}
|
||||||
|
exports.failure = failure;
|
||||||
|
/**
|
||||||
|
* Exit the action neither a success or a failure
|
||||||
|
*/
|
||||||
|
function neutral() {
|
||||||
|
process.exit(ExitCode.Neutral);
|
||||||
|
}
|
||||||
|
exports.neutral = neutral;
|
||||||
|
//# sourceMappingURL=exit.js.map
|
1
node_modules/@actions/exit/lib/exit.js.map
generated
vendored
Normal file
1
node_modules/@actions/exit/lib/exit.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"exit.js","sourceRoot":"","sources":["../src/exit.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,IAAY,QAeX;AAfD,WAAY,QAAQ;IAClB;;OAEG;IACH,6CAAW,CAAA;IAEX;;OAEG;IACH,6CAAW,CAAA;IAEX;;OAEG;IACH,8CAAY,CAAA;AACd,CAAC,EAfW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAenB;AAED,+EAA+E;AAC/E,kDAAkD;AAElD;;GAEG;AACH,SAAgB,OAAO;IACrB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,SAAgB,OAAO;IACrB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,SAAgB,OAAO;IACrB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAFD,0BAEC"}
|
61
node_modules/@actions/exit/package.json
generated
vendored
Normal file
61
node_modules/@actions/exit/package.json
generated
vendored
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"_from": "file:toolkit/actions-exit-0.0.0.tgz",
|
||||||
|
"_id": "@actions/exit@0.0.0",
|
||||||
|
"_inBundle": false,
|
||||||
|
"_integrity": "sha512-vQdxFWM0/AERkC79mQ886SqPmV4joWhrSF7hiSTiJoKkE9eTjrKV5WQtp7SXv6OntrQkKX+ZjgdGpv+0rvJRCw==",
|
||||||
|
"_location": "/@actions/exit",
|
||||||
|
"_phantomChildren": {},
|
||||||
|
"_requested": {
|
||||||
|
"type": "file",
|
||||||
|
"where": "/Users/chrispat/Source/work/actions/setup-node",
|
||||||
|
"raw": "@actions/exit@file:toolkit/actions-exit-0.0.0.tgz",
|
||||||
|
"name": "@actions/exit",
|
||||||
|
"escapedName": "@actions%2fexit",
|
||||||
|
"scope": "@actions",
|
||||||
|
"rawSpec": "file:toolkit/actions-exit-0.0.0.tgz",
|
||||||
|
"saveSpec": "file:toolkit/actions-exit-0.0.0.tgz",
|
||||||
|
"fetchSpec": "/Users/chrispat/Source/work/actions/setup-node/toolkit/actions-exit-0.0.0.tgz"
|
||||||
|
},
|
||||||
|
"_requiredBy": [
|
||||||
|
"/",
|
||||||
|
"/@actions/core"
|
||||||
|
],
|
||||||
|
"_resolved": "/Users/chrispat/Source/work/actions/setup-node/toolkit/actions-exit-0.0.0.tgz",
|
||||||
|
"_shasum": "d47c8c61b45750ae49fea3061e3419a547b2a48f",
|
||||||
|
"_spec": "@actions/exit@file:toolkit/actions-exit-0.0.0.tgz",
|
||||||
|
"_where": "/Users/chrispat/Source/work/actions/setup-node",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/actions/toolkit/issues"
|
||||||
|
},
|
||||||
|
"bundleDependencies": false,
|
||||||
|
"deprecated": false,
|
||||||
|
"description": "Functions for safely exiting from GitHub Actions",
|
||||||
|
"directories": {
|
||||||
|
"lib": "lib",
|
||||||
|
"test": "__tests__"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"lib"
|
||||||
|
],
|
||||||
|
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exit",
|
||||||
|
"keywords": [
|
||||||
|
"github",
|
||||||
|
"actions",
|
||||||
|
"toolkit"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"main": "lib/exit.js",
|
||||||
|
"name": "@actions/exit",
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/actions/toolkit.git"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||||
|
"tsc": "tsc"
|
||||||
|
},
|
||||||
|
"version": "0.0.0"
|
||||||
|
}
|
7
node_modules/@actions/github/LICENSE.md
generated
vendored
7
node_modules/@actions/github/LICENSE.md
generated
vendored
@ -1,7 +0,0 @@
|
|||||||
Copyright 2019 GitHub
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
48
node_modules/@actions/github/README.md
generated
vendored
48
node_modules/@actions/github/README.md
generated
vendored
@ -1,48 +0,0 @@
|
|||||||
# `@actions/github`
|
|
||||||
|
|
||||||
> A hydrated Octokit client.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Returns an [Octokit SDK] client. See https://octokit.github.io/rest.js for the API.
|
|
||||||
|
|
||||||
```
|
|
||||||
const github = require('@actions/github');
|
|
||||||
const core = require('@actions/core');
|
|
||||||
|
|
||||||
// This should be a token with access to your repository scoped in as a secret.
|
|
||||||
const myToken = core.getInput('myToken');
|
|
||||||
|
|
||||||
const octokit = new github.GitHub(myToken);
|
|
||||||
|
|
||||||
const pulls = await octokit.pulls.get({
|
|
||||||
owner: 'octokit',
|
|
||||||
repo: 'rest.js',
|
|
||||||
pull_number: 123,
|
|
||||||
mediaType: {
|
|
||||||
format: 'diff'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(pulls);
|
|
||||||
```
|
|
||||||
|
|
||||||
You can also make GraphQL requests:
|
|
||||||
|
|
||||||
```
|
|
||||||
const result = await octokit.graphql(query, variables);
|
|
||||||
```
|
|
||||||
|
|
||||||
Finally, you can get the context of the current action:
|
|
||||||
|
|
||||||
```
|
|
||||||
const github = require('@actions/github');
|
|
||||||
|
|
||||||
const context = github.context;
|
|
||||||
|
|
||||||
const newIssue = await octokit.issues.create({
|
|
||||||
...context.repo,
|
|
||||||
title: 'New issue!',
|
|
||||||
body: 'Hello Universe!'
|
|
||||||
});
|
|
||||||
```
|
|
26
node_modules/@actions/github/lib/context.d.ts
generated
vendored
26
node_modules/@actions/github/lib/context.d.ts
generated
vendored
@ -1,26 +0,0 @@
|
|||||||
import { WebhookPayload } from './interfaces';
|
|
||||||
export declare class Context {
|
|
||||||
/**
|
|
||||||
* Webhook payload object that triggered the workflow
|
|
||||||
*/
|
|
||||||
payload: WebhookPayload;
|
|
||||||
eventName: string;
|
|
||||||
sha: string;
|
|
||||||
ref: string;
|
|
||||||
workflow: string;
|
|
||||||
action: string;
|
|
||||||
actor: string;
|
|
||||||
/**
|
|
||||||
* Hydrate the context from the environment
|
|
||||||
*/
|
|
||||||
constructor();
|
|
||||||
readonly issue: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
number: number;
|
|
||||||
};
|
|
||||||
readonly repo: {
|
|
||||||
owner: string;
|
|
||||||
repo: string;
|
|
||||||
};
|
|
||||||
}
|
|
38
node_modules/@actions/github/lib/context.js
generated
vendored
38
node_modules/@actions/github/lib/context.js
generated
vendored
@ -1,38 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
||||||
class Context {
|
|
||||||
/**
|
|
||||||
* Hydrate the context from the environment
|
|
||||||
*/
|
|
||||||
constructor() {
|
|
||||||
this.payload = process.env.GITHUB_EVENT_PATH
|
|
||||||
? require(process.env.GITHUB_EVENT_PATH)
|
|
||||||
: {};
|
|
||||||
this.eventName = process.env.GITHUB_EVENT_NAME;
|
|
||||||
this.sha = process.env.GITHUB_SHA;
|
|
||||||
this.ref = process.env.GITHUB_REF;
|
|
||||||
this.workflow = process.env.GITHUB_WORKFLOW;
|
|
||||||
this.action = process.env.GITHUB_ACTION;
|
|
||||||
this.actor = process.env.GITHUB_ACTOR;
|
|
||||||
}
|
|
||||||
get issue() {
|
|
||||||
const payload = this.payload;
|
|
||||||
return Object.assign({}, this.repo, { number: (payload.issue || payload.pullRequest || payload).number });
|
|
||||||
}
|
|
||||||
get repo() {
|
|
||||||
if (process.env.GITHUB_REPOSITORY) {
|
|
||||||
const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');
|
|
||||||
return { owner, repo };
|
|
||||||
}
|
|
||||||
if (this.payload.repository) {
|
|
||||||
return {
|
|
||||||
owner: this.payload.repository.owner.login,
|
|
||||||
repo: this.payload.repository.name
|
|
||||||
};
|
|
||||||
}
|
|
||||||
throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
exports.Context = Context;
|
|
||||||
//# sourceMappingURL=context.js.map
|
|
1
node_modules/@actions/github/lib/context.js.map
generated
vendored
1
node_modules/@actions/github/lib/context.js.map
generated
vendored
@ -1 +0,0 @@
|
|||||||
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;AAGA,0DAA0D;AAE1D,MAAa,OAAO;IAalB;;OAEG;IACH;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB;YAC1C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACxC,CAAC,CAAC,EAAE,CAAA;QACN,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAA2B,CAAA;QACxD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAyB,CAAA;QACrD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAuB,CAAA;QACjD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAsB,CAAA;IACjD,CAAC;IAED,IAAI,KAAK;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE5B,yBACK,IAAI,CAAC,IAAI,IACZ,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,MAAM,IACjE;IACH,CAAC;IAED,IAAI,IAAI;QACN,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9D,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAA;SACrB;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YAC3B,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;gBAC1C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;aACnC,CAAA;SACF;QAED,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,CAAC;CACF;AAtDD,0BAsDC"}
|
|
8
node_modules/@actions/github/lib/github.d.ts
generated
vendored
8
node_modules/@actions/github/lib/github.d.ts
generated
vendored
@ -1,8 +0,0 @@
|
|||||||
import { GraphQlQueryResponse, Variables } from '@octokit/graphql';
|
|
||||||
import Octokit from '@octokit/rest';
|
|
||||||
import * as Context from './context';
|
|
||||||
export declare const context: Context.Context;
|
|
||||||
export declare class GitHub extends Octokit {
|
|
||||||
graphql: (query: string, variables?: Variables) => Promise<GraphQlQueryResponse>;
|
|
||||||
constructor(token: string);
|
|
||||||
}
|
|
29
node_modules/@actions/github/lib/github.js
generated
vendored
29
node_modules/@actions/github/lib/github.js
generated
vendored
@ -1,29 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
||||||
};
|
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
|
||||||
result["default"] = mod;
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
// Originally pulled from https://github.com/JasonEtco/actions-toolkit/blob/master/src/github.ts
|
|
||||||
const graphql_1 = require("@octokit/graphql");
|
|
||||||
const rest_1 = __importDefault(require("@octokit/rest"));
|
|
||||||
const Context = __importStar(require("./context"));
|
|
||||||
// We need this in order to extend Octokit
|
|
||||||
rest_1.default.prototype = new rest_1.default();
|
|
||||||
exports.context = new Context.Context();
|
|
||||||
class GitHub extends rest_1.default {
|
|
||||||
constructor(token) {
|
|
||||||
super({ auth: `token ${token}` });
|
|
||||||
this.graphql = graphql_1.defaults({
|
|
||||||
headers: { authorization: `token ${token}` }
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
exports.GitHub = GitHub;
|
|
||||||
//# sourceMappingURL=github.js.map
|
|
1
node_modules/@actions/github/lib/github.js.map
generated
vendored
1
node_modules/@actions/github/lib/github.js.map
generated
vendored
@ -1 +0,0 @@
|
|||||||
{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gGAAgG;AAChG,8CAA0E;AAC1E,yDAAmC;AACnC,mDAAoC;AAEpC,0CAA0C;AAC1C,cAAO,CAAC,SAAS,GAAG,IAAI,cAAO,EAAE,CAAA;AAEpB,QAAA,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;AAE5C,MAAa,MAAO,SAAQ,cAAO;IAMjC,YAAY,KAAa;QACvB,KAAK,CAAC,EAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,kBAAQ,CAAC;YACtB,OAAO,EAAE,EAAC,aAAa,EAAE,SAAS,KAAK,EAAE,EAAC;SAC3C,CAAC,CAAA;IACJ,CAAC;CACF;AAZD,wBAYC"}
|
|
36
node_modules/@actions/github/lib/interfaces.d.ts
generated
vendored
36
node_modules/@actions/github/lib/interfaces.d.ts
generated
vendored
@ -1,36 +0,0 @@
|
|||||||
export interface PayloadRepository {
|
|
||||||
[key: string]: any;
|
|
||||||
full_name?: string;
|
|
||||||
name: string;
|
|
||||||
owner: {
|
|
||||||
[key: string]: any;
|
|
||||||
login: string;
|
|
||||||
name?: string;
|
|
||||||
};
|
|
||||||
html_url?: string;
|
|
||||||
}
|
|
||||||
export interface WebhookPayload {
|
|
||||||
[key: string]: any;
|
|
||||||
repository?: PayloadRepository;
|
|
||||||
issue?: {
|
|
||||||
[key: string]: any;
|
|
||||||
number: number;
|
|
||||||
html_url?: string;
|
|
||||||
body?: string;
|
|
||||||
};
|
|
||||||
pull_request?: {
|
|
||||||
[key: string]: any;
|
|
||||||
number: number;
|
|
||||||
html_url?: string;
|
|
||||||
body?: string;
|
|
||||||
};
|
|
||||||
sender?: {
|
|
||||||
[key: string]: any;
|
|
||||||
type: string;
|
|
||||||
};
|
|
||||||
action?: string;
|
|
||||||
installation?: {
|
|
||||||
id: number;
|
|
||||||
[key: string]: any;
|
|
||||||
};
|
|
||||||
}
|
|
4
node_modules/@actions/github/lib/interfaces.js
generated
vendored
4
node_modules/@actions/github/lib/interfaces.js
generated
vendored
@ -1,4 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
//# sourceMappingURL=interfaces.js.map
|
|
1
node_modules/@actions/github/lib/interfaces.js.map
generated
vendored
1
node_modules/@actions/github/lib/interfaces.js.map
generated
vendored
@ -1 +0,0 @@
|
|||||||
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,uDAAuD"}
|
|
68
node_modules/@actions/github/package.json
generated
vendored
68
node_modules/@actions/github/package.json
generated
vendored
@ -1,68 +0,0 @@
|
|||||||
{
|
|
||||||
"_from": "@actions/github@^1.0.0",
|
|
||||||
"_id": "@actions/github@1.0.0",
|
|
||||||
"_inBundle": false,
|
|
||||||
"_integrity": "sha512-PPbWZ5wFAD/Vr+RCECfR3KNHjTwYln4liJBihs9tQUL0/PCFqB2lSkIh9V94AcZFHxgKk8snImjuLaBE8bKR7A==",
|
|
||||||
"_location": "/@actions/github",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"type": "range",
|
|
||||||
"registry": true,
|
|
||||||
"raw": "@actions/github@^1.0.0",
|
|
||||||
"name": "@actions/github",
|
|
||||||
"escapedName": "@actions%2fgithub",
|
|
||||||
"scope": "@actions",
|
|
||||||
"rawSpec": "^1.0.0",
|
|
||||||
"saveSpec": null,
|
|
||||||
"fetchSpec": "^1.0.0"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/@actions/github/-/github-1.0.0.tgz",
|
|
||||||
"_shasum": "5154cadd93c4b17217f56304ee27056730b8ae88",
|
|
||||||
"_spec": "@actions/github@^1.0.0",
|
|
||||||
"_where": "C:\\Users\\damccorm\\Documents\\setup-node",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/actions/toolkit/issues"
|
|
||||||
},
|
|
||||||
"bundleDependencies": false,
|
|
||||||
"dependencies": {
|
|
||||||
"@octokit/graphql": "^2.0.1",
|
|
||||||
"@octokit/rest": "^16.15.0"
|
|
||||||
},
|
|
||||||
"deprecated": false,
|
|
||||||
"description": "Actions github lib",
|
|
||||||
"devDependencies": {
|
|
||||||
"jest": "^24.7.1"
|
|
||||||
},
|
|
||||||
"directories": {
|
|
||||||
"lib": "lib",
|
|
||||||
"test": "__tests__"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"lib"
|
|
||||||
],
|
|
||||||
"gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55",
|
|
||||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/github",
|
|
||||||
"keywords": [
|
|
||||||
"github",
|
|
||||||
"actions"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"main": "lib/github.js",
|
|
||||||
"name": "@actions/github",
|
|
||||||
"publishConfig": {
|
|
||||||
"access": "public"
|
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/actions/toolkit.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "tsc",
|
|
||||||
"test": "jest",
|
|
||||||
"tsc": "tsc"
|
|
||||||
},
|
|
||||||
"version": "1.0.0"
|
|
||||||
}
|
|
102
node_modules/@actions/io/README.md
generated
vendored
102
node_modules/@actions/io/README.md
generated
vendored
@ -1,53 +1,49 @@
|
|||||||
# `@actions/io`
|
# `@actions/io`
|
||||||
|
|
||||||
> Core functions for cli filesystem scenarios
|
> Core functions for cli filesystem scenarios
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
#### mkdir -p
|
```
|
||||||
|
/**
|
||||||
Recursively make a directory. Follows rules specified in [man mkdir](https://linux.die.net/man/1/mkdir) with the `-p` option specified:
|
* Copies a file or folder.
|
||||||
|
*
|
||||||
```
|
* @param source source path
|
||||||
const io = require('@actions/io');
|
* @param dest destination path
|
||||||
|
* @param options optional. See CopyOptions.
|
||||||
await io.mkdirP('path/to/make');
|
*/
|
||||||
```
|
export function cp(source: string, dest: string, options?: CopyOptions): Promise<void>
|
||||||
|
|
||||||
#### cp/mv
|
/**
|
||||||
|
* Remove a path recursively with force
|
||||||
Copy or move files or folders. Follows rules specified in [man cp](https://linux.die.net/man/1/cp) and [man mv](https://linux.die.net/man/1/mv):
|
*
|
||||||
|
* @param path path to remove
|
||||||
```
|
*/
|
||||||
const io = require('@actions/io');
|
export function rmRF(path: string): Promise<void>
|
||||||
|
|
||||||
// Recursive must be true for directories
|
/**
|
||||||
const options = { recursive: true, force: false }
|
* Make a directory. Creates the full path with folders in between
|
||||||
|
*
|
||||||
await io.cp('path/to/directory', 'path/to/dest', options);
|
* @param p path to create
|
||||||
await io.mv('path/to/file', 'path/to/dest');
|
* @returns Promise<void>
|
||||||
```
|
*/
|
||||||
|
export function mkdirP(p: string): Promise<void>
|
||||||
#### rm -rf
|
|
||||||
|
/**
|
||||||
Remove a file or folder recursively. Follows rules specified in [man rm](https://linux.die.net/man/1/rm) with the `-r` and `-f` rules specified.
|
* Moves a path.
|
||||||
|
*
|
||||||
```
|
* @param source source path
|
||||||
const io = require('@actions/io');
|
* @param dest destination path
|
||||||
|
* @param options optional. See CopyOptions.
|
||||||
await io.rmRF('path/to/directory');
|
*/
|
||||||
await io.rmRF('path/to/file');
|
export function mv(source: string, dest: string, options?: CopyOptions): Promise<void>
|
||||||
```
|
|
||||||
|
/**
|
||||||
#### which
|
* Returns path of a tool had the tool actually been invoked. Resolves via paths.
|
||||||
|
*
|
||||||
Get the path to a tool and resolves via paths. Follows the rules specified in [man which](https://linux.die.net/man/1/which).
|
* @param tool name of the tool
|
||||||
|
* @param options optional. See WhichOptions.
|
||||||
```
|
* @returns Promise<string> path to tool
|
||||||
const exec = require('@actions/exec');
|
*/
|
||||||
const io = require('@actions/io');
|
export function which(tool: string, options?: WhichOptions): Promise<string>
|
||||||
|
```
|
||||||
const pythonPath: string = await io.which('python', true)
|
|
||||||
|
|
||||||
await exec.exec(`"${pythonPath}"`, ['main.py']);
|
|
||||||
```
|
|
58
node_modules/@actions/io/lib/io-util.d.ts
generated
vendored
58
node_modules/@actions/io/lib/io-util.d.ts
generated
vendored
@ -1,29 +1,29 @@
|
|||||||
/// <reference types="node" />
|
/// <reference types="node" />
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
export declare const chmod: typeof fs.promises.chmod, copyFile: typeof fs.promises.copyFile, lstat: typeof fs.promises.lstat, mkdir: typeof fs.promises.mkdir, readdir: typeof fs.promises.readdir, readlink: typeof fs.promises.readlink, rename: typeof fs.promises.rename, rmdir: typeof fs.promises.rmdir, stat: typeof fs.promises.stat, symlink: typeof fs.promises.symlink, unlink: typeof fs.promises.unlink;
|
export declare const copyFile: typeof fs.promises.copyFile, lstat: typeof fs.promises.lstat, mkdir: typeof fs.promises.mkdir, readdir: typeof fs.promises.readdir, rmdir: typeof fs.promises.rmdir, stat: typeof fs.promises.stat, unlink: typeof fs.promises.unlink;
|
||||||
export declare const IS_WINDOWS: boolean;
|
export declare const IS_WINDOWS: boolean;
|
||||||
export declare function exists(fsPath: string): Promise<boolean>;
|
export declare function exists(fsPath: string): Promise<boolean>;
|
||||||
export declare function isDirectory(fsPath: string, useStat?: boolean): Promise<boolean>;
|
export declare function isDirectory(fsPath: string, useStat?: boolean): Promise<boolean>;
|
||||||
/**
|
/**
|
||||||
* On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:
|
* 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).
|
* \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases).
|
||||||
*/
|
*/
|
||||||
export declare function isRooted(p: string): boolean;
|
export declare function isRooted(p: string): boolean;
|
||||||
/**
|
/**
|
||||||
* Recursively create a directory at `fsPath`.
|
* Recursively create a directory at `fsPath`.
|
||||||
*
|
*
|
||||||
* This implementation is optimistic, meaning it attempts to create the full
|
* This implementation is optimistic, meaning it attempts to create the full
|
||||||
* path first, and backs up the path stack from there.
|
* path first, and backs up the path stack from there.
|
||||||
*
|
*
|
||||||
* @param fsPath The path to create
|
* @param fsPath The path to create
|
||||||
* @param maxDepth The maximum recursion depth
|
* @param maxDepth The maximum recursion depth
|
||||||
* @param depth The current recursion depth
|
* @param depth The current recursion depth
|
||||||
*/
|
*/
|
||||||
export declare function mkdirP(fsPath: string, maxDepth?: number, depth?: number): Promise<void>;
|
export declare function mkdirP(fsPath: string, maxDepth?: number, depth?: number): Promise<void>;
|
||||||
/**
|
/**
|
||||||
* Best effort attempt to determine whether a file exists and is executable.
|
* Best effort attempt to determine whether a file exists and is executable.
|
||||||
* @param filePath file path to check
|
* @param filePath file path to check
|
||||||
* @param extensions additional file extensions to try
|
* @param extensions additional file extensions to try
|
||||||
* @return if file exists and is executable, returns the file path. otherwise empty string.
|
* @return if file exists and is executable, returns the file path. otherwise empty string.
|
||||||
*/
|
*/
|
||||||
export declare function tryGetExecutablePath(filePath: string, extensions: string[]): Promise<string>;
|
export declare function tryGetExecutablePath(filePath: string, extensions: string[]): Promise<string>;
|
||||||
|
386
node_modules/@actions/io/lib/io-util.js
generated
vendored
386
node_modules/@actions/io/lib/io-util.js
generated
vendored
@ -1,194 +1,194 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
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 rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
var _a;
|
var _a;
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const assert_1 = require("assert");
|
const assert_1 = require("assert");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
_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;
|
_a = fs.promises, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.readdir = _a.readdir, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.unlink = _a.unlink;
|
||||||
exports.IS_WINDOWS = process.platform === 'win32';
|
exports.IS_WINDOWS = process.platform === 'win32';
|
||||||
function exists(fsPath) {
|
function exists(fsPath) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
yield exports.stat(fsPath);
|
yield exports.stat(fsPath);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
if (err.code === 'ENOENT') {
|
if (err.code === 'ENOENT') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.exists = exists;
|
exports.exists = exists;
|
||||||
function isDirectory(fsPath, useStat = false) {
|
function isDirectory(fsPath, useStat = false) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath);
|
const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath);
|
||||||
return stats.isDirectory();
|
return stats.isDirectory();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.isDirectory = isDirectory;
|
exports.isDirectory = isDirectory;
|
||||||
/**
|
/**
|
||||||
* On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:
|
* 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).
|
* \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases).
|
||||||
*/
|
*/
|
||||||
function isRooted(p) {
|
function isRooted(p) {
|
||||||
p = normalizeSeparators(p);
|
p = normalizeSeparators(p);
|
||||||
if (!p) {
|
if (!p) {
|
||||||
throw new Error('isRooted() parameter "p" cannot be empty');
|
throw new Error('isRooted() parameter "p" cannot be empty');
|
||||||
}
|
}
|
||||||
if (exports.IS_WINDOWS) {
|
if (exports.IS_WINDOWS) {
|
||||||
return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello
|
return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello
|
||||||
); // e.g. C: or C:\hello
|
); // e.g. C: or C:\hello
|
||||||
}
|
}
|
||||||
return p.startsWith('/');
|
return p.startsWith('/');
|
||||||
}
|
}
|
||||||
exports.isRooted = isRooted;
|
exports.isRooted = isRooted;
|
||||||
/**
|
/**
|
||||||
* Recursively create a directory at `fsPath`.
|
* Recursively create a directory at `fsPath`.
|
||||||
*
|
*
|
||||||
* This implementation is optimistic, meaning it attempts to create the full
|
* This implementation is optimistic, meaning it attempts to create the full
|
||||||
* path first, and backs up the path stack from there.
|
* path first, and backs up the path stack from there.
|
||||||
*
|
*
|
||||||
* @param fsPath The path to create
|
* @param fsPath The path to create
|
||||||
* @param maxDepth The maximum recursion depth
|
* @param maxDepth The maximum recursion depth
|
||||||
* @param depth The current recursion depth
|
* @param depth The current recursion depth
|
||||||
*/
|
*/
|
||||||
function mkdirP(fsPath, maxDepth = 1000, depth = 1) {
|
function mkdirP(fsPath, maxDepth = 1000, depth = 1) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
assert_1.ok(fsPath, 'a path argument must be provided');
|
assert_1.ok(fsPath, 'a path argument must be provided');
|
||||||
fsPath = path.resolve(fsPath);
|
fsPath = path.resolve(fsPath);
|
||||||
if (depth >= maxDepth)
|
if (depth >= maxDepth)
|
||||||
return exports.mkdir(fsPath);
|
return exports.mkdir(fsPath);
|
||||||
try {
|
try {
|
||||||
yield exports.mkdir(fsPath);
|
yield exports.mkdir(fsPath);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
switch (err.code) {
|
switch (err.code) {
|
||||||
case 'ENOENT': {
|
case 'ENOENT': {
|
||||||
yield mkdirP(path.dirname(fsPath), maxDepth, depth + 1);
|
yield mkdirP(path.dirname(fsPath), maxDepth, depth + 1);
|
||||||
yield exports.mkdir(fsPath);
|
yield exports.mkdir(fsPath);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
let stats;
|
let stats;
|
||||||
try {
|
try {
|
||||||
stats = yield exports.stat(fsPath);
|
stats = yield exports.stat(fsPath);
|
||||||
}
|
}
|
||||||
catch (err2) {
|
catch (err2) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
if (!stats.isDirectory())
|
if (!stats.isDirectory())
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.mkdirP = mkdirP;
|
exports.mkdirP = mkdirP;
|
||||||
/**
|
/**
|
||||||
* Best effort attempt to determine whether a file exists and is executable.
|
* Best effort attempt to determine whether a file exists and is executable.
|
||||||
* @param filePath file path to check
|
* @param filePath file path to check
|
||||||
* @param extensions additional file extensions to try
|
* @param extensions additional file extensions to try
|
||||||
* @return if file exists and is executable, returns the file path. otherwise empty string.
|
* @return if file exists and is executable, returns the file path. otherwise empty string.
|
||||||
*/
|
*/
|
||||||
function tryGetExecutablePath(filePath, extensions) {
|
function tryGetExecutablePath(filePath, extensions) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
let stats = undefined;
|
let stats = undefined;
|
||||||
try {
|
try {
|
||||||
// test file exists
|
// test file exists
|
||||||
stats = yield exports.stat(filePath);
|
stats = yield exports.stat(filePath);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
if (err.code !== 'ENOENT') {
|
if (err.code !== 'ENOENT') {
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);
|
console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (stats && stats.isFile()) {
|
if (stats && stats.isFile()) {
|
||||||
if (exports.IS_WINDOWS) {
|
if (exports.IS_WINDOWS) {
|
||||||
// on Windows, test for valid extension
|
// on Windows, test for valid extension
|
||||||
const upperExt = path.extname(filePath).toUpperCase();
|
const upperExt = path.extname(filePath).toUpperCase();
|
||||||
if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {
|
if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {
|
||||||
return filePath;
|
return filePath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (isUnixExecutable(stats)) {
|
if (isUnixExecutable(stats)) {
|
||||||
return filePath;
|
return filePath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// try each extension
|
// try each extension
|
||||||
const originalFilePath = filePath;
|
const originalFilePath = filePath;
|
||||||
for (const extension of extensions) {
|
for (const extension of extensions) {
|
||||||
filePath = originalFilePath + extension;
|
filePath = originalFilePath + extension;
|
||||||
stats = undefined;
|
stats = undefined;
|
||||||
try {
|
try {
|
||||||
stats = yield exports.stat(filePath);
|
stats = yield exports.stat(filePath);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
if (err.code !== 'ENOENT') {
|
if (err.code !== 'ENOENT') {
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);
|
console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (stats && stats.isFile()) {
|
if (stats && stats.isFile()) {
|
||||||
if (exports.IS_WINDOWS) {
|
if (exports.IS_WINDOWS) {
|
||||||
// preserve the case of the actual file (since an extension was appended)
|
// preserve the case of the actual file (since an extension was appended)
|
||||||
try {
|
try {
|
||||||
const directory = path.dirname(filePath);
|
const directory = path.dirname(filePath);
|
||||||
const upperName = path.basename(filePath).toUpperCase();
|
const upperName = path.basename(filePath).toUpperCase();
|
||||||
for (const actualName of yield exports.readdir(directory)) {
|
for (const actualName of yield exports.readdir(directory)) {
|
||||||
if (upperName === actualName.toUpperCase()) {
|
if (upperName === actualName.toUpperCase()) {
|
||||||
filePath = path.join(directory, actualName);
|
filePath = path.join(directory, actualName);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);
|
console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);
|
||||||
}
|
}
|
||||||
return filePath;
|
return filePath;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (isUnixExecutable(stats)) {
|
if (isUnixExecutable(stats)) {
|
||||||
return filePath;
|
return filePath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.tryGetExecutablePath = tryGetExecutablePath;
|
exports.tryGetExecutablePath = tryGetExecutablePath;
|
||||||
function normalizeSeparators(p) {
|
function normalizeSeparators(p) {
|
||||||
p = p || '';
|
p = p || '';
|
||||||
if (exports.IS_WINDOWS) {
|
if (exports.IS_WINDOWS) {
|
||||||
// convert slashes on Windows
|
// convert slashes on Windows
|
||||||
p = p.replace(/\//g, '\\');
|
p = p.replace(/\//g, '\\');
|
||||||
// remove redundant slashes
|
// remove redundant slashes
|
||||||
return p.replace(/\\\\+/g, '\\');
|
return p.replace(/\\\\+/g, '\\');
|
||||||
}
|
}
|
||||||
// remove redundant slashes
|
// remove redundant slashes
|
||||||
return p.replace(/\/\/+/g, '/');
|
return p.replace(/\/\/+/g, '/');
|
||||||
}
|
}
|
||||||
// on Mac/Linux, test the execute bit
|
// on Mac/Linux, test the execute bit
|
||||||
// R W X R W X R W X
|
// R W X R W X R W X
|
||||||
// 256 128 64 32 16 8 4 2 1
|
// 256 128 64 32 16 8 4 2 1
|
||||||
function isUnixExecutable(stats) {
|
function isUnixExecutable(stats) {
|
||||||
return ((stats.mode & 1) > 0 ||
|
return ((stats.mode & 1) > 0 ||
|
||||||
((stats.mode & 8) > 0 && stats.gid === process.getgid()) ||
|
((stats.mode & 8) > 0 && stats.gid === process.getgid()) ||
|
||||||
((stats.mode & 64) > 0 && stats.uid === process.getuid()));
|
((stats.mode & 64) > 0 && stats.uid === process.getuid()));
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=io-util.js.map
|
//# sourceMappingURL=io-util.js.map
|
2
node_modules/@actions/io/lib/io-util.js.map
generated
vendored
2
node_modules/@actions/io/lib/io-util.js.map
generated
vendored
@ -1 +1 @@
|
|||||||
{"version":3,"file":"io-util.js","sourceRoot":"","sources":["../src/io-util.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAyB;AACzB,yBAAwB;AACxB,6BAA4B;AAEf,gBAYE,qTAAA;AAEF,QAAA,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;AAEtD,SAAsB,MAAM,CAAC,MAAc;;QACzC,IAAI;YACF,MAAM,YAAI,CAAC,MAAM,CAAC,CAAA;SACnB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,OAAO,KAAK,CAAA;aACb;YAED,MAAM,GAAG,CAAA;SACV;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CAAA;AAZD,wBAYC;AAED,SAAsB,WAAW,CAC/B,MAAc,EACd,UAAmB,KAAK;;QAExB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;QAChE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC;CAAA;AAND,kCAMC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,CAAS;IAChC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC5D;IAED,IAAI,kBAAU,EAAE;QACd,OAAO,CACL,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,8BAA8B;SACxE,CAAA,CAAC,sBAAsB;KACzB;IAED,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AAbD,4BAaC;AAED;;;;;;;;;GASG;AACH,SAAsB,MAAM,CAC1B,MAAc,EACd,WAAmB,IAAI,EACvB,QAAgB,CAAC;;QAEjB,WAAE,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAA;QAE9C,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAE7B,IAAI,KAAK,IAAI,QAAQ;YAAE,OAAO,aAAK,CAAC,MAAM,CAAC,CAAA;QAE3C,IAAI;YACF,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;YACnB,OAAM;SACP;QAAC,OAAO,GAAG,EAAE;YACZ,QAAQ,GAAG,CAAC,IAAI,EAAE;gBAChB,KAAK,QAAQ,CAAC,CAAC;oBACb,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;oBACvD,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;oBACnB,OAAM;iBACP;gBACD,OAAO,CAAC,CAAC;oBACP,IAAI,KAAe,CAAA;oBAEnB,IAAI;wBACF,KAAK,GAAG,MAAM,YAAI,CAAC,MAAM,CAAC,CAAA;qBAC3B;oBAAC,OAAO,IAAI,EAAE;wBACb,MAAM,GAAG,CAAA;qBACV;oBAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;wBAAE,MAAM,GAAG,CAAA;iBACpC;aACF;SACF;IACH,CAAC;CAAA;AAlCD,wBAkCC;AAED;;;;;GAKG;AACH,SAAsB,oBAAoB,CACxC,QAAgB,EAChB,UAAoB;;QAEpB,IAAI,KAAK,GAAyB,SAAS,CAAA;QAC3C,IAAI;YACF,mBAAmB;YACnB,KAAK,GAAG,MAAM,YAAI,CAAC,QAAQ,CAAC,CAAA;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CACT,uEAAuE,QAAQ,MAAM,GAAG,EAAE,CAC3F,CAAA;aACF;SACF;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;YAC3B,IAAI,kBAAU,EAAE;gBACd,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;gBACrD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE;oBACpE,OAAO,QAAQ,CAAA;iBAChB;aACF;iBAAM;gBACL,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;oBAC3B,OAAO,QAAQ,CAAA;iBAChB;aACF;SACF;QAED,qBAAqB;QACrB,MAAM,gBAAgB,GAAG,QAAQ,CAAA;QACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAA;YAEvC,KAAK,GAAG,SAAS,CAAA;YACjB,IAAI;gBACF,KAAK,GAAG,MAAM,YAAI,CAAC,QAAQ,CAAC,CAAA;aAC7B;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACzB,sCAAsC;oBACtC,OAAO,CAAC,GAAG,CACT,uEAAuE,QAAQ,MAAM,GAAG,EAAE,CAC3F,CAAA;iBACF;aACF;YAED,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;gBAC3B,IAAI,kBAAU,EAAE;oBACd,yEAAyE;oBACzE,IAAI;wBACF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;wBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;wBACvD,KAAK,MAAM,UAAU,IAAI,MAAM,eAAO,CAAC,SAAS,CAAC,EAAE;4BACjD,IAAI,SAAS,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE;gCAC1C,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;gCAC3C,MAAK;6BACN;yBACF;qBACF;oBAAC,OAAO,GAAG,EAAE;wBACZ,sCAAsC;wBACtC,OAAO,CAAC,GAAG,CACT,yEAAyE,QAAQ,MAAM,GAAG,EAAE,CAC7F,CAAA;qBACF;oBAED,OAAO,QAAQ,CAAA;iBAChB;qBAAM;oBACL,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;wBAC3B,OAAO,QAAQ,CAAA;qBAChB;iBACF;aACF;SACF;QAED,OAAO,EAAE,CAAA;IACX,CAAC;CAAA;AA5ED,oDA4EC;AAED,SAAS,mBAAmB,CAAC,CAAS;IACpC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IACX,IAAI,kBAAU,EAAE;QACd,6BAA6B;QAC7B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE1B,2BAA2B;QAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;KACjC;IAED,2BAA2B;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC;AAED,qCAAqC;AACrC,6BAA6B;AAC7B,6BAA6B;AAC7B,SAAS,gBAAgB,CAAC,KAAe;IACvC,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACxD,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAC1D,CAAA;AACH,CAAC"}
|
{"version":3,"file":"io-util.js","sourceRoot":"","sources":["../src/io-util.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAyB;AACzB,yBAAwB;AACxB,6BAA4B;AAEf,gBAQE,iMAAA;AAEF,QAAA,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;AAEtD,SAAsB,MAAM,CAAC,MAAc;;QACzC,IAAI;YACF,MAAM,YAAI,CAAC,MAAM,CAAC,CAAA;SACnB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,OAAO,KAAK,CAAA;aACb;YAED,MAAM,GAAG,CAAA;SACV;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CAAA;AAZD,wBAYC;AAED,SAAsB,WAAW,CAC/B,MAAc,EACd,UAAmB,KAAK;;QAExB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;QAChE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC;CAAA;AAND,kCAMC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,CAAS;IAChC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC5D;IAED,IAAI,kBAAU,EAAE;QACd,OAAO,CACL,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,8BAA8B;SACxE,CAAA,CAAC,sBAAsB;KACzB;IAED,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AAbD,4BAaC;AAED;;;;;;;;;GASG;AACH,SAAsB,MAAM,CAC1B,MAAc,EACd,WAAmB,IAAI,EACvB,QAAgB,CAAC;;QAEjB,WAAE,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAA;QAE9C,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAE7B,IAAI,KAAK,IAAI,QAAQ;YAAE,OAAO,aAAK,CAAC,MAAM,CAAC,CAAA;QAE3C,IAAI;YACF,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;YACnB,OAAM;SACP;QAAC,OAAO,GAAG,EAAE;YACZ,QAAQ,GAAG,CAAC,IAAI,EAAE;gBAChB,KAAK,QAAQ,CAAC,CAAC;oBACb,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;oBACvD,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;oBACnB,OAAM;iBACP;gBACD,OAAO,CAAC,CAAC;oBACP,IAAI,KAAe,CAAA;oBAEnB,IAAI;wBACF,KAAK,GAAG,MAAM,YAAI,CAAC,MAAM,CAAC,CAAA;qBAC3B;oBAAC,OAAO,IAAI,EAAE;wBACb,MAAM,GAAG,CAAA;qBACV;oBAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;wBAAE,MAAM,GAAG,CAAA;iBACpC;aACF;SACF;IACH,CAAC;CAAA;AAlCD,wBAkCC;AAED;;;;;GAKG;AACH,SAAsB,oBAAoB,CACxC,QAAgB,EAChB,UAAoB;;QAEpB,IAAI,KAAK,GAAyB,SAAS,CAAA;QAC3C,IAAI;YACF,mBAAmB;YACnB,KAAK,GAAG,MAAM,YAAI,CAAC,QAAQ,CAAC,CAAA;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CACT,uEAAuE,QAAQ,MAAM,GAAG,EAAE,CAC3F,CAAA;aACF;SACF;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;YAC3B,IAAI,kBAAU,EAAE;gBACd,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;gBACrD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE;oBACpE,OAAO,QAAQ,CAAA;iBAChB;aACF;iBAAM;gBACL,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;oBAC3B,OAAO,QAAQ,CAAA;iBAChB;aACF;SACF;QAED,qBAAqB;QACrB,MAAM,gBAAgB,GAAG,QAAQ,CAAA;QACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAA;YAEvC,KAAK,GAAG,SAAS,CAAA;YACjB,IAAI;gBACF,KAAK,GAAG,MAAM,YAAI,CAAC,QAAQ,CAAC,CAAA;aAC7B;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACzB,sCAAsC;oBACtC,OAAO,CAAC,GAAG,CACT,uEAAuE,QAAQ,MAAM,GAAG,EAAE,CAC3F,CAAA;iBACF;aACF;YAED,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;gBAC3B,IAAI,kBAAU,EAAE;oBACd,yEAAyE;oBACzE,IAAI;wBACF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;wBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;wBACvD,KAAK,MAAM,UAAU,IAAI,MAAM,eAAO,CAAC,SAAS,CAAC,EAAE;4BACjD,IAAI,SAAS,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE;gCAC1C,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;gCAC3C,MAAK;6BACN;yBACF;qBACF;oBAAC,OAAO,GAAG,EAAE;wBACZ,sCAAsC;wBACtC,OAAO,CAAC,GAAG,CACT,yEAAyE,QAAQ,MAAM,GAAG,EAAE,CAC7F,CAAA;qBACF;oBAED,OAAO,QAAQ,CAAA;iBAChB;qBAAM;oBACL,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;wBAC3B,OAAO,QAAQ,CAAA;qBAChB;iBACF;aACF;SACF;QAED,OAAO,EAAE,CAAA;IACX,CAAC;CAAA;AA5ED,oDA4EC;AAED,SAAS,mBAAmB,CAAC,CAAS;IACpC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IACX,IAAI,kBAAU,EAAE;QACd,6BAA6B;QAC7B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE1B,2BAA2B;QAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;KACjC;IAED,2BAA2B;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC;AAED,qCAAqC;AACrC,6BAA6B;AAC7B,6BAA6B;AAC7B,SAAS,gBAAgB,CAAC,KAAe;IACvC,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACxD,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAC1D,CAAA;AACH,CAAC"}
|
104
node_modules/@actions/io/lib/io.d.ts
generated
vendored
104
node_modules/@actions/io/lib/io.d.ts
generated
vendored
@ -1,56 +1,48 @@
|
|||||||
/**
|
/**
|
||||||
* Interface for cp/mv options
|
* Interface for cp/mv options
|
||||||
*/
|
*/
|
||||||
export interface CopyOptions {
|
export interface CopyOptions {
|
||||||
/** Optional. Whether to recursively copy all subdirectories. Defaults to false */
|
/** Optional. Whether to recursively copy all subdirectories. Defaults to false */
|
||||||
recursive?: boolean;
|
recursive?: boolean;
|
||||||
/** Optional. Whether to overwrite existing files in the destination. Defaults to true */
|
/** Optional. Whether to overwrite existing files in the destination. Defaults to true */
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Interface for cp/mv options
|
* Copies a file or folder.
|
||||||
*/
|
*
|
||||||
export interface MoveOptions {
|
* @param source source path
|
||||||
/** Optional. Whether to overwrite existing files in the destination. Defaults to true */
|
* @param dest destination path
|
||||||
force?: boolean;
|
* @param options optional. See CopyOptions.
|
||||||
}
|
*/
|
||||||
/**
|
export declare function cp(source: string, dest: string, options?: CopyOptions): Promise<void>;
|
||||||
* Copies a file or folder.
|
/**
|
||||||
* Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js
|
* Moves a path.
|
||||||
*
|
*
|
||||||
* @param source source path
|
* @param source source path
|
||||||
* @param dest destination path
|
* @param dest destination path
|
||||||
* @param options optional. See CopyOptions.
|
* @param options optional. See CopyOptions.
|
||||||
*/
|
*/
|
||||||
export declare function cp(source: string, dest: string, options?: CopyOptions): Promise<void>;
|
export declare function mv(source: string, dest: string, options?: CopyOptions): Promise<void>;
|
||||||
/**
|
/**
|
||||||
* Moves a path.
|
* Remove a path recursively with force
|
||||||
*
|
*
|
||||||
* @param source source path
|
* @param inputPath path to remove
|
||||||
* @param dest destination path
|
*/
|
||||||
* @param options optional. See MoveOptions.
|
export declare function rmRF(inputPath: string): Promise<void>;
|
||||||
*/
|
/**
|
||||||
export declare function mv(source: string, dest: string, options?: MoveOptions): Promise<void>;
|
* Make a directory. Creates the full path with folders in between
|
||||||
/**
|
* Will throw if it fails
|
||||||
* Remove a path recursively with force
|
*
|
||||||
*
|
* @param fsPath path to create
|
||||||
* @param inputPath path to remove
|
* @returns Promise<void>
|
||||||
*/
|
*/
|
||||||
export declare function rmRF(inputPath: string): Promise<void>;
|
export declare function mkdirP(fsPath: string): Promise<void>;
|
||||||
/**
|
/**
|
||||||
* Make a directory. Creates the full path with folders in between
|
* Returns path of a tool had the tool actually been invoked. Resolves via paths.
|
||||||
* Will throw if it fails
|
* If you check and the tool does not exist, it will throw.
|
||||||
*
|
*
|
||||||
* @param fsPath path to create
|
* @param tool name of the tool
|
||||||
* @returns Promise<void>
|
* @param check whether to check if tool exists
|
||||||
*/
|
* @returns Promise<string> path to tool
|
||||||
export declare function mkdirP(fsPath: string): Promise<void>;
|
*/
|
||||||
/**
|
export declare function which(tool: string, check?: boolean): Promise<string>;
|
||||||
* 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
|
|
||||||
*/
|
|
||||||
export declare function which(tool: string, check?: boolean): Promise<string>;
|
|
||||||
|
549
node_modules/@actions/io/lib/io.js
generated
vendored
549
node_modules/@actions/io/lib/io.js
generated
vendored
@ -1,289 +1,262 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
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 rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const childProcess = require("child_process");
|
const childProcess = require("child_process");
|
||||||
const path = require("path");
|
const fs = require("fs");
|
||||||
const util_1 = require("util");
|
const path = require("path");
|
||||||
const ioUtil = require("./io-util");
|
const util_1 = require("util");
|
||||||
const exec = util_1.promisify(childProcess.exec);
|
const ioUtil = require("./io-util");
|
||||||
/**
|
const exec = util_1.promisify(childProcess.exec);
|
||||||
* Copies a file or folder.
|
/**
|
||||||
* Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js
|
* Copies a file or folder.
|
||||||
*
|
*
|
||||||
* @param source source path
|
* @param source source path
|
||||||
* @param dest destination path
|
* @param dest destination path
|
||||||
* @param options optional. See CopyOptions.
|
* @param options optional. See CopyOptions.
|
||||||
*/
|
*/
|
||||||
function cp(source, dest, options = {}) {
|
function cp(source, dest, options = {}) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const { force, recursive } = readCopyOptions(options);
|
yield move(source, dest, options, { deleteOriginal: false });
|
||||||
const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null;
|
});
|
||||||
// Dest is an existing file, but not forcing
|
}
|
||||||
if (destStat && destStat.isFile() && !force) {
|
exports.cp = cp;
|
||||||
return;
|
/**
|
||||||
}
|
* Moves a path.
|
||||||
// If dest is an existing directory, should copy inside.
|
*
|
||||||
const newDest = destStat && destStat.isDirectory()
|
* @param source source path
|
||||||
? path.join(dest, path.basename(source))
|
* @param dest destination path
|
||||||
: dest;
|
* @param options optional. See CopyOptions.
|
||||||
if (!(yield ioUtil.exists(source))) {
|
*/
|
||||||
throw new Error(`no such file or directory: ${source}`);
|
function mv(source, dest, options = {}) {
|
||||||
}
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const sourceStat = yield ioUtil.stat(source);
|
yield move(source, dest, options, { deleteOriginal: true });
|
||||||
if (sourceStat.isDirectory()) {
|
});
|
||||||
if (!recursive) {
|
}
|
||||||
throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);
|
exports.mv = mv;
|
||||||
}
|
/**
|
||||||
else {
|
* Remove a path recursively with force
|
||||||
yield cpDirRecursive(source, newDest, 0, force);
|
*
|
||||||
}
|
* @param inputPath path to remove
|
||||||
}
|
*/
|
||||||
else {
|
function rmRF(inputPath) {
|
||||||
if (path.relative(source, newDest) === '') {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
// a file cannot be copied to itself
|
if (ioUtil.IS_WINDOWS) {
|
||||||
throw new Error(`'${newDest}' and '${source}' are the same file`);
|
// 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.
|
||||||
yield copyFile(source, newDest, force);
|
try {
|
||||||
}
|
if (yield ioUtil.isDirectory(inputPath, true)) {
|
||||||
});
|
yield exec(`rd /s /q "${inputPath}"`);
|
||||||
}
|
}
|
||||||
exports.cp = cp;
|
else {
|
||||||
/**
|
yield exec(`del /f /a "${inputPath}"`);
|
||||||
* Moves a path.
|
}
|
||||||
*
|
}
|
||||||
* @param source source path
|
catch (err) {
|
||||||
* @param dest destination path
|
// if you try to delete a file that doesn't exist, desired result is achieved
|
||||||
* @param options optional. See MoveOptions.
|
// other errors are valid
|
||||||
*/
|
if (err.code !== 'ENOENT')
|
||||||
function mv(source, dest, options = {}) {
|
throw err;
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
}
|
||||||
if (yield ioUtil.exists(dest)) {
|
// Shelling out fails to remove a symlink folder with missing source, this unlink catches that
|
||||||
let destExists = true;
|
try {
|
||||||
if (yield ioUtil.isDirectory(dest)) {
|
yield ioUtil.unlink(inputPath);
|
||||||
// If dest is directory copy src into dest
|
}
|
||||||
dest = path.join(dest, path.basename(source));
|
catch (err) {
|
||||||
destExists = yield ioUtil.exists(dest);
|
// if you try to delete a file that doesn't exist, desired result is achieved
|
||||||
}
|
// other errors are valid
|
||||||
if (destExists) {
|
if (err.code !== 'ENOENT')
|
||||||
if (options.force == null || options.force) {
|
throw err;
|
||||||
yield rmRF(dest);
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new Error('Destination already exists');
|
let isDir = false;
|
||||||
}
|
try {
|
||||||
}
|
isDir = yield ioUtil.isDirectory(inputPath);
|
||||||
}
|
}
|
||||||
yield mkdirP(path.dirname(dest));
|
catch (err) {
|
||||||
yield ioUtil.rename(source, dest);
|
// if you try to delete a file that doesn't exist, desired result is achieved
|
||||||
});
|
// other errors are valid
|
||||||
}
|
if (err.code !== 'ENOENT')
|
||||||
exports.mv = mv;
|
throw err;
|
||||||
/**
|
return;
|
||||||
* Remove a path recursively with force
|
}
|
||||||
*
|
if (isDir) {
|
||||||
* @param inputPath path to remove
|
yield exec(`rm -rf "${inputPath}"`);
|
||||||
*/
|
}
|
||||||
function rmRF(inputPath) {
|
else {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
yield ioUtil.unlink(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.
|
});
|
||||||
try {
|
}
|
||||||
if (yield ioUtil.isDirectory(inputPath, true)) {
|
exports.rmRF = rmRF;
|
||||||
yield exec(`rd /s /q "${inputPath}"`);
|
/**
|
||||||
}
|
* Make a directory. Creates the full path with folders in between
|
||||||
else {
|
* Will throw if it fails
|
||||||
yield exec(`del /f /a "${inputPath}"`);
|
*
|
||||||
}
|
* @param fsPath path to create
|
||||||
}
|
* @returns Promise<void>
|
||||||
catch (err) {
|
*/
|
||||||
// if you try to delete a file that doesn't exist, desired result is achieved
|
function mkdirP(fsPath) {
|
||||||
// other errors are valid
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
if (err.code !== 'ENOENT')
|
yield ioUtil.mkdirP(fsPath);
|
||||||
throw err;
|
});
|
||||||
}
|
}
|
||||||
// Shelling out fails to remove a symlink folder with missing source, this unlink catches that
|
exports.mkdirP = mkdirP;
|
||||||
try {
|
/**
|
||||||
yield ioUtil.unlink(inputPath);
|
* 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.
|
||||||
catch (err) {
|
*
|
||||||
// if you try to delete a file that doesn't exist, desired result is achieved
|
* @param tool name of the tool
|
||||||
// other errors are valid
|
* @param check whether to check if tool exists
|
||||||
if (err.code !== 'ENOENT')
|
* @returns Promise<string> path to tool
|
||||||
throw err;
|
*/
|
||||||
}
|
function which(tool, check) {
|
||||||
}
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
else {
|
if (!tool) {
|
||||||
let isDir = false;
|
throw new Error("parameter 'tool' is required");
|
||||||
try {
|
}
|
||||||
isDir = yield ioUtil.isDirectory(inputPath);
|
// recursive when check=true
|
||||||
}
|
if (check) {
|
||||||
catch (err) {
|
const result = yield which(tool, false);
|
||||||
// if you try to delete a file that doesn't exist, desired result is achieved
|
if (!result) {
|
||||||
// other errors are valid
|
if (ioUtil.IS_WINDOWS) {
|
||||||
if (err.code !== 'ENOENT')
|
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.`);
|
||||||
throw err;
|
}
|
||||||
return;
|
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.`);
|
||||||
if (isDir) {
|
}
|
||||||
yield exec(`rm -rf "${inputPath}"`);
|
}
|
||||||
}
|
}
|
||||||
else {
|
try {
|
||||||
yield ioUtil.unlink(inputPath);
|
// 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) {
|
||||||
exports.rmRF = rmRF;
|
extensions.push(extension);
|
||||||
/**
|
}
|
||||||
* Make a directory. Creates the full path with folders in between
|
}
|
||||||
* Will throw if it fails
|
}
|
||||||
*
|
// if it's rooted, return it if exists. otherwise return empty.
|
||||||
* @param fsPath path to create
|
if (ioUtil.isRooted(tool)) {
|
||||||
* @returns Promise<void>
|
const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);
|
||||||
*/
|
if (filePath) {
|
||||||
function mkdirP(fsPath) {
|
return filePath;
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
}
|
||||||
yield ioUtil.mkdirP(fsPath);
|
return '';
|
||||||
});
|
}
|
||||||
}
|
// if any path separators, return empty
|
||||||
exports.mkdirP = mkdirP;
|
if (tool.includes('/') || (ioUtil.IS_WINDOWS && tool.includes('\\'))) {
|
||||||
/**
|
return '';
|
||||||
* 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.
|
// build the list of directories
|
||||||
*
|
//
|
||||||
* @param tool name of the tool
|
// Note, technically "where" checks the current directory on Windows. From a task lib perspective,
|
||||||
* @param check whether to check if tool exists
|
// it feels like we should not do this. Checking the current directory seems like more of a use
|
||||||
* @returns Promise<string> path to tool
|
// case of a shell, and the which() function exposed by the task lib should strive for consistency
|
||||||
*/
|
// across platforms.
|
||||||
function which(tool, check) {
|
const directories = [];
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
if (process.env.PATH) {
|
||||||
if (!tool) {
|
for (const p of process.env.PATH.split(path.delimiter)) {
|
||||||
throw new Error("parameter 'tool' is required");
|
if (p) {
|
||||||
}
|
directories.push(p);
|
||||||
// recursive when check=true
|
}
|
||||||
if (check) {
|
}
|
||||||
const result = yield which(tool, false);
|
}
|
||||||
if (!result) {
|
// return the first match
|
||||||
if (ioUtil.IS_WINDOWS) {
|
for (const directory of directories) {
|
||||||
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.`);
|
const filePath = yield ioUtil.tryGetExecutablePath(directory + path.sep + tool, extensions);
|
||||||
}
|
if (filePath) {
|
||||||
else {
|
return filePath;
|
||||||
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 '';
|
||||||
}
|
}
|
||||||
try {
|
catch (err) {
|
||||||
// build the list of extensions to try
|
throw new Error(`which failed with message ${err.message}`);
|
||||||
const extensions = [];
|
}
|
||||||
if (ioUtil.IS_WINDOWS && process.env.PATHEXT) {
|
});
|
||||||
for (const extension of process.env.PATHEXT.split(path.delimiter)) {
|
}
|
||||||
if (extension) {
|
exports.which = which;
|
||||||
extensions.push(extension);
|
// Copies contents of source into dest, making any necessary folders along the way.
|
||||||
}
|
// Deletes the original copy if deleteOriginal is true
|
||||||
}
|
function copyDirectoryContents(source, dest, force, deleteOriginal = false) {
|
||||||
}
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
// if it's rooted, return it if exists. otherwise return empty.
|
if (yield ioUtil.isDirectory(source)) {
|
||||||
if (ioUtil.isRooted(tool)) {
|
if (yield ioUtil.exists(dest)) {
|
||||||
const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);
|
if (!(yield ioUtil.isDirectory(dest))) {
|
||||||
if (filePath) {
|
throw new Error(`${dest} is not a directory`);
|
||||||
return filePath;
|
}
|
||||||
}
|
}
|
||||||
return '';
|
else {
|
||||||
}
|
yield mkdirP(dest);
|
||||||
// if any path separators, return empty
|
}
|
||||||
if (tool.includes('/') || (ioUtil.IS_WINDOWS && tool.includes('\\'))) {
|
// Copy all child files, and directories recursively
|
||||||
return '';
|
const sourceChildren = yield ioUtil.readdir(source);
|
||||||
}
|
for (const newSource of sourceChildren) {
|
||||||
// build the list of directories
|
const newDest = path.join(dest, path.basename(newSource));
|
||||||
//
|
yield copyDirectoryContents(path.resolve(source, newSource), newDest, force, deleteOriginal);
|
||||||
// Note, technically "where" checks the current directory on Windows. From a task lib perspective,
|
}
|
||||||
// it feels like we should not do this. Checking the current directory seems like more of a use
|
if (deleteOriginal) {
|
||||||
// case of a shell, and the which() function exposed by the task lib should strive for consistency
|
yield ioUtil.rmdir(source);
|
||||||
// across platforms.
|
}
|
||||||
const directories = [];
|
}
|
||||||
if (process.env.PATH) {
|
else {
|
||||||
for (const p of process.env.PATH.split(path.delimiter)) {
|
if (force) {
|
||||||
if (p) {
|
yield ioUtil.copyFile(source, dest);
|
||||||
directories.push(p);
|
}
|
||||||
}
|
else {
|
||||||
}
|
yield ioUtil.copyFile(source, dest, fs.constants.COPYFILE_EXCL);
|
||||||
}
|
}
|
||||||
// return the first match
|
if (deleteOriginal) {
|
||||||
for (const directory of directories) {
|
yield ioUtil.unlink(source);
|
||||||
const filePath = yield ioUtil.tryGetExecutablePath(directory + path.sep + tool, extensions);
|
}
|
||||||
if (filePath) {
|
}
|
||||||
return filePath;
|
});
|
||||||
}
|
}
|
||||||
}
|
function move(source, dest, options = {}, moveOptions) {
|
||||||
return '';
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
}
|
const { force, recursive } = readCopyOptions(options);
|
||||||
catch (err) {
|
if (yield ioUtil.isDirectory(source)) {
|
||||||
throw new Error(`which failed with message ${err.message}`);
|
if (!recursive) {
|
||||||
}
|
throw new Error(`non-recursive cp failed, ${source} is a directory`);
|
||||||
});
|
}
|
||||||
}
|
// If directory exists, move source inside it. Otherwise, create it and move contents of source inside.
|
||||||
exports.which = which;
|
if (yield ioUtil.exists(dest)) {
|
||||||
function readCopyOptions(options) {
|
if (!(yield ioUtil.isDirectory(dest))) {
|
||||||
const force = options.force == null ? true : options.force;
|
throw new Error(`${dest} is not a directory`);
|
||||||
const recursive = Boolean(options.recursive);
|
}
|
||||||
return { force, recursive };
|
dest = path.join(dest, path.basename(source));
|
||||||
}
|
}
|
||||||
function cpDirRecursive(sourceDir, destDir, currentDepth, force) {
|
yield copyDirectoryContents(source, dest, force, moveOptions.deleteOriginal);
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
}
|
||||||
// Ensure there is not a run away recursive copy
|
else {
|
||||||
if (currentDepth >= 255)
|
if ((yield ioUtil.exists(dest)) && (yield ioUtil.isDirectory(dest))) {
|
||||||
return;
|
dest = path.join(dest, path.basename(source));
|
||||||
currentDepth++;
|
}
|
||||||
yield mkdirP(destDir);
|
if (force) {
|
||||||
const files = yield ioUtil.readdir(sourceDir);
|
yield ioUtil.copyFile(source, dest);
|
||||||
for (const fileName of files) {
|
}
|
||||||
const srcFile = `${sourceDir}/${fileName}`;
|
else {
|
||||||
const destFile = `${destDir}/${fileName}`;
|
yield ioUtil.copyFile(source, dest, fs.constants.COPYFILE_EXCL);
|
||||||
const srcFileStat = yield ioUtil.lstat(srcFile);
|
}
|
||||||
if (srcFileStat.isDirectory()) {
|
if (moveOptions.deleteOriginal) {
|
||||||
// Recurse
|
yield ioUtil.unlink(source);
|
||||||
yield cpDirRecursive(srcFile, destFile, currentDepth, force);
|
}
|
||||||
}
|
}
|
||||||
else {
|
});
|
||||||
yield copyFile(srcFile, destFile, force);
|
}
|
||||||
}
|
function readCopyOptions(options) {
|
||||||
}
|
const force = options.force == null ? true : options.force;
|
||||||
// Change the mode for the newly created directory
|
const recursive = Boolean(options.recursive);
|
||||||
yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode);
|
return { force, recursive };
|
||||||
});
|
}
|
||||||
}
|
|
||||||
// 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
|
//# sourceMappingURL=io.js.map
|
2
node_modules/@actions/io/lib/io.js.map
generated
vendored
2
node_modules/@actions/io/lib/io.js.map
generated
vendored
File diff suppressed because one or more lines are too long
29
node_modules/@actions/io/package.json
generated
vendored
29
node_modules/@actions/io/package.json
generated
vendored
@ -1,29 +1,29 @@
|
|||||||
{
|
{
|
||||||
"_from": "@actions/io@^1.0.0",
|
"_from": "file:toolkit/actions-io-0.0.0.tgz",
|
||||||
"_id": "@actions/io@1.0.0",
|
"_id": "@actions/io@0.0.0",
|
||||||
"_inBundle": false,
|
"_inBundle": false,
|
||||||
"_integrity": "sha512-ezrJSRdqtXtdx1WXlfYL85+40F7gB39jCK9P0jZVODW3W6xUYmu6ZOEc/UmmElUwhRyDRm1R4yNZu1Joq2kuQg==",
|
"_integrity": "sha512-BArfobXB/b6RjR4i/+P4UcdaqR2tPjEb2WzZf9GdKiSARQn7d301pKOZAqxA+0N11X07Lk46t/txeUBcrCNbeg==",
|
||||||
"_location": "/@actions/io",
|
"_location": "/@actions/io",
|
||||||
"_phantomChildren": {},
|
"_phantomChildren": {},
|
||||||
"_requested": {
|
"_requested": {
|
||||||
"type": "range",
|
"type": "file",
|
||||||
"registry": true,
|
"where": "/Users/chrispat/Source/work/actions/setup-node",
|
||||||
"raw": "@actions/io@^1.0.0",
|
"raw": "@actions/io@file:toolkit/actions-io-0.0.0.tgz",
|
||||||
"name": "@actions/io",
|
"name": "@actions/io",
|
||||||
"escapedName": "@actions%2fio",
|
"escapedName": "@actions%2fio",
|
||||||
"scope": "@actions",
|
"scope": "@actions",
|
||||||
"rawSpec": "^1.0.0",
|
"rawSpec": "file:toolkit/actions-io-0.0.0.tgz",
|
||||||
"saveSpec": null,
|
"saveSpec": "file:toolkit/actions-io-0.0.0.tgz",
|
||||||
"fetchSpec": "^1.0.0"
|
"fetchSpec": "/Users/chrispat/Source/work/actions/setup-node/toolkit/actions-io-0.0.0.tgz"
|
||||||
},
|
},
|
||||||
"_requiredBy": [
|
"_requiredBy": [
|
||||||
"/",
|
"/",
|
||||||
"/@actions/tool-cache"
|
"/@actions/tool-cache"
|
||||||
],
|
],
|
||||||
"_resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.0.tgz",
|
"_resolved": "/Users/chrispat/Source/work/actions/setup-node/toolkit/actions-io-0.0.0.tgz",
|
||||||
"_shasum": "379454174660623bb5b3bce0be8b9e2285a62bcb",
|
"_shasum": "1e8f0faca6b39215bebacedf473e5bb0716e39bf",
|
||||||
"_spec": "@actions/io@^1.0.0",
|
"_spec": "@actions/io@file:toolkit/actions-io-0.0.0.tgz",
|
||||||
"_where": "C:\\Users\\damccorm\\Documents\\setup-node",
|
"_where": "/Users/chrispat/Source/work/actions/setup-node",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/actions/toolkit/issues"
|
"url": "https://github.com/actions/toolkit/issues"
|
||||||
},
|
},
|
||||||
@ -37,7 +37,6 @@
|
|||||||
"files": [
|
"files": [
|
||||||
"lib"
|
"lib"
|
||||||
],
|
],
|
||||||
"gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55",
|
|
||||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/io",
|
"homepage": "https://github.com/actions/toolkit/tree/master/packages/io",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"io",
|
"io",
|
||||||
@ -57,5 +56,5 @@
|
|||||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||||
"tsc": "tsc"
|
"tsc": "tsc"
|
||||||
},
|
},
|
||||||
"version": "1.0.0"
|
"version": "0.0.0"
|
||||||
}
|
}
|
||||||
|
7
node_modules/@actions/tool-cache/LICENSE.md
generated
vendored
7
node_modules/@actions/tool-cache/LICENSE.md
generated
vendored
@ -1,7 +0,0 @@
|
|||||||
Copyright 2019 GitHub
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
89
node_modules/@actions/tool-cache/README.md
generated
vendored
89
node_modules/@actions/tool-cache/README.md
generated
vendored
@ -1,82 +1,7 @@
|
|||||||
# `@actions/tool-cache`
|
# `@actions/tool-cache`
|
||||||
|
|
||||||
> Functions necessary for downloading and caching tools.
|
> Functions necessary for downloading and caching tools.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
#### Download
|
See [src/tool-cache.ts](src/tool-cache.ts).
|
||||||
|
|
||||||
You can use this to download tools (or other files) from a download URL:
|
|
||||||
|
|
||||||
```
|
|
||||||
const tc = require('@actions/tool-cache');
|
|
||||||
|
|
||||||
const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Extract
|
|
||||||
|
|
||||||
These can then be extracted in platform specific ways:
|
|
||||||
|
|
||||||
```
|
|
||||||
const tc = require('@actions/tool-cache');
|
|
||||||
|
|
||||||
if (process.platform === 'win32') {
|
|
||||||
tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.zip');
|
|
||||||
const node12ExtractedFolder = await tc.extractZip(node12Path, 'path/to/extract/to');
|
|
||||||
|
|
||||||
// Or alternately
|
|
||||||
tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.7z');
|
|
||||||
const node12ExtractedFolder = await tc.extract7z(node12Path, 'path/to/extract/to');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
|
||||||
const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to');
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Cache
|
|
||||||
|
|
||||||
Finally, you can cache these directories in our tool-cache. This is useful if you want to switch back and forth between versions of a tool, or save a tool between runs for private runners (private runners are still in development but are on the roadmap).
|
|
||||||
|
|
||||||
You'll often want to add it to the path as part of this step:
|
|
||||||
|
|
||||||
```
|
|
||||||
const tc = require('@actions/tool-cache');
|
|
||||||
const core = require('@actions/core');
|
|
||||||
|
|
||||||
const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz');
|
|
||||||
const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to');
|
|
||||||
|
|
||||||
const cachedPath = await tc.cacheDir(node12ExtractedFolder, 'node', '12.7.0');
|
|
||||||
core.addPath(cachedPath);
|
|
||||||
```
|
|
||||||
|
|
||||||
You can also cache files for reuse.
|
|
||||||
|
|
||||||
```
|
|
||||||
const tc = require('@actions/tool-cache');
|
|
||||||
|
|
||||||
tc.cacheFile('path/to/exe', 'destFileName.exe', 'myExeName', '1.1.0');
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Find
|
|
||||||
|
|
||||||
Finally, you can find directories and files you've previously cached:
|
|
||||||
|
|
||||||
```
|
|
||||||
const tc = require('@actions/tool-cache');
|
|
||||||
const core = require('@actions/core');
|
|
||||||
|
|
||||||
const nodeDirectory = tc.find('node', '12.x', 'x64');
|
|
||||||
core.addPath(nodeDirectory);
|
|
||||||
```
|
|
||||||
|
|
||||||
You can even find all cached versions of a tool:
|
|
||||||
|
|
||||||
```
|
|
||||||
const tc = require('@actions/tool-cache');
|
|
||||||
|
|
||||||
const allNodeVersions = tc.findAllVersions('node');
|
|
||||||
console.log(`Versions of node available: ${allNodeVersions}`);
|
|
||||||
```
|
|
156
node_modules/@actions/tool-cache/lib/tool-cache.d.ts
generated
vendored
156
node_modules/@actions/tool-cache/lib/tool-cache.d.ts
generated
vendored
@ -1,78 +1,78 @@
|
|||||||
export declare class HTTPError extends Error {
|
export declare class HTTPError extends Error {
|
||||||
readonly httpStatusCode: number | undefined;
|
readonly httpStatusCode: number | undefined;
|
||||||
constructor(httpStatusCode: number | undefined);
|
constructor(httpStatusCode: number | undefined);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Download a tool from an url and stream it into a file
|
* Download a tool from an url and stream it into a file
|
||||||
*
|
*
|
||||||
* @param url url of tool to download
|
* @param url url of tool to download
|
||||||
* @returns path to downloaded tool
|
* @returns path to downloaded tool
|
||||||
*/
|
*/
|
||||||
export declare function downloadTool(url: string): Promise<string>;
|
export declare function downloadTool(url: string): Promise<string>;
|
||||||
/**
|
/**
|
||||||
* Extract a .7z file
|
* Extract a .7z file
|
||||||
*
|
*
|
||||||
* @param file path to the .7z file
|
* @param file path to the .7z file
|
||||||
* @param dest destination directory. Optional.
|
* @param dest destination directory. Optional.
|
||||||
* @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this
|
* @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this
|
||||||
* problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will
|
* problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will
|
||||||
* gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is
|
* gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is
|
||||||
* bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line
|
* bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line
|
||||||
* interface, it is smaller than the full command line interface, and it does support long paths. At the
|
* interface, it is smaller than the full command line interface, and it does support long paths. At the
|
||||||
* time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website.
|
* time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website.
|
||||||
* Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path
|
* Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path
|
||||||
* to 7zr.exe can be pass to this function.
|
* to 7zr.exe can be pass to this function.
|
||||||
* @returns path to the destination directory
|
* @returns path to the destination directory
|
||||||
*/
|
*/
|
||||||
export declare function extract7z(file: string, dest?: string, _7zPath?: string): Promise<string>;
|
export declare function extract7z(file: string, dest?: string, _7zPath?: string): Promise<string>;
|
||||||
/**
|
/**
|
||||||
* Extract a tar
|
* Extract a tar
|
||||||
*
|
*
|
||||||
* @param file path to the tar
|
* @param file path to the tar
|
||||||
* @param dest destination directory. Optional.
|
* @param dest destination directory. Optional.
|
||||||
* @returns path to the destination directory
|
* @returns path to the destination directory
|
||||||
*/
|
*/
|
||||||
export declare function extractTar(file: string, dest?: string): Promise<string>;
|
export declare function extractTar(file: string, dest?: string): Promise<string>;
|
||||||
/**
|
/**
|
||||||
* Extract a zip
|
* Extract a zip
|
||||||
*
|
*
|
||||||
* @param file path to the zip
|
* @param file path to the zip
|
||||||
* @param dest destination directory. Optional.
|
* @param dest destination directory. Optional.
|
||||||
* @returns path to the destination directory
|
* @returns path to the destination directory
|
||||||
*/
|
*/
|
||||||
export declare function extractZip(file: string, dest?: string): Promise<string>;
|
export declare function extractZip(file: string, dest?: string): Promise<string>;
|
||||||
/**
|
/**
|
||||||
* Caches a directory and installs it into the tool cacheDir
|
* Caches a directory and installs it into the tool cacheDir
|
||||||
*
|
*
|
||||||
* @param sourceDir the directory to cache into tools
|
* @param sourceDir the directory to cache into tools
|
||||||
* @param tool tool name
|
* @param tool tool name
|
||||||
* @param version version of the tool. semver format
|
* @param version version of the tool. semver format
|
||||||
* @param arch architecture of the tool. Optional. Defaults to machine architecture
|
* @param arch architecture of the tool. Optional. Defaults to machine architecture
|
||||||
*/
|
*/
|
||||||
export declare function cacheDir(sourceDir: string, tool: string, version: string, arch?: string): Promise<string>;
|
export declare function cacheDir(sourceDir: string, tool: string, version: string, arch?: string): Promise<string>;
|
||||||
/**
|
/**
|
||||||
* Caches a downloaded file (GUID) and installs it
|
* Caches a downloaded file (GUID) and installs it
|
||||||
* into the tool cache with a given targetName
|
* into the tool cache with a given targetName
|
||||||
*
|
*
|
||||||
* @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid.
|
* @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid.
|
||||||
* @param targetFile the name of the file name in the tools directory
|
* @param targetFile the name of the file name in the tools directory
|
||||||
* @param tool tool name
|
* @param tool tool name
|
||||||
* @param version version of the tool. semver format
|
* @param version version of the tool. semver format
|
||||||
* @param arch architecture of the tool. Optional. Defaults to machine architecture
|
* @param arch architecture of the tool. Optional. Defaults to machine architecture
|
||||||
*/
|
*/
|
||||||
export declare function cacheFile(sourceFile: string, targetFile: string, tool: string, version: string, arch?: string): Promise<string>;
|
export declare function cacheFile(sourceFile: string, targetFile: string, tool: string, version: string, arch?: string): Promise<string>;
|
||||||
/**
|
/**
|
||||||
* Finds the path to a tool version in the local installed tool cache
|
* Finds the path to a tool version in the local installed tool cache
|
||||||
*
|
*
|
||||||
* @param toolName name of the tool
|
* @param toolName name of the tool
|
||||||
* @param versionSpec version of the tool
|
* @param versionSpec version of the tool
|
||||||
* @param arch optional arch. defaults to arch of computer
|
* @param arch optional arch. defaults to arch of computer
|
||||||
*/
|
*/
|
||||||
export declare function find(toolName: string, versionSpec: string, arch?: string): string;
|
export declare function find(toolName: string, versionSpec: string, arch?: string): string;
|
||||||
/**
|
/**
|
||||||
* Finds the paths to all versions of a tool that are installed in the local tool cache
|
* Finds the paths to all versions of a tool that are installed in the local tool cache
|
||||||
*
|
*
|
||||||
* @param toolName name of the tool
|
* @param toolName name of the tool
|
||||||
* @param arch optional arch. defaults to arch of computer
|
* @param arch optional arch. defaults to arch of computer
|
||||||
*/
|
*/
|
||||||
export declare function findAllVersions(toolName: string, arch?: string): string[];
|
export declare function findAllVersions(toolName: string, arch?: string): string[];
|
||||||
|
871
node_modules/@actions/tool-cache/lib/tool-cache.js
generated
vendored
871
node_modules/@actions/tool-cache/lib/tool-cache.js
generated
vendored
@ -1,436 +1,437 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
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 rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const core = require("@actions/core");
|
const core = require("@actions/core");
|
||||||
const io = require("@actions/io");
|
const io = require("@actions/io");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const os = require("os");
|
const os = require("os");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const httpm = require("typed-rest-client/HttpClient");
|
const httpm = require("typed-rest-client/HttpClient");
|
||||||
const semver = require("semver");
|
const semver = require("semver");
|
||||||
const uuidV4 = require("uuid/v4");
|
const shell = require("shelljs");
|
||||||
const exec_1 = require("@actions/exec/lib/exec");
|
const uuidV4 = require("uuid/v4");
|
||||||
const assert_1 = require("assert");
|
const exec_1 = require("@actions/exec/lib/exec");
|
||||||
class HTTPError extends Error {
|
const assert_1 = require("assert");
|
||||||
constructor(httpStatusCode) {
|
class HTTPError extends Error {
|
||||||
super(`Unexpected HTTP response: ${httpStatusCode}`);
|
constructor(httpStatusCode) {
|
||||||
this.httpStatusCode = httpStatusCode;
|
super(`Unexpected HTTP response: ${httpStatusCode}`);
|
||||||
Object.setPrototypeOf(this, new.target.prototype);
|
this.httpStatusCode = httpStatusCode;
|
||||||
}
|
Object.setPrototypeOf(this, new.target.prototype);
|
||||||
}
|
}
|
||||||
exports.HTTPError = HTTPError;
|
}
|
||||||
const IS_WINDOWS = process.platform === 'win32';
|
exports.HTTPError = HTTPError;
|
||||||
const userAgent = 'actions/tool-cache';
|
const IS_WINDOWS = process.platform === 'win32';
|
||||||
// On load grab temp directory and cache directory and remove them from env (currently don't want to expose this)
|
const userAgent = 'actions/tool-cache';
|
||||||
let tempDirectory = process.env['RUNNER_TEMP'] || '';
|
// On load grab temp directory and cache directory and remove them from env (currently don't want to expose this)
|
||||||
let cacheRoot = process.env['RUNNER_TOOL_CACHE'] || '';
|
let tempDirectory = process.env['RUNNER_TEMPDIRECTORY'] || '';
|
||||||
// If directories not found, place them in common temp locations
|
let cacheRoot = process.env['RUNNER_TOOLSDIRECTORY'] || '';
|
||||||
if (!tempDirectory || !cacheRoot) {
|
// If directories not found, place them in common temp locations
|
||||||
let baseLocation;
|
if (!tempDirectory || !cacheRoot) {
|
||||||
if (IS_WINDOWS) {
|
let baseLocation;
|
||||||
// On windows use the USERPROFILE env variable
|
if (IS_WINDOWS) {
|
||||||
baseLocation = process.env['USERPROFILE'] || 'C:\\';
|
// On windows use the USERPROFILE env variable
|
||||||
}
|
baseLocation = process.env['USERPROFILE'] || 'C:\\';
|
||||||
else {
|
}
|
||||||
if (process.platform === 'darwin') {
|
else {
|
||||||
baseLocation = '/Users';
|
if (process.platform === 'darwin') {
|
||||||
}
|
baseLocation = '/Users';
|
||||||
else {
|
}
|
||||||
baseLocation = '/home';
|
else {
|
||||||
}
|
baseLocation = '/home';
|
||||||
}
|
}
|
||||||
if (!tempDirectory) {
|
}
|
||||||
tempDirectory = path.join(baseLocation, 'actions', 'temp');
|
if (!tempDirectory) {
|
||||||
}
|
tempDirectory = path.join(baseLocation, 'actions', 'temp');
|
||||||
if (!cacheRoot) {
|
}
|
||||||
cacheRoot = path.join(baseLocation, 'actions', 'cache');
|
if (!cacheRoot) {
|
||||||
}
|
cacheRoot = path.join(baseLocation, 'actions', 'cache');
|
||||||
}
|
}
|
||||||
/**
|
}
|
||||||
* Download a tool from an url and stream it into a file
|
/**
|
||||||
*
|
* Download a tool from an url and stream it into a file
|
||||||
* @param url url of tool to download
|
*
|
||||||
* @returns path to downloaded tool
|
* @param url url of tool to download
|
||||||
*/
|
* @returns path to downloaded tool
|
||||||
function downloadTool(url) {
|
*/
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
function downloadTool(url) {
|
||||||
// Wrap in a promise so that we can resolve from within stream callbacks
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
// Wrap in a promise so that we can resolve from within stream callbacks
|
||||||
try {
|
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
||||||
const http = new httpm.HttpClient(userAgent, [], {
|
try {
|
||||||
allowRetries: true,
|
const http = new httpm.HttpClient(userAgent, [], {
|
||||||
maxRetries: 3
|
allowRetries: true,
|
||||||
});
|
maxRetries: 3
|
||||||
const destPath = path.join(tempDirectory, uuidV4());
|
});
|
||||||
yield io.mkdirP(tempDirectory);
|
const destPath = path.join(tempDirectory, uuidV4());
|
||||||
core.debug(`Downloading ${url}`);
|
yield io.mkdirP(tempDirectory);
|
||||||
core.debug(`Downloading ${destPath}`);
|
core.debug(`Downloading ${url}`);
|
||||||
if (fs.existsSync(destPath)) {
|
core.debug(`Downloading ${destPath}`);
|
||||||
throw new Error(`Destination file path ${destPath} already exists`);
|
if (fs.existsSync(destPath)) {
|
||||||
}
|
throw new Error(`Destination file path ${destPath} already exists`);
|
||||||
const response = yield http.get(url);
|
}
|
||||||
if (response.message.statusCode !== 200) {
|
const response = yield http.get(url);
|
||||||
const err = new HTTPError(response.message.statusCode);
|
if (response.message.statusCode !== 200) {
|
||||||
core.debug(`Failed to download from "${url}". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`);
|
const err = new HTTPError(response.message.statusCode);
|
||||||
throw err;
|
core.debug(`Failed to download from "${url}". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`);
|
||||||
}
|
throw err;
|
||||||
const file = fs.createWriteStream(destPath);
|
}
|
||||||
file.on('open', () => __awaiter(this, void 0, void 0, function* () {
|
const file = fs.createWriteStream(destPath);
|
||||||
try {
|
file.on('open', () => __awaiter(this, void 0, void 0, function* () {
|
||||||
const stream = response.message.pipe(file);
|
try {
|
||||||
stream.on('close', () => {
|
const stream = response.message.pipe(file);
|
||||||
core.debug('download complete');
|
stream.on('close', () => {
|
||||||
resolve(destPath);
|
core.debug('download complete');
|
||||||
});
|
resolve(destPath);
|
||||||
}
|
});
|
||||||
catch (err) {
|
}
|
||||||
core.debug(`Failed to download from "${url}". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`);
|
catch (err) {
|
||||||
reject(err);
|
core.debug(`Failed to download from "${url}". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`);
|
||||||
}
|
reject(err);
|
||||||
}));
|
}
|
||||||
file.on('error', err => {
|
}));
|
||||||
file.end();
|
file.on('error', err => {
|
||||||
reject(err);
|
file.end();
|
||||||
});
|
reject(err);
|
||||||
}
|
});
|
||||||
catch (err) {
|
}
|
||||||
reject(err);
|
catch (err) {
|
||||||
}
|
reject(err);
|
||||||
}));
|
}
|
||||||
});
|
}));
|
||||||
}
|
});
|
||||||
exports.downloadTool = downloadTool;
|
}
|
||||||
/**
|
exports.downloadTool = downloadTool;
|
||||||
* Extract a .7z file
|
/**
|
||||||
*
|
* Extract a .7z file
|
||||||
* @param file path to the .7z file
|
*
|
||||||
* @param dest destination directory. Optional.
|
* @param file path to the .7z file
|
||||||
* @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this
|
* @param dest destination directory. Optional.
|
||||||
* problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will
|
* @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this
|
||||||
* gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is
|
* problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will
|
||||||
* bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line
|
* gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is
|
||||||
* interface, it is smaller than the full command line interface, and it does support long paths. At the
|
* bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line
|
||||||
* time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website.
|
* interface, it is smaller than the full command line interface, and it does support long paths. At the
|
||||||
* Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path
|
* time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website.
|
||||||
* to 7zr.exe can be pass to this function.
|
* Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path
|
||||||
* @returns path to the destination directory
|
* to 7zr.exe can be pass to this function.
|
||||||
*/
|
* @returns path to the destination directory
|
||||||
function extract7z(file, dest, _7zPath) {
|
*/
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
function extract7z(file, dest, _7zPath) {
|
||||||
assert_1.ok(IS_WINDOWS, 'extract7z() not supported on current OS');
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
assert_1.ok(file, 'parameter "file" is required');
|
assert_1.ok(IS_WINDOWS, 'extract7z() not supported on current OS');
|
||||||
dest = dest || (yield _createExtractFolder(dest));
|
assert_1.ok(file, 'parameter "file" is required');
|
||||||
const originalCwd = process.cwd();
|
dest = dest || (yield _createExtractFolder(dest));
|
||||||
process.chdir(dest);
|
const originalCwd = process.cwd();
|
||||||
if (_7zPath) {
|
process.chdir(dest);
|
||||||
try {
|
if (_7zPath) {
|
||||||
const args = [
|
try {
|
||||||
'x',
|
const args = [
|
||||||
'-bb1',
|
'x',
|
||||||
'-bd',
|
'-bb1',
|
||||||
'-sccUTF-8',
|
'-bd',
|
||||||
file
|
'-sccUTF-8',
|
||||||
];
|
file
|
||||||
const options = {
|
];
|
||||||
silent: true
|
const options = {
|
||||||
};
|
silent: true
|
||||||
yield exec_1.exec(`"${_7zPath}"`, args, options);
|
};
|
||||||
}
|
yield exec_1.exec(`"${_7zPath}"`, args, options);
|
||||||
finally {
|
}
|
||||||
process.chdir(originalCwd);
|
finally {
|
||||||
}
|
process.chdir(originalCwd);
|
||||||
}
|
}
|
||||||
else {
|
}
|
||||||
const escapedScript = path
|
else {
|
||||||
.join(__dirname, '..', 'scripts', 'Invoke-7zdec.ps1')
|
const escapedScript = path
|
||||||
.replace(/'/g, "''")
|
.join(__dirname, '..', 'scripts', 'Invoke-7zdec.ps1')
|
||||||
.replace(/"|\n|\r/g, ''); // double-up single quotes, remove double quotes and newlines
|
.replace(/'/g, "''")
|
||||||
const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, '');
|
.replace(/"|\n|\r/g, ''); // double-up single quotes, remove double quotes and newlines
|
||||||
const escapedTarget = dest.replace(/'/g, "''").replace(/"|\n|\r/g, '');
|
const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, '');
|
||||||
const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`;
|
const escapedTarget = dest.replace(/'/g, "''").replace(/"|\n|\r/g, '');
|
||||||
const args = [
|
const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`;
|
||||||
'-NoLogo',
|
const args = [
|
||||||
'-Sta',
|
'-NoLogo',
|
||||||
'-NoProfile',
|
'-Sta',
|
||||||
'-NonInteractive',
|
'-NoProfile',
|
||||||
'-ExecutionPolicy',
|
'-NonInteractive',
|
||||||
'Unrestricted',
|
'-ExecutionPolicy',
|
||||||
'-Command',
|
'Unrestricted',
|
||||||
command
|
'-Command',
|
||||||
];
|
command
|
||||||
const options = {
|
];
|
||||||
silent: true
|
const options = {
|
||||||
};
|
silent: true
|
||||||
try {
|
};
|
||||||
const powershellPath = yield io.which('powershell', true);
|
try {
|
||||||
yield exec_1.exec(`"${powershellPath}"`, args, options);
|
const powershellPath = yield io.which('powershell', true);
|
||||||
}
|
yield exec_1.exec(`"${powershellPath}"`, args, options);
|
||||||
finally {
|
}
|
||||||
process.chdir(originalCwd);
|
finally {
|
||||||
}
|
process.chdir(originalCwd);
|
||||||
}
|
}
|
||||||
return dest;
|
}
|
||||||
});
|
return dest;
|
||||||
}
|
});
|
||||||
exports.extract7z = extract7z;
|
}
|
||||||
/**
|
exports.extract7z = extract7z;
|
||||||
* Extract a tar
|
/**
|
||||||
*
|
* Extract a tar
|
||||||
* @param file path to the tar
|
*
|
||||||
* @param dest destination directory. Optional.
|
* @param file path to the tar
|
||||||
* @returns path to the destination directory
|
* @param dest destination directory. Optional.
|
||||||
*/
|
* @returns path to the destination directory
|
||||||
function extractTar(file, dest) {
|
*/
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
function extractTar(file, dest) {
|
||||||
if (!file) {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
throw new Error("parameter 'file' is required");
|
if (!file) {
|
||||||
}
|
throw new Error("parameter 'file' is required");
|
||||||
dest = dest || (yield _createExtractFolder(dest));
|
}
|
||||||
const tarPath = yield io.which('tar', true);
|
dest = dest || (yield _createExtractFolder(dest));
|
||||||
yield exec_1.exec(`"${tarPath}"`, ['xzC', dest, '-f', file]);
|
const tarPath = yield io.which('tar', true);
|
||||||
return dest;
|
yield exec_1.exec(`"${tarPath}"`, ['xzC', dest, '-f', file]);
|
||||||
});
|
return dest;
|
||||||
}
|
});
|
||||||
exports.extractTar = extractTar;
|
}
|
||||||
/**
|
exports.extractTar = extractTar;
|
||||||
* Extract a zip
|
/**
|
||||||
*
|
* Extract a zip
|
||||||
* @param file path to the zip
|
*
|
||||||
* @param dest destination directory. Optional.
|
* @param file path to the zip
|
||||||
* @returns path to the destination directory
|
* @param dest destination directory. Optional.
|
||||||
*/
|
* @returns path to the destination directory
|
||||||
function extractZip(file, dest) {
|
*/
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
function extractZip(file, dest) {
|
||||||
if (!file) {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
throw new Error("parameter 'file' is required");
|
if (!file) {
|
||||||
}
|
throw new Error("parameter 'file' is required");
|
||||||
dest = dest || (yield _createExtractFolder(dest));
|
}
|
||||||
if (IS_WINDOWS) {
|
dest = dest || (yield _createExtractFolder(dest));
|
||||||
yield extractZipWin(file, dest);
|
if (IS_WINDOWS) {
|
||||||
}
|
yield extractZipWin(file, dest);
|
||||||
else {
|
}
|
||||||
yield extractZipNix(file, dest);
|
else {
|
||||||
}
|
yield extractZipNix(file, dest);
|
||||||
return dest;
|
}
|
||||||
});
|
return dest;
|
||||||
}
|
});
|
||||||
exports.extractZip = extractZip;
|
}
|
||||||
function extractZipWin(file, dest) {
|
exports.extractZip = extractZip;
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
function extractZipWin(file, dest) {
|
||||||
// build the powershell command
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ''); // double-up single quotes, remove double quotes and newlines
|
// build the powershell command
|
||||||
const escapedDest = dest.replace(/'/g, "''").replace(/"|\n|\r/g, '');
|
const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ''); // double-up single quotes, remove double quotes and newlines
|
||||||
const command = `$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}')`;
|
const escapedDest = dest.replace(/'/g, "''").replace(/"|\n|\r/g, '');
|
||||||
// run powershell
|
const command = `$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}')`;
|
||||||
const powershellPath = yield io.which('powershell');
|
// run powershell
|
||||||
const args = [
|
const powershellPath = yield io.which('powershell');
|
||||||
'-NoLogo',
|
const args = [
|
||||||
'-Sta',
|
'-NoLogo',
|
||||||
'-NoProfile',
|
'-Sta',
|
||||||
'-NonInteractive',
|
'-NoProfile',
|
||||||
'-ExecutionPolicy',
|
'-NonInteractive',
|
||||||
'Unrestricted',
|
'-ExecutionPolicy',
|
||||||
'-Command',
|
'Unrestricted',
|
||||||
command
|
'-Command',
|
||||||
];
|
command
|
||||||
yield exec_1.exec(`"${powershellPath}"`, args);
|
];
|
||||||
});
|
yield exec_1.exec(`"${powershellPath}"`, args);
|
||||||
}
|
});
|
||||||
function extractZipNix(file, dest) {
|
}
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
function extractZipNix(file, dest) {
|
||||||
const unzipPath = path.join(__dirname, '..', 'scripts', 'externals', 'unzip');
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
yield exec_1.exec(`"${unzipPath}"`, [file], { cwd: dest });
|
const unzipPath = path.join(__dirname, '..', 'scripts', 'externals', 'unzip');
|
||||||
});
|
yield exec_1.exec(`"${unzipPath}"`, [file], { cwd: dest });
|
||||||
}
|
});
|
||||||
/**
|
}
|
||||||
* Caches a directory and installs it into the tool cacheDir
|
/**
|
||||||
*
|
* Caches a directory and installs it into the tool cacheDir
|
||||||
* @param sourceDir the directory to cache into tools
|
*
|
||||||
* @param tool tool name
|
* @param sourceDir the directory to cache into tools
|
||||||
* @param version version of the tool. semver format
|
* @param tool tool name
|
||||||
* @param arch architecture of the tool. Optional. Defaults to machine architecture
|
* @param version version of the tool. semver format
|
||||||
*/
|
* @param arch architecture of the tool. Optional. Defaults to machine architecture
|
||||||
function cacheDir(sourceDir, tool, version, arch) {
|
*/
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
function cacheDir(sourceDir, tool, version, arch) {
|
||||||
version = semver.clean(version) || version;
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
arch = arch || os.arch();
|
version = semver.clean(version) || version;
|
||||||
core.debug(`Caching tool ${tool} ${version} ${arch}`);
|
arch = arch || os.arch();
|
||||||
core.debug(`source dir: ${sourceDir}`);
|
core.debug(`Caching tool ${tool} ${version} ${arch}`);
|
||||||
if (!fs.statSync(sourceDir).isDirectory()) {
|
core.debug(`source dir: ${sourceDir}`);
|
||||||
throw new Error('sourceDir is not a directory');
|
if (!fs.statSync(sourceDir).isDirectory()) {
|
||||||
}
|
throw new Error('sourceDir is not a directory');
|
||||||
// Create the tool dir
|
}
|
||||||
const destPath = yield _createToolPath(tool, version, arch);
|
// Create the tool dir
|
||||||
// copy each child item. do not move. move can fail on Windows
|
const destPath = yield _createToolPath(tool, version, arch);
|
||||||
// due to anti-virus software having an open handle on a file.
|
// copy each child item. do not move. move can fail on Windows
|
||||||
for (const itemName of fs.readdirSync(sourceDir)) {
|
// due to anti-virus software having an open handle on a file.
|
||||||
const s = path.join(sourceDir, itemName);
|
for (const itemName of fs.readdirSync(sourceDir)) {
|
||||||
yield io.cp(s, destPath, { recursive: true });
|
const s = path.join(sourceDir, itemName);
|
||||||
}
|
shell.cp(s, destPath, '-r');
|
||||||
// write .complete
|
}
|
||||||
_completeToolPath(tool, version, arch);
|
// write .complete
|
||||||
return destPath;
|
_completeToolPath(tool, version, arch);
|
||||||
});
|
return destPath;
|
||||||
}
|
});
|
||||||
exports.cacheDir = cacheDir;
|
}
|
||||||
/**
|
exports.cacheDir = cacheDir;
|
||||||
* Caches a downloaded file (GUID) and installs it
|
/**
|
||||||
* into the tool cache with a given targetName
|
* Caches a downloaded file (GUID) and installs it
|
||||||
*
|
* into the tool cache with a given targetName
|
||||||
* @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid.
|
*
|
||||||
* @param targetFile the name of the file name in the tools directory
|
* @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid.
|
||||||
* @param tool tool name
|
* @param targetFile the name of the file name in the tools directory
|
||||||
* @param version version of the tool. semver format
|
* @param tool tool name
|
||||||
* @param arch architecture of the tool. Optional. Defaults to machine architecture
|
* @param version version of the tool. semver format
|
||||||
*/
|
* @param arch architecture of the tool. Optional. Defaults to machine architecture
|
||||||
function cacheFile(sourceFile, targetFile, tool, version, arch) {
|
*/
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
function cacheFile(sourceFile, targetFile, tool, version, arch) {
|
||||||
version = semver.clean(version) || version;
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
arch = arch || os.arch();
|
version = semver.clean(version) || version;
|
||||||
core.debug(`Caching tool ${tool} ${version} ${arch}`);
|
arch = arch || os.arch();
|
||||||
core.debug(`source file: ${sourceFile}`);
|
core.debug(`Caching tool ${tool} ${version} ${arch}`);
|
||||||
if (!fs.statSync(sourceFile).isFile()) {
|
core.debug(`source file: ${sourceFile}`);
|
||||||
throw new Error('sourceFile is not a file');
|
if (!fs.statSync(sourceFile).isFile()) {
|
||||||
}
|
throw new Error('sourceFile is not a file');
|
||||||
// create the tool dir
|
}
|
||||||
const destFolder = yield _createToolPath(tool, version, arch);
|
// create the tool dir
|
||||||
// copy instead of move. move can fail on Windows due to
|
const destFolder = yield _createToolPath(tool, version, arch);
|
||||||
// anti-virus software having an open handle on a file.
|
// copy instead of move. move can fail on Windows due to
|
||||||
const destPath = path.join(destFolder, targetFile);
|
// anti-virus software having an open handle on a file.
|
||||||
core.debug(`destination file ${destPath}`);
|
const destPath = path.join(destFolder, targetFile);
|
||||||
yield io.cp(sourceFile, destPath);
|
core.debug(`destination file ${destPath}`);
|
||||||
// write .complete
|
yield io.cp(sourceFile, destPath);
|
||||||
_completeToolPath(tool, version, arch);
|
// write .complete
|
||||||
return destFolder;
|
_completeToolPath(tool, version, arch);
|
||||||
});
|
return destFolder;
|
||||||
}
|
});
|
||||||
exports.cacheFile = cacheFile;
|
}
|
||||||
/**
|
exports.cacheFile = cacheFile;
|
||||||
* Finds the path to a tool version in the local installed tool cache
|
/**
|
||||||
*
|
* Finds the path to a tool version in the local installed tool cache
|
||||||
* @param toolName name of the tool
|
*
|
||||||
* @param versionSpec version of the tool
|
* @param toolName name of the tool
|
||||||
* @param arch optional arch. defaults to arch of computer
|
* @param versionSpec version of the tool
|
||||||
*/
|
* @param arch optional arch. defaults to arch of computer
|
||||||
function find(toolName, versionSpec, arch) {
|
*/
|
||||||
if (!toolName) {
|
function find(toolName, versionSpec, arch) {
|
||||||
throw new Error('toolName parameter is required');
|
if (!toolName) {
|
||||||
}
|
throw new Error('toolName parameter is required');
|
||||||
if (!versionSpec) {
|
}
|
||||||
throw new Error('versionSpec parameter is required');
|
if (!versionSpec) {
|
||||||
}
|
throw new Error('versionSpec parameter is required');
|
||||||
arch = arch || os.arch();
|
}
|
||||||
// attempt to resolve an explicit version
|
arch = arch || os.arch();
|
||||||
if (!_isExplicitVersion(versionSpec)) {
|
// attempt to resolve an explicit version
|
||||||
const localVersions = findAllVersions(toolName, arch);
|
if (!_isExplicitVersion(versionSpec)) {
|
||||||
const match = _evaluateVersions(localVersions, versionSpec);
|
const localVersions = findAllVersions(toolName, arch);
|
||||||
versionSpec = match;
|
const match = _evaluateVersions(localVersions, versionSpec);
|
||||||
}
|
versionSpec = match;
|
||||||
// check for the explicit version in the cache
|
}
|
||||||
let toolPath = '';
|
// check for the explicit version in the cache
|
||||||
if (versionSpec) {
|
let toolPath = '';
|
||||||
versionSpec = semver.clean(versionSpec) || '';
|
if (versionSpec) {
|
||||||
const cachePath = path.join(cacheRoot, toolName, versionSpec, arch);
|
versionSpec = semver.clean(versionSpec) || '';
|
||||||
core.debug(`checking cache: ${cachePath}`);
|
const cachePath = path.join(cacheRoot, toolName, versionSpec, arch);
|
||||||
if (fs.existsSync(cachePath) && fs.existsSync(`${cachePath}.complete`)) {
|
core.debug(`checking cache: ${cachePath}`);
|
||||||
core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`);
|
if (fs.existsSync(cachePath) && fs.existsSync(`${cachePath}.complete`)) {
|
||||||
toolPath = cachePath;
|
core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`);
|
||||||
}
|
toolPath = cachePath;
|
||||||
else {
|
}
|
||||||
core.debug('not found');
|
else {
|
||||||
}
|
core.debug('not found');
|
||||||
}
|
}
|
||||||
return toolPath;
|
}
|
||||||
}
|
return toolPath;
|
||||||
exports.find = find;
|
}
|
||||||
/**
|
exports.find = find;
|
||||||
* Finds the paths to all versions of a tool that are installed in the local tool cache
|
/**
|
||||||
*
|
* Finds the paths to all versions of a tool that are installed in the local tool cache
|
||||||
* @param toolName name of the tool
|
*
|
||||||
* @param arch optional arch. defaults to arch of computer
|
* @param toolName name of the tool
|
||||||
*/
|
* @param arch optional arch. defaults to arch of computer
|
||||||
function findAllVersions(toolName, arch) {
|
*/
|
||||||
const versions = [];
|
function findAllVersions(toolName, arch) {
|
||||||
arch = arch || os.arch();
|
const versions = [];
|
||||||
const toolPath = path.join(cacheRoot, toolName);
|
arch = arch || os.arch();
|
||||||
if (fs.existsSync(toolPath)) {
|
const toolPath = path.join(cacheRoot, toolName);
|
||||||
const children = fs.readdirSync(toolPath);
|
if (fs.existsSync(toolPath)) {
|
||||||
for (const child of children) {
|
const children = fs.readdirSync(toolPath);
|
||||||
if (_isExplicitVersion(child)) {
|
for (const child of children) {
|
||||||
const fullPath = path.join(toolPath, child, arch || '');
|
if (_isExplicitVersion(child)) {
|
||||||
if (fs.existsSync(fullPath) && fs.existsSync(`${fullPath}.complete`)) {
|
const fullPath = path.join(toolPath, child, arch || '');
|
||||||
versions.push(child);
|
if (fs.existsSync(fullPath) && fs.existsSync(`${fullPath}.complete`)) {
|
||||||
}
|
versions.push(child);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return versions;
|
}
|
||||||
}
|
return versions;
|
||||||
exports.findAllVersions = findAllVersions;
|
}
|
||||||
function _createExtractFolder(dest) {
|
exports.findAllVersions = findAllVersions;
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
function _createExtractFolder(dest) {
|
||||||
if (!dest) {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
// create a temp dir
|
if (!dest) {
|
||||||
dest = path.join(tempDirectory, uuidV4());
|
// create a temp dir
|
||||||
}
|
dest = path.join(tempDirectory, uuidV4());
|
||||||
yield io.mkdirP(dest);
|
}
|
||||||
return dest;
|
yield io.mkdirP(dest);
|
||||||
});
|
return dest;
|
||||||
}
|
});
|
||||||
function _createToolPath(tool, version, arch) {
|
}
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
function _createToolPath(tool, version, arch) {
|
||||||
const folderPath = path.join(cacheRoot, tool, semver.clean(version) || version, arch || '');
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
core.debug(`destination ${folderPath}`);
|
const folderPath = path.join(cacheRoot, tool, semver.clean(version) || version, arch || '');
|
||||||
const markerPath = `${folderPath}.complete`;
|
core.debug(`destination ${folderPath}`);
|
||||||
yield io.rmRF(folderPath);
|
const markerPath = `${folderPath}.complete`;
|
||||||
yield io.rmRF(markerPath);
|
yield io.rmRF(folderPath);
|
||||||
yield io.mkdirP(folderPath);
|
yield io.rmRF(markerPath);
|
||||||
return folderPath;
|
yield io.mkdirP(folderPath);
|
||||||
});
|
return folderPath;
|
||||||
}
|
});
|
||||||
function _completeToolPath(tool, version, arch) {
|
}
|
||||||
const folderPath = path.join(cacheRoot, tool, semver.clean(version) || version, arch || '');
|
function _completeToolPath(tool, version, arch) {
|
||||||
const markerPath = `${folderPath}.complete`;
|
const folderPath = path.join(cacheRoot, tool, semver.clean(version) || version, arch || '');
|
||||||
fs.writeFileSync(markerPath, '');
|
const markerPath = `${folderPath}.complete`;
|
||||||
core.debug('finished caching tool');
|
fs.writeFileSync(markerPath, '');
|
||||||
}
|
core.debug('finished caching tool');
|
||||||
function _isExplicitVersion(versionSpec) {
|
}
|
||||||
const c = semver.clean(versionSpec) || '';
|
function _isExplicitVersion(versionSpec) {
|
||||||
core.debug(`isExplicit: ${c}`);
|
const c = semver.clean(versionSpec) || '';
|
||||||
const valid = semver.valid(c) != null;
|
core.debug(`isExplicit: ${c}`);
|
||||||
core.debug(`explicit? ${valid}`);
|
const valid = semver.valid(c) != null;
|
||||||
return valid;
|
core.debug(`explicit? ${valid}`);
|
||||||
}
|
return valid;
|
||||||
function _evaluateVersions(versions, versionSpec) {
|
}
|
||||||
let version = '';
|
function _evaluateVersions(versions, versionSpec) {
|
||||||
core.debug(`evaluating ${versions.length} versions`);
|
let version = '';
|
||||||
versions = versions.sort((a, b) => {
|
core.debug(`evaluating ${versions.length} versions`);
|
||||||
if (semver.gt(a, b)) {
|
versions = versions.sort((a, b) => {
|
||||||
return 1;
|
if (semver.gt(a, b)) {
|
||||||
}
|
return 1;
|
||||||
return -1;
|
}
|
||||||
});
|
return -1;
|
||||||
for (let i = versions.length - 1; i >= 0; i--) {
|
});
|
||||||
const potential = versions[i];
|
for (let i = versions.length - 1; i >= 0; i--) {
|
||||||
const satisfied = semver.satisfies(potential, versionSpec);
|
const potential = versions[i];
|
||||||
if (satisfied) {
|
const satisfied = semver.satisfies(potential, versionSpec);
|
||||||
version = potential;
|
if (satisfied) {
|
||||||
break;
|
version = potential;
|
||||||
}
|
break;
|
||||||
}
|
}
|
||||||
if (version) {
|
}
|
||||||
core.debug(`matched: ${version}`);
|
if (version) {
|
||||||
}
|
core.debug(`matched: ${version}`);
|
||||||
else {
|
}
|
||||||
core.debug('match not found');
|
else {
|
||||||
}
|
core.debug('match not found');
|
||||||
return version;
|
}
|
||||||
}
|
return version;
|
||||||
|
}
|
||||||
//# sourceMappingURL=tool-cache.js.map
|
//# sourceMappingURL=tool-cache.js.map
|
2
node_modules/@actions/tool-cache/lib/tool-cache.js.map
generated
vendored
2
node_modules/@actions/tool-cache/lib/tool-cache.js.map
generated
vendored
File diff suppressed because one or more lines are too long
36
node_modules/@actions/tool-cache/package.json
generated
vendored
36
node_modules/@actions/tool-cache/package.json
generated
vendored
@ -1,37 +1,38 @@
|
|||||||
{
|
{
|
||||||
"_from": "@actions/tool-cache@^1.0.0",
|
"_from": "file:toolkit/actions-tool-cache-0.0.0.tgz",
|
||||||
"_id": "@actions/tool-cache@1.0.0",
|
"_id": "@actions/tool-cache@0.0.0",
|
||||||
"_inBundle": false,
|
"_inBundle": false,
|
||||||
"_integrity": "sha512-l3zT0IfDfi5Ik5aMpnXqGHGATxN8xa9ls4ue+X/CBXpPhRMRZS4vcuh5Q9T98WAGbkysRCfhpbksTPHIcKnNwQ==",
|
"_integrity": "sha512-R08MGFekNLkf1ofh5wi8QVgmFyPgkKC+Cp8FRE1n6zOpHbUWv3QGa6eR6z+2ESuGCstOPtbq/tRgZsSusItm9Q==",
|
||||||
"_location": "/@actions/tool-cache",
|
"_location": "/@actions/tool-cache",
|
||||||
"_phantomChildren": {},
|
"_phantomChildren": {},
|
||||||
"_requested": {
|
"_requested": {
|
||||||
"type": "range",
|
"type": "file",
|
||||||
"registry": true,
|
"where": "/Users/chrispat/Source/work/actions/setup-node",
|
||||||
"raw": "@actions/tool-cache@^1.0.0",
|
"raw": "@actions/tool-cache@file:toolkit/actions-tool-cache-0.0.0.tgz",
|
||||||
"name": "@actions/tool-cache",
|
"name": "@actions/tool-cache",
|
||||||
"escapedName": "@actions%2ftool-cache",
|
"escapedName": "@actions%2ftool-cache",
|
||||||
"scope": "@actions",
|
"scope": "@actions",
|
||||||
"rawSpec": "^1.0.0",
|
"rawSpec": "file:toolkit/actions-tool-cache-0.0.0.tgz",
|
||||||
"saveSpec": null,
|
"saveSpec": "file:toolkit/actions-tool-cache-0.0.0.tgz",
|
||||||
"fetchSpec": "^1.0.0"
|
"fetchSpec": "/Users/chrispat/Source/work/actions/setup-node/toolkit/actions-tool-cache-0.0.0.tgz"
|
||||||
},
|
},
|
||||||
"_requiredBy": [
|
"_requiredBy": [
|
||||||
"/"
|
"/"
|
||||||
],
|
],
|
||||||
"_resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.0.0.tgz",
|
"_resolved": "/Users/chrispat/Source/work/actions/setup-node/toolkit/actions-tool-cache-0.0.0.tgz",
|
||||||
"_shasum": "a9ac414bd2e0bf1f5f0302f029193c418d344c09",
|
"_shasum": "e4ffe745db46f47e512db20e80f8ad25910e41d1",
|
||||||
"_spec": "@actions/tool-cache@^1.0.0",
|
"_spec": "@actions/tool-cache@file:toolkit/actions-tool-cache-0.0.0.tgz",
|
||||||
"_where": "C:\\Users\\damccorm\\Documents\\setup-node",
|
"_where": "/Users/chrispat/Source/work/actions/setup-node",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/actions/toolkit/issues"
|
"url": "https://github.com/actions/toolkit/issues"
|
||||||
},
|
},
|
||||||
"bundleDependencies": false,
|
"bundleDependencies": false,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.0.0",
|
"@actions/core": "^0.0.0",
|
||||||
"@actions/exec": "^1.0.0",
|
"@actions/exec": "^0.0.0",
|
||||||
"@actions/io": "^1.0.0",
|
"@actions/io": "^0.0.0",
|
||||||
"semver": "^6.1.0",
|
"semver": "^6.1.0",
|
||||||
|
"shelljs": "^0.3.0",
|
||||||
"typed-rest-client": "^1.4.0",
|
"typed-rest-client": "^1.4.0",
|
||||||
"uuid": "^3.3.2"
|
"uuid": "^3.3.2"
|
||||||
},
|
},
|
||||||
@ -51,7 +52,6 @@
|
|||||||
"lib",
|
"lib",
|
||||||
"scripts"
|
"scripts"
|
||||||
],
|
],
|
||||||
"gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55",
|
|
||||||
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
"homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"exec",
|
"exec",
|
||||||
@ -71,5 +71,5 @@
|
|||||||
"test": "echo \"Error: run tests from root\" && exit 1",
|
"test": "echo \"Error: run tests from root\" && exit 1",
|
||||||
"tsc": "tsc"
|
"tsc": "tsc"
|
||||||
},
|
},
|
||||||
"version": "1.0.0"
|
"version": "0.0.0"
|
||||||
}
|
}
|
||||||
|
118
node_modules/@actions/tool-cache/scripts/Invoke-7zdec.ps1
generated
vendored
118
node_modules/@actions/tool-cache/scripts/Invoke-7zdec.ps1
generated
vendored
@ -1,60 +1,60 @@
|
|||||||
[CmdletBinding()]
|
[CmdletBinding()]
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory = $true)]
|
[Parameter(Mandatory = $true)]
|
||||||
[string]$Source,
|
[string]$Source,
|
||||||
|
|
||||||
[Parameter(Mandatory = $true)]
|
[Parameter(Mandatory = $true)]
|
||||||
[string]$Target)
|
[string]$Target)
|
||||||
|
|
||||||
# This script translates the output from 7zdec into UTF8. Node has limited
|
# This script translates the output from 7zdec into UTF8. Node has limited
|
||||||
# built-in support for encodings.
|
# built-in support for encodings.
|
||||||
#
|
#
|
||||||
# 7zdec uses the system default code page. The system default code page varies
|
# 7zdec uses the system default code page. The system default code page varies
|
||||||
# depending on the locale configuration. On an en-US box, the system default code
|
# depending on the locale configuration. On an en-US box, the system default code
|
||||||
# page is Windows-1252.
|
# page is Windows-1252.
|
||||||
#
|
#
|
||||||
# Note, on a typical en-US box, testing with the 'ç' character is a good way to
|
# Note, on a typical en-US box, testing with the 'ç' character is a good way to
|
||||||
# determine whether data is passed correctly between processes. This is because
|
# determine whether data is passed correctly between processes. This is because
|
||||||
# the 'ç' character has a different code point across each of the common encodings
|
# the 'ç' character has a different code point across each of the common encodings
|
||||||
# on a typical en-US box, i.e.
|
# on a typical en-US box, i.e.
|
||||||
# 1) the default console-output code page (IBM437)
|
# 1) the default console-output code page (IBM437)
|
||||||
# 2) the system default code page (i.e. CP_ACP) (Windows-1252)
|
# 2) the system default code page (i.e. CP_ACP) (Windows-1252)
|
||||||
# 3) UTF8
|
# 3) UTF8
|
||||||
|
|
||||||
$ErrorActionPreference = 'Stop'
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
# Redefine the wrapper over STDOUT to use UTF8. Node expects UTF8 by default.
|
# Redefine the wrapper over STDOUT to use UTF8. Node expects UTF8 by default.
|
||||||
$stdout = [System.Console]::OpenStandardOutput()
|
$stdout = [System.Console]::OpenStandardOutput()
|
||||||
$utf8 = New-Object System.Text.UTF8Encoding($false) # do not emit BOM
|
$utf8 = New-Object System.Text.UTF8Encoding($false) # do not emit BOM
|
||||||
$writer = New-Object System.IO.StreamWriter($stdout, $utf8)
|
$writer = New-Object System.IO.StreamWriter($stdout, $utf8)
|
||||||
[System.Console]::SetOut($writer)
|
[System.Console]::SetOut($writer)
|
||||||
|
|
||||||
# All subsequent output must be written using [System.Console]::WriteLine(). In
|
# All subsequent output must be written using [System.Console]::WriteLine(). In
|
||||||
# PowerShell 4, Write-Host and Out-Default do not consider the updated stream writer.
|
# PowerShell 4, Write-Host and Out-Default do not consider the updated stream writer.
|
||||||
|
|
||||||
Set-Location -LiteralPath $Target
|
Set-Location -LiteralPath $Target
|
||||||
|
|
||||||
# Print the ##command.
|
# Print the ##command.
|
||||||
$_7zdec = Join-Path -Path "$PSScriptRoot" -ChildPath "externals/7zdec.exe"
|
$_7zdec = Join-Path -Path "$PSScriptRoot" -ChildPath "externals/7zdec.exe"
|
||||||
[System.Console]::WriteLine("##[command]$_7zdec x `"$Source`"")
|
[System.Console]::WriteLine("##[command]$_7zdec x `"$Source`"")
|
||||||
|
|
||||||
# The $OutputEncoding variable instructs PowerShell how to interpret the output
|
# The $OutputEncoding variable instructs PowerShell how to interpret the output
|
||||||
# from the external command.
|
# from the external command.
|
||||||
$OutputEncoding = [System.Text.Encoding]::Default
|
$OutputEncoding = [System.Text.Encoding]::Default
|
||||||
|
|
||||||
# Note, the output from 7zdec.exe needs to be iterated over. Otherwise PowerShell.exe
|
# Note, the output from 7zdec.exe needs to be iterated over. Otherwise PowerShell.exe
|
||||||
# will launch the external command in such a way that it inherits the streams.
|
# will launch the external command in such a way that it inherits the streams.
|
||||||
& $_7zdec x $Source 2>&1 |
|
& $_7zdec x $Source 2>&1 |
|
||||||
ForEach-Object {
|
ForEach-Object {
|
||||||
if ($_ -is [System.Management.Automation.ErrorRecord]) {
|
if ($_ -is [System.Management.Automation.ErrorRecord]) {
|
||||||
[System.Console]::WriteLine($_.Exception.Message)
|
[System.Console]::WriteLine($_.Exception.Message)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
[System.Console]::WriteLine($_)
|
[System.Console]::WriteLine($_)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[System.Console]::WriteLine("##[debug]7zdec.exe exit code '$LASTEXITCODE'")
|
[System.Console]::WriteLine("##[debug]7zdec.exe exit code '$LASTEXITCODE'")
|
||||||
[System.Console]::Out.Flush()
|
[System.Console]::Out.Flush()
|
||||||
if ($LASTEXITCODE -ne 0) {
|
if ($LASTEXITCODE -ne 0) {
|
||||||
exit $LASTEXITCODE
|
exit $LASTEXITCODE
|
||||||
}
|
}
|
21
node_modules/@octokit/endpoint/LICENSE
generated
vendored
21
node_modules/@octokit/endpoint/LICENSE
generated
vendored
@ -1,21 +0,0 @@
|
|||||||
The MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2018 Octokit contributors
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
421
node_modules/@octokit/endpoint/README.md
generated
vendored
421
node_modules/@octokit/endpoint/README.md
generated
vendored
@ -1,421 +0,0 @@
|
|||||||
# endpoint.js
|
|
||||||
|
|
||||||
> Turns GitHub REST API endpoints into generic request options
|
|
||||||
|
|
||||||
[](https://www.npmjs.com/package/@octokit/endpoint)
|
|
||||||
[](https://travis-ci.org/octokit/endpoint.js)
|
|
||||||
[](https://greenkeeper.io/)
|
|
||||||
|
|
||||||
`@octokit/endpoint` combines [GitHub REST API routes](https://developer.github.com/v3/) with your parameters and turns them into generic request options that can be used in any request library.
|
|
||||||
|
|
||||||
<!-- update table of contents by running `npx markdown-toc README.md -i` -->
|
|
||||||
<!-- toc -->
|
|
||||||
|
|
||||||
- [Usage](#usage)
|
|
||||||
- [API](#api)
|
|
||||||
- [endpoint()](#endpoint)
|
|
||||||
- [endpoint.defaults()](#endpointdefaults)
|
|
||||||
- [endpoint.DEFAULTS](#endpointdefaults)
|
|
||||||
- [endpoint.merge()](#endpointmerge)
|
|
||||||
- [endpoint.parse()](#endpointparse)
|
|
||||||
- [Special cases](#special-cases)
|
|
||||||
- [The `data` parameter – set request body directly](#the-data-parameter-%E2%80%93-set-request-body-directly)
|
|
||||||
- [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body)
|
|
||||||
- [LICENSE](#license)
|
|
||||||
|
|
||||||
<!-- tocstop -->
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tbody valign=top align=left>
|
|
||||||
<tr><th>
|
|
||||||
Browsers
|
|
||||||
</th><td width=100%>
|
|
||||||
Load <code>@octokit/endpoint</code> directly from <a href="https://cdn.pika.dev">cdn.pika.dev</a>
|
|
||||||
|
|
||||||
```html
|
|
||||||
<script type="module">
|
|
||||||
import { endpoint } from "https://cdn.pika.dev/@octokit/endpoint";
|
|
||||||
</script>
|
|
||||||
```
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><th>
|
|
||||||
Node
|
|
||||||
</th><td>
|
|
||||||
|
|
||||||
Install with <code>npm install @octokit/endpoint</code>
|
|
||||||
|
|
||||||
```js
|
|
||||||
const { endpoint } = require("@octokit/endpoint");
|
|
||||||
// or: import { endpoint } from "@octokit/endpoint";
|
|
||||||
```
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
Example for [List organization repositories](https://developer.github.com/v3/repos/#list-organization-repositories)
|
|
||||||
|
|
||||||
```js
|
|
||||||
const requestOptions = endpoint("GET /orgs/:org/repos", {
|
|
||||||
headers: {
|
|
||||||
authorization: "token 0000000000000000000000000000000000000001"
|
|
||||||
},
|
|
||||||
org: "octokit",
|
|
||||||
type: "private"
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
The resulting `requestOptions` looks as follows
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"method": "GET",
|
|
||||||
"url": "https://api.github.com/orgs/octokit/repos?type=private",
|
|
||||||
"headers": {
|
|
||||||
"accept": "application/vnd.github.v3+json",
|
|
||||||
"authorization": "token 0000000000000000000000000000000000000001",
|
|
||||||
"user-agent": "octokit/endpoint.js v1.2.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
You can pass `requestOptions` to commen request libraries
|
|
||||||
|
|
||||||
```js
|
|
||||||
const { url, ...options } = requestOptions;
|
|
||||||
// using with fetch (https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)
|
|
||||||
fetch(url, options);
|
|
||||||
// using with request (https://github.com/request/request)
|
|
||||||
request(requestOptions);
|
|
||||||
// using with got (https://github.com/sindresorhus/got)
|
|
||||||
got[options.method](url, options);
|
|
||||||
// using with axios
|
|
||||||
axios(requestOptions);
|
|
||||||
```
|
|
||||||
|
|
||||||
## API
|
|
||||||
|
|
||||||
### `endpoint(route, options)` or `endpoint(options)`
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead align=left>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
name
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
type
|
|
||||||
</th>
|
|
||||||
<th width=100%>
|
|
||||||
description
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody align=left valign=top>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<code>route</code>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
String
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
If set, it has to be a string consisting of URL and the request method, e.g., <code>GET /orgs/:org</code>. If it’s set to a URL, only the method defaults to <code>GET</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<code>options.method</code>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
String
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<strong>Required unless <code>route</code> is set.</strong> Any supported <a href="https://developer.github.com/v3/#http-verbs">http verb</a>. <em>Defaults to <code>GET</code></em>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<code>options.url</code>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
String
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<strong>Required unless <code>route</code> is set.</strong> A path or full URL which may contain <code>:variable</code> or <code>{variable}</code> placeholders,
|
|
||||||
e.g., <code>/orgs/:org/repos</code>. The <code>url</code> is parsed using <a href="https://github.com/bramstein/url-template">url-template</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<code>options.baseUrl</code>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
String
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<em>Defaults to <code>https://api.github.com</code></em>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<code>options.headers</code>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
Object
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Custom headers. Passed headers are merged with defaults:<br>
|
|
||||||
<em><code>headers['user-agent']</code> defaults to <code>octokit-endpoint.js/1.2.3</code> (where <code>1.2.3</code> is the released version)</em>.<br>
|
|
||||||
<em><code>headers['accept']</code> defaults to <code>application/vnd.github.v3+json</code></em>.<br>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<code>options.mediaType.format</code>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
String
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Media type param, such as <code>raw</code>, <code>diff</code>, or <code>text+json</code>. See <a href="https://developer.github.com/v3/media/">Media Types</a>. Setting <code>options.mediaType.format</code> will amend the <code>headers.accept</code> value.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<code>options.mediaType.previews</code>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
Array of Strings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Name of previews, such as <code>mercy</code>, <code>symmetra</code>, or <code>scarlet-witch</code>. See <a href="https://developer.github.com/v3/previews/">API Previews</a>. If <code>options.mediaType.previews</code> was set as default, the new previews will be merged into the default ones. Setting <code>options.mediaType.previews</code> will amend the <code>headers.accept</code> value. <code>options.mediaType.previews</code> will be merged with an existing array set using <code>.defaults()</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<code>options.data</code>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
Any
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Set request body directly instead of setting it to JSON based on additional parameters. See <a href="#data-parameter">"The <code>data</code> parameter"</a> below.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<code>options.request</code>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
Object
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Pass custom meta information for the request. The <code>request</code> object will be returned as is.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
All other options will be passed depending on the `method` and `url` options.
|
|
||||||
|
|
||||||
1. If the option key has a placeholder in the `url`, it will be used as the replacement. For example, if the passed options are `{url: '/orgs/:org/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos`.
|
|
||||||
2. If the `method` is `GET` or `HEAD`, the option is passed as a query parameter.
|
|
||||||
3. Otherwise, the parameter is passed in the request body as a JSON key.
|
|
||||||
|
|
||||||
**Result**
|
|
||||||
|
|
||||||
`endpoint()` is a synchronous method and returns an object with the following keys:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead align=left>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
key
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
type
|
|
||||||
</th>
|
|
||||||
<th width=100%>
|
|
||||||
description
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody align=left valign=top>
|
|
||||||
<tr>
|
|
||||||
<th><code>method</code></th>
|
|
||||||
<td>String</td>
|
|
||||||
<td>The http method. Always lowercase.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th><code>url</code></th>
|
|
||||||
<td>String</td>
|
|
||||||
<td>The url with placeholders replaced with passed parameters.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th><code>headers</code></th>
|
|
||||||
<td>Object</td>
|
|
||||||
<td>All header names are lowercased.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th><code>body</code></th>
|
|
||||||
<td>Any</td>
|
|
||||||
<td>The request body if one is present. Only for <code>PATCH</code>, <code>POST</code>, <code>PUT</code>, <code>DELETE</code> requests.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th><code>request</code></th>
|
|
||||||
<td>Object</td>
|
|
||||||
<td>Request meta option, it will be returned as it was passed into <code>endpoint()</code></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### `endpoint.defaults()`
|
|
||||||
|
|
||||||
Override or set default options. Example:
|
|
||||||
|
|
||||||
```js
|
|
||||||
const request = require("request");
|
|
||||||
const myEndpoint = require("@octokit/endpoint").defaults({
|
|
||||||
baseUrl: "https://github-enterprise.acme-inc.com/api/v3",
|
|
||||||
headers: {
|
|
||||||
"user-agent": "myApp/1.2.3",
|
|
||||||
authorization: `token 0000000000000000000000000000000000000001`
|
|
||||||
},
|
|
||||||
org: "my-project",
|
|
||||||
per_page: 100
|
|
||||||
});
|
|
||||||
|
|
||||||
request(myEndpoint(`GET /orgs/:org/repos`));
|
|
||||||
```
|
|
||||||
|
|
||||||
You can call `.defaults()` again on the returned method, the defaults will cascade.
|
|
||||||
|
|
||||||
```js
|
|
||||||
const myProjectEndpoint = endpoint.defaults({
|
|
||||||
baseUrl: "https://github-enterprise.acme-inc.com/api/v3",
|
|
||||||
headers: {
|
|
||||||
"user-agent": "myApp/1.2.3"
|
|
||||||
},
|
|
||||||
org: "my-project"
|
|
||||||
});
|
|
||||||
const myProjectEndpointWithAuth = myProjectEndpoint.defaults({
|
|
||||||
headers: {
|
|
||||||
authorization: `token 0000000000000000000000000000000000000001`
|
|
||||||
}
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
`myProjectEndpointWithAuth` now defaults the `baseUrl`, `headers['user-agent']`,
|
|
||||||
`org` and `headers['authorization']` on top of `headers['accept']` that is set
|
|
||||||
by the global default.
|
|
||||||
|
|
||||||
### `endpoint.DEFAULTS`
|
|
||||||
|
|
||||||
The current default options.
|
|
||||||
|
|
||||||
```js
|
|
||||||
endpoint.DEFAULTS.baseUrl; // https://api.github.com
|
|
||||||
const myEndpoint = endpoint.defaults({
|
|
||||||
baseUrl: "https://github-enterprise.acme-inc.com/api/v3"
|
|
||||||
});
|
|
||||||
myEndpoint.DEFAULTS.baseUrl; // https://github-enterprise.acme-inc.com/api/v3
|
|
||||||
```
|
|
||||||
|
|
||||||
### `endpoint.merge(route, options)` or `endpoint.merge(options)`
|
|
||||||
|
|
||||||
Get the defaulted endpoint options, but without parsing them into request options:
|
|
||||||
|
|
||||||
```js
|
|
||||||
const myProjectEndpoint = endpoint.defaults({
|
|
||||||
baseUrl: "https://github-enterprise.acme-inc.com/api/v3",
|
|
||||||
headers: {
|
|
||||||
"user-agent": "myApp/1.2.3"
|
|
||||||
},
|
|
||||||
org: "my-project"
|
|
||||||
});
|
|
||||||
myProjectEndpoint.merge("GET /orgs/:org/repos", {
|
|
||||||
headers: {
|
|
||||||
authorization: `token 0000000000000000000000000000000000000001`
|
|
||||||
},
|
|
||||||
org: "my-secret-project",
|
|
||||||
type: "private"
|
|
||||||
});
|
|
||||||
|
|
||||||
// {
|
|
||||||
// baseUrl: 'https://github-enterprise.acme-inc.com/api/v3',
|
|
||||||
// method: 'GET',
|
|
||||||
// url: '/orgs/:org/repos',
|
|
||||||
// headers: {
|
|
||||||
// accept: 'application/vnd.github.v3+json',
|
|
||||||
// authorization: `token 0000000000000000000000000000000000000001`,
|
|
||||||
// 'user-agent': 'myApp/1.2.3'
|
|
||||||
// },
|
|
||||||
// org: 'my-secret-project',
|
|
||||||
// type: 'private'
|
|
||||||
// }
|
|
||||||
```
|
|
||||||
|
|
||||||
### `endpoint.parse()`
|
|
||||||
|
|
||||||
Stateless method to turn endpoint options into request options. Calling
|
|
||||||
`endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`.
|
|
||||||
|
|
||||||
## Special cases
|
|
||||||
|
|
||||||
<a name="data-parameter"></a>
|
|
||||||
|
|
||||||
### The `data` parameter – set request body directly
|
|
||||||
|
|
||||||
Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead, the request body needs to be set directly. In these cases, set the `data` parameter.
|
|
||||||
|
|
||||||
```js
|
|
||||||
const options = endpoint("POST /markdown/raw", {
|
|
||||||
data: "Hello world github/linguist#1 **cool**, and #1!",
|
|
||||||
headers: {
|
|
||||||
accept: "text/html;charset=utf-8",
|
|
||||||
"content-type": "text/plain"
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// options is
|
|
||||||
// {
|
|
||||||
// method: 'post',
|
|
||||||
// url: 'https://api.github.com/markdown/raw',
|
|
||||||
// headers: {
|
|
||||||
// accept: 'text/html;charset=utf-8',
|
|
||||||
// 'content-type': 'text/plain',
|
|
||||||
// 'user-agent': userAgent
|
|
||||||
// },
|
|
||||||
// body: 'Hello world github/linguist#1 **cool**, and #1!'
|
|
||||||
// }
|
|
||||||
```
|
|
||||||
|
|
||||||
### Set parameters for both the URL/query and the request body
|
|
||||||
|
|
||||||
There are API endpoints that accept both query parameters as well as a body. In that case, you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570).
|
|
||||||
|
|
||||||
Example
|
|
||||||
|
|
||||||
```js
|
|
||||||
endpoint(
|
|
||||||
"POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}",
|
|
||||||
{
|
|
||||||
name: "example.zip",
|
|
||||||
label: "short description",
|
|
||||||
headers: {
|
|
||||||
"content-type": "text/plain",
|
|
||||||
"content-length": 14,
|
|
||||||
authorization: `token 0000000000000000000000000000000000000001`
|
|
||||||
},
|
|
||||||
data: "Hello, world!"
|
|
||||||
}
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
## LICENSE
|
|
||||||
|
|
||||||
[MIT](LICENSE)
|
|
197
node_modules/@octokit/endpoint/dist-node/index.js
generated
vendored
197
node_modules/@octokit/endpoint/dist-node/index.js
generated
vendored
@ -1,197 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
Object.defineProperty(exports, '__esModule', { value: true });
|
|
||||||
|
|
||||||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
||||||
|
|
||||||
var deepmerge = _interopDefault(require('deepmerge'));
|
|
||||||
var isPlainObject = _interopDefault(require('is-plain-object'));
|
|
||||||
var urlTemplate = _interopDefault(require('url-template'));
|
|
||||||
var getUserAgent = _interopDefault(require('universal-user-agent'));
|
|
||||||
|
|
||||||
function lowercaseKeys(object) {
|
|
||||||
if (!object) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
return Object.keys(object).reduce((newObj, key) => {
|
|
||||||
newObj[key.toLowerCase()] = object[key];
|
|
||||||
return newObj;
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
|
|
||||||
function merge(defaults, route, options) {
|
|
||||||
if (typeof route === "string") {
|
|
||||||
let [method, url] = route.split(" ");
|
|
||||||
options = Object.assign(url ? {
|
|
||||||
method,
|
|
||||||
url
|
|
||||||
} : {
|
|
||||||
url: method
|
|
||||||
}, options);
|
|
||||||
} else {
|
|
||||||
options = route || {};
|
|
||||||
} // lowercase header names before merging with defaults to avoid duplicates
|
|
||||||
|
|
||||||
|
|
||||||
options.headers = lowercaseKeys(options.headers);
|
|
||||||
const mergedOptions = deepmerge.all([defaults, options].filter(Boolean), {
|
|
||||||
isMergeableObject: isPlainObject
|
|
||||||
}); // mediaType.previews arrays are merged, instead of overwritten
|
|
||||||
|
|
||||||
if (defaults && defaults.mediaType.previews.length) {
|
|
||||||
mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);
|
|
||||||
}
|
|
||||||
|
|
||||||
mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, ""));
|
|
||||||
return mergedOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
function addQueryParameters(url, parameters) {
|
|
||||||
const separator = /\?/.test(url) ? "&" : "?";
|
|
||||||
const names = Object.keys(parameters);
|
|
||||||
|
|
||||||
if (names.length === 0) {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url + separator + names.map(name => {
|
|
||||||
if (name === "q") {
|
|
||||||
return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+");
|
|
||||||
}
|
|
||||||
|
|
||||||
return `${name}=${encodeURIComponent(parameters[name])}`;
|
|
||||||
}).join("&");
|
|
||||||
}
|
|
||||||
|
|
||||||
const urlVariableRegex = /\{[^}]+\}/g;
|
|
||||||
|
|
||||||
function removeNonChars(variableName) {
|
|
||||||
return variableName.replace(/^\W+|\W+$/g, "").split(/,/);
|
|
||||||
}
|
|
||||||
|
|
||||||
function extractUrlVariableNames(url) {
|
|
||||||
const matches = url.match(urlVariableRegex);
|
|
||||||
|
|
||||||
if (!matches) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
|
|
||||||
}
|
|
||||||
|
|
||||||
function omit(object, keysToOmit) {
|
|
||||||
return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {
|
|
||||||
obj[key] = object[key];
|
|
||||||
return obj;
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
|
|
||||||
function parse(options) {
|
|
||||||
// https://fetch.spec.whatwg.org/#methods
|
|
||||||
let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible
|
|
||||||
|
|
||||||
let url = options.url.replace(/:([a-z]\w+)/g, "{+$1}");
|
|
||||||
let headers = Object.assign({}, options.headers);
|
|
||||||
let body;
|
|
||||||
let parameters = omit(options, ["method", "baseUrl", "url", "headers", "request", "mediaType"]); // extract variable names from URL to calculate remaining variables later
|
|
||||||
|
|
||||||
const urlVariableNames = extractUrlVariableNames(url);
|
|
||||||
url = urlTemplate.parse(url).expand(parameters);
|
|
||||||
|
|
||||||
if (!/^http/.test(url)) {
|
|
||||||
url = options.baseUrl + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat("baseUrl");
|
|
||||||
const remainingParameters = omit(parameters, omittedParameters);
|
|
||||||
const isBinaryRequset = /application\/octet-stream/i.test(headers.accept);
|
|
||||||
|
|
||||||
if (!isBinaryRequset) {
|
|
||||||
if (options.mediaType.format) {
|
|
||||||
// e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw
|
|
||||||
headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(",");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.mediaType.previews.length) {
|
|
||||||
const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || [];
|
|
||||||
headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {
|
|
||||||
const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json";
|
|
||||||
return `application/vnd.github.${preview}-preview${format}`;
|
|
||||||
}).join(",");
|
|
||||||
}
|
|
||||||
} // for GET/HEAD requests, set URL query parameters from remaining parameters
|
|
||||||
// for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters
|
|
||||||
|
|
||||||
|
|
||||||
if (["GET", "HEAD"].includes(method)) {
|
|
||||||
url = addQueryParameters(url, remainingParameters);
|
|
||||||
} else {
|
|
||||||
if ("data" in remainingParameters) {
|
|
||||||
body = remainingParameters.data;
|
|
||||||
} else {
|
|
||||||
if (Object.keys(remainingParameters).length) {
|
|
||||||
body = remainingParameters;
|
|
||||||
} else {
|
|
||||||
headers["content-length"] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} // default content-type for JSON if body is set
|
|
||||||
|
|
||||||
|
|
||||||
if (!headers["content-type"] && typeof body !== "undefined") {
|
|
||||||
headers["content-type"] = "application/json; charset=utf-8";
|
|
||||||
} // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.
|
|
||||||
// fetch does not allow to set `content-length` header, but we can set body to an empty string
|
|
||||||
|
|
||||||
|
|
||||||
if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
|
|
||||||
body = "";
|
|
||||||
} // Only return body/request keys if present
|
|
||||||
|
|
||||||
|
|
||||||
return Object.assign({
|
|
||||||
method,
|
|
||||||
url,
|
|
||||||
headers
|
|
||||||
}, typeof body !== "undefined" ? {
|
|
||||||
body
|
|
||||||
} : null, options.request ? {
|
|
||||||
request: options.request
|
|
||||||
} : null);
|
|
||||||
}
|
|
||||||
|
|
||||||
function endpointWithDefaults(defaults, route, options) {
|
|
||||||
return parse(merge(defaults, route, options));
|
|
||||||
}
|
|
||||||
|
|
||||||
function withDefaults(oldDefaults, newDefaults) {
|
|
||||||
const DEFAULTS = merge(oldDefaults, newDefaults);
|
|
||||||
const endpoint = endpointWithDefaults.bind(null, DEFAULTS);
|
|
||||||
return Object.assign(endpoint, {
|
|
||||||
DEFAULTS,
|
|
||||||
defaults: withDefaults.bind(null, DEFAULTS),
|
|
||||||
merge: merge.bind(null, DEFAULTS),
|
|
||||||
parse
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const VERSION = "0.0.0-development";
|
|
||||||
|
|
||||||
const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;
|
|
||||||
const DEFAULTS = {
|
|
||||||
method: "GET",
|
|
||||||
baseUrl: "https://api.github.com",
|
|
||||||
headers: {
|
|
||||||
accept: "application/vnd.github.v3+json",
|
|
||||||
"user-agent": userAgent
|
|
||||||
},
|
|
||||||
mediaType: {
|
|
||||||
format: "",
|
|
||||||
previews: []
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const endpoint = withDefaults(null, DEFAULTS);
|
|
||||||
|
|
||||||
exports.endpoint = endpoint;
|
|
15
node_modules/@octokit/endpoint/dist-src/defaults.js
generated
vendored
15
node_modules/@octokit/endpoint/dist-src/defaults.js
generated
vendored
@ -1,15 +0,0 @@
|
|||||||
import getUserAgent from "universal-user-agent";
|
|
||||||
import { VERSION } from "./version";
|
|
||||||
const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;
|
|
||||||
export const DEFAULTS = {
|
|
||||||
method: "GET",
|
|
||||||
baseUrl: "https://api.github.com",
|
|
||||||
headers: {
|
|
||||||
accept: "application/vnd.github.v3+json",
|
|
||||||
"user-agent": userAgent
|
|
||||||
},
|
|
||||||
mediaType: {
|
|
||||||
format: "",
|
|
||||||
previews: []
|
|
||||||
}
|
|
||||||
};
|
|
5
node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js
generated
vendored
5
node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js
generated
vendored
@ -1,5 +0,0 @@
|
|||||||
import { merge } from "./merge";
|
|
||||||
import { parse } from "./parse";
|
|
||||||
export function endpointWithDefaults(defaults, route, options) {
|
|
||||||
return parse(merge(defaults, route, options));
|
|
||||||
}
|
|
0
node_modules/@octokit/endpoint/dist-src/generated/routes.js
generated
vendored
0
node_modules/@octokit/endpoint/dist-src/generated/routes.js
generated
vendored
3
node_modules/@octokit/endpoint/dist-src/index.js
generated
vendored
3
node_modules/@octokit/endpoint/dist-src/index.js
generated
vendored
@ -1,3 +0,0 @@
|
|||||||
import { withDefaults } from "./with-defaults";
|
|
||||||
import { DEFAULTS } from "./defaults";
|
|
||||||
export const endpoint = withDefaults(null, DEFAULTS);
|
|
25
node_modules/@octokit/endpoint/dist-src/merge.js
generated
vendored
25
node_modules/@octokit/endpoint/dist-src/merge.js
generated
vendored
@ -1,25 +0,0 @@
|
|||||||
import deepmerge from "deepmerge";
|
|
||||||
import isPlainObject from "is-plain-object";
|
|
||||||
import { lowercaseKeys } from "./util/lowercase-keys";
|
|
||||||
export function merge(defaults, route, options) {
|
|
||||||
if (typeof route === "string") {
|
|
||||||
let [method, url] = route.split(" ");
|
|
||||||
options = Object.assign(url ? { method, url } : { url: method }, options);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
options = route || {};
|
|
||||||
}
|
|
||||||
// lowercase header names before merging with defaults to avoid duplicates
|
|
||||||
options.headers = lowercaseKeys(options.headers);
|
|
||||||
const mergedOptions = deepmerge.all([defaults, options].filter(Boolean), {
|
|
||||||
isMergeableObject: isPlainObject
|
|
||||||
});
|
|
||||||
// mediaType.previews arrays are merged, instead of overwritten
|
|
||||||
if (defaults && defaults.mediaType.previews.length) {
|
|
||||||
mergedOptions.mediaType.previews = defaults.mediaType.previews
|
|
||||||
.filter(preview => !mergedOptions.mediaType.previews.includes(preview))
|
|
||||||
.concat(mergedOptions.mediaType.previews);
|
|
||||||
}
|
|
||||||
mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, ""));
|
|
||||||
return mergedOptions;
|
|
||||||
}
|
|
81
node_modules/@octokit/endpoint/dist-src/parse.js
generated
vendored
81
node_modules/@octokit/endpoint/dist-src/parse.js
generated
vendored
@ -1,81 +0,0 @@
|
|||||||
import urlTemplate from "url-template";
|
|
||||||
import { addQueryParameters } from "./util/add-query-parameters";
|
|
||||||
import { extractUrlVariableNames } from "./util/extract-url-variable-names";
|
|
||||||
import { omit } from "./util/omit";
|
|
||||||
export function parse(options) {
|
|
||||||
// https://fetch.spec.whatwg.org/#methods
|
|
||||||
let method = options.method.toUpperCase();
|
|
||||||
// replace :varname with {varname} to make it RFC 6570 compatible
|
|
||||||
let url = options.url.replace(/:([a-z]\w+)/g, "{+$1}");
|
|
||||||
let headers = Object.assign({}, options.headers);
|
|
||||||
let body;
|
|
||||||
let parameters = omit(options, [
|
|
||||||
"method",
|
|
||||||
"baseUrl",
|
|
||||||
"url",
|
|
||||||
"headers",
|
|
||||||
"request",
|
|
||||||
"mediaType"
|
|
||||||
]);
|
|
||||||
// extract variable names from URL to calculate remaining variables later
|
|
||||||
const urlVariableNames = extractUrlVariableNames(url);
|
|
||||||
url = urlTemplate.parse(url).expand(parameters);
|
|
||||||
if (!/^http/.test(url)) {
|
|
||||||
url = options.baseUrl + url;
|
|
||||||
}
|
|
||||||
const omittedParameters = Object.keys(options)
|
|
||||||
.filter(option => urlVariableNames.includes(option))
|
|
||||||
.concat("baseUrl");
|
|
||||||
const remainingParameters = omit(parameters, omittedParameters);
|
|
||||||
const isBinaryRequset = /application\/octet-stream/i.test(headers.accept);
|
|
||||||
if (!isBinaryRequset) {
|
|
||||||
if (options.mediaType.format) {
|
|
||||||
// e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw
|
|
||||||
headers.accept = headers.accept
|
|
||||||
.split(/,/)
|
|
||||||
.map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))
|
|
||||||
.join(",");
|
|
||||||
}
|
|
||||||
if (options.mediaType.previews.length) {
|
|
||||||
const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || [];
|
|
||||||
headers.accept = previewsFromAcceptHeader
|
|
||||||
.concat(options.mediaType.previews)
|
|
||||||
.map(preview => {
|
|
||||||
const format = options.mediaType.format
|
|
||||||
? `.${options.mediaType.format}`
|
|
||||||
: "+json";
|
|
||||||
return `application/vnd.github.${preview}-preview${format}`;
|
|
||||||
})
|
|
||||||
.join(",");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// for GET/HEAD requests, set URL query parameters from remaining parameters
|
|
||||||
// for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters
|
|
||||||
if (["GET", "HEAD"].includes(method)) {
|
|
||||||
url = addQueryParameters(url, remainingParameters);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ("data" in remainingParameters) {
|
|
||||||
body = remainingParameters.data;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (Object.keys(remainingParameters).length) {
|
|
||||||
body = remainingParameters;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
headers["content-length"] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// default content-type for JSON if body is set
|
|
||||||
if (!headers["content-type"] && typeof body !== "undefined") {
|
|
||||||
headers["content-type"] = "application/json; charset=utf-8";
|
|
||||||
}
|
|
||||||
// GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.
|
|
||||||
// fetch does not allow to set `content-length` header, but we can set body to an empty string
|
|
||||||
if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
|
|
||||||
body = "";
|
|
||||||
}
|
|
||||||
// Only return body/request keys if present
|
|
||||||
return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null);
|
|
||||||
}
|
|
0
node_modules/@octokit/endpoint/dist-src/types.js
generated
vendored
0
node_modules/@octokit/endpoint/dist-src/types.js
generated
vendored
21
node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js
generated
vendored
21
node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js
generated
vendored
@ -1,21 +0,0 @@
|
|||||||
export function addQueryParameters(url, parameters) {
|
|
||||||
const separator = /\?/.test(url) ? "&" : "?";
|
|
||||||
const names = Object.keys(parameters);
|
|
||||||
if (names.length === 0) {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
return (url +
|
|
||||||
separator +
|
|
||||||
names
|
|
||||||
.map(name => {
|
|
||||||
if (name === "q") {
|
|
||||||
return ("q=" +
|
|
||||||
parameters
|
|
||||||
.q.split("+")
|
|
||||||
.map(encodeURIComponent)
|
|
||||||
.join("+"));
|
|
||||||
}
|
|
||||||
return `${name}=${encodeURIComponent(parameters[name])}`;
|
|
||||||
})
|
|
||||||
.join("&"));
|
|
||||||
}
|
|
11
node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js
generated
vendored
11
node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js
generated
vendored
@ -1,11 +0,0 @@
|
|||||||
const urlVariableRegex = /\{[^}]+\}/g;
|
|
||||||
function removeNonChars(variableName) {
|
|
||||||
return variableName.replace(/^\W+|\W+$/g, "").split(/,/);
|
|
||||||
}
|
|
||||||
export function extractUrlVariableNames(url) {
|
|
||||||
const matches = url.match(urlVariableRegex);
|
|
||||||
if (!matches) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
|
|
||||||
}
|
|
9
node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js
generated
vendored
9
node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js
generated
vendored
@ -1,9 +0,0 @@
|
|||||||
export function lowercaseKeys(object) {
|
|
||||||
if (!object) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
return Object.keys(object).reduce((newObj, key) => {
|
|
||||||
newObj[key.toLowerCase()] = object[key];
|
|
||||||
return newObj;
|
|
||||||
}, {});
|
|
||||||
}
|
|
8
node_modules/@octokit/endpoint/dist-src/util/omit.js
generated
vendored
8
node_modules/@octokit/endpoint/dist-src/util/omit.js
generated
vendored
@ -1,8 +0,0 @@
|
|||||||
export function omit(object, keysToOmit) {
|
|
||||||
return Object.keys(object)
|
|
||||||
.filter(option => !keysToOmit.includes(option))
|
|
||||||
.reduce((obj, key) => {
|
|
||||||
obj[key] = object[key];
|
|
||||||
return obj;
|
|
||||||
}, {});
|
|
||||||
}
|
|
1
node_modules/@octokit/endpoint/dist-src/version.js
generated
vendored
1
node_modules/@octokit/endpoint/dist-src/version.js
generated
vendored
@ -1 +0,0 @@
|
|||||||
export const VERSION = "0.0.0-development";
|
|
13
node_modules/@octokit/endpoint/dist-src/with-defaults.js
generated
vendored
13
node_modules/@octokit/endpoint/dist-src/with-defaults.js
generated
vendored
@ -1,13 +0,0 @@
|
|||||||
import { endpointWithDefaults } from "./endpoint-with-defaults";
|
|
||||||
import { merge } from "./merge";
|
|
||||||
import { parse } from "./parse";
|
|
||||||
export function withDefaults(oldDefaults, newDefaults) {
|
|
||||||
const DEFAULTS = merge(oldDefaults, newDefaults);
|
|
||||||
const endpoint = endpointWithDefaults.bind(null, DEFAULTS);
|
|
||||||
return Object.assign(endpoint, {
|
|
||||||
DEFAULTS,
|
|
||||||
defaults: withDefaults.bind(null, DEFAULTS),
|
|
||||||
merge: merge.bind(null, DEFAULTS),
|
|
||||||
parse
|
|
||||||
});
|
|
||||||
}
|
|
2
node_modules/@octokit/endpoint/dist-types/defaults.d.ts
generated
vendored
2
node_modules/@octokit/endpoint/dist-types/defaults.d.ts
generated
vendored
@ -1,2 +0,0 @@
|
|||||||
import { Defaults } from "./types";
|
|
||||||
export declare const DEFAULTS: Defaults;
|
|
2
node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts
generated
vendored
2
node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts
generated
vendored
@ -1,2 +0,0 @@
|
|||||||
import { Defaults, Endpoint, RequestOptions, Route, Parameters } from "./types";
|
|
||||||
export declare function endpointWithDefaults(defaults: Defaults, route: Route | Endpoint, options?: Parameters): RequestOptions;
|
|
6745
node_modules/@octokit/endpoint/dist-types/generated/routes.d.ts
generated
vendored
6745
node_modules/@octokit/endpoint/dist-types/generated/routes.d.ts
generated
vendored
File diff suppressed because it is too large
Load Diff
1
node_modules/@octokit/endpoint/dist-types/index.d.ts
generated
vendored
1
node_modules/@octokit/endpoint/dist-types/index.d.ts
generated
vendored
@ -1 +0,0 @@
|
|||||||
export declare const endpoint: import("./types").endpoint;
|
|
2
node_modules/@octokit/endpoint/dist-types/merge.d.ts
generated
vendored
2
node_modules/@octokit/endpoint/dist-types/merge.d.ts
generated
vendored
@ -1,2 +0,0 @@
|
|||||||
import { Defaults, Route, Parameters } from "./types";
|
|
||||||
export declare function merge(defaults: Defaults | null, route?: Route | Parameters, options?: Parameters): Defaults;
|
|
2
node_modules/@octokit/endpoint/dist-types/parse.d.ts
generated
vendored
2
node_modules/@octokit/endpoint/dist-types/parse.d.ts
generated
vendored
@ -1,2 +0,0 @@
|
|||||||
import { Defaults, RequestOptions } from "./types";
|
|
||||||
export declare function parse(options: Defaults): RequestOptions;
|
|
150
node_modules/@octokit/endpoint/dist-types/types.d.ts
generated
vendored
150
node_modules/@octokit/endpoint/dist-types/types.d.ts
generated
vendored
@ -1,150 +0,0 @@
|
|||||||
import { Routes as KnownRoutes } from "./generated/routes";
|
|
||||||
export interface endpoint {
|
|
||||||
/**
|
|
||||||
* Transforms a GitHub REST API endpoint into generic request options
|
|
||||||
*
|
|
||||||
* @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`.
|
|
||||||
*/
|
|
||||||
(options: Endpoint): RequestOptions;
|
|
||||||
/**
|
|
||||||
* Transforms a GitHub REST API endpoint into generic request options
|
|
||||||
*
|
|
||||||
* @param {string} route Request method + URL. Example: `'GET /orgs/:org'`
|
|
||||||
* @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`.
|
|
||||||
*/
|
|
||||||
<R extends Route>(route: keyof KnownRoutes | R, options?: R extends keyof KnownRoutes ? KnownRoutes[R][0] & Parameters : Parameters): R extends keyof KnownRoutes ? KnownRoutes[R][1] : RequestOptions;
|
|
||||||
/**
|
|
||||||
* Object with current default route and parameters
|
|
||||||
*/
|
|
||||||
DEFAULTS: Defaults;
|
|
||||||
/**
|
|
||||||
* Returns a new `endpoint` with updated route and parameters
|
|
||||||
*/
|
|
||||||
defaults: (newDefaults: Parameters) => endpoint;
|
|
||||||
merge: {
|
|
||||||
/**
|
|
||||||
* Merges current endpoint defaults with passed route and parameters,
|
|
||||||
* without transforming them into request options.
|
|
||||||
*
|
|
||||||
* @param {string} route Request method + URL. Example: `'GET /orgs/:org'`
|
|
||||||
* @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
(route: Route, parameters?: Parameters): Defaults;
|
|
||||||
/**
|
|
||||||
* Merges current endpoint defaults with passed route and parameters,
|
|
||||||
* without transforming them into request options.
|
|
||||||
*
|
|
||||||
* @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`.
|
|
||||||
*/
|
|
||||||
(options: Parameters): Defaults;
|
|
||||||
/**
|
|
||||||
* Returns current default options.
|
|
||||||
*
|
|
||||||
* @deprecated use endpoint.DEFAULTS instead
|
|
||||||
*/
|
|
||||||
(): Defaults;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* Stateless method to turn endpoint options into request options.
|
|
||||||
* Calling `endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`.
|
|
||||||
*
|
|
||||||
* @param {object} options `method`, `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`.
|
|
||||||
*/
|
|
||||||
parse: (options: Defaults) => RequestOptions;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Request method + URL. Example: `'GET /orgs/:org'`
|
|
||||||
*/
|
|
||||||
export declare type Route = string;
|
|
||||||
/**
|
|
||||||
* Relative or absolute URL. Examples: `'/orgs/:org'`, `https://example.com/foo/bar`
|
|
||||||
*/
|
|
||||||
export declare type Url = string;
|
|
||||||
/**
|
|
||||||
* Request method
|
|
||||||
*/
|
|
||||||
export declare type Method = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT";
|
|
||||||
/**
|
|
||||||
* Endpoint parameters
|
|
||||||
*/
|
|
||||||
export declare type Parameters = {
|
|
||||||
/**
|
|
||||||
* Base URL to be used when a relative URL is passed, such as `/orgs/:org`.
|
|
||||||
* If `baseUrl` is `https://enterprise.acme-inc.com/api/v3`, then the resulting
|
|
||||||
* `RequestOptions.url` will be `https://enterprise.acme-inc.com/api/v3/orgs/:org`.
|
|
||||||
*/
|
|
||||||
baseUrl?: string;
|
|
||||||
/**
|
|
||||||
* HTTP headers. Use lowercase keys.
|
|
||||||
*/
|
|
||||||
headers?: Headers;
|
|
||||||
/**
|
|
||||||
* Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide}
|
|
||||||
*/
|
|
||||||
mediaType?: {
|
|
||||||
/**
|
|
||||||
* `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint
|
|
||||||
*/
|
|
||||||
format?: string;
|
|
||||||
/**
|
|
||||||
* Custom media type names of {@link https://developer.github.com/v3/media/|API Previews} without the `-preview` suffix.
|
|
||||||
* Example for single preview: `['squirrel-girl']`.
|
|
||||||
* Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`.
|
|
||||||
*/
|
|
||||||
previews?: string[];
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* Pass custom meta information for the request. The `request` object will be returned as is.
|
|
||||||
*/
|
|
||||||
request?: EndpointRequestOptions;
|
|
||||||
/**
|
|
||||||
* Any additional parameter will be passed as follows
|
|
||||||
* 1. URL parameter if `':parameter'` or `{parameter}` is part of `url`
|
|
||||||
* 2. Query parameter if `method` is `'GET'` or `'HEAD'`
|
|
||||||
* 3. Request body if `parameter` is `'data'`
|
|
||||||
* 4. JSON in the request body in the form of `body[parameter]` unless `parameter` key is `'data'`
|
|
||||||
*/
|
|
||||||
[parameter: string]: any;
|
|
||||||
};
|
|
||||||
export declare type Endpoint = Parameters & {
|
|
||||||
method: Method;
|
|
||||||
url: Url;
|
|
||||||
};
|
|
||||||
export declare type Defaults = Parameters & {
|
|
||||||
method: Method;
|
|
||||||
baseUrl: string;
|
|
||||||
headers: Headers & {
|
|
||||||
accept: string;
|
|
||||||
"user-agent": string;
|
|
||||||
};
|
|
||||||
mediaType: {
|
|
||||||
format: string;
|
|
||||||
previews: string[];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
export declare type RequestOptions = {
|
|
||||||
method: Method;
|
|
||||||
url: Url;
|
|
||||||
headers: Headers;
|
|
||||||
body?: any;
|
|
||||||
request?: EndpointRequestOptions;
|
|
||||||
};
|
|
||||||
export declare type Headers = {
|
|
||||||
/**
|
|
||||||
* Avoid setting `accept`, use `mediaFormat.{format|previews}` instead.
|
|
||||||
*/
|
|
||||||
accept?: string;
|
|
||||||
/**
|
|
||||||
* Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678`
|
|
||||||
*/
|
|
||||||
authorization?: string;
|
|
||||||
/**
|
|
||||||
* `user-agent` is set do a default and can be overwritten as needed.
|
|
||||||
*/
|
|
||||||
"user-agent"?: string;
|
|
||||||
[header: string]: string | number | undefined;
|
|
||||||
};
|
|
||||||
export declare type EndpointRequestOptions = {
|
|
||||||
[option: string]: any;
|
|
||||||
};
|
|
4
node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts
generated
vendored
4
node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts
generated
vendored
@ -1,4 +0,0 @@
|
|||||||
export declare function addQueryParameters(url: string, parameters: {
|
|
||||||
[x: string]: string | undefined;
|
|
||||||
q?: string;
|
|
||||||
}): string;
|
|
1
node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts
generated
vendored
1
node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts
generated
vendored
@ -1 +0,0 @@
|
|||||||
export declare function extractUrlVariableNames(url: string): string[];
|
|
3
node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts
generated
vendored
3
node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts
generated
vendored
@ -1,3 +0,0 @@
|
|||||||
export declare function lowercaseKeys(object?: {
|
|
||||||
[key: string]: any;
|
|
||||||
}): {};
|
|
5
node_modules/@octokit/endpoint/dist-types/util/omit.d.ts
generated
vendored
5
node_modules/@octokit/endpoint/dist-types/util/omit.d.ts
generated
vendored
@ -1,5 +0,0 @@
|
|||||||
export declare function omit(object: {
|
|
||||||
[key: string]: any;
|
|
||||||
}, keysToOmit: string[]): {
|
|
||||||
[key: string]: any;
|
|
||||||
};
|
|
1
node_modules/@octokit/endpoint/dist-types/version.d.ts
generated
vendored
1
node_modules/@octokit/endpoint/dist-types/version.d.ts
generated
vendored
@ -1 +0,0 @@
|
|||||||
export declare const VERSION = "0.0.0-development";
|
|
2
node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts
generated
vendored
2
node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts
generated
vendored
@ -1,2 +0,0 @@
|
|||||||
import { Defaults, endpoint, Parameters } from "./types";
|
|
||||||
export declare function withDefaults(oldDefaults: Defaults | null, newDefaults: Parameters): endpoint;
|
|
233
node_modules/@octokit/endpoint/dist-web/index.js
generated
vendored
233
node_modules/@octokit/endpoint/dist-web/index.js
generated
vendored
@ -1,233 +0,0 @@
|
|||||||
import deepmerge from 'deepmerge';
|
|
||||||
import isPlainObject from 'is-plain-object';
|
|
||||||
import urlTemplate from 'url-template';
|
|
||||||
import getUserAgent from 'universal-user-agent';
|
|
||||||
|
|
||||||
function _slicedToArray(arr, i) {
|
|
||||||
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
|
|
||||||
}
|
|
||||||
|
|
||||||
function _arrayWithHoles(arr) {
|
|
||||||
if (Array.isArray(arr)) return arr;
|
|
||||||
}
|
|
||||||
|
|
||||||
function _iterableToArrayLimit(arr, i) {
|
|
||||||
var _arr = [];
|
|
||||||
var _n = true;
|
|
||||||
var _d = false;
|
|
||||||
var _e = undefined;
|
|
||||||
|
|
||||||
try {
|
|
||||||
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
|
||||||
_arr.push(_s.value);
|
|
||||||
|
|
||||||
if (i && _arr.length === i) break;
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
_d = true;
|
|
||||||
_e = err;
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (!_n && _i["return"] != null) _i["return"]();
|
|
||||||
} finally {
|
|
||||||
if (_d) throw _e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return _arr;
|
|
||||||
}
|
|
||||||
|
|
||||||
function _nonIterableRest() {
|
|
||||||
throw new TypeError("Invalid attempt to destructure non-iterable instance");
|
|
||||||
}
|
|
||||||
|
|
||||||
function lowercaseKeys(object) {
|
|
||||||
if (!object) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
return Object.keys(object).reduce((newObj, key) => {
|
|
||||||
newObj[key.toLowerCase()] = object[key];
|
|
||||||
return newObj;
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
|
|
||||||
function merge(defaults, route, options) {
|
|
||||||
if (typeof route === "string") {
|
|
||||||
let _route$split = route.split(" "),
|
|
||||||
_route$split2 = _slicedToArray(_route$split, 2),
|
|
||||||
method = _route$split2[0],
|
|
||||||
url = _route$split2[1];
|
|
||||||
|
|
||||||
options = Object.assign(url ? {
|
|
||||||
method,
|
|
||||||
url
|
|
||||||
} : {
|
|
||||||
url: method
|
|
||||||
}, options);
|
|
||||||
} else {
|
|
||||||
options = route || {};
|
|
||||||
} // lowercase header names before merging with defaults to avoid duplicates
|
|
||||||
|
|
||||||
|
|
||||||
options.headers = lowercaseKeys(options.headers);
|
|
||||||
const mergedOptions = deepmerge.all([defaults, options].filter(Boolean), {
|
|
||||||
isMergeableObject: isPlainObject
|
|
||||||
}); // mediaType.previews arrays are merged, instead of overwritten
|
|
||||||
|
|
||||||
if (defaults && defaults.mediaType.previews.length) {
|
|
||||||
mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);
|
|
||||||
}
|
|
||||||
|
|
||||||
mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, ""));
|
|
||||||
return mergedOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
function addQueryParameters(url, parameters) {
|
|
||||||
const separator = /\?/.test(url) ? "&" : "?";
|
|
||||||
const names = Object.keys(parameters);
|
|
||||||
|
|
||||||
if (names.length === 0) {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url + separator + names.map(name => {
|
|
||||||
if (name === "q") {
|
|
||||||
return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+");
|
|
||||||
}
|
|
||||||
|
|
||||||
return "".concat(name, "=").concat(encodeURIComponent(parameters[name]));
|
|
||||||
}).join("&");
|
|
||||||
}
|
|
||||||
|
|
||||||
const urlVariableRegex = /\{[^}]+\}/g;
|
|
||||||
|
|
||||||
function removeNonChars(variableName) {
|
|
||||||
return variableName.replace(/^\W+|\W+$/g, "").split(/,/);
|
|
||||||
}
|
|
||||||
|
|
||||||
function extractUrlVariableNames(url) {
|
|
||||||
const matches = url.match(urlVariableRegex);
|
|
||||||
|
|
||||||
if (!matches) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
|
|
||||||
}
|
|
||||||
|
|
||||||
function omit(object, keysToOmit) {
|
|
||||||
return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {
|
|
||||||
obj[key] = object[key];
|
|
||||||
return obj;
|
|
||||||
}, {});
|
|
||||||
}
|
|
||||||
|
|
||||||
function parse(options) {
|
|
||||||
// https://fetch.spec.whatwg.org/#methods
|
|
||||||
let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible
|
|
||||||
|
|
||||||
let url = options.url.replace(/:([a-z]\w+)/g, "{+$1}");
|
|
||||||
let headers = Object.assign({}, options.headers);
|
|
||||||
let body;
|
|
||||||
let parameters = omit(options, ["method", "baseUrl", "url", "headers", "request", "mediaType"]); // extract variable names from URL to calculate remaining variables later
|
|
||||||
|
|
||||||
const urlVariableNames = extractUrlVariableNames(url);
|
|
||||||
url = urlTemplate.parse(url).expand(parameters);
|
|
||||||
|
|
||||||
if (!/^http/.test(url)) {
|
|
||||||
url = options.baseUrl + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat("baseUrl");
|
|
||||||
const remainingParameters = omit(parameters, omittedParameters);
|
|
||||||
const isBinaryRequset = /application\/octet-stream/i.test(headers.accept);
|
|
||||||
|
|
||||||
if (!isBinaryRequset) {
|
|
||||||
if (options.mediaType.format) {
|
|
||||||
// e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw
|
|
||||||
headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, "application/vnd$1$2.".concat(options.mediaType.format))).join(",");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.mediaType.previews.length) {
|
|
||||||
const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || [];
|
|
||||||
headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {
|
|
||||||
const format = options.mediaType.format ? ".".concat(options.mediaType.format) : "+json";
|
|
||||||
return "application/vnd.github.".concat(preview, "-preview").concat(format);
|
|
||||||
}).join(",");
|
|
||||||
}
|
|
||||||
} // for GET/HEAD requests, set URL query parameters from remaining parameters
|
|
||||||
// for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters
|
|
||||||
|
|
||||||
|
|
||||||
if (["GET", "HEAD"].includes(method)) {
|
|
||||||
url = addQueryParameters(url, remainingParameters);
|
|
||||||
} else {
|
|
||||||
if ("data" in remainingParameters) {
|
|
||||||
body = remainingParameters.data;
|
|
||||||
} else {
|
|
||||||
if (Object.keys(remainingParameters).length) {
|
|
||||||
body = remainingParameters;
|
|
||||||
} else {
|
|
||||||
headers["content-length"] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} // default content-type for JSON if body is set
|
|
||||||
|
|
||||||
|
|
||||||
if (!headers["content-type"] && typeof body !== "undefined") {
|
|
||||||
headers["content-type"] = "application/json; charset=utf-8";
|
|
||||||
} // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.
|
|
||||||
// fetch does not allow to set `content-length` header, but we can set body to an empty string
|
|
||||||
|
|
||||||
|
|
||||||
if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
|
|
||||||
body = "";
|
|
||||||
} // Only return body/request keys if present
|
|
||||||
|
|
||||||
|
|
||||||
return Object.assign({
|
|
||||||
method,
|
|
||||||
url,
|
|
||||||
headers
|
|
||||||
}, typeof body !== "undefined" ? {
|
|
||||||
body
|
|
||||||
} : null, options.request ? {
|
|
||||||
request: options.request
|
|
||||||
} : null);
|
|
||||||
}
|
|
||||||
|
|
||||||
function endpointWithDefaults(defaults, route, options) {
|
|
||||||
return parse(merge(defaults, route, options));
|
|
||||||
}
|
|
||||||
|
|
||||||
function withDefaults(oldDefaults, newDefaults) {
|
|
||||||
const DEFAULTS = merge(oldDefaults, newDefaults);
|
|
||||||
const endpoint = endpointWithDefaults.bind(null, DEFAULTS);
|
|
||||||
return Object.assign(endpoint, {
|
|
||||||
DEFAULTS,
|
|
||||||
defaults: withDefaults.bind(null, DEFAULTS),
|
|
||||||
merge: merge.bind(null, DEFAULTS),
|
|
||||||
parse
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const VERSION = "0.0.0-development";
|
|
||||||
|
|
||||||
const userAgent = "octokit-endpoint.js/".concat(VERSION, " ").concat(getUserAgent());
|
|
||||||
const DEFAULTS = {
|
|
||||||
method: "GET",
|
|
||||||
baseUrl: "https://api.github.com",
|
|
||||||
headers: {
|
|
||||||
accept: "application/vnd.github.v3+json",
|
|
||||||
"user-agent": userAgent
|
|
||||||
},
|
|
||||||
mediaType: {
|
|
||||||
format: "",
|
|
||||||
previews: []
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const endpoint = withDefaults(null, DEFAULTS);
|
|
||||||
|
|
||||||
export { endpoint };
|
|
21
node_modules/@octokit/endpoint/node_modules/is-plain-object/LICENSE
generated
vendored
21
node_modules/@octokit/endpoint/node_modules/is-plain-object/LICENSE
generated
vendored
@ -1,21 +0,0 @@
|
|||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2014-2017, Jon Schlinkert.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
119
node_modules/@octokit/endpoint/node_modules/is-plain-object/README.md
generated
vendored
119
node_modules/@octokit/endpoint/node_modules/is-plain-object/README.md
generated
vendored
@ -1,119 +0,0 @@
|
|||||||
# is-plain-object [](https://www.npmjs.com/package/is-plain-object) [](https://npmjs.org/package/is-plain-object) [](https://npmjs.org/package/is-plain-object) [](https://travis-ci.org/jonschlinkert/is-plain-object)
|
|
||||||
|
|
||||||
> Returns true if an object was created by the `Object` constructor.
|
|
||||||
|
|
||||||
Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
Install with [npm](https://www.npmjs.com/):
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ npm install --save is-plain-object
|
|
||||||
```
|
|
||||||
|
|
||||||
Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```js
|
|
||||||
import isPlainObject from 'is-plain-object';
|
|
||||||
```
|
|
||||||
|
|
||||||
**true** when created by the `Object` constructor.
|
|
||||||
|
|
||||||
```js
|
|
||||||
isPlainObject(Object.create({}));
|
|
||||||
//=> true
|
|
||||||
isPlainObject(Object.create(Object.prototype));
|
|
||||||
//=> true
|
|
||||||
isPlainObject({foo: 'bar'});
|
|
||||||
//=> true
|
|
||||||
isPlainObject({});
|
|
||||||
//=> true
|
|
||||||
```
|
|
||||||
|
|
||||||
**false** when not created by the `Object` constructor.
|
|
||||||
|
|
||||||
```js
|
|
||||||
isPlainObject(1);
|
|
||||||
//=> false
|
|
||||||
isPlainObject(['foo', 'bar']);
|
|
||||||
//=> false
|
|
||||||
isPlainObject([]);
|
|
||||||
//=> false
|
|
||||||
isPlainObject(new Foo);
|
|
||||||
//=> false
|
|
||||||
isPlainObject(null);
|
|
||||||
//=> false
|
|
||||||
isPlainObject(Object.create(null));
|
|
||||||
//=> false
|
|
||||||
```
|
|
||||||
|
|
||||||
## About
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary><strong>Contributing</strong></summary>
|
|
||||||
|
|
||||||
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary><strong>Running Tests</strong></summary>
|
|
||||||
|
|
||||||
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ npm install && npm test
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary><strong>Building docs</strong></summary>
|
|
||||||
|
|
||||||
_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
|
|
||||||
|
|
||||||
To generate the readme, run the following command:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ npm install -g verbose/verb#dev verb-generate-readme && verb
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
### Related projects
|
|
||||||
|
|
||||||
You might also be interested in these projects:
|
|
||||||
|
|
||||||
* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.")
|
|
||||||
* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
|
|
||||||
* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
|
|
||||||
|
|
||||||
### Contributors
|
|
||||||
|
|
||||||
| **Commits** | **Contributor** |
|
|
||||||
| --- | --- |
|
|
||||||
| 19 | [jonschlinkert](https://github.com/jonschlinkert) |
|
|
||||||
| 6 | [TrySound](https://github.com/TrySound) |
|
|
||||||
| 6 | [stevenvachon](https://github.com/stevenvachon) |
|
|
||||||
| 3 | [onokumus](https://github.com/onokumus) |
|
|
||||||
| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
|
|
||||||
|
|
||||||
### Author
|
|
||||||
|
|
||||||
**Jon Schlinkert**
|
|
||||||
|
|
||||||
* [GitHub Profile](https://github.com/jonschlinkert)
|
|
||||||
* [Twitter Profile](https://twitter.com/jonschlinkert)
|
|
||||||
* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
|
|
||||||
|
|
||||||
### License
|
|
||||||
|
|
||||||
Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert).
|
|
||||||
Released under the [MIT License](LICENSE).
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user