├── .github ├── hub.json └── workflows │ └── workflow.yml ├── .gitignore ├── .prettierrc.json ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── action.yml ├── docs └── contributors.md ├── jest.config.js ├── lib ├── installer.js └── setup-hub.js ├── node_modules ├── .bin │ ├── semver │ ├── semver.cmd │ ├── uuid │ └── uuid.cmd ├── @actions │ ├── core │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── lib │ │ │ ├── command.d.ts │ │ │ ├── command.js │ │ │ ├── command.js.map │ │ │ ├── core.d.ts │ │ │ ├── core.js │ │ │ └── core.js.map │ │ └── package.json │ ├── exec │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── lib │ │ │ ├── exec.d.ts │ │ │ ├── exec.js │ │ │ ├── exec.js.map │ │ │ ├── interfaces.d.ts │ │ │ ├── interfaces.js │ │ │ ├── interfaces.js.map │ │ │ ├── toolrunner.d.ts │ │ │ ├── toolrunner.js │ │ │ └── toolrunner.js.map │ │ └── package.json │ ├── io │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── lib │ │ │ ├── io-util.d.ts │ │ │ ├── io-util.js │ │ │ ├── io-util.js.map │ │ │ ├── io.d.ts │ │ │ ├── io.js │ │ │ └── io.js.map │ │ └── package.json │ └── tool-cache │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── lib │ │ ├── tool-cache.d.ts │ │ ├── tool-cache.js │ │ └── tool-cache.js.map │ │ ├── package.json │ │ └── scripts │ │ ├── Invoke-7zdec.ps1 │ │ └── externals │ │ ├── 7zdec.exe │ │ └── unzip ├── semver │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── semver.js │ ├── package.json │ ├── range.bnf │ └── semver.js ├── tunnel │ ├── .npmignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ │ └── tunnel.js │ ├── package.json │ └── test │ │ ├── http-over-http.js │ │ ├── http-over-https.js │ │ ├── https-over-http.js │ │ ├── https-over-https-error.js │ │ ├── https-over-https.js │ │ └── keys │ │ ├── Makefile │ │ ├── agent1-cert.pem │ │ ├── agent1-csr.pem │ │ ├── agent1-key.pem │ │ ├── agent1.cnf │ │ ├── agent2-cert.pem │ │ ├── agent2-csr.pem │ │ ├── agent2-key.pem │ │ ├── agent2.cnf │ │ ├── agent3-cert.pem │ │ ├── agent3-csr.pem │ │ ├── agent3-key.pem │ │ ├── agent3.cnf │ │ ├── agent4-cert.pem │ │ ├── agent4-csr.pem │ │ ├── agent4-key.pem │ │ ├── agent4.cnf │ │ ├── ca1-cert.pem │ │ ├── ca1-cert.srl │ │ ├── ca1-key.pem │ │ ├── ca1.cnf │ │ ├── ca2-cert.pem │ │ ├── ca2-cert.srl │ │ ├── ca2-crl.pem │ │ ├── ca2-database.txt │ │ ├── ca2-key.pem │ │ ├── ca2-serial │ │ ├── ca2.cnf │ │ ├── ca3-cert.pem │ │ ├── ca3-cert.srl │ │ ├── ca3-key.pem │ │ ├── ca3.cnf │ │ ├── ca4-cert.pem │ │ ├── ca4-cert.srl │ │ ├── ca4-key.pem │ │ ├── ca4.cnf │ │ ├── client.cnf │ │ ├── client1-cert.pem │ │ ├── client1-csr.pem │ │ ├── client1-key.pem │ │ ├── client1.cnf │ │ ├── client2-cert.pem │ │ ├── client2-csr.pem │ │ ├── client2-key.pem │ │ ├── client2.cnf │ │ ├── proxy1-cert.pem │ │ ├── proxy1-csr.pem │ │ ├── proxy1-key.pem │ │ ├── proxy1.cnf │ │ ├── proxy2-cert.pem │ │ ├── proxy2-csr.pem │ │ ├── proxy2-key.pem │ │ ├── proxy2.cnf │ │ ├── server1-cert.pem │ │ ├── server1-csr.pem │ │ ├── server1-key.pem │ │ ├── server1.cnf │ │ ├── server2-cert.pem │ │ ├── server2-csr.pem │ │ ├── server2-key.pem │ │ ├── server2.cnf │ │ └── test.js ├── typed-rest-client │ ├── Handlers.d.ts │ ├── Handlers.js │ ├── HttpClient.d.ts │ ├── HttpClient.js │ ├── Index.d.ts │ ├── Index.js │ ├── Interfaces.d.ts │ ├── Interfaces.js │ ├── LICENSE │ ├── README.md │ ├── RestClient.d.ts │ ├── RestClient.js │ ├── ThirdPartyNotice.txt │ ├── Util.d.ts │ ├── Util.js │ ├── handlers │ │ ├── basiccreds.d.ts │ │ ├── basiccreds.js │ │ ├── bearertoken.d.ts │ │ ├── bearertoken.js │ │ ├── ntlm.d.ts │ │ ├── ntlm.js │ │ ├── personalaccesstoken.d.ts │ │ └── personalaccesstoken.js │ ├── opensource │ │ └── node-http-ntlm │ │ │ ├── ntlm.js │ │ │ └── readme.txt │ └── package.json ├── underscore │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── underscore-min.js │ ├── underscore-min.map │ └── underscore.js └── uuid │ ├── .eslintrc.json │ ├── AUTHORS │ ├── CHANGELOG.md │ ├── LICENSE.md │ ├── README.md │ ├── README_js.md │ ├── bin │ └── uuid │ ├── index.js │ ├── lib │ ├── bytesToUuid.js │ ├── md5-browser.js │ ├── md5.js │ ├── rng-browser.js │ ├── rng.js │ ├── sha1-browser.js │ ├── sha1.js │ └── v35.js │ ├── package.json │ ├── v1.js │ ├── v3.js │ ├── v4.js │ └── v5.js ├── package-lock.json ├── package.json ├── src ├── installer.ts └── setup-hub.ts └── tsconfig.json /.github/hub.json: -------------------------------------------------------------------------------- 1 | { 2 | "problemMatcher": [ 3 | { 4 | "owner": "hub", 5 | "pattern": [ 6 | { 7 | "regexp": "^Exception in thread \"(.*)\" (.*): (.*)$", 8 | "code": 2, 9 | "message": 3 10 | } 11 | ] 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /.github/workflows/workflow.yml: -------------------------------------------------------------------------------- 1 | name: Build & Test 2 | on: [push] 3 | jobs: 4 | build: 5 | name: Build 6 | runs-on: ${{ matrix.operating-system }} 7 | strategy: 8 | matrix: 9 | operating-system: [ubuntu-latest, windows-latest] 10 | steps: 11 | - name: Checkout 12 | uses: actions/checkout@master 13 | 14 | - name: Set Node.js 10.x 15 | uses: actions/setup-node@master 16 | with: 17 | version: 10.x 18 | 19 | - name: npm install 20 | run: npm install 21 | 22 | - name: Lint 23 | run: npm run format-check 24 | 25 | test: 26 | needs: build 27 | name: Test 28 | runs-on: ${{ matrix.operating-system }} 29 | strategy: 30 | matrix: 31 | operating-system: [ubuntu-latest, windows-latest, macOS-latest] 32 | steps: 33 | - uses: actions/checkout@v1 34 | 35 | - name: Install hub 36 | uses: geertvdc/setup-hub@master 37 | 38 | - name: run hub 39 | env: 40 | GITHUB_USER: ${{ secrets.GITHUB_USER }} 41 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 42 | run: | 43 | hub --version 44 | hub release 45 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | !node_modules/ 2 | __tests__/runner/* 3 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": true, 6 | "singleQuote": true, 7 | "trailingComma": "none", 8 | "bracketSpacing": false, 9 | "arrowParens": "avoid", 10 | "parser": "typescript" 11 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "git.ignoreLimitWarning": true 3 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2018 GitHub, Inc. and contributors 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # setup-hub 2 | 3 | [![Actions Status](https://github.com/geertvdc/setup-hub/workflows/Build%20%26%20Test/badge.svg)](https://github.com/geertvdc/setup-hub/actions) 4 | 5 | This github action allows for installation of the [Github hub CLI](https://github.com/github/hub) to be used in your actions pipeline. 6 | 7 | It has support for Linux, MacOS and Windows runners. 8 | 9 | Hub CLI allows you to do more with github specific features like releases, issues and pull requests in your Github Action workflow 10 | 11 | # Usage 12 | 13 | See [action.yml](action.yml) 14 | 15 | Basic: 16 | ```yaml 17 | steps: 18 | - uses: actions/checkout@latest 19 | - uses: geertvdc/setup-hub@master 20 | 21 | - run: hub --version 22 | ``` 23 | 24 | Authorized calls to change things: 25 | ```yaml 26 | steps: 27 | - uses: actions/checkout@v1 28 | 29 | - name: Install hub 30 | uses: geertvdc/setup-hub@master 31 | 32 | - name: run hub commands 33 | env: 34 | GITHUB_USER: ${{ secrets.GITHUB_USER }} 35 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 36 | run: | 37 | hub release 38 | ``` 39 | add GITHUB_USER with your github user account to secrets. 40 | 41 | # License 42 | 43 | The scripts and documentation in this project are released under the [MIT License](LICENSE) 44 | 45 | # Contributions 46 | 47 | Contributions are welcome! See [Contributor's Guide](docs/contributors.md) 48 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: 'Setup Hub' 2 | description: 'Setup your Github Actions runner with Hub CLI' 3 | author: 'Geert van der Cruijsen' 4 | branding: 5 | icon: 'play' 6 | color: 'gray-dark' 7 | inputs: 8 | hub-version: 9 | description: 'Version of hub release, if not entered will use latest' 10 | required: false 11 | runs: 12 | using: 'node12' 13 | main: 'lib/setup-hub.js' 14 | -------------------------------------------------------------------------------- /docs/contributors.md: -------------------------------------------------------------------------------- 1 | # Contributors 2 | 3 | ### Checkin 4 | 5 | - Do checkin source (src) 6 | - Do checkin build output (lib) 7 | - Do checkin runtime node_modules 8 | - Do not checkin devDependency node_modules (husky can help see below) 9 | 10 | ### devDependencies 11 | 12 | In order to handle correctly checking in node_modules without devDependencies, we run [Husky](h) before each commit. 13 | This step ensures that formatting and checkin rules are followed and that devDependencies are excluded. To make sure Husky runs correctly, please use the following workflow: 14 | 15 | ``` 16 | npm install # installs all devDependencies including Husky 17 | git add abc.ext # Add the files you've changed. This should include files in src, lib, and node_modules (see above) 18 | git commit -m "Informative commit message" # Commit. This will run Husky 19 | ``` 20 | 21 | During the commit step, Husky will take care of formatting all files with [Prettier](https://github.com/prettier/prettier) as well as pruning out devDependencies using `npm prune --production`. 22 | It will also make sure these changes are appropriately included in your commit (no further work is needed) -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | clearMocks: true, 3 | moduleFileExtensions: ['js', 'ts'], 4 | testEnvironment: 'node', 5 | testMatch: ['**/*.test.ts'], 6 | testRunner: 'jest-circus/runner', 7 | transform: { 8 | '^.+\\.ts$': 'ts-jest' 9 | }, 10 | verbose: true 11 | } -------------------------------------------------------------------------------- /lib/setup-hub.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 3 | return new (P || (P = Promise))(function (resolve, reject) { 4 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 5 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 6 | function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } 7 | step((generator = generator.apply(thisArg, _arguments || [])).next()); 8 | }); 9 | }; 10 | var __importStar = (this && this.__importStar) || function (mod) { 11 | if (mod && mod.__esModule) return mod; 12 | var result = {}; 13 | if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; 14 | result["default"] = mod; 15 | return result; 16 | }; 17 | Object.defineProperty(exports, "__esModule", { value: true }); 18 | const core = __importStar(require("@actions/core")); 19 | const installer = __importStar(require("./installer")); 20 | const path = __importStar(require("path")); 21 | function run() { 22 | return __awaiter(this, void 0, void 0, function* () { 23 | try { 24 | let version = core.getInput('version', { required: false }) || ''; 25 | yield installer.getHub(version); 26 | const matchersPath = path.join(__dirname, '..', '.github'); 27 | console.log(`##[add-matcher]${path.join(matchersPath, 'hub.json')}`); 28 | } 29 | catch (error) { 30 | core.setFailed(error.message); 31 | } 32 | }); 33 | } 34 | run(); 35 | -------------------------------------------------------------------------------- /node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../semver/bin/semver.js" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /node_modules/.bin/semver.cmd: -------------------------------------------------------------------------------- 1 | @IF EXIST "%~dp0\node.exe" ( 2 | "%~dp0\node.exe" "%~dp0\..\semver\bin\semver.js" %* 3 | ) ELSE ( 4 | @SETLOCAL 5 | @SET PATHEXT=%PATHEXT:;.JS;=;% 6 | node "%~dp0\..\semver\bin\semver.js" %* 7 | ) -------------------------------------------------------------------------------- /node_modules/.bin/uuid: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | "$basedir/node" "$basedir/../uuid/bin/uuid" "$@" 10 | ret=$? 11 | else 12 | node "$basedir/../uuid/bin/uuid" "$@" 13 | ret=$? 14 | fi 15 | exit $ret 16 | -------------------------------------------------------------------------------- /node_modules/.bin/uuid.cmd: -------------------------------------------------------------------------------- 1 | @IF EXIST "%~dp0\node.exe" ( 2 | "%~dp0\node.exe" "%~dp0\..\uuid\bin\uuid" %* 3 | ) ELSE ( 4 | @SETLOCAL 5 | @SET PATHEXT=%PATHEXT:;.JS;=;% 6 | node "%~dp0\..\uuid\bin\uuid" %* 7 | ) -------------------------------------------------------------------------------- /node_modules/@actions/core/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2019 GitHub 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. -------------------------------------------------------------------------------- /node_modules/@actions/core/README.md: -------------------------------------------------------------------------------- 1 | # `@actions/core` 2 | 3 | > Core functions for setting results, logging, registering secrets and exporting variables across actions 4 | 5 | ## Usage 6 | 7 | #### Inputs/Outputs 8 | 9 | You can use this library to get inputs or set outputs: 10 | 11 | ``` 12 | const core = require('@actions/core'); 13 | 14 | const myInput = core.getInput('inputName', { required: true }); 15 | 16 | // Do stuff 17 | 18 | core.setOutput('outputKey', 'outputVal'); 19 | ``` 20 | 21 | #### Exporting variables/secrets 22 | 23 | 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: 24 | 25 | ``` 26 | const core = require('@actions/core'); 27 | 28 | // Do stuff 29 | 30 | core.exportVariable('envVar', 'Val'); 31 | core.exportSecret('secretVar', variableWithSecretValue); 32 | ``` 33 | 34 | #### PATH Manipulation 35 | 36 | You can explicitly add items to the path for all remaining steps in a workflow: 37 | 38 | ``` 39 | const core = require('@actions/core'); 40 | 41 | core.addPath('pathToTool'); 42 | ``` 43 | 44 | #### Exit codes 45 | 46 | You should use this library to set the failing exit code for your action: 47 | 48 | ``` 49 | const core = require('@actions/core'); 50 | 51 | try { 52 | // Do stuff 53 | } 54 | catch (err) { 55 | // setFailed logs the message and sets a failing exit code 56 | core.setFailed(`Action failed with error ${err}`); 57 | } 58 | 59 | ``` 60 | 61 | #### Logging 62 | 63 | Finally, this library provides some utilities for logging: 64 | 65 | ``` 66 | const core = require('@actions/core'); 67 | 68 | const myInput = core.getInput('input'); 69 | try { 70 | core.debug('Inside try block'); 71 | 72 | if (!myInput) { 73 | core.warning('myInput wasnt set'); 74 | } 75 | 76 | // Do stuff 77 | } 78 | catch (err) { 79 | core.error('Error ${err}, action may still succeed though'); 80 | } 81 | ``` 82 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/command.d.ts: -------------------------------------------------------------------------------- 1 | interface CommandProperties { 2 | [key: string]: string; 3 | } 4 | /** 5 | * Commands 6 | * 7 | * Command Format: 8 | * ##[name key=value;key=value]message 9 | * 10 | * Examples: 11 | * ##[warning]This is the user warning message 12 | * ##[set-secret name=mypassword]definatelyNotAPassword! 13 | */ 14 | export declare function issueCommand(command: string, properties: CommandProperties, message: string): void; 15 | export declare function issue(name: string, message: string): void; 16 | export {}; 17 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/command.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | const os = require("os"); 4 | /** 5 | * Commands 6 | * 7 | * Command Format: 8 | * ##[name key=value;key=value]message 9 | * 10 | * Examples: 11 | * ##[warning]This is the user warning message 12 | * ##[set-secret name=mypassword]definatelyNotAPassword! 13 | */ 14 | function issueCommand(command, properties, message) { 15 | const cmd = new Command(command, properties, message); 16 | process.stdout.write(cmd.toString() + os.EOL); 17 | } 18 | exports.issueCommand = issueCommand; 19 | function issue(name, message) { 20 | issueCommand(name, {}, message); 21 | } 22 | exports.issue = issue; 23 | const CMD_PREFIX = '##['; 24 | class Command { 25 | constructor(command, properties, message) { 26 | if (!command) { 27 | command = 'missing.command'; 28 | } 29 | this.command = command; 30 | this.properties = properties; 31 | this.message = message; 32 | } 33 | toString() { 34 | let cmdStr = CMD_PREFIX + this.command; 35 | if (this.properties && Object.keys(this.properties).length > 0) { 36 | cmdStr += ' '; 37 | for (const key in this.properties) { 38 | if (this.properties.hasOwnProperty(key)) { 39 | const val = this.properties[key]; 40 | if (val) { 41 | // safely append the val - avoid blowing up when attempting to 42 | // call .replace() if message is not a string for some reason 43 | cmdStr += `${key}=${escape(`${val || ''}`)};`; 44 | } 45 | } 46 | } 47 | } 48 | cmdStr += ']'; 49 | // safely append the message - avoid blowing up when attempting to 50 | // call .replace() if message is not a string for some reason 51 | const message = `${this.message || ''}`; 52 | cmdStr += escapeData(message); 53 | return cmdStr; 54 | } 55 | } 56 | function escapeData(s) { 57 | return s.replace(/\r/g, '%0D').replace(/\n/g, '%0A'); 58 | } 59 | function escape(s) { 60 | return s 61 | .replace(/\r/g, '%0D') 62 | .replace(/\n/g, '%0A') 63 | .replace(/]/g, '%5D') 64 | .replace(/;/g, '%3B'); 65 | } 66 | //# sourceMappingURL=command.js.map -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/command.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";;AAAA,yBAAwB;AAQxB;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,UAA6B,EAC7B,OAAe;IAEf,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAPD,oCAOC;AAED,SAAgB,KAAK,CAAC,IAAY,EAAE,OAAe;IACjD,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC;AAED,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB,MAAM,OAAO;IAKX,YAAY,OAAe,EAAE,UAA6B,EAAE,OAAe;QACzE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,iBAAiB,CAAA;SAC5B;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;QAEtC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,MAAM,IAAI,GAAG,CAAA;YACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBAChC,IAAI,GAAG,EAAE;wBACP,8DAA8D;wBAC9D,6DAA6D;wBAC7D,MAAM,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,CAAA;qBAC9C;iBACF;aACF;SACF;QAED,MAAM,IAAI,GAAG,CAAA;QAEb,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAA;QACvC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;QAE7B,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,CAAC;SACL,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC"} -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/core.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Interface for getInput options 3 | */ 4 | export interface InputOptions { 5 | /** Optional. Whether the input is required. If required and not present, will throw. Defaults to false */ 6 | required?: boolean; 7 | } 8 | /** 9 | * The code to exit an action 10 | */ 11 | export declare enum ExitCode { 12 | /** 13 | * A code indicating that the action was successful 14 | */ 15 | Success = 0, 16 | /** 17 | * A code indicating that the action was a failure 18 | */ 19 | Failure = 1 20 | } 21 | /** 22 | * sets env variable for this action and future actions in the job 23 | * @param name the name of the variable to set 24 | * @param val the value of the variable 25 | */ 26 | export declare function exportVariable(name: string, val: string): void; 27 | /** 28 | * exports the variable and registers a secret which will get masked from logs 29 | * @param name the name of the variable to set 30 | * @param val value of the secret 31 | */ 32 | export declare function exportSecret(name: string, val: string): void; 33 | /** 34 | * Prepends inputPath to the PATH (for this action and future actions) 35 | * @param inputPath 36 | */ 37 | export declare function addPath(inputPath: string): void; 38 | /** 39 | * Gets the value of an input. The value is also trimmed. 40 | * 41 | * @param name name of the input to get 42 | * @param options optional. See InputOptions. 43 | * @returns string 44 | */ 45 | export declare function getInput(name: string, options?: InputOptions): string; 46 | /** 47 | * Sets the value of an output. 48 | * 49 | * @param name name of the output to set 50 | * @param value value to store 51 | */ 52 | export declare function setOutput(name: string, value: string): void; 53 | /** 54 | * Sets the action status to failed. 55 | * When the action exits it will be with an exit code of 1 56 | * @param message add error issue message 57 | */ 58 | export declare function setFailed(message: string): void; 59 | /** 60 | * Writes debug message to user log 61 | * @param message debug message 62 | */ 63 | export declare function debug(message: string): void; 64 | /** 65 | * Adds an error issue 66 | * @param message error issue message 67 | */ 68 | export declare function error(message: string): void; 69 | /** 70 | * Adds an warning issue 71 | * @param message warning issue message 72 | */ 73 | export declare function warning(message: string): void; 74 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/core.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | const command_1 = require("./command"); 4 | const path = require("path"); 5 | /** 6 | * The code to exit an action 7 | */ 8 | var ExitCode; 9 | (function (ExitCode) { 10 | /** 11 | * A code indicating that the action was successful 12 | */ 13 | ExitCode[ExitCode["Success"] = 0] = "Success"; 14 | /** 15 | * A code indicating that the action was a failure 16 | */ 17 | ExitCode[ExitCode["Failure"] = 1] = "Failure"; 18 | })(ExitCode = exports.ExitCode || (exports.ExitCode = {})); 19 | //----------------------------------------------------------------------- 20 | // Variables 21 | //----------------------------------------------------------------------- 22 | /** 23 | * sets env variable for this action and future actions in the job 24 | * @param name the name of the variable to set 25 | * @param val the value of the variable 26 | */ 27 | function exportVariable(name, val) { 28 | process.env[name] = val; 29 | command_1.issueCommand('set-env', { name }, val); 30 | } 31 | exports.exportVariable = exportVariable; 32 | /** 33 | * exports the variable and registers a secret which will get masked from logs 34 | * @param name the name of the variable to set 35 | * @param val value of the secret 36 | */ 37 | function exportSecret(name, val) { 38 | exportVariable(name, val); 39 | command_1.issueCommand('set-secret', {}, val); 40 | } 41 | exports.exportSecret = exportSecret; 42 | /** 43 | * Prepends inputPath to the PATH (for this action and future actions) 44 | * @param inputPath 45 | */ 46 | function addPath(inputPath) { 47 | command_1.issueCommand('add-path', {}, inputPath); 48 | process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; 49 | } 50 | exports.addPath = addPath; 51 | /** 52 | * Gets the value of an input. The value is also trimmed. 53 | * 54 | * @param name name of the input to get 55 | * @param options optional. See InputOptions. 56 | * @returns string 57 | */ 58 | function getInput(name, options) { 59 | const val = process.env[`INPUT_${name.replace(' ', '_').toUpperCase()}`] || ''; 60 | if (options && options.required && !val) { 61 | throw new Error(`Input required and not supplied: ${name}`); 62 | } 63 | return val.trim(); 64 | } 65 | exports.getInput = getInput; 66 | /** 67 | * Sets the value of an output. 68 | * 69 | * @param name name of the output to set 70 | * @param value value to store 71 | */ 72 | function setOutput(name, value) { 73 | command_1.issueCommand('set-output', { name }, value); 74 | } 75 | exports.setOutput = setOutput; 76 | //----------------------------------------------------------------------- 77 | // Results 78 | //----------------------------------------------------------------------- 79 | /** 80 | * Sets the action status to failed. 81 | * When the action exits it will be with an exit code of 1 82 | * @param message add error issue message 83 | */ 84 | function setFailed(message) { 85 | process.exitCode = ExitCode.Failure; 86 | error(message); 87 | } 88 | exports.setFailed = setFailed; 89 | //----------------------------------------------------------------------- 90 | // Logging Commands 91 | //----------------------------------------------------------------------- 92 | /** 93 | * Writes debug message to user log 94 | * @param message debug message 95 | */ 96 | function debug(message) { 97 | command_1.issueCommand('debug', {}, message); 98 | } 99 | exports.debug = debug; 100 | /** 101 | * Adds an error issue 102 | * @param message error issue message 103 | */ 104 | function error(message) { 105 | command_1.issue('error', message); 106 | } 107 | exports.error = error; 108 | /** 109 | * Adds an warning issue 110 | * @param message warning issue message 111 | */ 112 | function warning(message) { 113 | command_1.issue('warning', message); 114 | } 115 | exports.warning = warning; 116 | //# sourceMappingURL=core.js.map -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/core.js.map: -------------------------------------------------------------------------------- 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"} -------------------------------------------------------------------------------- /node_modules/@actions/core/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "@actions/core@1.0.0", 5 | "C:\\src\\github\\geertvdc\\setup-hub" 6 | ] 7 | ], 8 | "_from": "@actions/core@1.0.0", 9 | "_id": "@actions/core@1.0.0", 10 | "_inBundle": false, 11 | "_integrity": "sha512-aMIlkx96XH4E/2YZtEOeyrYQfhlas9jIRkfGPqMwXD095Rdkzo4lB6ZmbxPQSzD+e1M+Xsm98ZhuSMYGv/AlqA==", 12 | "_location": "/@actions/core", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "@actions/core@1.0.0", 18 | "name": "@actions/core", 19 | "escapedName": "@actions%2fcore", 20 | "scope": "@actions", 21 | "rawSpec": "1.0.0", 22 | "saveSpec": null, 23 | "fetchSpec": "1.0.0" 24 | }, 25 | "_requiredBy": [ 26 | "/", 27 | "/@actions/tool-cache" 28 | ], 29 | "_resolved": "https://registry.npmjs.org/@actions/core/-/core-1.0.0.tgz", 30 | "_spec": "1.0.0", 31 | "_where": "C:\\src\\github\\geertvdc\\setup-hub", 32 | "bugs": { 33 | "url": "https://github.com/actions/toolkit/issues" 34 | }, 35 | "description": "Actions core lib", 36 | "devDependencies": { 37 | "@types/node": "^12.0.2" 38 | }, 39 | "directories": { 40 | "lib": "lib", 41 | "test": "__tests__" 42 | }, 43 | "files": [ 44 | "lib" 45 | ], 46 | "gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55", 47 | "homepage": "https://github.com/actions/toolkit/tree/master/packages/core", 48 | "keywords": [ 49 | "core", 50 | "actions" 51 | ], 52 | "license": "MIT", 53 | "main": "lib/core.js", 54 | "name": "@actions/core", 55 | "publishConfig": { 56 | "access": "public" 57 | }, 58 | "repository": { 59 | "type": "git", 60 | "url": "git+https://github.com/actions/toolkit.git" 61 | }, 62 | "scripts": { 63 | "test": "echo \"Error: run tests from root\" && exit 1", 64 | "tsc": "tsc" 65 | }, 66 | "version": "1.0.0" 67 | } 68 | -------------------------------------------------------------------------------- /node_modules/@actions/exec/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2019 GitHub 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. -------------------------------------------------------------------------------- /node_modules/@actions/exec/README.md: -------------------------------------------------------------------------------- 1 | # `@actions/exec` 2 | 3 | ## Usage 4 | 5 | #### Basic 6 | 7 | You can use this package to execute your tools on the command line in a cross platform way: 8 | 9 | ``` 10 | const exec = require('@actions/exec'); 11 | 12 | await exec.exec('node index.js'); 13 | ``` 14 | 15 | #### Args 16 | 17 | You can also pass in arg arrays: 18 | 19 | ``` 20 | const exec = require('@actions/exec'); 21 | 22 | await exec.exec('node', ['index.js', 'foo=bar']); 23 | ``` 24 | 25 | #### Output/options 26 | 27 | Capture output or specify [other options](https://github.com/actions/toolkit/blob/d9347d4ab99fd507c0b9104b2cf79fb44fcc827d/packages/exec/src/interfaces.ts#L5): 28 | 29 | ``` 30 | const exec = require('@actions/exec'); 31 | 32 | const myOutput = ''; 33 | const myError = ''; 34 | 35 | const options = {}; 36 | options.listeners = { 37 | stdout: (data: Buffer) => { 38 | myOutput += data.toString(); 39 | }, 40 | stderr: (data: Buffer) => { 41 | myError += data.toString(); 42 | } 43 | }; 44 | options.cwd = './lib'; 45 | 46 | await exec.exec('node', ['index.js', 'foo=bar'], options); 47 | ``` 48 | 49 | #### Exec tools not in the PATH 50 | 51 | You can use it in conjunction with the `which` function from `@actions/io` to execute tools that are not in the PATH: 52 | 53 | ``` 54 | const exec = require('@actions/exec'); 55 | const io = require('@actions/io'); 56 | 57 | const pythonPath: string = await io.which('python', true) 58 | 59 | await exec.exec(`"${pythonPath}"`, ['main.py']); 60 | ``` 61 | -------------------------------------------------------------------------------- /node_modules/@actions/exec/lib/exec.d.ts: -------------------------------------------------------------------------------- 1 | import * as im from './interfaces'; 2 | /** 3 | * Exec a command. 4 | * Output will be streamed to the live console. 5 | * Returns promise with return code 6 | * 7 | * @param commandLine command to execute (can include additional args). Must be correctly escaped. 8 | * @param args optional arguments for tool. Escaping is handled by the lib. 9 | * @param options optional exec options. See ExecOptions 10 | * @returns Promise exit code 11 | */ 12 | export declare function exec(commandLine: string, args?: string[], options?: im.ExecOptions): Promise; 13 | -------------------------------------------------------------------------------- /node_modules/@actions/exec/lib/exec.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 3 | return new (P || (P = Promise))(function (resolve, reject) { 4 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 5 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 6 | function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } 7 | step((generator = generator.apply(thisArg, _arguments || [])).next()); 8 | }); 9 | }; 10 | Object.defineProperty(exports, "__esModule", { value: true }); 11 | const tr = require("./toolrunner"); 12 | /** 13 | * Exec a command. 14 | * Output will be streamed to the live console. 15 | * Returns promise with return code 16 | * 17 | * @param commandLine command to execute (can include additional args). Must be correctly escaped. 18 | * @param args optional arguments for tool. Escaping is handled by the lib. 19 | * @param options optional exec options. See ExecOptions 20 | * @returns Promise exit code 21 | */ 22 | function exec(commandLine, args, options) { 23 | return __awaiter(this, void 0, void 0, function* () { 24 | const commandArgs = tr.argStringToArray(commandLine); 25 | if (commandArgs.length === 0) { 26 | throw new Error(`Parameter 'commandLine' cannot be null or empty.`); 27 | } 28 | // Path to tool to execute should be first arg 29 | const toolPath = commandArgs[0]; 30 | args = commandArgs.slice(1).concat(args || []); 31 | const runner = new tr.ToolRunner(toolPath, args, options); 32 | return runner.exec(); 33 | }); 34 | } 35 | exports.exec = exec; 36 | //# sourceMappingURL=exec.js.map -------------------------------------------------------------------------------- /node_modules/@actions/exec/lib/exec.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":";;;;;;;;;;AACA,mCAAkC;AAElC;;;;;;;;;GASG;AACH,SAAsB,IAAI,CACxB,WAAmB,EACnB,IAAe,EACf,OAAwB;;QAExB,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QACpD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;SACpE;QACD,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAkB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACxE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;CAAA;AAdD,oBAcC"} -------------------------------------------------------------------------------- /node_modules/@actions/exec/lib/interfaces.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import * as stream from 'stream'; 3 | /** 4 | * Interface for exec options 5 | */ 6 | export interface ExecOptions { 7 | /** optional working directory. defaults to current */ 8 | cwd?: string; 9 | /** optional envvar dictionary. defaults to current process's env */ 10 | env?: { 11 | [key: string]: string; 12 | }; 13 | /** optional. defaults to false */ 14 | silent?: boolean; 15 | /** optional out stream to use. Defaults to process.stdout */ 16 | outStream?: stream.Writable; 17 | /** optional err stream to use. Defaults to process.stderr */ 18 | errStream?: stream.Writable; 19 | /** optional. whether to skip quoting/escaping arguments if needed. defaults to false. */ 20 | windowsVerbatimArguments?: boolean; 21 | /** optional. whether to fail if output to stderr. defaults to false */ 22 | failOnStdErr?: boolean; 23 | /** optional. defaults to failing on non zero. ignore will not fail leaving it up to the caller */ 24 | ignoreReturnCode?: boolean; 25 | /** optional. How long in ms to wait for STDIO streams to close after the exit event of the process before terminating. defaults to 10000 */ 26 | delay?: number; 27 | /** optional. Listeners for output. Callback functions that will be called on these events */ 28 | listeners?: { 29 | stdout?: (data: Buffer) => void; 30 | stderr?: (data: Buffer) => void; 31 | stdline?: (data: string) => void; 32 | errline?: (data: string) => void; 33 | debug?: (data: string) => void; 34 | }; 35 | } 36 | -------------------------------------------------------------------------------- /node_modules/@actions/exec/lib/interfaces.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | //# sourceMappingURL=interfaces.js.map -------------------------------------------------------------------------------- /node_modules/@actions/exec/lib/interfaces.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""} -------------------------------------------------------------------------------- /node_modules/@actions/exec/lib/toolrunner.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import * as events from 'events'; 3 | import * as im from './interfaces'; 4 | export declare class ToolRunner extends events.EventEmitter { 5 | constructor(toolPath: string, args?: string[], options?: im.ExecOptions); 6 | private toolPath; 7 | private args; 8 | private options; 9 | private _debug; 10 | private _getCommandString; 11 | private _processLineBuffer; 12 | private _getSpawnFileName; 13 | private _getSpawnArgs; 14 | private _endsWith; 15 | private _isCmdFile; 16 | private _windowsQuoteCmdArg; 17 | private _uvQuoteCmdArg; 18 | private _cloneExecOptions; 19 | private _getSpawnOptions; 20 | /** 21 | * Exec a tool. 22 | * Output will be streamed to the live console. 23 | * Returns promise with return code 24 | * 25 | * @param tool path to tool to exec 26 | * @param options optional exec options. See ExecOptions 27 | * @returns number 28 | */ 29 | exec(): Promise; 30 | } 31 | /** 32 | * Convert an arg string to an array of args. Handles escaping 33 | * 34 | * @param argString string of arguments 35 | * @returns string[] array of arguments 36 | */ 37 | export declare function argStringToArray(argString: string): string[]; 38 | -------------------------------------------------------------------------------- /node_modules/@actions/exec/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "@actions/exec@1.0.0", 5 | "C:\\src\\github\\geertvdc\\setup-hub" 6 | ] 7 | ], 8 | "_from": "@actions/exec@1.0.0", 9 | "_id": "@actions/exec@1.0.0", 10 | "_inBundle": false, 11 | "_integrity": "sha512-nquH0+XKng+Ll7rZfCojN7NWSbnGh+ltwUJhzfbLkmOJgxocGX2/yXcZLMyT9fa7+tByEow/NSTrBExNlEj9fw==", 12 | "_location": "/@actions/exec", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "@actions/exec@1.0.0", 18 | "name": "@actions/exec", 19 | "escapedName": "@actions%2fexec", 20 | "scope": "@actions", 21 | "rawSpec": "1.0.0", 22 | "saveSpec": null, 23 | "fetchSpec": "1.0.0" 24 | }, 25 | "_requiredBy": [ 26 | "/", 27 | "/@actions/tool-cache" 28 | ], 29 | "_resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.0.tgz", 30 | "_spec": "1.0.0", 31 | "_where": "C:\\src\\github\\geertvdc\\setup-hub", 32 | "bugs": { 33 | "url": "https://github.com/actions/toolkit/issues" 34 | }, 35 | "description": "Actions exec lib", 36 | "devDependencies": { 37 | "@actions/io": "^1.0.0" 38 | }, 39 | "directories": { 40 | "lib": "lib", 41 | "test": "__tests__" 42 | }, 43 | "files": [ 44 | "lib" 45 | ], 46 | "gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55", 47 | "homepage": "https://github.com/actions/toolkit/tree/master/packages/exec", 48 | "keywords": [ 49 | "exec", 50 | "actions" 51 | ], 52 | "license": "MIT", 53 | "main": "lib/exec.js", 54 | "name": "@actions/exec", 55 | "publishConfig": { 56 | "access": "public" 57 | }, 58 | "repository": { 59 | "type": "git", 60 | "url": "git+https://github.com/actions/toolkit.git" 61 | }, 62 | "scripts": { 63 | "test": "echo \"Error: run tests from root\" && exit 1", 64 | "tsc": "tsc" 65 | }, 66 | "version": "1.0.0" 67 | } 68 | -------------------------------------------------------------------------------- /node_modules/@actions/io/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2019 GitHub 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. -------------------------------------------------------------------------------- /node_modules/@actions/io/README.md: -------------------------------------------------------------------------------- 1 | # `@actions/io` 2 | 3 | > Core functions for cli filesystem scenarios 4 | 5 | ## Usage 6 | 7 | #### mkdir -p 8 | 9 | Recursively make a directory. Follows rules specified in [man mkdir](https://linux.die.net/man/1/mkdir) with the `-p` option specified: 10 | 11 | ``` 12 | const io = require('@actions/io'); 13 | 14 | await io.mkdirP('path/to/make'); 15 | ``` 16 | 17 | #### cp/mv 18 | 19 | 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): 20 | 21 | ``` 22 | const io = require('@actions/io'); 23 | 24 | // Recursive must be true for directories 25 | const options = { recursive: true, force: false } 26 | 27 | await io.cp('path/to/directory', 'path/to/dest', options); 28 | await io.mv('path/to/file', 'path/to/dest'); 29 | ``` 30 | 31 | #### rm -rf 32 | 33 | 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. 34 | 35 | ``` 36 | const io = require('@actions/io'); 37 | 38 | await io.rmRF('path/to/directory'); 39 | await io.rmRF('path/to/file'); 40 | ``` 41 | 42 | #### which 43 | 44 | Get the path to a tool and resolves via paths. Follows the rules specified in [man which](https://linux.die.net/man/1/which). 45 | 46 | ``` 47 | const exec = require('@actions/exec'); 48 | const io = require('@actions/io'); 49 | 50 | const pythonPath: string = await io.which('python', true) 51 | 52 | await exec.exec(`"${pythonPath}"`, ['main.py']); 53 | ``` 54 | -------------------------------------------------------------------------------- /node_modules/@actions/io/lib/io-util.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import * as fs from 'fs'; 3 | 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; 4 | export declare const IS_WINDOWS: boolean; 5 | export declare function exists(fsPath: string): Promise; 6 | export declare function isDirectory(fsPath: string, useStat?: boolean): Promise; 7 | /** 8 | * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: 9 | * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). 10 | */ 11 | export declare function isRooted(p: string): boolean; 12 | /** 13 | * Recursively create a directory at `fsPath`. 14 | * 15 | * This implementation is optimistic, meaning it attempts to create the full 16 | * path first, and backs up the path stack from there. 17 | * 18 | * @param fsPath The path to create 19 | * @param maxDepth The maximum recursion depth 20 | * @param depth The current recursion depth 21 | */ 22 | export declare function mkdirP(fsPath: string, maxDepth?: number, depth?: number): Promise; 23 | /** 24 | * Best effort attempt to determine whether a file exists and is executable. 25 | * @param filePath file path to check 26 | * @param extensions additional file extensions to try 27 | * @return if file exists and is executable, returns the file path. otherwise empty string. 28 | */ 29 | export declare function tryGetExecutablePath(filePath: string, extensions: string[]): Promise; 30 | -------------------------------------------------------------------------------- /node_modules/@actions/io/lib/io-util.js.map: -------------------------------------------------------------------------------- 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"} -------------------------------------------------------------------------------- /node_modules/@actions/io/lib/io.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Interface for cp/mv options 3 | */ 4 | export interface CopyOptions { 5 | /** Optional. Whether to recursively copy all subdirectories. Defaults to false */ 6 | recursive?: boolean; 7 | /** Optional. Whether to overwrite existing files in the destination. Defaults to true */ 8 | force?: boolean; 9 | } 10 | /** 11 | * Interface for cp/mv options 12 | */ 13 | export interface MoveOptions { 14 | /** Optional. Whether to overwrite existing files in the destination. Defaults to true */ 15 | force?: boolean; 16 | } 17 | /** 18 | * Copies a file or folder. 19 | * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js 20 | * 21 | * @param source source path 22 | * @param dest destination path 23 | * @param options optional. See CopyOptions. 24 | */ 25 | export declare function cp(source: string, dest: string, options?: CopyOptions): Promise; 26 | /** 27 | * Moves a path. 28 | * 29 | * @param source source path 30 | * @param dest destination path 31 | * @param options optional. See MoveOptions. 32 | */ 33 | export declare function mv(source: string, dest: string, options?: MoveOptions): Promise; 34 | /** 35 | * Remove a path recursively with force 36 | * 37 | * @param inputPath path to remove 38 | */ 39 | export declare function rmRF(inputPath: string): Promise; 40 | /** 41 | * Make a directory. Creates the full path with folders in between 42 | * Will throw if it fails 43 | * 44 | * @param fsPath path to create 45 | * @returns Promise 46 | */ 47 | export declare function mkdirP(fsPath: string): Promise; 48 | /** 49 | * Returns path of a tool had the tool actually been invoked. Resolves via paths. 50 | * If you check and the tool does not exist, it will throw. 51 | * 52 | * @param tool name of the tool 53 | * @param check whether to check if tool exists 54 | * @returns Promise path to tool 55 | */ 56 | export declare function which(tool: string, check?: boolean): Promise; 57 | -------------------------------------------------------------------------------- /node_modules/@actions/io/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "@actions/io@1.0.0", 5 | "C:\\src\\github\\geertvdc\\setup-hub" 6 | ] 7 | ], 8 | "_from": "@actions/io@1.0.0", 9 | "_id": "@actions/io@1.0.0", 10 | "_inBundle": false, 11 | "_integrity": "sha512-ezrJSRdqtXtdx1WXlfYL85+40F7gB39jCK9P0jZVODW3W6xUYmu6ZOEc/UmmElUwhRyDRm1R4yNZu1Joq2kuQg==", 12 | "_location": "/@actions/io", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "@actions/io@1.0.0", 18 | "name": "@actions/io", 19 | "escapedName": "@actions%2fio", 20 | "scope": "@actions", 21 | "rawSpec": "1.0.0", 22 | "saveSpec": null, 23 | "fetchSpec": "1.0.0" 24 | }, 25 | "_requiredBy": [ 26 | "/", 27 | "/@actions/tool-cache" 28 | ], 29 | "_resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.0.tgz", 30 | "_spec": "1.0.0", 31 | "_where": "C:\\src\\github\\geertvdc\\setup-hub", 32 | "bugs": { 33 | "url": "https://github.com/actions/toolkit/issues" 34 | }, 35 | "description": "Actions io lib", 36 | "directories": { 37 | "lib": "lib", 38 | "test": "__tests__" 39 | }, 40 | "files": [ 41 | "lib" 42 | ], 43 | "gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55", 44 | "homepage": "https://github.com/actions/toolkit/tree/master/packages/io", 45 | "keywords": [ 46 | "io", 47 | "actions" 48 | ], 49 | "license": "MIT", 50 | "main": "lib/io.js", 51 | "name": "@actions/io", 52 | "publishConfig": { 53 | "access": "public" 54 | }, 55 | "repository": { 56 | "type": "git", 57 | "url": "git+https://github.com/actions/toolkit.git" 58 | }, 59 | "scripts": { 60 | "test": "echo \"Error: run tests from root\" && exit 1", 61 | "tsc": "tsc" 62 | }, 63 | "version": "1.0.0" 64 | } 65 | -------------------------------------------------------------------------------- /node_modules/@actions/tool-cache/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2019 GitHub 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. -------------------------------------------------------------------------------- /node_modules/@actions/tool-cache/README.md: -------------------------------------------------------------------------------- 1 | # `@actions/tool-cache` 2 | 3 | > Functions necessary for downloading and caching tools. 4 | 5 | ## Usage 6 | 7 | #### Download 8 | 9 | You can use this to download tools (or other files) from a download URL: 10 | 11 | ``` 12 | const tc = require('@actions/tool-cache'); 13 | 14 | const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz'); 15 | ``` 16 | 17 | #### Extract 18 | 19 | These can then be extracted in platform specific ways: 20 | 21 | ``` 22 | const tc = require('@actions/tool-cache'); 23 | 24 | if (process.platform === 'win32') { 25 | tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.zip'); 26 | const node12ExtractedFolder = await tc.extractZip(node12Path, 'path/to/extract/to'); 27 | 28 | // Or alternately 29 | tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-win-x64.7z'); 30 | const node12ExtractedFolder = await tc.extract7z(node12Path, 'path/to/extract/to'); 31 | } 32 | else { 33 | const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz'); 34 | const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to'); 35 | } 36 | ``` 37 | 38 | #### Cache 39 | 40 | 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). 41 | 42 | You'll often want to add it to the path as part of this step: 43 | 44 | ``` 45 | const tc = require('@actions/tool-cache'); 46 | const core = require('@actions/core'); 47 | 48 | const node12Path = await tc.downloadTool('http://nodejs.org/dist/v12.7.0/node-v12.7.0-linux-x64.tar.gz'); 49 | const node12ExtractedFolder = await tc.extractTar(node12Path, 'path/to/extract/to'); 50 | 51 | const cachedPath = await tc.cacheDir(node12ExtractedFolder, 'node', '12.7.0'); 52 | core.addPath(cachedPath); 53 | ``` 54 | 55 | You can also cache files for reuse. 56 | 57 | ``` 58 | const tc = require('@actions/tool-cache'); 59 | 60 | tc.cacheFile('path/to/exe', 'destFileName.exe', 'myExeName', '1.1.0'); 61 | ``` 62 | 63 | #### Find 64 | 65 | Finally, you can find directories and files you've previously cached: 66 | 67 | ``` 68 | const tc = require('@actions/tool-cache'); 69 | const core = require('@actions/core'); 70 | 71 | const nodeDirectory = tc.find('node', '12.x', 'x64'); 72 | core.addPath(nodeDirectory); 73 | ``` 74 | 75 | You can even find all cached versions of a tool: 76 | 77 | ``` 78 | const tc = require('@actions/tool-cache'); 79 | 80 | const allNodeVersions = tc.findAllVersions('node'); 81 | console.log(`Versions of node available: ${allNodeVersions}`); 82 | ``` 83 | -------------------------------------------------------------------------------- /node_modules/@actions/tool-cache/lib/tool-cache.d.ts: -------------------------------------------------------------------------------- 1 | export declare class HTTPError extends Error { 2 | readonly httpStatusCode: number | undefined; 3 | constructor(httpStatusCode: number | undefined); 4 | } 5 | /** 6 | * Download a tool from an url and stream it into a file 7 | * 8 | * @param url url of tool to download 9 | * @returns path to downloaded tool 10 | */ 11 | export declare function downloadTool(url: string): Promise; 12 | /** 13 | * Extract a .7z file 14 | * 15 | * @param file path to the .7z file 16 | * @param dest destination directory. Optional. 17 | * @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this 18 | * problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will 19 | * gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is 20 | * bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line 21 | * interface, it is smaller than the full command line interface, and it does support long paths. At the 22 | * time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website. 23 | * Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path 24 | * to 7zr.exe can be pass to this function. 25 | * @returns path to the destination directory 26 | */ 27 | export declare function extract7z(file: string, dest?: string, _7zPath?: string): Promise; 28 | /** 29 | * Extract a tar 30 | * 31 | * @param file path to the tar 32 | * @param dest destination directory. Optional. 33 | * @returns path to the destination directory 34 | */ 35 | export declare function extractTar(file: string, dest?: string): Promise; 36 | /** 37 | * Extract a zip 38 | * 39 | * @param file path to the zip 40 | * @param dest destination directory. Optional. 41 | * @returns path to the destination directory 42 | */ 43 | export declare function extractZip(file: string, dest?: string): Promise; 44 | /** 45 | * Caches a directory and installs it into the tool cacheDir 46 | * 47 | * @param sourceDir the directory to cache into tools 48 | * @param tool tool name 49 | * @param version version of the tool. semver format 50 | * @param arch architecture of the tool. Optional. Defaults to machine architecture 51 | */ 52 | export declare function cacheDir(sourceDir: string, tool: string, version: string, arch?: string): Promise; 53 | /** 54 | * Caches a downloaded file (GUID) and installs it 55 | * into the tool cache with a given targetName 56 | * 57 | * @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid. 58 | * @param targetFile the name of the file name in the tools directory 59 | * @param tool tool name 60 | * @param version version of the tool. semver format 61 | * @param arch architecture of the tool. Optional. Defaults to machine architecture 62 | */ 63 | export declare function cacheFile(sourceFile: string, targetFile: string, tool: string, version: string, arch?: string): Promise; 64 | /** 65 | * Finds the path to a tool version in the local installed tool cache 66 | * 67 | * @param toolName name of the tool 68 | * @param versionSpec version of the tool 69 | * @param arch optional arch. defaults to arch of computer 70 | */ 71 | export declare function find(toolName: string, versionSpec: string, arch?: string): string; 72 | /** 73 | * Finds the paths to all versions of a tool that are installed in the local tool cache 74 | * 75 | * @param toolName name of the tool 76 | * @param arch optional arch. defaults to arch of computer 77 | */ 78 | export declare function findAllVersions(toolName: string, arch?: string): string[]; 79 | -------------------------------------------------------------------------------- /node_modules/@actions/tool-cache/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "@actions/tool-cache@1.0.0", 5 | "C:\\src\\github\\geertvdc\\setup-hub" 6 | ] 7 | ], 8 | "_from": "@actions/tool-cache@1.0.0", 9 | "_id": "@actions/tool-cache@1.0.0", 10 | "_inBundle": false, 11 | "_integrity": "sha512-l3zT0IfDfi5Ik5aMpnXqGHGATxN8xa9ls4ue+X/CBXpPhRMRZS4vcuh5Q9T98WAGbkysRCfhpbksTPHIcKnNwQ==", 12 | "_location": "/@actions/tool-cache", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "@actions/tool-cache@1.0.0", 18 | "name": "@actions/tool-cache", 19 | "escapedName": "@actions%2ftool-cache", 20 | "scope": "@actions", 21 | "rawSpec": "1.0.0", 22 | "saveSpec": null, 23 | "fetchSpec": "1.0.0" 24 | }, 25 | "_requiredBy": [ 26 | "/" 27 | ], 28 | "_resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.0.0.tgz", 29 | "_spec": "1.0.0", 30 | "_where": "C:\\src\\github\\geertvdc\\setup-hub", 31 | "bugs": { 32 | "url": "https://github.com/actions/toolkit/issues" 33 | }, 34 | "dependencies": { 35 | "@actions/core": "^1.0.0", 36 | "@actions/exec": "^1.0.0", 37 | "@actions/io": "^1.0.0", 38 | "semver": "^6.1.0", 39 | "typed-rest-client": "^1.4.0", 40 | "uuid": "^3.3.2" 41 | }, 42 | "description": "Actions tool-cache lib", 43 | "devDependencies": { 44 | "@types/nock": "^10.0.3", 45 | "@types/semver": "^6.0.0", 46 | "@types/uuid": "^3.4.4", 47 | "nock": "^10.0.6" 48 | }, 49 | "directories": { 50 | "lib": "lib", 51 | "test": "__tests__" 52 | }, 53 | "files": [ 54 | "lib", 55 | "scripts" 56 | ], 57 | "gitHead": "a40bce7c8d382aa3dbadaa327acbc696e9390e55", 58 | "homepage": "https://github.com/actions/toolkit/tree/master/packages/exec", 59 | "keywords": [ 60 | "exec", 61 | "actions" 62 | ], 63 | "license": "MIT", 64 | "main": "lib/tool-cache.js", 65 | "name": "@actions/tool-cache", 66 | "publishConfig": { 67 | "access": "public" 68 | }, 69 | "repository": { 70 | "type": "git", 71 | "url": "git+https://github.com/actions/toolkit.git" 72 | }, 73 | "scripts": { 74 | "test": "echo \"Error: run tests from root\" && exit 1", 75 | "tsc": "tsc" 76 | }, 77 | "version": "1.0.0" 78 | } 79 | -------------------------------------------------------------------------------- /node_modules/@actions/tool-cache/scripts/Invoke-7zdec.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | [Parameter(Mandatory = $true)] 4 | [string]$Source, 5 | 6 | [Parameter(Mandatory = $true)] 7 | [string]$Target) 8 | 9 | # This script translates the output from 7zdec into UTF8. Node has limited 10 | # built-in support for encodings. 11 | # 12 | # 7zdec uses the system default code page. The system default code page varies 13 | # depending on the locale configuration. On an en-US box, the system default code 14 | # page is Windows-1252. 15 | # 16 | # Note, on a typical en-US box, testing with the 'ç' character is a good way to 17 | # determine whether data is passed correctly between processes. This is because 18 | # the 'ç' character has a different code point across each of the common encodings 19 | # on a typical en-US box, i.e. 20 | # 1) the default console-output code page (IBM437) 21 | # 2) the system default code page (i.e. CP_ACP) (Windows-1252) 22 | # 3) UTF8 23 | 24 | $ErrorActionPreference = 'Stop' 25 | 26 | # Redefine the wrapper over STDOUT to use UTF8. Node expects UTF8 by default. 27 | $stdout = [System.Console]::OpenStandardOutput() 28 | $utf8 = New-Object System.Text.UTF8Encoding($false) # do not emit BOM 29 | $writer = New-Object System.IO.StreamWriter($stdout, $utf8) 30 | [System.Console]::SetOut($writer) 31 | 32 | # All subsequent output must be written using [System.Console]::WriteLine(). In 33 | # PowerShell 4, Write-Host and Out-Default do not consider the updated stream writer. 34 | 35 | Set-Location -LiteralPath $Target 36 | 37 | # Print the ##command. 38 | $_7zdec = Join-Path -Path "$PSScriptRoot" -ChildPath "externals/7zdec.exe" 39 | [System.Console]::WriteLine("##[command]$_7zdec x `"$Source`"") 40 | 41 | # The $OutputEncoding variable instructs PowerShell how to interpret the output 42 | # from the external command. 43 | $OutputEncoding = [System.Text.Encoding]::Default 44 | 45 | # Note, the output from 7zdec.exe needs to be iterated over. Otherwise PowerShell.exe 46 | # will launch the external command in such a way that it inherits the streams. 47 | & $_7zdec x $Source 2>&1 | 48 | ForEach-Object { 49 | if ($_ -is [System.Management.Automation.ErrorRecord]) { 50 | [System.Console]::WriteLine($_.Exception.Message) 51 | } 52 | else { 53 | [System.Console]::WriteLine($_) 54 | } 55 | } 56 | [System.Console]::WriteLine("##[debug]7zdec.exe exit code '$LASTEXITCODE'") 57 | [System.Console]::Out.Flush() 58 | if ($LASTEXITCODE -ne 0) { 59 | exit $LASTEXITCODE 60 | } -------------------------------------------------------------------------------- /node_modules/@actions/tool-cache/scripts/externals/7zdec.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Geertvdc/setup-hub/573d440a33b452e8061a7a7e9318357c6c9feb7f/node_modules/@actions/tool-cache/scripts/externals/7zdec.exe -------------------------------------------------------------------------------- /node_modules/@actions/tool-cache/scripts/externals/unzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Geertvdc/setup-hub/573d440a33b452e8061a7a7e9318357c6c9feb7f/node_modules/@actions/tool-cache/scripts/externals/unzip -------------------------------------------------------------------------------- /node_modules/semver/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # changes log 2 | 3 | ## 6.2.0 4 | 5 | * Coerce numbers to strings when passed to semver.coerce() 6 | * Add `rtl` option to coerce from right to left 7 | 8 | ## 6.1.3 9 | 10 | * Handle X-ranges properly in includePrerelease mode 11 | 12 | ## 6.1.2 13 | 14 | * Do not throw when testing invalid version strings 15 | 16 | ## 6.1.1 17 | 18 | * Add options support for semver.coerce() 19 | * Handle undefined version passed to Range.test 20 | 21 | ## 6.1.0 22 | 23 | * Add semver.compareBuild function 24 | * Support `*` in semver.intersects 25 | 26 | ## 6.0 27 | 28 | * Fix `intersects` logic. 29 | 30 | This is technically a bug fix, but since it is also a change to behavior 31 | that may require users updating their code, it is marked as a major 32 | version increment. 33 | 34 | ## 5.7 35 | 36 | * Add `minVersion` method 37 | 38 | ## 5.6 39 | 40 | * Move boolean `loose` param to an options object, with 41 | backwards-compatibility protection. 42 | * Add ability to opt out of special prerelease version handling with 43 | the `includePrerelease` option flag. 44 | 45 | ## 5.5 46 | 47 | * Add version coercion capabilities 48 | 49 | ## 5.4 50 | 51 | * Add intersection checking 52 | 53 | ## 5.3 54 | 55 | * Add `minSatisfying` method 56 | 57 | ## 5.2 58 | 59 | * Add `prerelease(v)` that returns prerelease components 60 | 61 | ## 5.1 62 | 63 | * Add Backus-Naur for ranges 64 | * Remove excessively cute inspection methods 65 | 66 | ## 5.0 67 | 68 | * Remove AMD/Browserified build artifacts 69 | * Fix ltr and gtr when using the `*` range 70 | * Fix for range `*` with a prerelease identifier 71 | -------------------------------------------------------------------------------- /node_modules/semver/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /node_modules/semver/bin/semver.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | // Standalone semver comparison program. 3 | // Exits successfully and prints matching version(s) if 4 | // any supplied version is valid and passes all tests. 5 | 6 | var argv = process.argv.slice(2) 7 | 8 | var versions = [] 9 | 10 | var range = [] 11 | 12 | var inc = null 13 | 14 | var version = require('../package.json').version 15 | 16 | var loose = false 17 | 18 | var includePrerelease = false 19 | 20 | var coerce = false 21 | 22 | var rtl = false 23 | 24 | var identifier 25 | 26 | var semver = require('../semver') 27 | 28 | var reverse = false 29 | 30 | var options = {} 31 | 32 | main() 33 | 34 | function main () { 35 | if (!argv.length) return help() 36 | while (argv.length) { 37 | var a = argv.shift() 38 | var indexOfEqualSign = a.indexOf('=') 39 | if (indexOfEqualSign !== -1) { 40 | a = a.slice(0, indexOfEqualSign) 41 | argv.unshift(a.slice(indexOfEqualSign + 1)) 42 | } 43 | switch (a) { 44 | case '-rv': case '-rev': case '--rev': case '--reverse': 45 | reverse = true 46 | break 47 | case '-l': case '--loose': 48 | loose = true 49 | break 50 | case '-p': case '--include-prerelease': 51 | includePrerelease = true 52 | break 53 | case '-v': case '--version': 54 | versions.push(argv.shift()) 55 | break 56 | case '-i': case '--inc': case '--increment': 57 | switch (argv[0]) { 58 | case 'major': case 'minor': case 'patch': case 'prerelease': 59 | case 'premajor': case 'preminor': case 'prepatch': 60 | inc = argv.shift() 61 | break 62 | default: 63 | inc = 'patch' 64 | break 65 | } 66 | break 67 | case '--preid': 68 | identifier = argv.shift() 69 | break 70 | case '-r': case '--range': 71 | range.push(argv.shift()) 72 | break 73 | case '-c': case '--coerce': 74 | coerce = true 75 | break 76 | case '--rtl': 77 | rtl = true 78 | break 79 | case '--ltr': 80 | rtl = false 81 | break 82 | case '-h': case '--help': case '-?': 83 | return help() 84 | default: 85 | versions.push(a) 86 | break 87 | } 88 | } 89 | 90 | var options = { loose: loose, includePrerelease: includePrerelease, rtl: rtl } 91 | 92 | versions = versions.map(function (v) { 93 | return coerce ? (semver.coerce(v, options) || { version: v }).version : v 94 | }).filter(function (v) { 95 | return semver.valid(v) 96 | }) 97 | if (!versions.length) return fail() 98 | if (inc && (versions.length !== 1 || range.length)) { return failInc() } 99 | 100 | for (var i = 0, l = range.length; i < l; i++) { 101 | versions = versions.filter(function (v) { 102 | return semver.satisfies(v, range[i], options) 103 | }) 104 | if (!versions.length) return fail() 105 | } 106 | return success(versions) 107 | } 108 | 109 | function failInc () { 110 | console.error('--inc can only be used on a single version with no range') 111 | fail() 112 | } 113 | 114 | function fail () { process.exit(1) } 115 | 116 | function success () { 117 | var compare = reverse ? 'rcompare' : 'compare' 118 | versions.sort(function (a, b) { 119 | return semver[compare](a, b, options) 120 | }).map(function (v) { 121 | return semver.clean(v, options) 122 | }).map(function (v) { 123 | return inc ? semver.inc(v, inc, options, identifier) : v 124 | }).forEach(function (v, i, _) { console.log(v) }) 125 | } 126 | 127 | function help () { 128 | console.log(['SemVer ' + version, 129 | '', 130 | 'A JavaScript implementation of the https://semver.org/ specification', 131 | 'Copyright Isaac Z. Schlueter', 132 | '', 133 | 'Usage: semver [options] [ [...]]', 134 | 'Prints valid versions sorted by SemVer precedence', 135 | '', 136 | 'Options:', 137 | '-r --range ', 138 | ' Print versions that match the specified range.', 139 | '', 140 | '-i --increment []', 141 | ' Increment a version by the specified level. Level can', 142 | ' be one of: major, minor, patch, premajor, preminor,', 143 | " prepatch, or prerelease. Default level is 'patch'.", 144 | ' Only one version may be specified.', 145 | '', 146 | '--preid ', 147 | ' Identifier to be used to prefix premajor, preminor,', 148 | ' prepatch or prerelease version increments.', 149 | '', 150 | '-l --loose', 151 | ' Interpret versions and ranges loosely', 152 | '', 153 | '-p --include-prerelease', 154 | ' Always include prerelease versions in range matching', 155 | '', 156 | '-c --coerce', 157 | ' Coerce a string into SemVer if possible', 158 | ' (does not imply --loose)', 159 | '', 160 | '--rtl', 161 | ' Coerce version strings right to left', 162 | '', 163 | '--ltr', 164 | ' Coerce version strings left to right (default)', 165 | '', 166 | 'Program exits successfully if any valid version satisfies', 167 | 'all supplied ranges, and prints all satisfying versions.', 168 | '', 169 | 'If no satisfying versions are found, then exits failure.', 170 | '', 171 | 'Versions are printed in ascending order, so supplying', 172 | 'multiple versions to the utility will just sort them.' 173 | ].join('\n')) 174 | } 175 | -------------------------------------------------------------------------------- /node_modules/semver/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "semver@6.3.0", 5 | "C:\\src\\github\\geertvdc\\setup-hub" 6 | ] 7 | ], 8 | "_from": "semver@6.3.0", 9 | "_id": "semver@6.3.0", 10 | "_inBundle": false, 11 | "_integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 12 | "_location": "/semver", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "semver@6.3.0", 18 | "name": "semver", 19 | "escapedName": "semver", 20 | "rawSpec": "6.3.0", 21 | "saveSpec": null, 22 | "fetchSpec": "6.3.0" 23 | }, 24 | "_requiredBy": [ 25 | "/", 26 | "/@actions/tool-cache", 27 | "/istanbul-lib-instrument" 28 | ], 29 | "_resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 30 | "_spec": "6.3.0", 31 | "_where": "C:\\src\\github\\geertvdc\\setup-hub", 32 | "bin": { 33 | "semver": "./bin/semver.js" 34 | }, 35 | "bugs": { 36 | "url": "https://github.com/npm/node-semver/issues" 37 | }, 38 | "description": "The semantic version parser used by npm.", 39 | "devDependencies": { 40 | "tap": "^14.3.1" 41 | }, 42 | "files": [ 43 | "bin", 44 | "range.bnf", 45 | "semver.js" 46 | ], 47 | "homepage": "https://github.com/npm/node-semver#readme", 48 | "license": "ISC", 49 | "main": "semver.js", 50 | "name": "semver", 51 | "repository": { 52 | "type": "git", 53 | "url": "git+https://github.com/npm/node-semver.git" 54 | }, 55 | "scripts": { 56 | "postpublish": "git push origin --follow-tags", 57 | "postversion": "npm publish", 58 | "preversion": "npm test", 59 | "test": "tap" 60 | }, 61 | "tap": { 62 | "check-coverage": true 63 | }, 64 | "version": "6.3.0" 65 | } 66 | -------------------------------------------------------------------------------- /node_modules/semver/range.bnf: -------------------------------------------------------------------------------- 1 | range-set ::= range ( logical-or range ) * 2 | logical-or ::= ( ' ' ) * '||' ( ' ' ) * 3 | range ::= hyphen | simple ( ' ' simple ) * | '' 4 | hyphen ::= partial ' - ' partial 5 | simple ::= primitive | partial | tilde | caret 6 | primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial 7 | partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? 8 | xr ::= 'x' | 'X' | '*' | nr 9 | nr ::= '0' | [1-9] ( [0-9] ) * 10 | tilde ::= '~' partial 11 | caret ::= '^' partial 12 | qualifier ::= ( '-' pre )? ( '+' build )? 13 | pre ::= parts 14 | build ::= parts 15 | parts ::= part ( '.' part ) * 16 | part ::= nr | [-0-9A-Za-z]+ 17 | -------------------------------------------------------------------------------- /node_modules/tunnel/.npmignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /node_modules 3 | -------------------------------------------------------------------------------- /node_modules/tunnel/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | - 0.0.4 (2016/01/23) 4 | - supported Node v0.12 or later. 5 | 6 | - 0.0.3 (2014/01/20) 7 | - fixed package.json 8 | 9 | - 0.0.1 (2012/02/18) 10 | - supported Node v0.6.x (0.6.11 or later). 11 | 12 | - 0.0.0 (2012/02/11) 13 | - first release. 14 | -------------------------------------------------------------------------------- /node_modules/tunnel/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012 Koichi Kobayashi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/tunnel/README.md: -------------------------------------------------------------------------------- 1 | # node-tunnel - HTTP/HTTPS Agents for tunneling proxies 2 | 3 | ## Example 4 | 5 | ```javascript 6 | var tunnel = require('tunnel'); 7 | 8 | var tunnelingAgent = tunnel.httpsOverHttp({ 9 | proxy: { 10 | host: 'localhost', 11 | port: 3128 12 | } 13 | }); 14 | 15 | var req = https.request({ 16 | host: 'example.com', 17 | port: 443, 18 | agent: tunnelingAgent 19 | }); 20 | ``` 21 | 22 | ## Installation 23 | 24 | $ npm install tunnel 25 | 26 | ## Usages 27 | 28 | ### HTTP over HTTP tunneling 29 | 30 | ```javascript 31 | var tunnelingAgent = tunnel.httpOverHttp({ 32 | maxSockets: poolSize, // Defaults to 5 33 | 34 | proxy: { // Proxy settings 35 | host: proxyHost, // Defaults to 'localhost' 36 | port: proxyPort, // Defaults to 80 37 | localAddress: localAddress, // Local interface if necessary 38 | 39 | // Basic authorization for proxy server if necessary 40 | proxyAuth: 'user:password', 41 | 42 | // Header fields for proxy server if necessary 43 | headers: { 44 | 'User-Agent': 'Node' 45 | } 46 | } 47 | }); 48 | 49 | var req = http.request({ 50 | host: 'example.com', 51 | port: 80, 52 | agent: tunnelingAgent 53 | }); 54 | ``` 55 | 56 | ### HTTPS over HTTP tunneling 57 | 58 | ```javascript 59 | var tunnelingAgent = tunnel.httpsOverHttp({ 60 | maxSockets: poolSize, // Defaults to 5 61 | 62 | // CA for origin server if necessary 63 | ca: [ fs.readFileSync('origin-server-ca.pem')], 64 | 65 | // Client certification for origin server if necessary 66 | key: fs.readFileSync('origin-server-key.pem'), 67 | cert: fs.readFileSync('origin-server-cert.pem'), 68 | 69 | proxy: { // Proxy settings 70 | host: proxyHost, // Defaults to 'localhost' 71 | port: proxyPort, // Defaults to 80 72 | localAddress: localAddress, // Local interface if necessary 73 | 74 | // Basic authorization for proxy server if necessary 75 | proxyAuth: 'user:password', 76 | 77 | // Header fields for proxy server if necessary 78 | headers: { 79 | 'User-Agent': 'Node' 80 | }, 81 | } 82 | }); 83 | 84 | var req = https.request({ 85 | host: 'example.com', 86 | port: 443, 87 | agent: tunnelingAgent 88 | }); 89 | ``` 90 | 91 | ### HTTP over HTTPS tunneling 92 | 93 | ```javascript 94 | var tunnelingAgent = tunnel.httpOverHttps({ 95 | maxSockets: poolSize, // Defaults to 5 96 | 97 | proxy: { // Proxy settings 98 | host: proxyHost, // Defaults to 'localhost' 99 | port: proxyPort, // Defaults to 443 100 | localAddress: localAddress, // Local interface if necessary 101 | 102 | // Basic authorization for proxy server if necessary 103 | proxyAuth: 'user:password', 104 | 105 | // Header fields for proxy server if necessary 106 | headers: { 107 | 'User-Agent': 'Node' 108 | }, 109 | 110 | // CA for proxy server if necessary 111 | ca: [ fs.readFileSync('origin-server-ca.pem')], 112 | 113 | // Server name for verification if necessary 114 | servername: 'example.com', 115 | 116 | // Client certification for proxy server if necessary 117 | key: fs.readFileSync('origin-server-key.pem'), 118 | cert: fs.readFileSync('origin-server-cert.pem'), 119 | } 120 | }); 121 | 122 | var req = http.request({ 123 | host: 'example.com', 124 | port: 80, 125 | agent: tunnelingAgent 126 | }); 127 | ``` 128 | 129 | ### HTTPS over HTTPS tunneling 130 | 131 | ```javascript 132 | var tunnelingAgent = tunnel.httpsOverHttps({ 133 | maxSockets: poolSize, // Defaults to 5 134 | 135 | // CA for origin server if necessary 136 | ca: [ fs.readFileSync('origin-server-ca.pem')], 137 | 138 | // Client certification for origin server if necessary 139 | key: fs.readFileSync('origin-server-key.pem'), 140 | cert: fs.readFileSync('origin-server-cert.pem'), 141 | 142 | proxy: { // Proxy settings 143 | host: proxyHost, // Defaults to 'localhost' 144 | port: proxyPort, // Defaults to 443 145 | localAddress: localAddress, // Local interface if necessary 146 | 147 | // Basic authorization for proxy server if necessary 148 | proxyAuth: 'user:password', 149 | 150 | // Header fields for proxy server if necessary 151 | headers: { 152 | 'User-Agent': 'Node' 153 | } 154 | 155 | // CA for proxy server if necessary 156 | ca: [ fs.readFileSync('origin-server-ca.pem')], 157 | 158 | // Server name for verification if necessary 159 | servername: 'example.com', 160 | 161 | // Client certification for proxy server if necessary 162 | key: fs.readFileSync('origin-server-key.pem'), 163 | cert: fs.readFileSync('origin-server-cert.pem'), 164 | } 165 | }); 166 | 167 | var req = https.request({ 168 | host: 'example.com', 169 | port: 443, 170 | agent: tunnelingAgent 171 | }); 172 | ``` 173 | 174 | ## CONTRIBUTORS 175 | * [Aleksis Brezas (abresas)](https://github.com/abresas) 176 | 177 | ## License 178 | 179 | Licensed under the [MIT](https://github.com/koichik/node-tunnel/blob/master/LICENSE) license. 180 | -------------------------------------------------------------------------------- /node_modules/tunnel/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/tunnel'); 2 | -------------------------------------------------------------------------------- /node_modules/tunnel/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "tunnel@0.0.4", 5 | "C:\\src\\github\\geertvdc\\setup-hub" 6 | ] 7 | ], 8 | "_from": "tunnel@0.0.4", 9 | "_id": "tunnel@0.0.4", 10 | "_inBundle": false, 11 | "_integrity": "sha1-LTeFoVjBdMmhbcLARuxfxfF0IhM=", 12 | "_location": "/tunnel", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "tunnel@0.0.4", 18 | "name": "tunnel", 19 | "escapedName": "tunnel", 20 | "rawSpec": "0.0.4", 21 | "saveSpec": null, 22 | "fetchSpec": "0.0.4" 23 | }, 24 | "_requiredBy": [ 25 | "/typed-rest-client" 26 | ], 27 | "_resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz", 28 | "_spec": "0.0.4", 29 | "_where": "C:\\src\\github\\geertvdc\\setup-hub", 30 | "author": { 31 | "name": "Koichi Kobayashi", 32 | "email": "koichik@improvement.jp" 33 | }, 34 | "bugs": { 35 | "url": "https://github.com/koichik/node-tunnel/issues" 36 | }, 37 | "description": "Node HTTP/HTTPS Agents for tunneling proxies", 38 | "devDependencies": { 39 | "mocha": "*", 40 | "should": "*" 41 | }, 42 | "directories": { 43 | "lib": "./lib" 44 | }, 45 | "engines": { 46 | "node": ">=0.6.11 <=0.7.0 || >=0.7.3" 47 | }, 48 | "homepage": "https://github.com/koichik/node-tunnel/", 49 | "keywords": [ 50 | "http", 51 | "https", 52 | "agent", 53 | "proxy", 54 | "tunnel" 55 | ], 56 | "license": "MIT", 57 | "main": "./index.js", 58 | "name": "tunnel", 59 | "repository": { 60 | "type": "git", 61 | "url": "git+https://github.com/koichik/node-tunnel.git" 62 | }, 63 | "scripts": { 64 | "test": "./node_modules/mocha/bin/mocha" 65 | }, 66 | "version": "0.0.4" 67 | } 68 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/http-over-http.js: -------------------------------------------------------------------------------- 1 | var http = require('http'); 2 | var net = require('net'); 3 | var should = require('should'); 4 | var tunnel = require('../index'); 5 | 6 | describe('HTTP over HTTP', function() { 7 | it('should finish without error', function(done) { 8 | var serverPort = 3000; 9 | var proxyPort = 3001; 10 | var poolSize = 3; 11 | var N = 10; 12 | var serverConnect = 0; 13 | var proxyConnect = 0; 14 | var clientConnect = 0; 15 | var server; 16 | var proxy; 17 | var agent; 18 | 19 | server = http.createServer(function(req, res) { 20 | tunnel.debug('SERVER: got request'); 21 | ++serverConnect; 22 | res.writeHead(200); 23 | res.end('Hello' + req.url); 24 | tunnel.debug('SERVER: sending response'); 25 | }); 26 | server.listen(serverPort, setupProxy); 27 | 28 | function setupProxy() { 29 | proxy = http.createServer(function(req, res) { 30 | should.fail(); 31 | }); 32 | proxy.on('upgrade', onConnect); // for v0.6 33 | proxy.on('connect', onConnect); // for v0.7 or later 34 | 35 | function onConnect(req, clientSocket, head) { 36 | tunnel.debug('PROXY: got CONNECT request'); 37 | 38 | req.method.should.equal('CONNECT'); 39 | req.url.should.equal('localhost:' + serverPort); 40 | req.headers.should.not.have.property('transfer-encoding'); 41 | req.headers.should.have.property('proxy-authorization', 42 | 'Basic ' + new Buffer('user:password').toString('base64')); 43 | ++proxyConnect; 44 | 45 | tunnel.debug('PROXY: creating a tunnel'); 46 | var serverSocket = net.connect(serverPort, function() { 47 | tunnel.debug('PROXY: replying to client CONNECT request'); 48 | clientSocket.write('HTTP/1.1 200 Connection established\r\n\r\n'); 49 | clientSocket.pipe(serverSocket); 50 | serverSocket.write(head); 51 | serverSocket.pipe(clientSocket); 52 | // workaround, see joyent/node#2524 53 | serverSocket.on('end', function() { 54 | clientSocket.end(); 55 | }); 56 | }); 57 | } 58 | proxy.listen(proxyPort, setupClient); 59 | } 60 | 61 | function setupClient() { 62 | agent = tunnel.httpOverHttp({ 63 | maxSockets: poolSize, 64 | proxy: { 65 | port: proxyPort, 66 | proxyAuth: 'user:password' 67 | } 68 | }); 69 | 70 | for (var i = 0; i < N; ++i) { 71 | doClientRequest(i); 72 | } 73 | 74 | function doClientRequest(i) { 75 | tunnel.debug('CLIENT: Making HTTP request (%d)', i); 76 | var req = http.get({ 77 | port: serverPort, 78 | path: '/' + i, 79 | agent: agent 80 | }, function(res) { 81 | tunnel.debug('CLIENT: got HTTP response (%d)', i); 82 | res.setEncoding('utf8'); 83 | res.on('data', function(data) { 84 | data.should.equal('Hello/' + i); 85 | }); 86 | res.on('end', function() { 87 | ++clientConnect; 88 | if (clientConnect === N) { 89 | proxy.close(); 90 | server.close(); 91 | } 92 | }); 93 | }); 94 | } 95 | } 96 | 97 | server.on('close', function() { 98 | serverConnect.should.equal(N); 99 | proxyConnect.should.equal(poolSize); 100 | clientConnect.should.equal(N); 101 | 102 | agent.sockets.should.be.empty; 103 | agent.requests.should.be.empty; 104 | 105 | done(); 106 | }); 107 | }); 108 | }); 109 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/http-over-https.js: -------------------------------------------------------------------------------- 1 | var http = require('http'); 2 | var https = require('https'); 3 | var net = require('net'); 4 | var fs = require('fs'); 5 | var path = require('path'); 6 | var should = require('should'); 7 | var tunnel = require('../index'); 8 | 9 | function readPem(file) { 10 | return fs.readFileSync(path.join('test/keys', file + '.pem')); 11 | } 12 | 13 | var proxyKey = readPem('proxy1-key'); 14 | var proxyCert = readPem('proxy1-cert'); 15 | var proxyCA = readPem('ca2-cert'); 16 | var clientKey = readPem('client1-key'); 17 | var clientCert = readPem('client1-cert'); 18 | var clientCA = readPem('ca3-cert'); 19 | 20 | describe('HTTP over HTTPS', function() { 21 | it('should finish without error', function(done) { 22 | var serverPort = 3004; 23 | var proxyPort = 3005; 24 | var poolSize = 3; 25 | var N = 10; 26 | var serverConnect = 0; 27 | var proxyConnect = 0; 28 | var clientConnect = 0; 29 | var server; 30 | var proxy; 31 | var agent; 32 | 33 | server = http.createServer(function(req, res) { 34 | tunnel.debug('SERVER: got request'); 35 | ++serverConnect; 36 | res.writeHead(200); 37 | res.end('Hello' + req.url); 38 | tunnel.debug('SERVER: sending response'); 39 | }); 40 | server.listen(serverPort, setupProxy); 41 | 42 | function setupProxy() { 43 | proxy = https.createServer({ 44 | key: proxyKey, 45 | cert: proxyCert, 46 | ca: [clientCA], 47 | requestCert: true, 48 | rejectUnauthorized: true 49 | }, function(req, res) { 50 | should.fail(); 51 | }); 52 | proxy.on('upgrade', onConnect); // for v0.6 53 | proxy.on('connect', onConnect); // for v0.7 or later 54 | 55 | function onConnect(req, clientSocket, head) { 56 | tunnel.debug('PROXY: got CONNECT request'); 57 | 58 | req.method.should.equal('CONNECT'); 59 | req.url.should.equal('localhost:' + serverPort); 60 | req.headers.should.not.have.property('transfer-encoding'); 61 | ++proxyConnect; 62 | 63 | tunnel.debug('PROXY: creating a tunnel'); 64 | var serverSocket = net.connect(serverPort, function() { 65 | tunnel.debug('PROXY: replying to client CONNECT request'); 66 | clientSocket.write('HTTP/1.1 200 Connection established\r\n\r\n'); 67 | clientSocket.pipe(serverSocket); 68 | serverSocket.write(head); 69 | serverSocket.pipe(clientSocket); 70 | // workaround, see joyent/node#2524 71 | serverSocket.on('end', function() { 72 | clientSocket.end(); 73 | }); 74 | }); 75 | } 76 | proxy.listen(proxyPort, setupClient); 77 | } 78 | 79 | function setupClient() { 80 | agent = tunnel.httpOverHttps({ 81 | maxSockets: poolSize, 82 | proxy: { 83 | port: proxyPort, 84 | key: clientKey, 85 | cert: clientCert, 86 | ca: [proxyCA], 87 | rejectUnauthorized: true 88 | } 89 | }); 90 | 91 | for (var i = 0; i < N; ++i) { 92 | doClientRequest(i); 93 | } 94 | 95 | function doClientRequest(i) { 96 | tunnel.debug('CLIENT: Making HTTP request (%d)', i); 97 | var req = http.get({ 98 | port: serverPort, 99 | path: '/' + i, 100 | agent: agent 101 | }, function(res) { 102 | tunnel.debug('CLIENT: got HTTP response (%d)', i); 103 | res.setEncoding('utf8'); 104 | res.on('data', function(data) { 105 | data.should.equal('Hello/' + i); 106 | }); 107 | res.on('end', function() { 108 | ++clientConnect; 109 | if (clientConnect === N) { 110 | proxy.close(); 111 | server.close(); 112 | } 113 | }); 114 | }); 115 | } 116 | } 117 | 118 | server.on('close', function() { 119 | serverConnect.should.equal(N); 120 | proxyConnect.should.equal(poolSize); 121 | clientConnect.should.equal(N); 122 | 123 | var name = 'localhost:' + serverPort; 124 | agent.sockets.should.be.empty; 125 | agent.requests.should.be.empty; 126 | 127 | done(); 128 | }); 129 | }); 130 | }); 131 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/https-over-http.js: -------------------------------------------------------------------------------- 1 | var http = require('http'); 2 | var https = require('https'); 3 | var net = require('net'); 4 | var fs = require('fs'); 5 | var path = require('path'); 6 | var should = require('should'); 7 | var tunnel = require('../index'); 8 | 9 | function readPem(file) { 10 | return fs.readFileSync(path.join('test/keys', file + '.pem')); 11 | } 12 | 13 | var serverKey = readPem('server1-key'); 14 | var serverCert = readPem('server1-cert'); 15 | var serverCA = readPem('ca1-cert'); 16 | var clientKey = readPem('client1-key'); 17 | var clientCert = readPem('client1-cert'); 18 | var clientCA = readPem('ca3-cert'); 19 | 20 | 21 | describe('HTTPS over HTTP', function() { 22 | it('should finish without error', function(done) { 23 | var serverPort = 3002; 24 | var proxyPort = 3003; 25 | var poolSize = 3; 26 | var N = 10; 27 | var serverConnect = 0; 28 | var proxyConnect = 0; 29 | var clientConnect = 0; 30 | var server; 31 | var proxy; 32 | var agent; 33 | 34 | server = https.createServer({ 35 | key: serverKey, 36 | cert: serverCert, 37 | ca: [clientCA], 38 | requestCert: true, 39 | rejectUnauthorized: true 40 | }, function(req, res) { 41 | tunnel.debug('SERVER: got request'); 42 | ++serverConnect; 43 | res.writeHead(200); 44 | res.end('Hello' + req.url); 45 | tunnel.debug('SERVER: sending response'); 46 | }); 47 | server.listen(serverPort, setupProxy); 48 | 49 | function setupProxy() { 50 | proxy = http.createServer(function(req, res) { 51 | should.fail(); 52 | }); 53 | proxy.on('upgrade', onConnect); // for v0.6 54 | proxy.on('connect', onConnect); // for v0.7 or later 55 | 56 | function onConnect(req, clientSocket, head) { 57 | tunnel.debug('PROXY: got CONNECT request'); 58 | 59 | req.method.should.equal('CONNECT'); 60 | req.url.should.equal('localhost:' + serverPort); 61 | req.headers.should.not.have.property('transfer-encoding'); 62 | ++proxyConnect; 63 | 64 | var serverSocket = net.connect(serverPort, function() { 65 | tunnel.debug('PROXY: replying to client CONNECT request'); 66 | clientSocket.write('HTTP/1.1 200 Connection established\r\n\r\n'); 67 | clientSocket.pipe(serverSocket); 68 | serverSocket.write(head); 69 | serverSocket.pipe(clientSocket); 70 | // workaround, see joyent/node#2524 71 | serverSocket.on('end', function() { 72 | clientSocket.end(); 73 | }); 74 | }); 75 | } 76 | proxy.listen(proxyPort, setupClient); 77 | } 78 | 79 | function setupClient() { 80 | agent = tunnel.httpsOverHttp({ 81 | maxSockets: poolSize, 82 | key: clientKey, 83 | cert: clientCert, 84 | ca: [serverCA], 85 | rejectUnauthorized: true, 86 | proxy: { 87 | port: proxyPort 88 | } 89 | }); 90 | 91 | for (var i = 0; i < N; ++i) { 92 | doClientRequest(i); 93 | } 94 | 95 | function doClientRequest(i) { 96 | tunnel.debug('CLIENT: Making HTTPS request (%d)', i); 97 | var req = https.get({ 98 | port: serverPort, 99 | path: '/' + i, 100 | agent: agent 101 | }, function(res) { 102 | tunnel.debug('CLIENT: got HTTPS response (%d)', i); 103 | res.setEncoding('utf8'); 104 | res.on('data', function(data) { 105 | data.should.equal('Hello/' + i); 106 | }); 107 | res.on('end', function() { 108 | ++clientConnect; 109 | if (clientConnect === N) { 110 | proxy.close(); 111 | server.close(); 112 | } 113 | }); 114 | }); 115 | } 116 | } 117 | 118 | server.on('close', function() { 119 | serverConnect.should.equal(N); 120 | proxyConnect.should.equal(poolSize); 121 | clientConnect.should.equal(N); 122 | 123 | var name = 'localhost:' + serverPort; 124 | agent.sockets.should.be.empty; 125 | agent.requests.should.be.empty; 126 | 127 | done(); 128 | }); 129 | }); 130 | }); 131 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/https-over-https.js: -------------------------------------------------------------------------------- 1 | var http = require('http'); 2 | var https = require('https'); 3 | var net = require('net'); 4 | var fs = require('fs'); 5 | var path = require('path'); 6 | var should = require('should'); 7 | var tunnel = require('../index.js'); 8 | 9 | function readPem(file) { 10 | return fs.readFileSync(path.join('test/keys', file + '.pem')); 11 | } 12 | 13 | var serverKey = readPem('server1-key'); 14 | var serverCert = readPem('server1-cert'); 15 | var serverCA = readPem('ca1-cert'); 16 | var proxyKey = readPem('proxy1-key'); 17 | var proxyCert = readPem('proxy1-cert'); 18 | var proxyCA = readPem('ca2-cert'); 19 | var client1Key = readPem('client1-key'); 20 | var client1Cert = readPem('client1-cert'); 21 | var client1CA = readPem('ca3-cert'); 22 | var client2Key = readPem('client2-key'); 23 | var client2Cert = readPem('client2-cert'); 24 | var client2CA = readPem('ca4-cert'); 25 | 26 | describe('HTTPS over HTTPS', function() { 27 | it('should finish without error', function(done) { 28 | var serverPort = 3006; 29 | var proxyPort = 3007; 30 | var poolSize = 3; 31 | var N = 5; 32 | var serverConnect = 0; 33 | var proxyConnect = 0; 34 | var clientConnect = 0; 35 | var server; 36 | var proxy; 37 | var agent; 38 | 39 | server = https.createServer({ 40 | key: serverKey, 41 | cert: serverCert, 42 | ca: [client1CA], 43 | requestCert: true, 44 | rejectUnauthorized: true 45 | }, function(req, res) { 46 | tunnel.debug('SERVER: got request'); 47 | ++serverConnect; 48 | res.writeHead(200); 49 | res.end('Hello' + req.url); 50 | tunnel.debug('SERVER: sending response'); 51 | }); 52 | server.listen(serverPort, setupProxy); 53 | 54 | function setupProxy() { 55 | proxy = https.createServer({ 56 | key: proxyKey, 57 | cert: proxyCert, 58 | ca: [client2CA], 59 | requestCert: true, 60 | rejectUnauthorized: true 61 | }, function(req, res) { 62 | should.fail(); 63 | }); 64 | proxy.on('upgrade', onConnect); // for v0.6 65 | proxy.on('connect', onConnect); // for v0.7 or later 66 | 67 | function onConnect(req, clientSocket, head) { 68 | tunnel.debug('PROXY: got CONNECT request'); 69 | req.method.should.equal('CONNECT'); 70 | req.url.should.equal('localhost:' + serverPort); 71 | req.headers.should.not.have.property('transfer-encoding'); 72 | ++proxyConnect; 73 | 74 | var serverSocket = net.connect(serverPort, function() { 75 | tunnel.debug('PROXY: replying to client CONNECT request'); 76 | clientSocket.write('HTTP/1.1 200 Connection established\r\n\r\n'); 77 | clientSocket.pipe(serverSocket); 78 | serverSocket.write(head); 79 | serverSocket.pipe(clientSocket); 80 | // workaround, see joyent/node#2524 81 | serverSocket.on('end', function() { 82 | clientSocket.end(); 83 | }); 84 | }); 85 | } 86 | proxy.listen(proxyPort, setupClient); 87 | } 88 | 89 | function setupClient() { 90 | agent = tunnel.httpsOverHttps({ 91 | maxSockets: poolSize, 92 | // client certification for origin server 93 | key: client1Key, 94 | cert: client1Cert, 95 | ca: [serverCA], 96 | rejectUnauthroized: true, 97 | proxy: { 98 | port: proxyPort, 99 | // client certification for proxy 100 | key: client2Key, 101 | cert: client2Cert, 102 | ca: [proxyCA], 103 | rejectUnauthroized: true 104 | } 105 | }); 106 | 107 | for (var i = 0; i < N; ++i) { 108 | doClientRequest(i); 109 | } 110 | 111 | function doClientRequest(i) { 112 | tunnel.debug('CLIENT: Making HTTPS request (%d)', i); 113 | var req = https.get({ 114 | port: serverPort, 115 | path: '/' + i, 116 | agent: agent 117 | }, function(res) { 118 | tunnel.debug('CLIENT: got HTTPS response (%d)', i); 119 | res.setEncoding('utf8'); 120 | res.on('data', function(data) { 121 | data.should.equal('Hello/' + i); 122 | }); 123 | res.on('end', function() { 124 | ++clientConnect; 125 | if (clientConnect === N) { 126 | proxy.close(); 127 | server.close(); 128 | } 129 | }); 130 | }); 131 | } 132 | } 133 | 134 | server.on('close', function() { 135 | serverConnect.should.equal(N); 136 | proxyConnect.should.equal(poolSize); 137 | clientConnect.should.equal(N); 138 | 139 | var name = 'localhost:' + serverPort; 140 | agent.sockets.should.be.empty; 141 | agent.requests.should.be.empty; 142 | 143 | done(); 144 | }); 145 | }); 146 | }); 147 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/Makefile: -------------------------------------------------------------------------------- 1 | all: server1-cert.pem server2-cert.pem proxy1-cert.pem proxy2-cert.pem client1-cert.pem client2-cert.pem 2 | 3 | 4 | # 5 | # Create Certificate Authority: ca1 6 | # ('password' is used for the CA password.) 7 | # 8 | ca1-cert.pem: ca1.cnf 9 | openssl req -new -x509 -days 9999 -config ca1.cnf -keyout ca1-key.pem -out ca1-cert.pem 10 | 11 | # 12 | # Create Certificate Authority: ca2 13 | # ('password' is used for the CA password.) 14 | # 15 | ca2-cert.pem: ca2.cnf 16 | openssl req -new -x509 -days 9999 -config ca2.cnf -keyout ca2-key.pem -out ca2-cert.pem 17 | 18 | # 19 | # Create Certificate Authority: ca3 20 | # ('password' is used for the CA password.) 21 | # 22 | ca3-cert.pem: ca3.cnf 23 | openssl req -new -x509 -days 9999 -config ca3.cnf -keyout ca3-key.pem -out ca3-cert.pem 24 | 25 | # 26 | # Create Certificate Authority: ca4 27 | # ('password' is used for the CA password.) 28 | # 29 | ca4-cert.pem: ca4.cnf 30 | openssl req -new -x509 -days 9999 -config ca4.cnf -keyout ca4-key.pem -out ca4-cert.pem 31 | 32 | 33 | # 34 | # server1 is signed by ca1. 35 | # 36 | server1-key.pem: 37 | openssl genrsa -out server1-key.pem 1024 38 | 39 | server1-csr.pem: server1.cnf server1-key.pem 40 | openssl req -new -config server1.cnf -key server1-key.pem -out server1-csr.pem 41 | 42 | server1-cert.pem: server1-csr.pem ca1-cert.pem ca1-key.pem 43 | openssl x509 -req \ 44 | -days 9999 \ 45 | -passin "pass:password" \ 46 | -in server1-csr.pem \ 47 | -CA ca1-cert.pem \ 48 | -CAkey ca1-key.pem \ 49 | -CAcreateserial \ 50 | -out server1-cert.pem 51 | 52 | # 53 | # server2 is signed by ca1. 54 | # 55 | server2-key.pem: 56 | openssl genrsa -out server2-key.pem 1024 57 | 58 | server2-csr.pem: server2.cnf server2-key.pem 59 | openssl req -new -config server2.cnf -key server2-key.pem -out server2-csr.pem 60 | 61 | server2-cert.pem: server2-csr.pem ca1-cert.pem ca1-key.pem 62 | openssl x509 -req \ 63 | -days 9999 \ 64 | -passin "pass:password" \ 65 | -in server2-csr.pem \ 66 | -CA ca1-cert.pem \ 67 | -CAkey ca1-key.pem \ 68 | -CAcreateserial \ 69 | -out server2-cert.pem 70 | 71 | server2-verify: server2-cert.pem ca1-cert.pem 72 | openssl verify -CAfile ca1-cert.pem server2-cert.pem 73 | 74 | # 75 | # proxy1 is signed by ca2. 76 | # 77 | proxy1-key.pem: 78 | openssl genrsa -out proxy1-key.pem 1024 79 | 80 | proxy1-csr.pem: proxy1.cnf proxy1-key.pem 81 | openssl req -new -config proxy1.cnf -key proxy1-key.pem -out proxy1-csr.pem 82 | 83 | proxy1-cert.pem: proxy1-csr.pem ca2-cert.pem ca2-key.pem 84 | openssl x509 -req \ 85 | -days 9999 \ 86 | -passin "pass:password" \ 87 | -in proxy1-csr.pem \ 88 | -CA ca2-cert.pem \ 89 | -CAkey ca2-key.pem \ 90 | -CAcreateserial \ 91 | -out proxy1-cert.pem 92 | 93 | # 94 | # proxy2 is signed by ca2. 95 | # 96 | proxy2-key.pem: 97 | openssl genrsa -out proxy2-key.pem 1024 98 | 99 | proxy2-csr.pem: proxy2.cnf proxy2-key.pem 100 | openssl req -new -config proxy2.cnf -key proxy2-key.pem -out proxy2-csr.pem 101 | 102 | proxy2-cert.pem: proxy2-csr.pem ca2-cert.pem ca2-key.pem 103 | openssl x509 -req \ 104 | -days 9999 \ 105 | -passin "pass:password" \ 106 | -in proxy2-csr.pem \ 107 | -CA ca2-cert.pem \ 108 | -CAkey ca2-key.pem \ 109 | -CAcreateserial \ 110 | -out proxy2-cert.pem 111 | 112 | proxy2-verify: proxy2-cert.pem ca2-cert.pem 113 | openssl verify -CAfile ca2-cert.pem proxy2-cert.pem 114 | 115 | # 116 | # client1 is signed by ca3. 117 | # 118 | client1-key.pem: 119 | openssl genrsa -out client1-key.pem 1024 120 | 121 | client1-csr.pem: client1.cnf client1-key.pem 122 | openssl req -new -config client1.cnf -key client1-key.pem -out client1-csr.pem 123 | 124 | client1-cert.pem: client1-csr.pem ca3-cert.pem ca3-key.pem 125 | openssl x509 -req \ 126 | -days 9999 \ 127 | -passin "pass:password" \ 128 | -in client1-csr.pem \ 129 | -CA ca3-cert.pem \ 130 | -CAkey ca3-key.pem \ 131 | -CAcreateserial \ 132 | -out client1-cert.pem 133 | 134 | # 135 | # client2 is signed by ca4. 136 | # 137 | client2-key.pem: 138 | openssl genrsa -out client2-key.pem 1024 139 | 140 | client2-csr.pem: client2.cnf client2-key.pem 141 | openssl req -new -config client2.cnf -key client2-key.pem -out client2-csr.pem 142 | 143 | client2-cert.pem: client2-csr.pem ca4-cert.pem ca4-key.pem 144 | openssl x509 -req \ 145 | -days 9999 \ 146 | -passin "pass:password" \ 147 | -in client2-csr.pem \ 148 | -CA ca4-cert.pem \ 149 | -CAkey ca4-key.pem \ 150 | -CAcreateserial \ 151 | -out client2-cert.pem 152 | 153 | 154 | clean: 155 | rm -f *.pem *.srl 156 | 157 | test: client-verify server2-verify proxy1-verify proxy2-verify client-verify 158 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent1-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKjCCAZMCCQDQ8o4kHKdCPDANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJV 3 | UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO 4 | BgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMTEgMB4GCSqGSIb3DQEJARYRcnlA 5 | dGlueWNsb3Vkcy5vcmcwHhcNMTEwMzE0MTgyOTEyWhcNMzgwNzI5MTgyOTEyWjB9 6 | MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQK 7 | EwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MTEgMB4G 8 | CSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwXDANBgkqhkiG9w0BAQEFAANL 9 | ADBIAkEAnzpAqcoXZxWJz/WFK7BXwD23jlREyG11x7gkydteHvn6PrVBbB5yfu6c 10 | bk8w3/Ar608AcyMQ9vHjkLQKH7cjEQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAKha 11 | HqjCfTIut+m/idKy3AoFh48tBHo3p9Nl5uBjQJmahKdZAaiksL24Pl+NzPQ8LIU+ 12 | FyDHFp6OeJKN6HzZ72Bh9wpBVu6Uj1hwhZhincyTXT80wtSI/BoUAW8Ls2kwPdus 13 | 64LsJhhxqj2m4vPKNRbHB2QxnNrGi30CUf3kt3Ia 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent1-csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBXTCCAQcCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH 3 | EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD 4 | EwZhZ2VudDExIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMFwwDQYJ 5 | KoZIhvcNAQEBBQADSwAwSAJBAJ86QKnKF2cVic/1hSuwV8A9t45URMhtdce4JMnb 6 | Xh75+j61QWwecn7unG5PMN/wK+tPAHMjEPbx45C0Ch+3IxECAwEAAaAlMCMGCSqG 7 | SIb3DQEJBzEWExRBIGNoYWxsZW5nZSBwYXNzd29yZDANBgkqhkiG9w0BAQUFAANB 8 | AF+AfG64hNyYHum46m6i7RgnUBrJSOynGjs23TekV4he3QdMSAAPPqbll8W14+y3 9 | vOo7/yQ2v2uTqxCjakUNPPs= 10 | -----END CERTIFICATE REQUEST----- 11 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIBOwIBAAJBAJ86QKnKF2cVic/1hSuwV8A9t45URMhtdce4JMnbXh75+j61QWwe 3 | cn7unG5PMN/wK+tPAHMjEPbx45C0Ch+3IxECAwEAAQJBAI2cU1IuR+4IO87WPyAB 4 | 76kruoo87AeNQkjjvuQ/00+b/6IS45mcEP5Kw0NukbqBhIw2di9uQ9J51DJ/ZfQr 5 | +YECIQDUHaN3ZjIdJ7/w8Yq9Zzz+3kY2F/xEz6e4ftOFW8bY2QIhAMAref+WYckC 6 | oECgOLAvAxB1lI4j7oCbAaawfxKdnPj5AiEAi95rXx09aGpAsBGmSdScrPdG1v6j 7 | 83/2ebrvoZ1uFqkCIB0AssnrRVjUB6GZTNTyU3ERfdkx/RX1zvr8WkFR/lXpAiB7 8 | cUZ1i8ZkZrPrdVgw2cb28UJM7qZHQnXcMHTXFFvxeQ== 9 | -----END RSA PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent1.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = US 10 | ST = CA 11 | L = SF 12 | O = Joyent 13 | OU = Node.js 14 | CN = agent1 15 | emailAddress = ry@tinyclouds.org 16 | 17 | [ req_attributes ] 18 | challengePassword = A challenge password 19 | 20 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent2-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIB7DCCAZYCCQC7gs0MDNn6MTANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJV 3 | UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO 4 | BgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MjEgMB4GCSqGSIb3DQEJARYR 5 | cnlAdGlueWNsb3Vkcy5vcmcwHhcNMTEwMzE0MTgyOTEyWhcNMzgwNzI5MTgyOTEy 6 | WjB9MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYD 7 | VQQKEwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MjEg 8 | MB4GCSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwXDANBgkqhkiG9w0BAQEF 9 | AANLADBIAkEAyXb8FrRdKbhrKLgLSsn61i1C7w7fVVVd7OQsmV/7p9WB2lWFiDlC 10 | WKGU9SiIz/A6wNZDUAuc2E+VwtpCT561AQIDAQABMA0GCSqGSIb3DQEBBQUAA0EA 11 | C8HzpuNhFLCI3A5KkBS5zHAQax6TFUOhbpBCR0aTDbJ6F1liDTK1lmU/BjvPoj+9 12 | 1LHwrmh29rK8kBPEjmymCQ== 13 | -----END CERTIFICATE----- 14 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent2-csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBXTCCAQcCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH 3 | EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD 4 | EwZhZ2VudDIxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMFwwDQYJ 5 | KoZIhvcNAQEBBQADSwAwSAJBAMl2/Ba0XSm4ayi4C0rJ+tYtQu8O31VVXezkLJlf 6 | +6fVgdpVhYg5QlihlPUoiM/wOsDWQ1ALnNhPlcLaQk+etQECAwEAAaAlMCMGCSqG 7 | SIb3DQEJBzEWExRBIGNoYWxsZW5nZSBwYXNzd29yZDANBgkqhkiG9w0BAQUFAANB 8 | AJnll2pt5l0pzskQSpjjLVTlFDFmJr/AZ3UK8v0WxBjYjCe5Jx4YehkChpxIyDUm 9 | U3J9q9MDUf0+Y2+EGkssFfk= 10 | -----END CERTIFICATE REQUEST----- 11 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIBOgIBAAJBAMl2/Ba0XSm4ayi4C0rJ+tYtQu8O31VVXezkLJlf+6fVgdpVhYg5 3 | QlihlPUoiM/wOsDWQ1ALnNhPlcLaQk+etQECAwEAAQJBAMT6Bf34+UHKY1ObpsbH 4 | 9u2jsVblFq1rWvs8GPMY6oertzvwm3DpuSUp7PTgOB1nLTLYtCERbQ4ovtN8tn3p 5 | OHUCIQDzIEGsoCr5vlxXvy2zJwu+fxYuhTZWMVuo1397L0VyhwIhANQh+yzqUgaf 6 | WRtSB4T2W7ADtJI35ET61jKBty3CqJY3AiAIwju7dVW3A5WeD6Qc1SZGKZvp9yCb 7 | AFI2BfVwwaY11wIgXF3PeGcvACMyMWsuSv7aPXHfliswAbkWuzcwA4TW01ECIGWa 8 | cgsDvVFxmfM5NPSuT/UDTa6R5BFISB5ea0N0AR3I 9 | -----END RSA PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent2.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = US 10 | ST = CA 11 | L = SF 12 | O = Joyent 13 | OU = Node.js 14 | CN = agent2 15 | emailAddress = ry@tinyclouds.org 16 | 17 | [ req_attributes ] 18 | challengePassword = A challenge password 19 | 20 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent3-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKjCCAZMCCQCDBr594bsJmTANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJV 3 | UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO 4 | BgNVBAsTB05vZGUuanMxDDAKBgNVBAMTA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlA 5 | dGlueWNsb3Vkcy5vcmcwHhcNMTEwMzE0MTgyOTEyWhcNMzgwNzI5MTgyOTEyWjB9 6 | MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQK 7 | EwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MzEgMB4G 8 | CSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwXDANBgkqhkiG9w0BAQEFAANL 9 | ADBIAkEAtlNDZ+bHeBI0B2gD/IWqA7Aq1hwsnS4+XpnLesjTQcL2JwFFpkR0oWrw 10 | yjrYhCogi7c5gjKrLZF1d2JD5JgHgQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAJoK 11 | bXwsImk7vJz9649yrmsXwnuGbEKVYMvqcGyjaZNP9lYEG41y5CeRzxhWy2rlYdhE 12 | f2nqE2lg75oJP7LQqfQY7aCqwahM3q/GQbsfKVCGjF7TVyq9TQzd8iW+FEJIQzSE 13 | 3aN85hR67+3VAXeSzmkGSVBO2m1SJIug4qftIkc2 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent3-csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBXTCCAQcCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH 3 | EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD 4 | EwZhZ2VudDMxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMFwwDQYJ 5 | KoZIhvcNAQEBBQADSwAwSAJBALZTQ2fmx3gSNAdoA/yFqgOwKtYcLJ0uPl6Zy3rI 6 | 00HC9icBRaZEdKFq8Mo62IQqIIu3OYIyqy2RdXdiQ+SYB4ECAwEAAaAlMCMGCSqG 7 | SIb3DQEJBzEWExRBIGNoYWxsZW5nZSBwYXNzd29yZDANBgkqhkiG9w0BAQUFAANB 8 | AEGo76iH+a8pnE+RWQT+wg9/BL+iIuqrcFXLs0rbGonqderrwXAe15ODwql/Bfu3 9 | zgMt8ooTsgMPcMX9EgmubEM= 10 | -----END CERTIFICATE REQUEST----- 11 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent3-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIBOwIBAAJBALZTQ2fmx3gSNAdoA/yFqgOwKtYcLJ0uPl6Zy3rI00HC9icBRaZE 3 | dKFq8Mo62IQqIIu3OYIyqy2RdXdiQ+SYB4ECAwEAAQJAIk+G9s2SKgFa8y3a2jGZ 4 | LfqABSzmJGooaIsOpLuYLd6eCC31XUDlT4rPVGRhysKQCQ4+NMjgdnj9ZqNnvXY/ 5 | RQIhAOgbdltr3Ey2hy7RuDW5rmOeJTuVqCrZ7QI8ifyCEbYTAiEAyRfvWSvvASeP 6 | kZTMUhATRUpuyDQW+058NE0oJSinTpsCIQCR/FPhBGI3TcaQyA9Ym0T4GwvIAkUX 7 | TqInefRAAX8qSQIgZVJPAdIWGbHSL9sWW97HpukLCorcbYEtKbkamiZyrjMCIQCX 8 | lX76ttkeId5OsJGQcF67eFMMr2UGZ1WMf6M39lCYHQ== 9 | -----END RSA PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent3.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = US 10 | ST = CA 11 | L = SF 12 | O = Joyent 13 | OU = Node.js 14 | CN = agent3 15 | emailAddress = ry@tinyclouds.org 16 | 17 | [ req_attributes ] 18 | challengePassword = A challenge password 19 | 20 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent4-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSDCCAbGgAwIBAgIJAIMGvn3huwmaMA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV 3 | BAYTAlVTMQswCQYDVQQIEwJDQTELMAkGA1UEBxMCU0YxDzANBgNVBAoTBkpveWVu 4 | dDEQMA4GA1UECxMHTm9kZS5qczEMMAoGA1UEAxMDY2EyMSAwHgYJKoZIhvcNAQkB 5 | FhFyeUB0aW55Y2xvdWRzLm9yZzAeFw0xMTAzMTQxODI5MTJaFw0zODA3MjkxODI5 6 | MTJaMH0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTELMAkGA1UEBxMCU0YxDzAN 7 | BgNVBAoTBkpveWVudDEQMA4GA1UECxMHTm9kZS5qczEPMA0GA1UEAxMGYWdlbnQ0 8 | MSAwHgYJKoZIhvcNAQkBFhFyeUB0aW55Y2xvdWRzLm9yZzBcMA0GCSqGSIb3DQEB 9 | AQUAA0sAMEgCQQDN/yMfmQ8zdvmjlGk7b3Mn6wY2FjaMb4c5ENJX15vyYhKS1zhx 10 | 6n0kQIn2vf6yqG7tO5Okz2IJiD9Sa06mK6GrAgMBAAGjFzAVMBMGA1UdJQQMMAoG 11 | CCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4GBAA8FXpRmdrHBdlofNvxa14zLvv0N 12 | WnUGUmxVklFLKXvpVWTanOhVgI2TDCMrT5WvCRTD25iT1EUKWxjDhFJrklQJ+IfC 13 | KC6fsgO7AynuxWSfSkc8/acGiAH+20vW9QxR53HYiIDMXEV/wnE0KVcr3t/d70lr 14 | ImanTrunagV+3O4O 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent4-csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBXTCCAQcCAQAwfTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQswCQYDVQQH 3 | EwJTRjEPMA0GA1UEChMGSm95ZW50MRAwDgYDVQQLEwdOb2RlLmpzMQ8wDQYDVQQD 4 | EwZhZ2VudDQxIDAeBgkqhkiG9w0BCQEWEXJ5QHRpbnljbG91ZHMub3JnMFwwDQYJ 5 | KoZIhvcNAQEBBQADSwAwSAJBAM3/Ix+ZDzN2+aOUaTtvcyfrBjYWNoxvhzkQ0lfX 6 | m/JiEpLXOHHqfSRAifa9/rKobu07k6TPYgmIP1JrTqYroasCAwEAAaAlMCMGCSqG 7 | SIb3DQEJBzEWExRBIGNoYWxsZW5nZSBwYXNzd29yZDANBgkqhkiG9w0BAQUFAANB 8 | AMzo7GUOBtGm5MSck1rrEE2C1bU3qoVvXVuiN3A/57zXeNeq24FZMLnkDeL9U+/b 9 | Kj646XFou04gla982Xp74p0= 10 | -----END CERTIFICATE REQUEST----- 11 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent4-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIBOQIBAAJBAM3/Ix+ZDzN2+aOUaTtvcyfrBjYWNoxvhzkQ0lfXm/JiEpLXOHHq 3 | fSRAifa9/rKobu07k6TPYgmIP1JrTqYroasCAwEAAQJAN8RQb+dx1A7rejtdWbfM 4 | Rww7PD07Oz2eL/a72wgFsdIabRuVypIoHunqV0sAegYtNJt9yu+VhREw0R5tx/qz 5 | EQIhAPY+nmzp0b4iFRk7mtGUmCTr9iwwzoqzITwphE7FpQnFAiEA1ihUHFT9YPHO 6 | f85skM6qZv77NEgXHO8NJmQZ5GX1ZK8CICzle+Mluo0tD6W7HV4q9pZ8wzSJbY8S 7 | W/PpKetm09F1AiAWTw8sAGKAtc/IGo3Oq+iuYAN1F8lolzJsfGMCGujsOwIgAJKP 8 | t3eXilwX3ZlsDWSklWNZ7iYcfYrvAc3JqU6gFCE= 9 | -----END RSA PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/agent4.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = US 10 | ST = CA 11 | L = SF 12 | O = Joyent 13 | OU = Node.js 14 | CN = agent4 15 | emailAddress = ry@tinyclouds.org 16 | 17 | [ req_attributes ] 18 | challengePassword = A challenge password 19 | 20 | [ ext_key_usage ] 21 | extendedKeyUsage = clientAuth 22 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca1-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICIzCCAYwCCQC4ONZJx5BOwjANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJK 3 | UDESMBAGA1UECxQJbm9kZWpzX2pwMQwwCgYDVQQDEwNjYTExJTAjBgkqhkiG9w0B 4 | CQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQuanAwHhcNMTMxMjI0MTEyMzIxWhcNNDEw 5 | NTEwMTEyMzIxWjBWMQswCQYDVQQGEwJKUDESMBAGA1UECxQJbm9kZWpzX2pwMQww 6 | CgYDVQQDEwNjYTExJTAjBgkqhkiG9w0BCQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQu 7 | anAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOJMS1ug8jUu0wwEfD4h9/Mg 8 | w0fvs7JbpMxtwpdcFpg/6ECd8YzGUvljLzeHPe2AhF26MiWIUN3YTxZRiQQ2tv93 9 | afRVWchdPypytmuxv2aYGjhZ66Tv4vNRizM71OE+66+KS30gEQW2k4MTr0ZVlRPR 10 | OVey+zRSLdVaKciB/XaBAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEApfbly4b+Ry1q 11 | bGIgGrlTvNFvF+j2RuHqSpuTB4nKyw1tbNreKmEEb6SBEfkjcTONx5rKECZ5RRPX 12 | z4R/o1G6Dn21ouf1pWQO0BC/HnLN30KvvsoZRoxBn/fqBlJA+j/Kpj3RQgFj6l2I 13 | AKI5fD+ucPqRGhjmmTsNyc+Ln4UfAq8= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca1-cert.srl: -------------------------------------------------------------------------------- 1 | B111C9CEF0257692 2 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIbo5wvG42IY0CAggA 3 | MBQGCCqGSIb3DQMHBAgf8SPuz4biYASCAoAR4r8MVikusOAEt4Xp6nB7whrMX4iG 4 | G792Qpf21nHZPMV73w3cdkfimbAfUn8F50tSJwdrAa8U9BjjpL9Kt0loIyXt/r8c 5 | 6PWAQ4WZuLPgTFUTJUNAXrunBHI0iFWYEN4YzJYmT1qN3J4u0diy0MkKz6eJPfZ3 6 | 3v97+nF7dR2H86ZgLKsuE4pO5IRb60XW85d7CYaY6rU6l6mXMF0g9sIccHTlFoet 7 | Xm6cA7NAm1XSI1ciYcoc8oaVE9dXoOALaTnBEZ2MJGpsYQ0Hr7kB4VKAO9wsOta5 8 | L9nXPv79Nzo1MZMChkrORFnwOzH4ffsUwVQ70jUzkt5DEyzCM1oSxFNRQESxnFrr 9 | 7c1jLg2gxAVwnqYo8njsKJ23BZqZUxHsBgB2Mg1L/iPT6zhclD0u3RZx9MR4ezB2 10 | IqoCF19Z5bblkReAeVRAE9Ol4hKVaCEIIPUspcw7eGVGONalHDCSXpIFnJoZLeXJ 11 | OZjLmYlA6KkJw52eNE5IwIb8l/tha2fwNpRvlMoXp65yH9wKyJk8zPSM6WAk4dKD 12 | nLrTCK4KtM6aIbG14Mff6WEf3uaLPM0cLwxmuypfieCZfkIzgytNdFZoBgaYUpon 13 | zazvUMoy3gqDBorcU08SaosdRoL+s+QVkRhA29shf42lqOM4zbh0dTul4QDlLG0U 14 | VBNeMJ3HnrqATfBU28j3bUqtuF2RffgcN/3ivlBjcyzF/iPt0TWmm6Zz5v4K8+b6 15 | lOm6gofIz+ffg2cXfPzrqZ2/xhFkcerRuN0Xp5eAhlI2vGJVGuEc4X+tT7VtQgLV 16 | iovqzlLhp+ph/gsfCcsYZ9iso3ozw+Cx1HfJ8XT7yWUgXxblkt4uszEo 17 | -----END ENCRYPTED PRIVATE KEY----- 18 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca1.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | output_password = password 8 | 9 | [ req_distinguished_name ] 10 | C = JP 11 | OU = nodejs_jp 12 | CN = ca1 13 | emailAddress = koichik@improvement.jp 14 | 15 | [ req_attributes ] 16 | challengePassword = A challenge password 17 | 18 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca2-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICIzCCAYwCCQCxIhZSDET+8DANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJK 3 | UDESMBAGA1UECxQJbm9kZWpzX2pwMQwwCgYDVQQDEwNjYTIxJTAjBgkqhkiG9w0B 4 | CQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQuanAwHhcNMTMxMjI0MTEyMzIxWhcNNDEw 5 | NTEwMTEyMzIxWjBWMQswCQYDVQQGEwJKUDESMBAGA1UECxQJbm9kZWpzX2pwMQww 6 | CgYDVQQDEwNjYTIxJTAjBgkqhkiG9w0BCQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQu 7 | anAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaaLMMe7K5eYABH3NnJoimG 8 | LvY4S5tdGF6YRwfkn1bgGa+kEw1zNqa/Y0jSzs4h7bApt3+bKTalR4+Zk+0UmWgZ 9 | Gvlq8+mdqDXtBKoWE3vYDPBmeNyKsgxf9UIhFOpsxVUeYP8t66qJyUk/FlFJcDqc 10 | WPawikl1bUFSZXBKu4PxAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAwh3sXPIkA5kn 11 | fpg7fV5haS4EpFr9ia61dzWbhXDZtasAx+nWdWqgG4T+HIYSLlMNZbGJ998uhFZf 12 | DEHlbY/WuSBukZ0w+xqKBtPyjLIQKVvNiaTx5YMzQes62R1iklOXzBzyHbYIxFOG 13 | dqLfIjEe/mVVoR23LN2tr8Wa6+rmd+w= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca2-cert.srl: -------------------------------------------------------------------------------- 1 | 9BF2D4B2E00EDF16 2 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca2-crl.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN X509 CRL----- 2 | MIIBXTCBxzANBgkqhkiG9w0BAQQFADB6MQswCQYDVQQGEwJVUzELMAkGA1UECBMC 3 | Q0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAOBgNVBAsTB05vZGUu 4 | anMxDDAKBgNVBAMTA2NhMjEgMB4GCSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5v 5 | cmcXDTExMDMxNDE4MjkxNloXDTEzMTIwNzE4MjkxNlowHDAaAgkAgwa+feG7CZoX 6 | DTExMDMxNDE4MjkxNFowDQYJKoZIhvcNAQEEBQADgYEArRKuEkOla61fm4zlZtHe 7 | LTXFV0Hgo21PScHAp6JqPol4rN5R9+EmUkv7gPCVVBJ9VjIgxSosHiLsDiz3zR+u 8 | txHemhzbdIVANAIiChnFct8sEqH2eL4N6XNUIlMIR06NjNl7NbN8w8haqiearnuT 9 | wmnaL4TThPmpbpKAF7N7JqQ= 10 | -----END X509 CRL----- 11 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca2-database.txt: -------------------------------------------------------------------------------- 1 | R 380729182912Z 110314182914Z 8306BE7DE1BB099A unknown /C=US/ST=CA/L=SF/O=Joyent/OU=Node.js/CN=agent4/emailAddress=ry@tinyclouds.org 2 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI3aq9fKZIOF0CAggA 3 | MBQGCCqGSIb3DQMHBAjyunMfVve0OwSCAoAdMsrRFlQUSILw+bq3cSVIIbFjwcs0 4 | B1Uz2rc9SB+1qjsazjv4zvPQSXTrsx2EOSJf9PSPz7r+c0NzO9vfWLorpXof/lwL 5 | C1tRN7/1OqEW/mTK+1wlv0M5C4cmf44BBXmI+y+RWrQ/qc+CWEMvfHwv9zWr2K+i 6 | cLlZv55727GvZYCMMVLiqYd/Ejj98loBsE5dhN4JJ5MPaN3UHhFTCpD453GIIzCi 7 | FRuYhOOtX4qYoEuP2db4S2qu26723ZJnYBEHkK2YZiRrgvoZHugyGIr4f/RRoSUI 8 | fPgycgQfL3Ow+Y1G533PiZ+CYgh9cViUzhZImEPiZpSuUntAD1loOYkJuV9Ai9XZ 9 | +t6+7tfkM3aAo1bkaU8KcfINxxNWfAhCbUQw+tGJl2A+73OM5AGjGSfzjQQL/FOa 10 | 5omfEvdfEX2XyRRlqnQ2VucvSTL9ZdzbIJGg/euJTpM44Fwc7yAZv2aprbPoPixu 11 | yyf0LoTjlGGSBZvHkunpWx82lYEXvHhcnCxV5MDFw8wehvDrvcSuzb8//HzLOiOB 12 | gzUr3DOQk4U1UD6xixZjAKC+NUwTVZoHg68KtmQfkq+eGUWf5oJP4xUigi3ui/Wy 13 | OCBDdlRBkFtgLGL51KJqtq1ixx3Q9HMl0y6edr5Ls0unDIo0LtUWUUcAtr6wl+kK 14 | zSztxFMi2zTtbhbkwoVpucNstFQNfV1k22vtnlcux2FV2DdZiJQwYpIbr8Gj6gpK 15 | gtV5l9RFe21oZBcKPt/chrF8ayiClfGMpF3D2p2GqGCe0HuH5uM/JAFf60rbnriA 16 | Nu1bWiXsXLRUXcLIQ/uEPR3Mvvo9k1h4Q6it1Rp67eQiXCX6h2uFq+sB 17 | -----END ENCRYPTED PRIVATE KEY----- 18 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca2-serial: -------------------------------------------------------------------------------- 1 | 01 2 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca2.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | output_password = password 8 | 9 | [ req_distinguished_name ] 10 | C = JP 11 | OU = nodejs_jp 12 | CN = ca2 13 | emailAddress = koichik@improvement.jp 14 | 15 | [ req_attributes ] 16 | challengePassword = A challenge password 17 | 18 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca3-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICIzCCAYwCCQCudHFhEWiUHDANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJK 3 | UDESMBAGA1UECxQJbm9kZWpzX2pwMQwwCgYDVQQDEwNjYTMxJTAjBgkqhkiG9w0B 4 | CQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQuanAwHhcNMTMxMjI0MTEyMzIxWhcNNDEw 5 | NTEwMTEyMzIxWjBWMQswCQYDVQQGEwJKUDESMBAGA1UECxQJbm9kZWpzX2pwMQww 6 | CgYDVQQDEwNjYTMxJTAjBgkqhkiG9w0BCQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQu 7 | anAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJPRJMhCNtxX6dQ3rLdrzVCl 8 | XJMSRIICpbsc7arOzSJcrsIYeYC4d29dGwxYNLnAkKSmHujFT9SmFgh88CoYETLp 9 | gE9zCk9hVCwUlWelM/UaIrzeLT4SC3VBptnLmMtk2mqFniLcaFdMycAcX8OIhAgG 10 | fbqyT5Wxwz7UMegip2ZjAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEADpu8a/W+NPnS 11 | mhyIOxXn8O//2oH9ELlBYFLIgTid0xmS05x/MgkXtWqiBEEZFoOfoJBJxM3vTFs0 12 | PiZvcVjv0IIjDF4s54yRVH+4WI2p7cil1fgzAVRTuOIuR+VyN7ct8s26a/7GFDq6 13 | NJMByyjsJHyxwwri5hVv+jbLCxmnDjI= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca3-cert.srl: -------------------------------------------------------------------------------- 1 | EF7B2CF0FA61DF41 2 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca3-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIwAta+L4c9soCAggA 3 | MBQGCCqGSIb3DQMHBAgqRud2p3SvogSCAoDXoDJOJDkvgFpQ6rxeV5r0fLX4SrGJ 4 | quv4yt02QxSDUPN2ZLtBt6bLzg4Zv2pIggufYJcZ2IOUnX82T7FlvBP8hbW1q3Bs 5 | jAso7z8kJlFrZjNudjuP2l/X8tjrVyr3I0PoRoomtcHnCcSDdyne8Dqqj1enuikF 6 | 8b7FZUqocNLfu8LmNGxMmMwjw3UqhtpP5DjqV60B8ytQFPoz/gFh6aNGvsrD/avU 7 | Dj8EJkQZP6Q32vmCzAvSiLjk7FA7RFmBtaurE9hJYNlc5v1eo69EUwPkeVlTpglJ 8 | 5sZAHxlhQCgc72ST6uFQKiMO3ng/JJA5N9EvacYSHQvI1TQIo43V2A//zUh/5hGL 9 | sDv4pRuFq9miX8iiQpwo1LDfRzdwg7+tiLm8/mDyeLUSzDNc6GIX/tC9R4Ukq4ge 10 | 1Cfq0gtKSRxZhM8HqpGBC9rDs5mpdUqTRsoHLFn5T6/gMiAtrLCJxgD8JsZBa8rM 11 | KZ09QEdZXTvpyvZ8bSakP5PF6Yz3QYO32CakL7LDPpCng0QDNHG10YaZbTOgJIzQ 12 | NJ5o87DkgDx0Bb3L8FoREIBkjpYFbQi2fvPthoepZ3D5VamVsOwOiZ2sR1WF2J8l 13 | X9c8GdG38byO+SQIPNZ8eT5JvUcNeSlIZiVSwvaEk496d2KzhmMMfoBLFVeHXG90 14 | CIZPleVfkTmgNQgXPWcFngqTZdDEGsHjEDDhbEAijB3EeOxyiiEDJPMy5zqkdy5D 15 | cZ/Y77EDbln7omcyL+cGvCgBhhYpTbtbuBtzW4CiCvcfEB5N4EtJKOTRJXIpL/d3 16 | oVnZruqRRKidKwFMEZU2NZJX5FneAWFSeCv0IrY2vAUIc3El+n84CFFK 17 | -----END ENCRYPTED PRIVATE KEY----- 18 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca3.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | output_password = password 8 | 9 | [ req_distinguished_name ] 10 | C = JP 11 | OU = nodejs_jp 12 | CN = ca3 13 | emailAddress = koichik@improvement.jp 14 | 15 | [ req_attributes ] 16 | challengePassword = A challenge password 17 | 18 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca4-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICIzCCAYwCCQDUGh2r7lOpITANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJK 3 | UDESMBAGA1UECxQJbm9kZWpzX2pwMQwwCgYDVQQDEwNjYTQxJTAjBgkqhkiG9w0B 4 | CQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQuanAwHhcNMTMxMjI0MTEyMzIxWhcNNDEw 5 | NTEwMTEyMzIxWjBWMQswCQYDVQQGEwJKUDESMBAGA1UECxQJbm9kZWpzX2pwMQww 6 | CgYDVQQDEwNjYTQxJTAjBgkqhkiG9w0BCQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQu 7 | anAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOOC+SPC8XzkjIHfKPMzzNV6 8 | O/LpqQWdzJtEvFNW0oQ9g8gSV4iKqwUFrLNnSlwSGigvqKqGmYtG8S17ANWInoxI 9 | c3sQlrS2cGbgLUBNKu4hZ7s+11EPOjbnn0QUE5w9GN8fy8CDx7ID/8URYKoxcoRv 10 | 0w7EJ2agfd68KS1ayxUXAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAumPFeR63Dyki 11 | SWQtRAe2QWkIFlSRAR2PvSDdsDMLwMeXF5wD3Hv51yfTu9Gkg0QJB86deYfQ5vfV 12 | 4QsOQ35icesa12boyYpTE0/OoEX1f/s1sLlszpRvtAki3J4bkcGWAzM5yO1fKqpQ 13 | MbtPzLn+DA7ymxuJa6EQAEb+kaJEBuU= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca4-cert.srl: -------------------------------------------------------------------------------- 1 | B01FE0416A2EDCF5 2 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca4-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIWE/ri/feeikCAggA 3 | MBQGCCqGSIb3DQMHBAiu6hUzoFnsVASCAoC53ZQ4gxLcFnb5yAcdCl4DdKOJ5m4G 4 | CHosR87pJpZlO68DsCKwORUp9tTmb1/Q4Wm9n2kRf6VQNyVVm6REwzEPAgIJEgy2 5 | FqLmfqpTElbRsQako8UDXjDjaMO30e+Qhy8HOTrHMJZ6LgrU90xnOCPPeN9fYmIu 6 | YBkX4qewUfu+wFzk/unUbFLChvJsEN4fdrlDwTJMHRzKwbdvg3mHlCnspWwjA2Mc 7 | q27QPeb3mwRUajmqL0dT9y7wVYeAN2zV59VoWm6zV+dWFgyMlVrVCRYkqQC3xOsy 8 | ZlKrGldrY8nNdv5s6+Sc7YavTJiJxHgIB7sm6QFIsdqjxTBEGD4/YhEI52SUw/xO 9 | VJmOTWdWUz4FdWNi7286nfhZ0+mdv6fUoG54Qv6ahnUMJvEsp60LkR1gHXLzQu/m 10 | +yDZFqY/IIg2QA7M3gL0Md5GrWydDlD2uBPoXcC4A5gfOHswzHWDKurDCpoMqdpn 11 | CUQ/ZVl2rwF8Pnty61MjY1xCN1r8xQjFBCgcfBWw5v6sNRbr/vef3TfQIBzVm+hx 12 | akDb1nckBsIjMT9EfeT6hXub2n0oehEHewF1COifbcOjnxToLSswPLrtb0behB+o 13 | zTgftn+4XrkY0sFY69TzYtQVMLAsiWTpZFvAi+D++2pXlQ/bnxKJiBBc6kZuAGpN 14 | z+cJ4kUuFE4S9v5C5vK89nIgcuJT06u8wYTy0N0j/DnIjSaVgGr0Y0841mXtU1VV 15 | wUZjuyYrVwVT/g5r6uzEFldTcjmYkbMaxo+MYnEZZgqYJvu2QlK87YxJOwo+D1NX 16 | 4gl1s/bmlPlGw/t9TxutI3S9PEr3JM3013e9UPE+evlTG9IIrZaUPzyj 17 | -----END ENCRYPTED PRIVATE KEY----- 18 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/ca4.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | output_password = password 8 | 9 | [ req_distinguished_name ] 10 | C = JP 11 | OU = nodejs_jp 12 | CN = ca4 13 | emailAddress = koichik@improvement.jp 14 | 15 | [ req_attributes ] 16 | challengePassword = A challenge password 17 | 18 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/client.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = JP 10 | OU = nodejs_jp 11 | CN = localhost 12 | emailAddress = koichik@improvement.jp 13 | 14 | [ req_attributes ] 15 | challengePassword = A challenge password 16 | 17 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/client1-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAZICCQDveyzw+mHfQTANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJK 3 | UDESMBAGA1UECxQJbm9kZWpzX2pwMQwwCgYDVQQDEwNjYTMxJTAjBgkqhkiG9w0B 4 | CQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQuanAwHhcNMTMxMjI0MTEyMzIxWhcNNDEw 5 | NTEwMTEyMzIxWjBcMQswCQYDVQQGEwJKUDESMBAGA1UECxQJbm9kZWpzX2pwMRIw 6 | EAYDVQQDEwlsb2NhbGhvc3QxJTAjBgkqhkiG9w0BCQEWFmtvaWNoaWtAaW1wcm92 7 | ZW1lbnQuanAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMYUuKyuxT93zvrS 8 | mL8IMI8xu8dP3iRZDUYu6dmq6Dntgb7intfzxtEFVmfNCDGwJwg7UKx/FzftGxFb 9 | 9LksuvAQuW2FLhCrOmXUVU938OZkQRSflISD80kd4i9JEoKKYPX1imjaMugIQ0ta 10 | Bq2orY6sna8JAUVDW6WO3wVEJ4mBAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAAbaH 11 | bc/6dIFC9TPIDrgsLtsOtycdBJqKbFT1wThhyKncXF/iyaI+8N4UA+hXMjk8ODUl 12 | BVmmgaN6ufMLwnx/Gdl9FLmmDq4FQ4zspClTJo42QPzg5zKoPSw5liy73LM7z+nG 13 | g6IeM8RFlEbs109YxqvQnbHfTgeLdIsdvtNXU80= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/client1-csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBwTCCASoCAQAwXDELMAkGA1UEBhMCSlAxEjAQBgNVBAsUCW5vZGVqc19qcDES 3 | MBAGA1UEAxMJbG9jYWxob3N0MSUwIwYJKoZIhvcNAQkBFhZrb2ljaGlrQGltcHJv 4 | dmVtZW50LmpwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGFLisrsU/d876 5 | 0pi/CDCPMbvHT94kWQ1GLunZqug57YG+4p7X88bRBVZnzQgxsCcIO1Csfxc37RsR 6 | W/S5LLrwELlthS4Qqzpl1FVPd/DmZEEUn5SEg/NJHeIvSRKCimD19Ypo2jLoCENL 7 | WgatqK2OrJ2vCQFFQ1uljt8FRCeJgQIDAQABoCUwIwYJKoZIhvcNAQkHMRYTFEEg 8 | Y2hhbGxlbmdlIHBhc3N3b3JkMA0GCSqGSIb3DQEBBQUAA4GBAB5NvNSHX+WDlF5R 9 | LNr7SI2NzIy5OWEAgTxLkvS0NS75zlDLScaqwgs1uNfB2AnH0Fpw9+pePEijlb+L 10 | 3VRLNpV8hRn5TKztlS3O0Z4PPb7hlDHitXukTOQYrq0juQacodVSgWqNbac+O2yK 11 | qf4Y3A7kQO1qmDOfN6QJFYVIpPiP 12 | -----END CERTIFICATE REQUEST----- 13 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/client1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQDGFLisrsU/d8760pi/CDCPMbvHT94kWQ1GLunZqug57YG+4p7X 3 | 88bRBVZnzQgxsCcIO1Csfxc37RsRW/S5LLrwELlthS4Qqzpl1FVPd/DmZEEUn5SE 4 | g/NJHeIvSRKCimD19Ypo2jLoCENLWgatqK2OrJ2vCQFFQ1uljt8FRCeJgQIDAQAB 5 | AoGAbfcM+xjfejeqGYcWs175jlVe2OyW93jUrLTYsDV4TMh08iLfaiX0pw+eg2vI 6 | 88TGNoSvacP4gNzJ3R4+wxp5AFlRKZ876yL7D0VKavMFwbyRk21+D/tLGvW6gqOC 7 | 4qi4IWSkfgBh5RK+o4jZcl5tzRPQyuxR3pJGBS33q5K2dEECQQDhV4NuKZcGDnKt 8 | 1AhmtzqsJ4wrp2a3ysZYDTWyA692NGXi2Vnpnc6Aw9JchJhT3cueFLcOTFrb/ttu 9 | ZC/iA67pAkEA4Qe7LvcPvHlwNAmzqzOg2lYAqq+aJY2ghfJMqr3dPCJqbHJnLN6p 10 | GXsqGngwVlnvso0O/n5g30UmzvkRMFZW2QJAbOMQy0alh3OrzntKo/eeDln9zYpS 11 | hDUjqqCXdbF6M7AWG4vTeqOaiXYWTEZ2JPBj17tCyVH0BaIc/jbDPH9zIQJBALei 12 | YH0l/oB2tTqyBB2cpxIlhqvDW05z8d/859WZ1PVivGg9P7cdCO+TU7uAAyokgHe7 13 | ptXFefYZb18NX5qLipkCQHjIo4BknrO1oisfsusWcCC700aRIYIDk0QyEEIAY3+9 14 | 7ar/Oo1EbqWA/qN7zByPuTKrjrb91/D+IMFUFgb4RWc= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/client1.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = JP 10 | OU = nodejs_jp 11 | CN = localhost 12 | emailAddress = koichik@improvement.jp 13 | 14 | [ req_attributes ] 15 | challengePassword = A challenge password 16 | 17 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/client2-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAZICCQCwH+BBai7c9TANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJK 3 | UDESMBAGA1UECxQJbm9kZWpzX2pwMQwwCgYDVQQDEwNjYTQxJTAjBgkqhkiG9w0B 4 | CQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQuanAwHhcNMTMxMjI0MTEyMzIxWhcNNDEw 5 | NTEwMTEyMzIxWjBcMQswCQYDVQQGEwJKUDESMBAGA1UECxQJbm9kZWpzX2pwMRIw 6 | EAYDVQQDEwlsb2NhbGhvc3QxJTAjBgkqhkiG9w0BCQEWFmtvaWNoaWtAaW1wcm92 7 | ZW1lbnQuanAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMJQGt34PZX5pQmi 8 | 3bNp3dryr7qPO3oGhTeShLCeZ6PPCdnmVl0PnT0n8/DFBlaijbvXGU9AjcFZ7gg7 9 | hcSAFLGmPEb2pug021yzl7u0qUD2fnVaEzfJ04ZU4lUCFqGKsfFVQuIkDHFwadbE 10 | AO+8EqOmDynUMkKfHPWQK6O9jt5ZAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEA143M 11 | QIygJGDv2GFKlVgV05/CYZo6ouX9I6vPRekJnGeL98lmVH83Ogb7Xmc2SbJ18qFq 12 | naBYnUEmHPUAZ2Ms2KuV3OOvscUSCsEJ4utJYznOT8PsemxVWrgG1Ba+zpnPkdII 13 | p+PanKCsclNUKwBlSkJ8XfGi9CAZJBykwws3O1c= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/client2-csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBwTCCASoCAQAwXDELMAkGA1UEBhMCSlAxEjAQBgNVBAsUCW5vZGVqc19qcDES 3 | MBAGA1UEAxMJbG9jYWxob3N0MSUwIwYJKoZIhvcNAQkBFhZrb2ljaGlrQGltcHJv 4 | dmVtZW50LmpwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCUBrd+D2V+aUJ 5 | ot2zad3a8q+6jzt6BoU3koSwnmejzwnZ5lZdD509J/PwxQZWoo271xlPQI3BWe4I 6 | O4XEgBSxpjxG9qboNNtcs5e7tKlA9n51WhM3ydOGVOJVAhahirHxVULiJAxxcGnW 7 | xADvvBKjpg8p1DJCnxz1kCujvY7eWQIDAQABoCUwIwYJKoZIhvcNAQkHMRYTFEEg 8 | Y2hhbGxlbmdlIHBhc3N3b3JkMA0GCSqGSIb3DQEBBQUAA4GBAA//UPKPpVEpflDj 9 | DBboWewa6yw8FEOnMvh6eeg/a8KbXfIYnkZRtxbmH06ygywBy/RUBCbM5EzyElkJ 10 | bTVKorzCHnxuTfSnKQ68ZD+vI2SNjiWqQFXW6oOCPzLbtaTJVKw5D6ylBp8Zsu6n 11 | BzQ/4Y42aX/HW4nfJeDydxNFYVJJ 12 | -----END CERTIFICATE REQUEST----- 13 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/client2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICWwIBAAKBgQDCUBrd+D2V+aUJot2zad3a8q+6jzt6BoU3koSwnmejzwnZ5lZd 3 | D509J/PwxQZWoo271xlPQI3BWe4IO4XEgBSxpjxG9qboNNtcs5e7tKlA9n51WhM3 4 | ydOGVOJVAhahirHxVULiJAxxcGnWxADvvBKjpg8p1DJCnxz1kCujvY7eWQIDAQAB 5 | AoGAbiT0JdCaMFIzb/PnEdU30e1xGSIpx7C8gNTH7EnOW7d3URHU8KlyKwFjsJ4u 6 | SpuYFdsG2Lqx3+D3IamD2O/1SgODmtdFas1C/hQ2zx42SgyBQolVJU1MHJxHqmCb 7 | nm2Wo8aHmvFXpQ8OF4YJLPxLOSdvmq0PC17evDyjz5PciWUCQQD5yzaBpJ7yzGwd 8 | b6nreWj6pt+jfi11YsA3gAdvTJcFzMGyNNC+U9OExjQqHsyaHyxGhHKQ6y+ybZkR 9 | BggkudPfAkEAxyQC/hmcvWegdGI4xOJNbm0kv8UyxyeqhtgzEW2hWgEQs4k3fflZ 10 | iNpvxyIBIp/7zZo02YqeQfZlDYuxKypUxwJAa6jQBzRCZXcBqfY0kA611kIR5U8+ 11 | nHdBTSpbCfdCp/dGDF6DEWTjpzgdx4GawVpqJMJ09kzHM+nUrOeinuGQlQJAMAsV 12 | Gb6OHPfaMxnbPkymh6SXQBjQNlHwhxWzxFmhmrg1EkthcufsXOLuIqmmgnb8Zc71 13 | PyJ9KcbK/GieNp7A0wJAIz3Mm3Up9Rlk25TH9k5e3ELjC6fkd93u94Uo145oTgDm 14 | HSbCbjifP5eVl66PztxZppG2GBXiXT0hA/RMruTQMg== 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/client2.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = JP 10 | OU = nodejs_jp 11 | CN = localhost 12 | emailAddress = koichik@improvement.jp 13 | 14 | [ req_attributes ] 15 | challengePassword = A challenge password 16 | 17 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/proxy1-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAZICCQCb8tSy4A7fFTANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJK 3 | UDESMBAGA1UECxQJbm9kZWpzX2pwMQwwCgYDVQQDEwNjYTIxJTAjBgkqhkiG9w0B 4 | CQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQuanAwHhcNMTMxMjI0MTEyMzIxWhcNNDEw 5 | NTEwMTEyMzIxWjBcMQswCQYDVQQGEwJKUDESMBAGA1UECxQJbm9kZWpzX2pwMRIw 6 | EAYDVQQDEwlsb2NhbGhvc3QxJTAjBgkqhkiG9w0BCQEWFmtvaWNoaWtAaW1wcm92 7 | ZW1lbnQuanAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALiUyeosVxtJK8G4 8 | sAqU2DBLx5sMuZpV/YcW/YxUuJv3t/9TpVxcWAs6VRPzi5fqKe8TER8qxi1/I8zV 9 | Qks1gWyZ01reU6Wpdt1MZguF036W2qKOxlJXvnqnRDWu9IFf6KMjSJjFZb6nqhQv 10 | aiL/80hqc2qXVfuJbSYlGrKWFFINAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEABPIn 11 | +vQoDpJx7lVNJNOe7DE+ShCXCK6jkQY8+GQXB1sz5K0OWdZxUWOOp/fcjNJua0NM 12 | hgnylWu/pmjPh7c9xHdZhuh6LPD3F0k4QqK+I2rg45gdBPZT2IxEvxNYpGIfayvY 13 | ofOgbienn69tMzGCMF/lUmEJu7Bn08EbL+OyNBg= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/proxy1-csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBwTCCASoCAQAwXDELMAkGA1UEBhMCSlAxEjAQBgNVBAsUCW5vZGVqc19qcDES 3 | MBAGA1UEAxMJbG9jYWxob3N0MSUwIwYJKoZIhvcNAQkBFhZrb2ljaGlrQGltcHJv 4 | dmVtZW50LmpwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4lMnqLFcbSSvB 5 | uLAKlNgwS8ebDLmaVf2HFv2MVLib97f/U6VcXFgLOlUT84uX6invExEfKsYtfyPM 6 | 1UJLNYFsmdNa3lOlqXbdTGYLhdN+ltqijsZSV756p0Q1rvSBX+ijI0iYxWW+p6oU 7 | L2oi//NIanNql1X7iW0mJRqylhRSDQIDAQABoCUwIwYJKoZIhvcNAQkHMRYTFEEg 8 | Y2hhbGxlbmdlIHBhc3N3b3JkMA0GCSqGSIb3DQEBBQUAA4GBAFhZc2cvYGf8mCg/ 9 | 5nPWmnjNIqgy7uJnOGfE3AP4rW48yiVHCJK9ZmPogbH7gBMOBrrX8fLX3ThK9Sbj 10 | uJlBlZD/19zjM+kvJ14DcievJ15S3KehVQ6Ipmgbz/vnAaL1D+ZiOnjQad2/Fzg4 11 | 0MFXQaZFEUcI8fKnv/zmYi1aivej 12 | -----END CERTIFICATE REQUEST----- 13 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/proxy1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQC4lMnqLFcbSSvBuLAKlNgwS8ebDLmaVf2HFv2MVLib97f/U6Vc 3 | XFgLOlUT84uX6invExEfKsYtfyPM1UJLNYFsmdNa3lOlqXbdTGYLhdN+ltqijsZS 4 | V756p0Q1rvSBX+ijI0iYxWW+p6oUL2oi//NIanNql1X7iW0mJRqylhRSDQIDAQAB 5 | AoGADPSkl4M1Of0QzTAhaxy3b+xhvkhOXr7aZLkAYvEvZAMnLwy39puksmUNw7C8 6 | g5U0DEvST9W4w0jBQodVd+Hxi4dUS4BLDVVStaLMa1Fjai/4uBPxbsrvdHzDu7if 7 | BI6t12vWNNRtTxbfCJ1Fs3nHvDG0ueBZX3fYWBIPPM4bRQECQQDjmCrxbkfFrN5z 8 | JXHfmzoNovV7KzgwRLKOLF17dYnhaG3G77JYjhEjIg5VXmQ8XJrwS45C/io5feFA 9 | qrsy/0v1AkEAz55QK8CLue+sn0J8Yw//yLjJT6BK4pCFFKDxyAvP/3r4t7+1TgDj 10 | KAfUMWb5Hcn9iT3sEykUeOe0ghU0h5X2uQJBAKES2qGPuP/vvmejwpnMVCO+hxmq 11 | ltOiavQv9eEgaHq826SFk6UUtpA01AwbB7momIckEgTbuKqDql2H94C6KdkCQQC7 12 | PfrtyoP5V8dmBk8qBEbZ3pVn45dFx7LNzOzhTo3yyhO/m/zGcZRsCMt9FnI7RG0M 13 | tjTPfvAArm8kFj2+vie5AkASvVx478N8so+02QWKme4T3ZDX+HDBXgFH1+SMD91m 14 | 9tS6x2dtTNvvwBA2KFI1fUg3B/wDoKJQRrqwdl8jpoGP 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/proxy1.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = JP 10 | OU = nodejs_jp 11 | CN = localhost 12 | emailAddress = koichik@improvement.jp 13 | 14 | [ req_attributes ] 15 | challengePassword = A challenge password 16 | 17 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/proxy2-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICJjCCAY8CCQCb8tSy4A7fFjANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJK 3 | UDESMBAGA1UECxQJbm9kZWpzX2pwMQwwCgYDVQQDEwNjYTIxJTAjBgkqhkiG9w0B 4 | CQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQuanAwHhcNMTMxMjI0MTEyMzIxWhcNNDEw 5 | NTEwMTEyMzIxWjBZMQswCQYDVQQGEwJKUDESMBAGA1UECxQJbm9kZWpzX2pwMQ8w 6 | DQYDVQQDEwZwcm94eTIxJTAjBgkqhkiG9w0BCQEWFmtvaWNoaWtAaW1wcm92ZW1l 7 | bnQuanAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALZ3oNCmB2P4Q9DoUVFq 8 | Z1ByASLm63jTPEumv2kX81GF5QMLRl59HBM6Te1rRR7wFHL0iBQUYuEzNPmedXpU 9 | cds0uWl5teoO63ZSKFL1QLU3PMFo56AeWeznxOhy6vwWv3M8C391X6lYsiBow3K9 10 | d37p//GLIR+jl6Q4xYD41zaxAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEADUQgtmot 11 | 8zqsRQInjWAypcntkxX8hdUOEudN2/zjX/YtMZbr8rRvsZzBsUDdgK+E2EmEb/N3 12 | 9ARZ0T2zWFFphJapkZOM1o1+LawN5ON5HfTPqr6d9qlHuRdGCBpXMUERO2V43Z+S 13 | Zwm+iw1yZEs4buTmiw6zu6Nq0fhBlTiAweE= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/proxy2-csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBvjCCAScCAQAwWTELMAkGA1UEBhMCSlAxEjAQBgNVBAsUCW5vZGVqc19qcDEP 3 | MA0GA1UEAxMGcHJveHkyMSUwIwYJKoZIhvcNAQkBFhZrb2ljaGlrQGltcHJvdmVt 4 | ZW50LmpwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2d6DQpgdj+EPQ6FFR 5 | amdQcgEi5ut40zxLpr9pF/NRheUDC0ZefRwTOk3ta0Ue8BRy9IgUFGLhMzT5nnV6 6 | VHHbNLlpebXqDut2UihS9UC1NzzBaOegHlns58Tocur8Fr9zPAt/dV+pWLIgaMNy 7 | vXd+6f/xiyEfo5ekOMWA+Nc2sQIDAQABoCUwIwYJKoZIhvcNAQkHMRYTFEEgY2hh 8 | bGxlbmdlIHBhc3N3b3JkMA0GCSqGSIb3DQEBBQUAA4GBADC4dh/+gQnJcPMQ0riJ 9 | CBVLygcCWxkNvwM3ARboyihuNbzFX1f2g23Zr5iLphiuEFCPDOyd26hHieQ8Xo1y 10 | FPuDXpWMx9X9MLjCWg8kdtada7HsYffbUvpjjL9TxFh+rX0cmr6Ixc5kV7AV4I6V 11 | 3h8BYJebX+XfuYrI1UwEqjqI 12 | -----END CERTIFICATE REQUEST----- 13 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/proxy2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQC2d6DQpgdj+EPQ6FFRamdQcgEi5ut40zxLpr9pF/NRheUDC0Ze 3 | fRwTOk3ta0Ue8BRy9IgUFGLhMzT5nnV6VHHbNLlpebXqDut2UihS9UC1NzzBaOeg 4 | Hlns58Tocur8Fr9zPAt/dV+pWLIgaMNyvXd+6f/xiyEfo5ekOMWA+Nc2sQIDAQAB 5 | AoGBALPH0o9Bxu5c4pSnEdgh+oFskmoNE90MY9A2D0pA6uBcCHSjW0YmBs97FuTi 6 | WExPSBarkJgYLgStK3j3A9Dv+uzRRT0gSr34vKFh5ozI+nJZOMNJyHDOCFiT9sm7 7 | urDW0gSq9OW/H8NbAkxkBZw0PaB9oW5nljuieVIFDYXNAeMBAkEA6NfBHjzp3GS0 8 | RbtaBkxn3CRlEoUUPVd3sJ6lW2XBu5AWrgNHRSlh0oBupXgd3cxWIB69xPOg6QjU 9 | XmvcLjBlCQJBAMidTIw4s89m4+14eY/KuXaEgxW/awLEbQP2JDCjY1wT3Ya3Ggac 10 | HIFuGdTbd2faJPxNJjoljZnatSdwY5aXFmkCQBQZM5FBnsooYys1vdKXW8uz1Imh 11 | tRqKZ0l2mD1obi2bhWml3MwKg2ghL+vWj3VqwvBo1uaeRQB4g6RW2R2fjckCQQCf 12 | FnZ0oCafa2WGlMo5qDbI8K6PGXv/9srIoHH0jC0oAKzkvuEJqtTEIw6jCOM43PoF 13 | hhyxccRH5PNRckPXULs5AkACxKEL1dN+Bx72zE8jSU4DB5arpQdGOvuVsqXgVM/5 14 | QLneJEHGPCqNFS1OkWUYLtX0S28X5GmHMEpLRLpgE9JY 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/proxy2.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = JP 10 | OU = nodejs_jp 11 | CN = proxy2 12 | emailAddress = koichik@improvement.jp 13 | 14 | [ req_attributes ] 15 | challengePassword = A challenge password 16 | 17 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/server1-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAZICCQCxEcnO8CV2kTANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJK 3 | UDESMBAGA1UECxQJbm9kZWpzX2pwMQwwCgYDVQQDEwNjYTExJTAjBgkqhkiG9w0B 4 | CQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQuanAwHhcNMTMxMjI0MTEyMzIxWhcNNDEw 5 | NTEwMTEyMzIxWjBcMQswCQYDVQQGEwJKUDESMBAGA1UECxQJbm9kZWpzX2pwMRIw 6 | EAYDVQQDEwlsb2NhbGhvc3QxJTAjBgkqhkiG9w0BCQEWFmtvaWNoaWtAaW1wcm92 7 | ZW1lbnQuanAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALYb3z6TVgD8VmV2 8 | i0IHoes/HNVz+/UgXxRoA7gTUXp4Q69HBymWwm4fG61YMn7XAjy0gyC2CX/C0S74 9 | ZzHkhq1DCXCtlXCDx5oZhSRPpa902MVdDSRR+naLA4PPFkV2pI53hsFW37M5Dhge 10 | +taFbih/dbjpOnhLD+SbkSKNTw/dAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAjDNi 11 | mdmMM8Of/8iCYISqkqCG+7fz747Ntkg5fVMPufkwrBfkD9UjYVbfIpEOkZ3L0If9 12 | 0/wNi0uZobIJnd/9B/e0cHKYnx0gkhUpMylaRvIV4odKe2vq3+mjwMb9syYXYDx3 13 | hw2qDMIIPr0S5ICeoIKXhbsYtODVxKSdJq+FjAI= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/server1-csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBwTCCASoCAQAwXDELMAkGA1UEBhMCSlAxEjAQBgNVBAsUCW5vZGVqc19qcDES 3 | MBAGA1UEAxMJbG9jYWxob3N0MSUwIwYJKoZIhvcNAQkBFhZrb2ljaGlrQGltcHJv 4 | dmVtZW50LmpwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2G98+k1YA/FZl 5 | dotCB6HrPxzVc/v1IF8UaAO4E1F6eEOvRwcplsJuHxutWDJ+1wI8tIMgtgl/wtEu 6 | +Gcx5IatQwlwrZVwg8eaGYUkT6WvdNjFXQ0kUfp2iwODzxZFdqSOd4bBVt+zOQ4Y 7 | HvrWhW4of3W46Tp4Sw/km5EijU8P3QIDAQABoCUwIwYJKoZIhvcNAQkHMRYTFEEg 8 | Y2hhbGxlbmdlIHBhc3N3b3JkMA0GCSqGSIb3DQEBBQUAA4GBAJLLYClTc1BZbQi4 9 | 2GrGEimzJoheXXD1vepECS6TaeYJFSQldMGdkn5D8TMXWW115V4hw7a1pCwvRBPH 10 | dVEeh3u3ktI1e4pS5ozvpbpYanILrHCNOQ4PvKi9rzG9Km8CprPcrJCZlWf2QUBK 11 | gVNgqZJeqyEcBu80/ajjc6xrZsSP 12 | -----END CERTIFICATE REQUEST----- 13 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/server1-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQC2G98+k1YA/FZldotCB6HrPxzVc/v1IF8UaAO4E1F6eEOvRwcp 3 | lsJuHxutWDJ+1wI8tIMgtgl/wtEu+Gcx5IatQwlwrZVwg8eaGYUkT6WvdNjFXQ0k 4 | Ufp2iwODzxZFdqSOd4bBVt+zOQ4YHvrWhW4of3W46Tp4Sw/km5EijU8P3QIDAQAB 5 | AoGAcDioz+T3gM//ZbMxidUuQMu5twgsYhg6v1aBxDOTaEcoXqEElupikn31DlNl 6 | eqiApmwOyl+jZunlAm7tGN/c5WjmZtW6watv1D7HjDIFJQBdiOv2jLeV5gsoArMP 7 | f8Y13MS68nJ7/ZkqisovjBlD7ZInbyUiJj0FH/cazauflIECQQDwHgQ0J46eL5EG 8 | 3smQQG9/8b/Wsnf8s9Vz6X/KptsbL3c7mCBY9/+cGw0xVxoUOyO7KGPzpRhtz4Y0 9 | oP+JwISxAkEAwieUtl+SuUAn6er1tZzPPiAM2w6XGOAod+HuPjTAKVhLKHYIEJbU 10 | jhPdjOGtZr10ED9g0m7M4n3JKMMM00W47QJBAOVkp7tztwpkgva/TG0lQeBHgnCI 11 | G50t6NRN1Koz8crs88nZMb4NXwMxzM7AWcfOH/qjQan4pXfy9FG/JaHibGECQH8i 12 | L+zj1E3dxsUTh+VuUv5ZOlHO0f4F+jnWBY1SOWpZWI2cDFfgjDqko3R26nbWI8Pn 13 | 3FyvFRZSS4CXiDRn+VkCQQCKPBl60QAifkZITqL0dCs+wB2hhmlWwqlpq1ZgeCby 14 | zwmZY1auUK1BYBX1aPB85+Bm2Zhp5jnkwRcO7iSYy8+C 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/server1.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = JP 10 | OU = nodejs_jp 11 | CN = localhost 12 | emailAddress = koichik@improvement.jp 13 | 14 | [ req_attributes ] 15 | challengePassword = A challenge password 16 | 17 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/server2-cert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICJzCCAZACCQCxEcnO8CV2kjANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJK 3 | UDESMBAGA1UECxQJbm9kZWpzX2pwMQwwCgYDVQQDEwNjYTExJTAjBgkqhkiG9w0B 4 | CQEWFmtvaWNoaWtAaW1wcm92ZW1lbnQuanAwHhcNMTMxMjI0MTEyMzIxWhcNNDEw 5 | NTEwMTEyMzIxWjBaMQswCQYDVQQGEwJKUDESMBAGA1UECxQJbm9kZWpzX2pwMRAw 6 | DgYDVQQDEwdzZXJ2ZXIyMSUwIwYJKoZIhvcNAQkBFhZrb2ljaGlrQGltcHJvdmVt 7 | ZW50LmpwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEkKr9SHG6jtf5UNfL 8 | u66wNi8jrbAW5keYy7ECWRGRFDE7ay4N8LDMmOO3/1eH2WpY0QM5JFxq78hoVQED 9 | ogvoeVTw+Ni33yqY6VL2WRv84FN2BmCrDGJQ83EYdsJqPUnxuXvbmq7Viw3l/BEu 10 | hvsp722KcToIrqt8mHKMc/nPRwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBALbdQz32 11 | CN0hJfJ6BtGyqee3zRSpufPY1KFV8OHSDG4qL55OfpjB5e5wsldp3VChTWzm2KM+ 12 | xg9WSWurMINM5KLgUqCZ69ttg1gJ/SnZNolXhH0I3SG/DY4DGTHo9oJPoSrgrWbX 13 | 3ZmCoO6rrDoSuVRJ8dKMWJmt8O1pZ6ZRW2iM 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/server2-csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBvzCCASgCAQAwWjELMAkGA1UEBhMCSlAxEjAQBgNVBAsUCW5vZGVqc19qcDEQ 3 | MA4GA1UEAxMHc2VydmVyMjElMCMGCSqGSIb3DQEJARYWa29pY2hpa0BpbXByb3Zl 4 | bWVudC5qcDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxJCq/Uhxuo7X+VDX 5 | y7uusDYvI62wFuZHmMuxAlkRkRQxO2suDfCwzJjjt/9Xh9lqWNEDOSRcau/IaFUB 6 | A6IL6HlU8PjYt98qmOlS9lkb/OBTdgZgqwxiUPNxGHbCaj1J8bl725qu1YsN5fwR 7 | Lob7Ke9tinE6CK6rfJhyjHP5z0cCAwEAAaAlMCMGCSqGSIb3DQEJBzEWExRBIGNo 8 | YWxsZW5nZSBwYXNzd29yZDANBgkqhkiG9w0BAQUFAAOBgQB3rCGCErgshGKEI5j9 9 | togUBwD3ul91yRFSBoV2hVGXsTOalWa0XCI+9+5QQEOBlj1pUT8eDU8ve55mX1UX 10 | AZEx+cbUQa9DNeiDAMX83GqHMD8fF2zqsY1mkg5zFKG3nhoIYSG15qXcpqAhxRpX 11 | NUQnZ4yzt2pE0aiFfkXa3PM42Q== 12 | -----END CERTIFICATE REQUEST----- 13 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/server2-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDEkKr9SHG6jtf5UNfLu66wNi8jrbAW5keYy7ECWRGRFDE7ay4N 3 | 8LDMmOO3/1eH2WpY0QM5JFxq78hoVQEDogvoeVTw+Ni33yqY6VL2WRv84FN2BmCr 4 | DGJQ83EYdsJqPUnxuXvbmq7Viw3l/BEuhvsp722KcToIrqt8mHKMc/nPRwIDAQAB 5 | AoGAQ/bRaGoYCK1DN80gEC2ApSTW/7saW5CbyNUFCw7I6CTXMPhKID/MobFraz86 6 | gJpIDxWVy7gqzD7ESG67vwnUm52ITojQiY3JH7NCNhq/39/aYZOz2d7rBv2mvhk3 7 | w7gxUsmtPVUz3s2/h1KYaGpM3b68TwMS9nIiwwHDJS1aR8ECQQDu/kOy+Z/0EVKC 8 | APgiEzbxewAiy7BVzNppd8CR/5m1KxlsIoMr8OdLqVwiJ/13m3eZGkPNx5pLJ9Xv 9 | sXER0ZcPAkEA0o19xA1AJ/v5qsRaWJaA+ftgQ8ZanqsWXhM9abAvkPdFLPKYWTfO 10 | r9f8eUDH0+O9mA2eZ2mlsEcsmIHDTY6ESQJAO2lyIvfzT5VO0Yq0JKRqMDXHnt7M 11 | A0hds4JVmPXVnDgOpdcejLniheigQs12MVmwrZrd6DYKoUxR3rhZx3g2+QJBAK/2 12 | 5fuaI1sHP+HSlbrhlUrWJd6egA+I5nma1MFmKGqb7Kki2eX+OPNGq87eL+LKuyG/ 13 | h/nfFkTbRs7x67n+eFkCQQCPgy381Vpa7lmoNUfEVeMSNe74FNL05IlPDs/BHcci 14 | 1GX9XzsFEqHLtJ5t1aWbGv39gb2WmPP3LJBsRPzLa2iQ 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/server2.cnf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | default_bits = 1024 3 | days = 9999 4 | distinguished_name = req_distinguished_name 5 | attributes = req_attributes 6 | prompt = no 7 | 8 | [ req_distinguished_name ] 9 | C = JP 10 | OU = nodejs_jp 11 | CN = server2 12 | emailAddress = koichik@improvement.jp 13 | 14 | [ req_attributes ] 15 | challengePassword = A challenge password 16 | 17 | -------------------------------------------------------------------------------- /node_modules/tunnel/test/keys/test.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var tls = require('tls'); 3 | 4 | var server1Key = fs.readFileSync(__dirname + '/server1-key.pem'); 5 | var server1Cert = fs.readFileSync(__dirname + '/server1-cert.pem'); 6 | var clientKey = fs.readFileSync(__dirname + '/client-key.pem'); 7 | var clientCert = fs.readFileSync(__dirname + '/client-cert.pem'); 8 | var ca1Cert = fs.readFileSync(__dirname + '/ca1-cert.pem'); 9 | var ca3Cert = fs.readFileSync(__dirname + '/ca3-cert.pem'); 10 | 11 | var server = tls.createServer({ 12 | key: server1Key, 13 | cert: server1Cert, 14 | ca: [ca3Cert], 15 | requestCert: true, 16 | rejectUnauthorized: true, 17 | }, function(s) { 18 | console.log('connected on server'); 19 | s.on('data', function(chunk) { 20 | console.log('S:' + chunk); 21 | s.write(chunk); 22 | }); 23 | s.setEncoding('utf8'); 24 | }).listen(3000, function() { 25 | var c = tls.connect({ 26 | host: 'localhost', 27 | port: 3000, 28 | key: clientKey, 29 | cert: clientCert, 30 | ca: [ca1Cert], 31 | rejectUnauthorized: true 32 | }, function() { 33 | console.log('connected on client'); 34 | c.on('data', function(chunk) { 35 | console.log('C:' + chunk); 36 | }); 37 | c.setEncoding('utf8'); 38 | c.write('Hello'); 39 | }); 40 | c.on('error', function(err) { 41 | console.log(err); 42 | }); 43 | }); 44 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/Handlers.d.ts: -------------------------------------------------------------------------------- 1 | export { BasicCredentialHandler } from "./handlers/basiccreds"; 2 | export { BearerCredentialHandler } from "./handlers/bearertoken"; 3 | export { NtlmCredentialHandler } from "./handlers/ntlm"; 4 | export { PersonalAccessTokenCredentialHandler } from "./handlers/personalaccesstoken"; 5 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/Handlers.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | var basiccreds_1 = require("./handlers/basiccreds"); 4 | exports.BasicCredentialHandler = basiccreds_1.BasicCredentialHandler; 5 | var bearertoken_1 = require("./handlers/bearertoken"); 6 | exports.BearerCredentialHandler = bearertoken_1.BearerCredentialHandler; 7 | var ntlm_1 = require("./handlers/ntlm"); 8 | exports.NtlmCredentialHandler = ntlm_1.NtlmCredentialHandler; 9 | var personalaccesstoken_1 = require("./handlers/personalaccesstoken"); 10 | exports.PersonalAccessTokenCredentialHandler = personalaccesstoken_1.PersonalAccessTokenCredentialHandler; 11 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/HttpClient.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import url = require("url"); 3 | import http = require("http"); 4 | import ifm = require('./Interfaces'); 5 | export declare enum HttpCodes { 6 | OK = 200, 7 | MultipleChoices = 300, 8 | MovedPermanently = 301, 9 | ResourceMoved = 302, 10 | SeeOther = 303, 11 | NotModified = 304, 12 | UseProxy = 305, 13 | SwitchProxy = 306, 14 | TemporaryRedirect = 307, 15 | PermanentRedirect = 308, 16 | BadRequest = 400, 17 | Unauthorized = 401, 18 | PaymentRequired = 402, 19 | Forbidden = 403, 20 | NotFound = 404, 21 | MethodNotAllowed = 405, 22 | NotAcceptable = 406, 23 | ProxyAuthenticationRequired = 407, 24 | RequestTimeout = 408, 25 | Conflict = 409, 26 | Gone = 410, 27 | InternalServerError = 500, 28 | NotImplemented = 501, 29 | BadGateway = 502, 30 | ServiceUnavailable = 503, 31 | GatewayTimeout = 504, 32 | } 33 | export declare class HttpClientResponse implements ifm.IHttpClientResponse { 34 | constructor(message: http.IncomingMessage); 35 | message: http.IncomingMessage; 36 | readBody(): Promise; 37 | } 38 | export interface RequestInfo { 39 | options: http.RequestOptions; 40 | parsedUrl: url.Url; 41 | httpModule: any; 42 | } 43 | export declare function isHttps(requestUrl: string): boolean; 44 | export declare class HttpClient implements ifm.IHttpClient { 45 | userAgent: string; 46 | handlers: ifm.IRequestHandler[]; 47 | requestOptions: ifm.IRequestOptions; 48 | private _ignoreSslError; 49 | private _socketTimeout; 50 | private _httpProxy; 51 | private _httpProxyBypassHosts; 52 | private _allowRedirects; 53 | private _maxRedirects; 54 | private _allowRetries; 55 | private _maxRetries; 56 | private _agent; 57 | private _proxyAgent; 58 | private _keepAlive; 59 | private _disposed; 60 | private _certConfig; 61 | private _ca; 62 | private _cert; 63 | private _key; 64 | constructor(userAgent: string, handlers?: ifm.IRequestHandler[], requestOptions?: ifm.IRequestOptions); 65 | options(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; 66 | get(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; 67 | del(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; 68 | post(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise; 69 | patch(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise; 70 | put(requestUrl: string, data: string, additionalHeaders?: ifm.IHeaders): Promise; 71 | head(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise; 72 | sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: ifm.IHeaders): Promise; 73 | /** 74 | * Makes a raw http request. 75 | * All other methods such as get, post, patch, and request ultimately call this. 76 | * Prefer get, del, post and patch 77 | */ 78 | request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: ifm.IHeaders): Promise; 79 | /** 80 | * Needs to be called if keepAlive is set to true in request options. 81 | */ 82 | dispose(): void; 83 | /** 84 | * Raw request. 85 | * @param info 86 | * @param data 87 | */ 88 | requestRaw(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream): Promise; 89 | /** 90 | * Raw request with callback. 91 | * @param info 92 | * @param data 93 | * @param onResult 94 | */ 95 | requestRawWithCallback(info: ifm.IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: ifm.IHttpClientResponse) => void): void; 96 | private _prepareRequest(method, requestUrl, headers); 97 | private _isPresigned(requestUrl); 98 | private _mergeHeaders(headers); 99 | private _getAgent(requestUrl); 100 | private _getProxy(requestUrl); 101 | private _isBypassProxy(requestUrl); 102 | private _performExponentialBackoff(retryNumber); 103 | } 104 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/Index.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Geertvdc/setup-hub/573d440a33b452e8061a7a7e9318357c6c9feb7f/node_modules/typed-rest-client/Index.d.ts -------------------------------------------------------------------------------- /node_modules/typed-rest-client/Index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/Interfaces.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import http = require("http"); 3 | import url = require("url"); 4 | export interface IHeaders { 5 | [key: string]: any; 6 | } 7 | export interface IBasicCredentials { 8 | username: string; 9 | password: string; 10 | } 11 | export interface IHttpClient { 12 | options(requestUrl: string, additionalHeaders?: IHeaders): Promise; 13 | get(requestUrl: string, additionalHeaders?: IHeaders): Promise; 14 | del(requestUrl: string, additionalHeaders?: IHeaders): Promise; 15 | post(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise; 16 | patch(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise; 17 | put(requestUrl: string, data: string, additionalHeaders?: IHeaders): Promise; 18 | sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: IHeaders): Promise; 19 | request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: IHeaders): Promise; 20 | requestRaw(info: IRequestInfo, data: string | NodeJS.ReadableStream): Promise; 21 | requestRawWithCallback(info: IRequestInfo, data: string | NodeJS.ReadableStream, onResult: (err: any, res: IHttpClientResponse) => void): void; 22 | } 23 | export interface IRequestHandler { 24 | prepareRequest(options: http.RequestOptions): void; 25 | canHandleAuthentication(response: IHttpClientResponse): boolean; 26 | handleAuthentication(httpClient: IHttpClient, requestInfo: IRequestInfo, objs: any): Promise; 27 | } 28 | export interface IHttpClientResponse { 29 | message: http.IncomingMessage; 30 | readBody(): Promise; 31 | } 32 | export interface IRequestInfo { 33 | options: http.RequestOptions; 34 | parsedUrl: url.Url; 35 | httpModule: any; 36 | } 37 | export interface IRequestOptions { 38 | headers?: IHeaders; 39 | socketTimeout?: number; 40 | ignoreSslError?: boolean; 41 | proxy?: IProxyConfiguration; 42 | cert?: ICertConfiguration; 43 | allowRedirects?: boolean; 44 | maxRedirects?: number; 45 | maxSockets?: number; 46 | keepAlive?: boolean; 47 | presignedUrlPatterns?: RegExp[]; 48 | allowRetries?: boolean; 49 | maxRetries?: number; 50 | } 51 | export interface IProxyConfiguration { 52 | proxyUrl: string; 53 | proxyUsername?: string; 54 | proxyPassword?: string; 55 | proxyBypassHosts?: string[]; 56 | } 57 | export interface ICertConfiguration { 58 | caFile?: string; 59 | certFile?: string; 60 | keyFile?: string; 61 | passphrase?: string; 62 | } 63 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/Interfaces.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | // Copyright (c) Microsoft. All rights reserved. 3 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 4 | Object.defineProperty(exports, "__esModule", { value: true }); 5 | ; 6 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/LICENSE: -------------------------------------------------------------------------------- 1 | Typed Rest Client for Node.js 2 | 3 | Copyright (c) Microsoft Corporation 4 | 5 | All rights reserved. 6 | 7 | MIT License 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 10 | associated documentation files (the "Software"), to deal in the Software without restriction, 11 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 13 | subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 18 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 19 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 21 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://dev.azure.com/ms/typed-rest-client/_apis/build/status/Microsoft.typed-rest-client?branchName=master)](https://dev.azure.com/ms/typed-rest-client/_build/latest?definitionId=42&branchName=master) 2 | 3 | # Typed REST and HTTP Client with TypeScript Typings 4 | 5 | A lightweight REST and HTTP client optimized for use with TypeScript with generics and async await. 6 | 7 | ## Features 8 | 9 | - REST and HTTP client with TypeScript generics and async/await/Promises 10 | - Typings included so no need to acquire separately (great for intellisense and no versioning drift) 11 | - Basic, Bearer and NTLM Support out of the box. Extensible handlers for others. 12 | - Proxy support 13 | - Certificate support (Self-signed server and client cert) 14 | - Redirects supported 15 | 16 | Intellisense and compile support: 17 | 18 | ![intellisense](./docs/intellisense.png) 19 | 20 | ## Install 21 | 22 | ``` 23 | npm install typed-rest-client --save 24 | ``` 25 | 26 | Or to install the latest preview: 27 | ``` 28 | npm install typed-rest-client@preview --save 29 | ``` 30 | 31 | ## Samples 32 | 33 | See the [samples](./samples) for complete coding examples. Also see the [REST](./test/tests/resttests.ts) and [HTTP](./test/tests/httptests.ts) tests for detailed examples. 34 | 35 | ## Errors 36 | 37 | ### HTTP 38 | 39 | The HTTP client does not throw unless truly exceptional. 40 | 41 | * A request that successfully executes resulting in a 404, 500 etc... will return a response object with a status code and a body. 42 | * Redirects (3xx) will be followed by default. 43 | 44 | 45 | See [HTTP tests](./test/tests/httptests.ts) for detailed examples. 46 | 47 | ### REST 48 | 49 | The REST client is a high-level client which uses the HTTP client. Its responsibility is to turn a body into a typed resource object. 50 | 51 | * A 200 will be success. 52 | * Redirects (3xx) will be followed. 53 | * A 404 will not throw but the result object will be null and the result statusCode will be set. 54 | * Other 4xx and 5xx errors will throw. The status code will be attached to the error object. If a RESTful error object is returned (`{ message: xxx}`), then the error message will be that. Otherwise, it will be a generic, `Failed Request: (xxx)`. 55 | 56 | See [REST tests](./test/tests/resttests.ts) for detailed examples. 57 | 58 | ## Debugging 59 | 60 | To enable detailed console logging of all HTTP requests and responses, set the NODE_DEBUG environment varible: 61 | 62 | ``` 63 | export NODE_DEBUG=http 64 | ``` 65 | 66 | or 67 | 68 | ``` 69 | set NODE_DEBUG=http 70 | ``` 71 | 72 | 73 | 74 | ## Node support 75 | 76 | The typed-rest-client is built using the latest LTS version of Node 8. We also support the latest LTS for Node 4 and Node 6. 77 | 78 | ## Contributing 79 | 80 | To contribute to this repository, see the [contribution guide](./CONTRIBUTING.md) 81 | 82 | To build: 83 | 84 | ```bash 85 | $ npm run build 86 | ``` 87 | 88 | To run all tests: 89 | ```bash 90 | $ npm test 91 | ``` 92 | 93 | To just run unit tests: 94 | ```bash 95 | $ npm run units 96 | ``` 97 | 98 | ## Code of Conduct 99 | 100 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. 101 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/RestClient.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import httpm = require('./HttpClient'); 3 | import ifm = require("./Interfaces"); 4 | export interface IRestResponse { 5 | statusCode: number; 6 | result: T | null; 7 | headers: Object; 8 | } 9 | export interface IRequestOptions { 10 | acceptHeader?: string; 11 | additionalHeaders?: ifm.IHeaders; 12 | responseProcessor?: Function; 13 | deserializeDates?: boolean; 14 | } 15 | export declare class RestClient { 16 | client: httpm.HttpClient; 17 | versionParam: string; 18 | /** 19 | * Creates an instance of the RestClient 20 | * @constructor 21 | * @param {string} userAgent - userAgent for requests 22 | * @param {string} baseUrl - (Optional) If not specified, use full urls per request. If supplied and a function passes a relative url, it will be appended to this 23 | * @param {ifm.IRequestHandler[]} handlers - handlers are typically auth handlers (basic, bearer, ntlm supplied) 24 | * @param {ifm.IRequestOptions} requestOptions - options for each http requests (http proxy setting, socket timeout) 25 | */ 26 | constructor(userAgent: string, baseUrl?: string, handlers?: ifm.IRequestHandler[], requestOptions?: ifm.IRequestOptions); 27 | private _baseUrl; 28 | /** 29 | * Gets a resource from an endpoint 30 | * Be aware that not found returns a null. Other error conditions reject the promise 31 | * @param {string} requestUrl - fully qualified or relative url 32 | * @param {IRequestOptions} requestOptions - (optional) requestOptions object 33 | */ 34 | options(requestUrl: string, options?: IRequestOptions): Promise>; 35 | /** 36 | * Gets a resource from an endpoint 37 | * Be aware that not found returns a null. Other error conditions reject the promise 38 | * @param {string} resource - fully qualified url or relative path 39 | * @param {IRequestOptions} requestOptions - (optional) requestOptions object 40 | */ 41 | get(resource: string, options?: IRequestOptions): Promise>; 42 | /** 43 | * Deletes a resource from an endpoint 44 | * Be aware that not found returns a null. Other error conditions reject the promise 45 | * @param {string} resource - fully qualified or relative url 46 | * @param {IRequestOptions} requestOptions - (optional) requestOptions object 47 | */ 48 | del(resource: string, options?: IRequestOptions): Promise>; 49 | /** 50 | * Creates resource(s) from an endpoint 51 | * T type of object returned. 52 | * Be aware that not found returns a null. Other error conditions reject the promise 53 | * @param {string} resource - fully qualified or relative url 54 | * @param {IRequestOptions} requestOptions - (optional) requestOptions object 55 | */ 56 | create(resource: string, resources: any, options?: IRequestOptions): Promise>; 57 | /** 58 | * Updates resource(s) from an endpoint 59 | * T type of object returned. 60 | * Be aware that not found returns a null. Other error conditions reject the promise 61 | * @param {string} resource - fully qualified or relative url 62 | * @param {IRequestOptions} requestOptions - (optional) requestOptions object 63 | */ 64 | update(resource: string, resources: any, options?: IRequestOptions): Promise>; 65 | /** 66 | * Replaces resource(s) from an endpoint 67 | * T type of object returned. 68 | * Be aware that not found returns a null. Other error conditions reject the promise 69 | * @param {string} resource - fully qualified or relative url 70 | * @param {IRequestOptions} requestOptions - (optional) requestOptions object 71 | */ 72 | replace(resource: string, resources: any, options?: IRequestOptions): Promise>; 73 | uploadStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, options?: IRequestOptions): Promise>; 74 | private _headersFromOptions(options, contentType?); 75 | private static dateTimeDeserializer(key, value); 76 | private _processResponse(res, options); 77 | } 78 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/Util.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * creates an url from a request url and optional base url (http://server:8080) 3 | * @param {string} resource - a fully qualified url or relative path 4 | * @param {string} baseUrl - an optional baseUrl (http://server:8080) 5 | * @return {string} - resultant url 6 | */ 7 | export declare function getUrl(resource: string, baseUrl?: string): string; 8 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/Util.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | // Copyright (c) Microsoft. All rights reserved. 3 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 4 | Object.defineProperty(exports, "__esModule", { value: true }); 5 | const url = require("url"); 6 | const path = require("path"); 7 | /** 8 | * creates an url from a request url and optional base url (http://server:8080) 9 | * @param {string} resource - a fully qualified url or relative path 10 | * @param {string} baseUrl - an optional baseUrl (http://server:8080) 11 | * @return {string} - resultant url 12 | */ 13 | function getUrl(resource, baseUrl) { 14 | const pathApi = path.posix || path; 15 | if (!baseUrl) { 16 | return resource; 17 | } 18 | else if (!resource) { 19 | return baseUrl; 20 | } 21 | else { 22 | const base = url.parse(baseUrl); 23 | const resultantUrl = url.parse(resource); 24 | // resource (specific per request) elements take priority 25 | resultantUrl.protocol = resultantUrl.protocol || base.protocol; 26 | resultantUrl.auth = resultantUrl.auth || base.auth; 27 | resultantUrl.host = resultantUrl.host || base.host; 28 | resultantUrl.pathname = pathApi.resolve(base.pathname, resultantUrl.pathname); 29 | if (!resultantUrl.pathname.endsWith('/') && resource.endsWith('/')) { 30 | resultantUrl.pathname += '/'; 31 | } 32 | return url.format(resultantUrl); 33 | } 34 | } 35 | exports.getUrl = getUrl; 36 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/handlers/basiccreds.d.ts: -------------------------------------------------------------------------------- 1 | import ifm = require('../Interfaces'); 2 | export declare class BasicCredentialHandler implements ifm.IRequestHandler { 3 | username: string; 4 | password: string; 5 | constructor(username: string, password: string); 6 | prepareRequest(options: any): void; 7 | canHandleAuthentication(response: ifm.IHttpClientResponse): boolean; 8 | handleAuthentication(httpClient: ifm.IHttpClient, requestInfo: ifm.IRequestInfo, objs: any): Promise; 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/handlers/basiccreds.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | // Copyright (c) Microsoft. All rights reserved. 3 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 4 | Object.defineProperty(exports, "__esModule", { value: true }); 5 | class BasicCredentialHandler { 6 | constructor(username, password) { 7 | this.username = username; 8 | this.password = password; 9 | } 10 | // currently implements pre-authorization 11 | // TODO: support preAuth = false where it hooks on 401 12 | prepareRequest(options) { 13 | options.headers['Authorization'] = 'Basic ' + new Buffer(this.username + ':' + this.password).toString('base64'); 14 | options.headers['X-TFS-FedAuthRedirect'] = 'Suppress'; 15 | } 16 | // This handler cannot handle 401 17 | canHandleAuthentication(response) { 18 | return false; 19 | } 20 | handleAuthentication(httpClient, requestInfo, objs) { 21 | return null; 22 | } 23 | } 24 | exports.BasicCredentialHandler = BasicCredentialHandler; 25 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/handlers/bearertoken.d.ts: -------------------------------------------------------------------------------- 1 | import ifm = require('../Interfaces'); 2 | export declare class BearerCredentialHandler implements ifm.IRequestHandler { 3 | token: string; 4 | constructor(token: string); 5 | prepareRequest(options: any): void; 6 | canHandleAuthentication(response: ifm.IHttpClientResponse): boolean; 7 | handleAuthentication(httpClient: ifm.IHttpClient, requestInfo: ifm.IRequestInfo, objs: any): Promise; 8 | } 9 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/handlers/bearertoken.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | // Copyright (c) Microsoft. All rights reserved. 3 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 4 | Object.defineProperty(exports, "__esModule", { value: true }); 5 | class BearerCredentialHandler { 6 | constructor(token) { 7 | this.token = token; 8 | } 9 | // currently implements pre-authorization 10 | // TODO: support preAuth = false where it hooks on 401 11 | prepareRequest(options) { 12 | options.headers['Authorization'] = 'Bearer ' + this.token; 13 | options.headers['X-TFS-FedAuthRedirect'] = 'Suppress'; 14 | } 15 | // This handler cannot handle 401 16 | canHandleAuthentication(response) { 17 | return false; 18 | } 19 | handleAuthentication(httpClient, requestInfo, objs) { 20 | return null; 21 | } 22 | } 23 | exports.BearerCredentialHandler = BearerCredentialHandler; 24 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/handlers/ntlm.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import ifm = require('../Interfaces'); 3 | import http = require("http"); 4 | export declare class NtlmCredentialHandler implements ifm.IRequestHandler { 5 | private _ntlmOptions; 6 | constructor(username: string, password: string, workstation?: string, domain?: string); 7 | prepareRequest(options: http.RequestOptions): void; 8 | canHandleAuthentication(response: ifm.IHttpClientResponse): boolean; 9 | handleAuthentication(httpClient: ifm.IHttpClient, requestInfo: ifm.IRequestInfo, objs: any): Promise; 10 | private handleAuthenticationPrivate(httpClient, requestInfo, objs, finalCallback); 11 | private sendType1Message(httpClient, requestInfo, objs, finalCallback); 12 | private sendType3Message(httpClient, requestInfo, objs, res, callback); 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/handlers/personalaccesstoken.d.ts: -------------------------------------------------------------------------------- 1 | import ifm = require('../Interfaces'); 2 | export declare class PersonalAccessTokenCredentialHandler implements ifm.IRequestHandler { 3 | token: string; 4 | constructor(token: string); 5 | prepareRequest(options: any): void; 6 | canHandleAuthentication(response: ifm.IHttpClientResponse): boolean; 7 | handleAuthentication(httpClient: ifm.IHttpClient, requestInfo: ifm.IRequestInfo, objs: any): Promise; 8 | } 9 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/handlers/personalaccesstoken.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | // Copyright (c) Microsoft. All rights reserved. 3 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. 4 | Object.defineProperty(exports, "__esModule", { value: true }); 5 | class PersonalAccessTokenCredentialHandler { 6 | constructor(token) { 7 | this.token = token; 8 | } 9 | // currently implements pre-authorization 10 | // TODO: support preAuth = false where it hooks on 401 11 | prepareRequest(options) { 12 | options.headers['Authorization'] = 'Basic ' + new Buffer('PAT:' + this.token).toString('base64'); 13 | options.headers['X-TFS-FedAuthRedirect'] = 'Suppress'; 14 | } 15 | // This handler cannot handle 401 16 | canHandleAuthentication(response) { 17 | return false; 18 | } 19 | handleAuthentication(httpClient, requestInfo, objs) { 20 | return null; 21 | } 22 | } 23 | exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; 24 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/opensource/node-http-ntlm/readme.txt: -------------------------------------------------------------------------------- 1 | // This software (ntlm.js) was copied from a file of the same name at https://github.com/SamDecrock/node-http-ntlm/blob/master/ntlm.js. 2 | // 3 | // As of this writing, it is a part of the node-http-ntlm module produced by SamDecrock. 4 | // 5 | // It is used as a part of the NTLM support provided by the vso-node-api library. 6 | // 7 | -------------------------------------------------------------------------------- /node_modules/typed-rest-client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "typed-rest-client@1.5.0", 5 | "C:\\src\\github\\geertvdc\\setup-hub" 6 | ] 7 | ], 8 | "_from": "typed-rest-client@1.5.0", 9 | "_id": "typed-rest-client@1.5.0", 10 | "_inBundle": false, 11 | "_integrity": "sha512-DVZRlmsfnTjp6ZJaatcdyvvwYwbWvR4YDNFDqb+qdTxpvaVP99YCpBkA8rxsLtAPjBVoDe4fNsnMIdZTiPuKWg==", 12 | "_location": "/typed-rest-client", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "typed-rest-client@1.5.0", 18 | "name": "typed-rest-client", 19 | "escapedName": "typed-rest-client", 20 | "rawSpec": "1.5.0", 21 | "saveSpec": null, 22 | "fetchSpec": "1.5.0" 23 | }, 24 | "_requiredBy": [ 25 | "/", 26 | "/@actions/tool-cache" 27 | ], 28 | "_resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.5.0.tgz", 29 | "_spec": "1.5.0", 30 | "_where": "C:\\src\\github\\geertvdc\\setup-hub", 31 | "author": { 32 | "name": "Microsoft Corporation" 33 | }, 34 | "bugs": { 35 | "url": "https://github.com/Microsoft/typed-rest-client/issues" 36 | }, 37 | "dependencies": { 38 | "tunnel": "0.0.4", 39 | "underscore": "1.8.3" 40 | }, 41 | "description": "Node Rest and Http Clients for use with TypeScript", 42 | "devDependencies": { 43 | "@types/mocha": "^2.2.44", 44 | "@types/node": "^6.0.92", 45 | "@types/shelljs": "0.7.4", 46 | "mocha": "^3.5.3", 47 | "nock": "9.6.1", 48 | "react-scripts": "1.1.5", 49 | "semver": "4.3.3", 50 | "shelljs": "0.7.6", 51 | "typescript": "3.1.5" 52 | }, 53 | "homepage": "https://github.com/Microsoft/typed-rest-client#readme", 54 | "keywords": [ 55 | "rest", 56 | "http", 57 | "client", 58 | "typescript", 59 | "node" 60 | ], 61 | "license": "MIT", 62 | "main": "./RestClient.js", 63 | "name": "typed-rest-client", 64 | "repository": { 65 | "type": "git", 66 | "url": "git+https://github.com/Microsoft/typed-rest-client.git" 67 | }, 68 | "scripts": { 69 | "bt": "node make.js buildtest", 70 | "build": "node make.js build", 71 | "samples": "node make.js samples", 72 | "test": "node make.js test", 73 | "units": "node make.js units", 74 | "validate": "node make.js validate" 75 | }, 76 | "version": "1.5.0" 77 | } 78 | -------------------------------------------------------------------------------- /node_modules/underscore/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative 2 | Reporters & Editors 3 | 4 | Permission is hereby granted, free of charge, to any person 5 | obtaining a copy of this software and associated documentation 6 | files (the "Software"), to deal in the Software without 7 | restriction, including without limitation the rights to use, 8 | copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 | OTHER DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /node_modules/underscore/README.md: -------------------------------------------------------------------------------- 1 | __ 2 | /\ \ __ 3 | __ __ ___ \_\ \ __ _ __ ____ ___ ___ _ __ __ /\_\ ____ 4 | /\ \/\ \ /' _ `\ /'_ \ /'__`\/\ __\/ ,__\ / ___\ / __`\/\ __\/'__`\ \/\ \ /',__\ 5 | \ \ \_\ \/\ \/\ \/\ \ \ \/\ __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\ __/ __ \ \ \/\__, `\ 6 | \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/ 7 | \/___/ \/_/\/_/\/__,_ /\/____/ \/_/ \/___/ \/____/\/___/ \/_/ \/____/\/_//\ \_\ \/___/ 8 | \ \____/ 9 | \/___/ 10 | 11 | Underscore.js is a utility-belt library for JavaScript that provides 12 | support for the usual functional suspects (each, map, reduce, filter...) 13 | without extending any core JavaScript objects. 14 | 15 | For Docs, License, Tests, and pre-packed downloads, see: 16 | http://underscorejs.org 17 | 18 | Underscore is an open-sourced component of DocumentCloud: 19 | https://github.com/documentcloud 20 | 21 | Many thanks to our contributors: 22 | https://github.com/jashkenas/underscore/contributors 23 | -------------------------------------------------------------------------------- /node_modules/underscore/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "underscore@1.8.3", 5 | "C:\\src\\github\\geertvdc\\setup-hub" 6 | ] 7 | ], 8 | "_from": "underscore@1.8.3", 9 | "_id": "underscore@1.8.3", 10 | "_inBundle": false, 11 | "_integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", 12 | "_location": "/underscore", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "underscore@1.8.3", 18 | "name": "underscore", 19 | "escapedName": "underscore", 20 | "rawSpec": "1.8.3", 21 | "saveSpec": null, 22 | "fetchSpec": "1.8.3" 23 | }, 24 | "_requiredBy": [ 25 | "/typed-rest-client" 26 | ], 27 | "_resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", 28 | "_spec": "1.8.3", 29 | "_where": "C:\\src\\github\\geertvdc\\setup-hub", 30 | "author": { 31 | "name": "Jeremy Ashkenas", 32 | "email": "jeremy@documentcloud.org" 33 | }, 34 | "bugs": { 35 | "url": "https://github.com/jashkenas/underscore/issues" 36 | }, 37 | "description": "JavaScript's functional programming helper library.", 38 | "devDependencies": { 39 | "docco": "*", 40 | "eslint": "0.6.x", 41 | "karma": "~0.12.31", 42 | "karma-qunit": "~0.1.4", 43 | "qunit-cli": "~0.2.0", 44 | "uglify-js": "2.4.x" 45 | }, 46 | "files": [ 47 | "underscore.js", 48 | "underscore-min.js", 49 | "underscore-min.map", 50 | "LICENSE" 51 | ], 52 | "homepage": "http://underscorejs.org", 53 | "keywords": [ 54 | "util", 55 | "functional", 56 | "server", 57 | "client", 58 | "browser" 59 | ], 60 | "license": "MIT", 61 | "main": "underscore.js", 62 | "name": "underscore", 63 | "repository": { 64 | "type": "git", 65 | "url": "git://github.com/jashkenas/underscore.git" 66 | }, 67 | "scripts": { 68 | "build": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/ .*/\" -m --source-map underscore-min.map -o underscore-min.js", 69 | "doc": "docco underscore.js", 70 | "lint": "eslint underscore.js test/*.js", 71 | "test": "npm run test-node && npm run lint", 72 | "test-browser": "npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start", 73 | "test-node": "qunit-cli test/*.js" 74 | }, 75 | "version": "1.8.3" 76 | } 77 | -------------------------------------------------------------------------------- /node_modules/uuid/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "env": { 4 | "browser": true, 5 | "commonjs": true, 6 | "node": true, 7 | "mocha": true 8 | }, 9 | "extends": ["eslint:recommended"], 10 | "rules": { 11 | "array-bracket-spacing": ["warn", "never"], 12 | "arrow-body-style": ["warn", "as-needed"], 13 | "arrow-parens": ["warn", "as-needed"], 14 | "arrow-spacing": "warn", 15 | "brace-style": ["warn", "1tbs"], 16 | "camelcase": "warn", 17 | "comma-spacing": ["warn", {"after": true}], 18 | "dot-notation": "warn", 19 | "eqeqeq": ["warn", "smart"], 20 | "indent": ["warn", 2, { 21 | "SwitchCase": 1, 22 | "FunctionDeclaration": {"parameters": 1}, 23 | "MemberExpression": 1, 24 | "CallExpression": {"arguments": 1} 25 | }], 26 | "key-spacing": ["warn", {"beforeColon": false, "afterColon": true, "mode": "minimum"}], 27 | "keyword-spacing": "warn", 28 | "no-console": "off", 29 | "no-empty": "off", 30 | "no-multi-spaces": "warn", 31 | "no-redeclare": "off", 32 | "no-restricted-globals": ["warn", "Promise"], 33 | "no-trailing-spaces": "warn", 34 | "no-undef": "error", 35 | "no-unused-vars": ["warn", {"args": "none"}], 36 | "one-var": ["warn", "never"], 37 | "padded-blocks": ["warn", "never"], 38 | "object-curly-spacing": ["warn", "never"], 39 | "quotes": ["warn", "single"], 40 | "react/prop-types": "off", 41 | "react/jsx-no-bind": "off", 42 | "semi": ["warn", "always"], 43 | "space-before-blocks": ["warn", "always"], 44 | "space-before-function-paren": ["warn", "never"], 45 | "space-in-parens": ["warn", "never"] 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /node_modules/uuid/AUTHORS: -------------------------------------------------------------------------------- 1 | Robert Kieffer 2 | Christoph Tavan 3 | AJ ONeal 4 | Vincent Voyer 5 | Roman Shtylman 6 | -------------------------------------------------------------------------------- /node_modules/uuid/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. 4 | 5 | 6 | ## [3.3.2](https://github.com/kelektiv/node-uuid/compare/v3.3.1...v3.3.2) (2018-06-28) 7 | 8 | 9 | ### Bug Fixes 10 | 11 | * typo ([305d877](https://github.com/kelektiv/node-uuid/commit/305d877)) 12 | 13 | 14 | 15 | 16 | ## [3.3.1](https://github.com/kelektiv/node-uuid/compare/v3.3.0...v3.3.1) (2018-06-28) 17 | 18 | 19 | ### Bug Fixes 20 | 21 | * fix [#284](https://github.com/kelektiv/node-uuid/issues/284) by setting function name in try-catch ([f2a60f2](https://github.com/kelektiv/node-uuid/commit/f2a60f2)) 22 | 23 | 24 | 25 | 26 | # [3.3.0](https://github.com/kelektiv/node-uuid/compare/v3.2.1...v3.3.0) (2018-06-22) 27 | 28 | 29 | ### Bug Fixes 30 | 31 | * assignment to readonly property to allow running in strict mode ([#270](https://github.com/kelektiv/node-uuid/issues/270)) ([d062fdc](https://github.com/kelektiv/node-uuid/commit/d062fdc)) 32 | * fix [#229](https://github.com/kelektiv/node-uuid/issues/229) ([c9684d4](https://github.com/kelektiv/node-uuid/commit/c9684d4)) 33 | * Get correct version of IE11 crypto ([#274](https://github.com/kelektiv/node-uuid/issues/274)) ([153d331](https://github.com/kelektiv/node-uuid/commit/153d331)) 34 | * mem issue when generating uuid ([#267](https://github.com/kelektiv/node-uuid/issues/267)) ([c47702c](https://github.com/kelektiv/node-uuid/commit/c47702c)) 35 | 36 | ### Features 37 | 38 | * enforce Conventional Commit style commit messages ([#282](https://github.com/kelektiv/node-uuid/issues/282)) ([cc9a182](https://github.com/kelektiv/node-uuid/commit/cc9a182)) 39 | 40 | 41 | 42 | ## [3.2.1](https://github.com/kelektiv/node-uuid/compare/v3.2.0...v3.2.1) (2018-01-16) 43 | 44 | 45 | ### Bug Fixes 46 | 47 | * use msCrypto if available. Fixes [#241](https://github.com/kelektiv/node-uuid/issues/241) ([#247](https://github.com/kelektiv/node-uuid/issues/247)) ([1fef18b](https://github.com/kelektiv/node-uuid/commit/1fef18b)) 48 | 49 | 50 | 51 | 52 | # [3.2.0](https://github.com/kelektiv/node-uuid/compare/v3.1.0...v3.2.0) (2018-01-16) 53 | 54 | 55 | ### Bug Fixes 56 | 57 | * remove mistakenly added typescript dependency, rollback version (standard-version will auto-increment) ([09fa824](https://github.com/kelektiv/node-uuid/commit/09fa824)) 58 | * use msCrypto if available. Fixes [#241](https://github.com/kelektiv/node-uuid/issues/241) ([#247](https://github.com/kelektiv/node-uuid/issues/247)) ([1fef18b](https://github.com/kelektiv/node-uuid/commit/1fef18b)) 59 | 60 | 61 | ### Features 62 | 63 | * Add v3 Support ([#217](https://github.com/kelektiv/node-uuid/issues/217)) ([d94f726](https://github.com/kelektiv/node-uuid/commit/d94f726)) 64 | 65 | 66 | # [3.1.0](https://github.com/kelektiv/node-uuid/compare/v3.1.0...v3.0.1) (2017-06-17) 67 | 68 | ### Bug Fixes 69 | 70 | * (fix) Add .npmignore file to exclude test/ and other non-essential files from packing. (#183) 71 | * Fix typo (#178) 72 | * Simple typo fix (#165) 73 | 74 | ### Features 75 | * v5 support in CLI (#197) 76 | * V5 support (#188) 77 | 78 | 79 | # 3.0.1 (2016-11-28) 80 | 81 | * split uuid versions into separate files 82 | 83 | 84 | # 3.0.0 (2016-11-17) 85 | 86 | * remove .parse and .unparse 87 | 88 | 89 | # 2.0.0 90 | 91 | * Removed uuid.BufferClass 92 | 93 | 94 | # 1.4.0 95 | 96 | * Improved module context detection 97 | * Removed public RNG functions 98 | 99 | 100 | # 1.3.2 101 | 102 | * Improve tests and handling of v1() options (Issue #24) 103 | * Expose RNG option to allow for perf testing with different generators 104 | 105 | 106 | # 1.3.0 107 | 108 | * Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)! 109 | * Support for node.js crypto API 110 | * De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code 111 | -------------------------------------------------------------------------------- /node_modules/uuid/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2010-2016 Robert Kieffer and other contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/uuid/bin/uuid: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | var assert = require('assert'); 3 | 4 | function usage() { 5 | console.log('Usage:'); 6 | console.log(' uuid'); 7 | console.log(' uuid v1'); 8 | console.log(' uuid v3 '); 9 | console.log(' uuid v4'); 10 | console.log(' uuid v5 '); 11 | console.log(' uuid --help'); 12 | console.log('\nNote: may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122'); 13 | } 14 | 15 | var args = process.argv.slice(2); 16 | 17 | if (args.indexOf('--help') >= 0) { 18 | usage(); 19 | process.exit(0); 20 | } 21 | var version = args.shift() || 'v4'; 22 | 23 | switch (version) { 24 | case 'v1': 25 | var uuidV1 = require('../v1'); 26 | console.log(uuidV1()); 27 | break; 28 | 29 | case 'v3': 30 | var uuidV3 = require('../v3'); 31 | 32 | var name = args.shift(); 33 | var namespace = args.shift(); 34 | assert(name != null, 'v3 name not specified'); 35 | assert(namespace != null, 'v3 namespace not specified'); 36 | 37 | if (namespace == 'URL') namespace = uuidV3.URL; 38 | if (namespace == 'DNS') namespace = uuidV3.DNS; 39 | 40 | console.log(uuidV3(name, namespace)); 41 | break; 42 | 43 | case 'v4': 44 | var uuidV4 = require('../v4'); 45 | console.log(uuidV4()); 46 | break; 47 | 48 | case 'v5': 49 | var uuidV5 = require('../v5'); 50 | 51 | var name = args.shift(); 52 | var namespace = args.shift(); 53 | assert(name != null, 'v5 name not specified'); 54 | assert(namespace != null, 'v5 namespace not specified'); 55 | 56 | if (namespace == 'URL') namespace = uuidV5.URL; 57 | if (namespace == 'DNS') namespace = uuidV5.DNS; 58 | 59 | console.log(uuidV5(name, namespace)); 60 | break; 61 | 62 | default: 63 | usage(); 64 | process.exit(1); 65 | } 66 | -------------------------------------------------------------------------------- /node_modules/uuid/index.js: -------------------------------------------------------------------------------- 1 | var v1 = require('./v1'); 2 | var v4 = require('./v4'); 3 | 4 | var uuid = v4; 5 | uuid.v1 = v1; 6 | uuid.v4 = v4; 7 | 8 | module.exports = uuid; 9 | -------------------------------------------------------------------------------- /node_modules/uuid/lib/bytesToUuid.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Convert array of 16 byte values to UUID string format of the form: 3 | * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 4 | */ 5 | var byteToHex = []; 6 | for (var i = 0; i < 256; ++i) { 7 | byteToHex[i] = (i + 0x100).toString(16).substr(1); 8 | } 9 | 10 | function bytesToUuid(buf, offset) { 11 | var i = offset || 0; 12 | var bth = byteToHex; 13 | // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 14 | return ([bth[buf[i++]], bth[buf[i++]], 15 | bth[buf[i++]], bth[buf[i++]], '-', 16 | bth[buf[i++]], bth[buf[i++]], '-', 17 | bth[buf[i++]], bth[buf[i++]], '-', 18 | bth[buf[i++]], bth[buf[i++]], '-', 19 | bth[buf[i++]], bth[buf[i++]], 20 | bth[buf[i++]], bth[buf[i++]], 21 | bth[buf[i++]], bth[buf[i++]]]).join(''); 22 | } 23 | 24 | module.exports = bytesToUuid; 25 | -------------------------------------------------------------------------------- /node_modules/uuid/lib/md5.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var crypto = require('crypto'); 4 | 5 | function md5(bytes) { 6 | if (typeof Buffer.from === 'function') { 7 | // Modern Buffer API 8 | if (Array.isArray(bytes)) { 9 | bytes = Buffer.from(bytes); 10 | } else if (typeof bytes === 'string') { 11 | bytes = Buffer.from(bytes, 'utf8'); 12 | } 13 | } else { 14 | // Pre-v4 Buffer API 15 | if (Array.isArray(bytes)) { 16 | bytes = new Buffer(bytes); 17 | } else if (typeof bytes === 'string') { 18 | bytes = new Buffer(bytes, 'utf8'); 19 | } 20 | } 21 | 22 | return crypto.createHash('md5').update(bytes).digest(); 23 | } 24 | 25 | module.exports = md5; 26 | -------------------------------------------------------------------------------- /node_modules/uuid/lib/rng-browser.js: -------------------------------------------------------------------------------- 1 | // Unique ID creation requires a high quality random # generator. In the 2 | // browser this is a little complicated due to unknown quality of Math.random() 3 | // and inconsistent support for the `crypto` API. We do the best we can via 4 | // feature-detection 5 | 6 | // getRandomValues needs to be invoked in a context where "this" is a Crypto 7 | // implementation. Also, find the complete implementation of crypto on IE11. 8 | var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || 9 | (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); 10 | 11 | if (getRandomValues) { 12 | // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto 13 | var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef 14 | 15 | module.exports = function whatwgRNG() { 16 | getRandomValues(rnds8); 17 | return rnds8; 18 | }; 19 | } else { 20 | // Math.random()-based (RNG) 21 | // 22 | // If all else fails, use Math.random(). It's fast, but is of unspecified 23 | // quality. 24 | var rnds = new Array(16); 25 | 26 | module.exports = function mathRNG() { 27 | for (var i = 0, r; i < 16; i++) { 28 | if ((i & 0x03) === 0) r = Math.random() * 0x100000000; 29 | rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; 30 | } 31 | 32 | return rnds; 33 | }; 34 | } 35 | -------------------------------------------------------------------------------- /node_modules/uuid/lib/rng.js: -------------------------------------------------------------------------------- 1 | // Unique ID creation requires a high quality random # generator. In node.js 2 | // this is pretty straight-forward - we use the crypto API. 3 | 4 | var crypto = require('crypto'); 5 | 6 | module.exports = function nodeRNG() { 7 | return crypto.randomBytes(16); 8 | }; 9 | -------------------------------------------------------------------------------- /node_modules/uuid/lib/sha1-browser.js: -------------------------------------------------------------------------------- 1 | // Adapted from Chris Veness' SHA1 code at 2 | // http://www.movable-type.co.uk/scripts/sha1.html 3 | 'use strict'; 4 | 5 | function f(s, x, y, z) { 6 | switch (s) { 7 | case 0: return (x & y) ^ (~x & z); 8 | case 1: return x ^ y ^ z; 9 | case 2: return (x & y) ^ (x & z) ^ (y & z); 10 | case 3: return x ^ y ^ z; 11 | } 12 | } 13 | 14 | function ROTL(x, n) { 15 | return (x << n) | (x>>> (32 - n)); 16 | } 17 | 18 | function sha1(bytes) { 19 | var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; 20 | var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; 21 | 22 | if (typeof(bytes) == 'string') { 23 | var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape 24 | bytes = new Array(msg.length); 25 | for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i); 26 | } 27 | 28 | bytes.push(0x80); 29 | 30 | var l = bytes.length/4 + 2; 31 | var N = Math.ceil(l/16); 32 | var M = new Array(N); 33 | 34 | for (var i=0; i>> 0; 66 | e = d; 67 | d = c; 68 | c = ROTL(b, 30) >>> 0; 69 | b = a; 70 | a = T; 71 | } 72 | 73 | H[0] = (H[0] + a) >>> 0; 74 | H[1] = (H[1] + b) >>> 0; 75 | H[2] = (H[2] + c) >>> 0; 76 | H[3] = (H[3] + d) >>> 0; 77 | H[4] = (H[4] + e) >>> 0; 78 | } 79 | 80 | return [ 81 | H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, 82 | H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, 83 | H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, 84 | H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, 85 | H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff 86 | ]; 87 | } 88 | 89 | module.exports = sha1; 90 | -------------------------------------------------------------------------------- /node_modules/uuid/lib/sha1.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var crypto = require('crypto'); 4 | 5 | function sha1(bytes) { 6 | if (typeof Buffer.from === 'function') { 7 | // Modern Buffer API 8 | if (Array.isArray(bytes)) { 9 | bytes = Buffer.from(bytes); 10 | } else if (typeof bytes === 'string') { 11 | bytes = Buffer.from(bytes, 'utf8'); 12 | } 13 | } else { 14 | // Pre-v4 Buffer API 15 | if (Array.isArray(bytes)) { 16 | bytes = new Buffer(bytes); 17 | } else if (typeof bytes === 'string') { 18 | bytes = new Buffer(bytes, 'utf8'); 19 | } 20 | } 21 | 22 | return crypto.createHash('sha1').update(bytes).digest(); 23 | } 24 | 25 | module.exports = sha1; 26 | -------------------------------------------------------------------------------- /node_modules/uuid/lib/v35.js: -------------------------------------------------------------------------------- 1 | var bytesToUuid = require('./bytesToUuid'); 2 | 3 | function uuidToBytes(uuid) { 4 | // Note: We assume we're being passed a valid uuid string 5 | var bytes = []; 6 | uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) { 7 | bytes.push(parseInt(hex, 16)); 8 | }); 9 | 10 | return bytes; 11 | } 12 | 13 | function stringToBytes(str) { 14 | str = unescape(encodeURIComponent(str)); // UTF8 escape 15 | var bytes = new Array(str.length); 16 | for (var i = 0; i < str.length; i++) { 17 | bytes[i] = str.charCodeAt(i); 18 | } 19 | return bytes; 20 | } 21 | 22 | module.exports = function(name, version, hashfunc) { 23 | var generateUUID = function(value, namespace, buf, offset) { 24 | var off = buf && offset || 0; 25 | 26 | if (typeof(value) == 'string') value = stringToBytes(value); 27 | if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace); 28 | 29 | if (!Array.isArray(value)) throw TypeError('value must be an array of bytes'); 30 | if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); 31 | 32 | // Per 4.3 33 | var bytes = hashfunc(namespace.concat(value)); 34 | bytes[6] = (bytes[6] & 0x0f) | version; 35 | bytes[8] = (bytes[8] & 0x3f) | 0x80; 36 | 37 | if (buf) { 38 | for (var idx = 0; idx < 16; ++idx) { 39 | buf[off+idx] = bytes[idx]; 40 | } 41 | } 42 | 43 | return buf || bytesToUuid(bytes); 44 | }; 45 | 46 | // Function#name is not settable on some platforms (#270) 47 | try { 48 | generateUUID.name = name; 49 | } catch (err) { 50 | } 51 | 52 | // Pre-defined namespaces, per Appendix C 53 | generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; 54 | generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; 55 | 56 | return generateUUID; 57 | }; 58 | -------------------------------------------------------------------------------- /node_modules/uuid/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "uuid@3.3.2", 5 | "C:\\src\\github\\geertvdc\\setup-hub" 6 | ] 7 | ], 8 | "_from": "uuid@3.3.2", 9 | "_id": "uuid@3.3.2", 10 | "_inBundle": false, 11 | "_integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", 12 | "_location": "/uuid", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "uuid@3.3.2", 18 | "name": "uuid", 19 | "escapedName": "uuid", 20 | "rawSpec": "3.3.2", 21 | "saveSpec": null, 22 | "fetchSpec": "3.3.2" 23 | }, 24 | "_requiredBy": [ 25 | "/@actions/tool-cache", 26 | "/request" 27 | ], 28 | "_resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 29 | "_spec": "3.3.2", 30 | "_where": "C:\\src\\github\\geertvdc\\setup-hub", 31 | "bin": { 32 | "uuid": "./bin/uuid" 33 | }, 34 | "browser": { 35 | "./lib/rng.js": "./lib/rng-browser.js", 36 | "./lib/sha1.js": "./lib/sha1-browser.js", 37 | "./lib/md5.js": "./lib/md5-browser.js" 38 | }, 39 | "bugs": { 40 | "url": "https://github.com/kelektiv/node-uuid/issues" 41 | }, 42 | "commitlint": { 43 | "extends": [ 44 | "@commitlint/config-conventional" 45 | ] 46 | }, 47 | "contributors": [ 48 | { 49 | "name": "Robert Kieffer", 50 | "email": "robert@broofa.com" 51 | }, 52 | { 53 | "name": "Christoph Tavan", 54 | "email": "dev@tavan.de" 55 | }, 56 | { 57 | "name": "AJ ONeal", 58 | "email": "coolaj86@gmail.com" 59 | }, 60 | { 61 | "name": "Vincent Voyer", 62 | "email": "vincent@zeroload.net" 63 | }, 64 | { 65 | "name": "Roman Shtylman", 66 | "email": "shtylman@gmail.com" 67 | } 68 | ], 69 | "description": "RFC4122 (v1, v4, and v5) UUIDs", 70 | "devDependencies": { 71 | "@commitlint/cli": "7.0.0", 72 | "@commitlint/config-conventional": "7.0.1", 73 | "eslint": "4.19.1", 74 | "husky": "0.14.3", 75 | "mocha": "5.2.0", 76 | "runmd": "1.0.1", 77 | "standard-version": "4.4.0" 78 | }, 79 | "homepage": "https://github.com/kelektiv/node-uuid#readme", 80 | "keywords": [ 81 | "uuid", 82 | "guid", 83 | "rfc4122" 84 | ], 85 | "license": "MIT", 86 | "name": "uuid", 87 | "repository": { 88 | "type": "git", 89 | "url": "git+https://github.com/kelektiv/node-uuid.git" 90 | }, 91 | "scripts": { 92 | "commitmsg": "commitlint -E GIT_PARAMS", 93 | "md": "runmd --watch --output=README.md README_js.md", 94 | "prepare": "runmd --output=README.md README_js.md", 95 | "release": "standard-version", 96 | "test": "mocha test/test.js" 97 | }, 98 | "version": "3.3.2" 99 | } 100 | -------------------------------------------------------------------------------- /node_modules/uuid/v1.js: -------------------------------------------------------------------------------- 1 | var rng = require('./lib/rng'); 2 | var bytesToUuid = require('./lib/bytesToUuid'); 3 | 4 | // **`v1()` - Generate time-based UUID** 5 | // 6 | // Inspired by https://github.com/LiosK/UUID.js 7 | // and http://docs.python.org/library/uuid.html 8 | 9 | var _nodeId; 10 | var _clockseq; 11 | 12 | // Previous uuid creation time 13 | var _lastMSecs = 0; 14 | var _lastNSecs = 0; 15 | 16 | // See https://github.com/broofa/node-uuid for API details 17 | function v1(options, buf, offset) { 18 | var i = buf && offset || 0; 19 | var b = buf || []; 20 | 21 | options = options || {}; 22 | var node = options.node || _nodeId; 23 | var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; 24 | 25 | // node and clockseq need to be initialized to random values if they're not 26 | // specified. We do this lazily to minimize issues related to insufficient 27 | // system entropy. See #189 28 | if (node == null || clockseq == null) { 29 | var seedBytes = rng(); 30 | if (node == null) { 31 | // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) 32 | node = _nodeId = [ 33 | seedBytes[0] | 0x01, 34 | seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] 35 | ]; 36 | } 37 | if (clockseq == null) { 38 | // Per 4.2.2, randomize (14 bit) clockseq 39 | clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; 40 | } 41 | } 42 | 43 | // UUID timestamps are 100 nano-second units since the Gregorian epoch, 44 | // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so 45 | // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' 46 | // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. 47 | var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); 48 | 49 | // Per 4.2.1.2, use count of uuid's generated during the current clock 50 | // cycle to simulate higher resolution clock 51 | var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; 52 | 53 | // Time since last uuid creation (in msecs) 54 | var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; 55 | 56 | // Per 4.2.1.2, Bump clockseq on clock regression 57 | if (dt < 0 && options.clockseq === undefined) { 58 | clockseq = clockseq + 1 & 0x3fff; 59 | } 60 | 61 | // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new 62 | // time interval 63 | if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { 64 | nsecs = 0; 65 | } 66 | 67 | // Per 4.2.1.2 Throw error if too many uuids are requested 68 | if (nsecs >= 10000) { 69 | throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); 70 | } 71 | 72 | _lastMSecs = msecs; 73 | _lastNSecs = nsecs; 74 | _clockseq = clockseq; 75 | 76 | // Per 4.1.4 - Convert from unix epoch to Gregorian epoch 77 | msecs += 12219292800000; 78 | 79 | // `time_low` 80 | var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; 81 | b[i++] = tl >>> 24 & 0xff; 82 | b[i++] = tl >>> 16 & 0xff; 83 | b[i++] = tl >>> 8 & 0xff; 84 | b[i++] = tl & 0xff; 85 | 86 | // `time_mid` 87 | var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; 88 | b[i++] = tmh >>> 8 & 0xff; 89 | b[i++] = tmh & 0xff; 90 | 91 | // `time_high_and_version` 92 | b[i++] = tmh >>> 24 & 0xf | 0x10; // include version 93 | b[i++] = tmh >>> 16 & 0xff; 94 | 95 | // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) 96 | b[i++] = clockseq >>> 8 | 0x80; 97 | 98 | // `clock_seq_low` 99 | b[i++] = clockseq & 0xff; 100 | 101 | // `node` 102 | for (var n = 0; n < 6; ++n) { 103 | b[i + n] = node[n]; 104 | } 105 | 106 | return buf ? buf : bytesToUuid(b); 107 | } 108 | 109 | module.exports = v1; 110 | -------------------------------------------------------------------------------- /node_modules/uuid/v3.js: -------------------------------------------------------------------------------- 1 | var v35 = require('./lib/v35.js'); 2 | var md5 = require('./lib/md5'); 3 | 4 | module.exports = v35('v3', 0x30, md5); -------------------------------------------------------------------------------- /node_modules/uuid/v4.js: -------------------------------------------------------------------------------- 1 | var rng = require('./lib/rng'); 2 | var bytesToUuid = require('./lib/bytesToUuid'); 3 | 4 | function v4(options, buf, offset) { 5 | var i = buf && offset || 0; 6 | 7 | if (typeof(options) == 'string') { 8 | buf = options === 'binary' ? new Array(16) : null; 9 | options = null; 10 | } 11 | options = options || {}; 12 | 13 | var rnds = options.random || (options.rng || rng)(); 14 | 15 | // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` 16 | rnds[6] = (rnds[6] & 0x0f) | 0x40; 17 | rnds[8] = (rnds[8] & 0x3f) | 0x80; 18 | 19 | // Copy bytes to buffer, if provided 20 | if (buf) { 21 | for (var ii = 0; ii < 16; ++ii) { 22 | buf[i + ii] = rnds[ii]; 23 | } 24 | } 25 | 26 | return buf || bytesToUuid(rnds); 27 | } 28 | 29 | module.exports = v4; 30 | -------------------------------------------------------------------------------- /node_modules/uuid/v5.js: -------------------------------------------------------------------------------- 1 | var v35 = require('./lib/v35.js'); 2 | var sha1 = require('./lib/sha1'); 3 | module.exports = v35('v5', 0x50, sha1); 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "setup-hub", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "setup hub action", 6 | "main": "lib/setup-hub.js", 7 | "scripts": { 8 | "build": "tsc", 9 | "format": "prettier --write **/*.ts", 10 | "format-check": "prettier --check **/*.ts", 11 | "test": "jest" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/geertvdc/setup-hub.git" 16 | }, 17 | "keywords": [ 18 | "actions", 19 | "node", 20 | "setup" 21 | ], 22 | "author": "Geert van der Cruijsen", 23 | "license": "MIT", 24 | "dependencies": { 25 | "@actions/core": "^1.0.0", 26 | "@actions/exec": "^1.0.0", 27 | "@actions/io": "^1.0.0", 28 | "@actions/tool-cache": "^1.0.0", 29 | "semver": "^6.1.1", 30 | "typed-rest-client": "1.5.0" 31 | }, 32 | "devDependencies": { 33 | "@types/jest": "^24.0.13", 34 | "@types/node": "^12.0.4", 35 | "@types/semver": "^6.0.0", 36 | "husky": "^3.0.0", 37 | "jest": "^24.8.0", 38 | "jest-circus": "^24.7.1", 39 | "prettier": "^1.17.1", 40 | "ts-jest": "^24.0.2", 41 | "typescript": "^3.5.1" 42 | }, 43 | "husky": { 44 | "skipCI": true, 45 | "hooks": { 46 | "pre-commit": "npm run build && npm run format", 47 | "post-commit": "npm prune --production && git add node_modules/* && git commit -m \"Husky commit correct node modules\"" 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/setup-hub.ts: -------------------------------------------------------------------------------- 1 | import * as core from '@actions/core'; 2 | import * as installer from './installer'; 3 | import * as path from 'path'; 4 | 5 | async function run() { 6 | try { 7 | let version = core.getInput('version', {required: false}) || ''; 8 | await installer.getHub(version); 9 | 10 | const matchersPath = path.join(__dirname, '..', '.github'); 11 | console.log(`##[add-matcher]${path.join(matchersPath, 'hub.json')}`); 12 | } catch (error) { 13 | core.setFailed(error.message); 14 | } 15 | } 16 | 17 | run(); 18 | --------------------------------------------------------------------------------