├── .github └── workflows │ └── main.yml ├── .gitignore ├── LICENSE ├── README.md ├── action.yml ├── lib └── main.js ├── node_modules ├── .yarn-integrity ├── @actions │ ├── core │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── lib │ │ │ ├── command.d.ts │ │ │ ├── command.js │ │ │ ├── command.js.map │ │ │ ├── core.d.ts │ │ │ ├── core.js │ │ │ ├── core.js.map │ │ │ ├── file-command.d.ts │ │ │ ├── file-command.js │ │ │ ├── file-command.js.map │ │ │ ├── oidc-utils.d.ts │ │ │ ├── oidc-utils.js │ │ │ ├── oidc-utils.js.map │ │ │ ├── path-utils.d.ts │ │ │ ├── path-utils.js │ │ │ ├── path-utils.js.map │ │ │ ├── summary.d.ts │ │ │ ├── summary.js │ │ │ ├── summary.js.map │ │ │ ├── utils.d.ts │ │ │ ├── utils.js │ │ │ └── utils.js.map │ │ └── package.json │ └── http-client │ │ ├── LICENSE │ │ ├── README.md │ │ ├── lib │ │ ├── auth.d.ts │ │ ├── auth.js │ │ ├── auth.js.map │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.js.map │ │ ├── interfaces.d.ts │ │ ├── interfaces.js │ │ ├── interfaces.js.map │ │ ├── proxy.d.ts │ │ ├── proxy.js │ │ └── proxy.js.map │ │ └── package.json ├── @types │ └── node │ │ ├── LICENSE │ │ ├── README.md │ │ ├── assert.d.ts │ │ ├── async_hooks.d.ts │ │ ├── buffer.d.ts │ │ ├── child_process.d.ts │ │ ├── cluster.d.ts │ │ ├── console.d.ts │ │ ├── constants.d.ts │ │ ├── crypto.d.ts │ │ ├── dgram.d.ts │ │ ├── dns.d.ts │ │ ├── domain.d.ts │ │ ├── events.d.ts │ │ ├── fs.d.ts │ │ ├── globals.d.ts │ │ ├── globals.global.d.ts │ │ ├── http.d.ts │ │ ├── http2.d.ts │ │ ├── https.d.ts │ │ ├── index.d.ts │ │ ├── inspector.d.ts │ │ ├── module.d.ts │ │ ├── net.d.ts │ │ ├── os.d.ts │ │ ├── package.json │ │ ├── path.d.ts │ │ ├── perf_hooks.d.ts │ │ ├── process.d.ts │ │ ├── punycode.d.ts │ │ ├── querystring.d.ts │ │ ├── readline.d.ts │ │ ├── repl.d.ts │ │ ├── stream.d.ts │ │ ├── string_decoder.d.ts │ │ ├── timers.d.ts │ │ ├── tls.d.ts │ │ ├── trace_events.d.ts │ │ ├── tty.d.ts │ │ ├── url.d.ts │ │ ├── util.d.ts │ │ ├── v8.d.ts │ │ ├── vm.d.ts │ │ ├── wasi.d.ts │ │ ├── worker_threads.d.ts │ │ └── zlib.d.ts └── tunnel │ ├── .idea │ ├── encodings.xml │ ├── modules.xml │ ├── node-tunnel.iml │ ├── vcs.xml │ └── workspace.xml │ ├── .travis.yml │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── index.js │ ├── lib │ └── tunnel.js │ └── package.json ├── package.json ├── tests └── fixtures │ └── ddevProj1 │ ├── .ddev │ └── config.yaml │ └── index.html └── yarn.lock /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | on: [push, pull_request, workflow_dispatch] 2 | name: tests 3 | 4 | jobs: 5 | test: 6 | runs-on: ${{ matrix.os }} 7 | strategy: 8 | fail-fast: false 9 | matrix: 10 | os: [ubuntu-18.04, ubuntu-20.04, ubuntu-22.04] 11 | steps: 12 | - uses: actions/checkout@v1 13 | - uses: ./ 14 | with: 15 | ddevDir: tests/fixtures/ddevProj1 16 | autostart: false 17 | - name: ddev stopped 18 | run: | 19 | cd tests/fixtures/ddevProj1 20 | test '"stopped"' = "$(ddev describe --json-output | jq '.raw.status')" 21 | - name: start ddev 22 | run: | 23 | cd tests/fixtures/ddevProj1 24 | ddev start --json-output --skip-confirmation 25 | - name: Mailhog reachable 26 | run: curl --silent --dump-header - --output /dev/null https://setup-ddev-proj1.ddev.site:8026 27 | - name: "index.html: expected output" 28 | run: test 'index.html test output' = "$(curl --silent https://setup-ddev-proj1.ddev.site)" 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | #/node_modules -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Tests](https://github.com/jonaseberle/github-action-setup-ddev/workflows/tests/badge.svg?event=push)](https://github.com/jonaseberle/github-action-setup-ddev/actions) 2 | 3 | # Deprecated 4 | 5 | We have moved here: 6 | 7 | [https://github.com/ddev/github-action-setup-ddev](https://github.com/ddev/github-action-setup-ddev) 8 | 9 | 10 | Please update your usages: 11 | 12 | ```yaml 13 | uses: ddev/github-action-setup-ddev@v1 14 | ``` 15 | 16 | 17 | # Setup and start ddev action 18 | 19 | This **Github action** starts [ddev](https://github.com/drud/ddev/) with your project's configuration from the directory `.ddev`. 20 | 21 | The idea is to reuse the same environment that you are maintaining for development anyways for automated acceptance testing, thus saving on maintaining a separate CI-configuration. 22 | 23 | Any additional services that you might have configured will be started and any post-start hooks etc. will be run. 24 | 25 | ## Example Github workflow 26 | 27 | ```yaml 28 | on: [push, pull_request] 29 | 30 | jobs: 31 | test: 32 | runs-on: ubuntu-18.04 # tested on: 18.04/20.04 33 | steps: 34 | - uses: actions/checkout@v1 35 | - uses: jonaseberle/github-action-setup-ddev@v1 36 | # example: composer install 37 | - run: ddev composer install 38 | # example: fill database 39 | - run: ddev mysql < data/db.sql 40 | # ... and so on. 41 | ``` 42 | 43 | ### Options 44 | 45 | #### ddevDir 46 | 47 | Path to your ddev project. 48 | 49 | default: `.` (root directory) 50 | 51 | ```yaml 52 | - uses: jonaseberle/github-action-setup-ddev@v1 53 | with: 54 | ddevDir: ".devbox" 55 | # run `ddev` project commands from that directory 56 | - run: ddev composer install 57 | working-directory: .devbox 58 | ``` 59 | 60 | #### autostart 61 | 62 | Starts your ddev project immediately. 63 | 64 | default: `true` 65 | 66 | ```yaml 67 | - uses: jonaseberle/github-action-setup-ddev@v1 68 | with: 69 | autostart: false 70 | ``` 71 | 72 | ## Common recipes 73 | 74 | ### SSH keys 75 | 76 | If your workflow needs to reach remote destinations that require private SSH keys, here is a snippet showing how you might add SSH keys that you have entered as Github "secrets": 77 | 78 | ``` 79 | - name: Set up SSH keys 80 | run: | 81 | mkdir -p .ddev/homeadditions/.ssh 82 | echo "${{ secrets.MY_KEY }}" > .ddev/homeadditions/.ssh/id_rsa 83 | echo "${{ secrets.MY_KNOWN_HOSTS }}" > .ddev/homeadditions/.ssh/known_hosts 84 | chmod 700 .ddev/homeadditions/.ssh 85 | chmod 600 .ddev/homeadditions/.ssh/id_rsa 86 | - name: Set up ddev 87 | uses: jonaseberle/github-action-setup-ddev@v1 88 | ``` 89 | 90 | ## Contact 91 | 92 | For **bugs** and **feature requests** use the [Github bug tracker](https://github.com/jonaseberle/github-action-setup-ddev/issues). 93 | 94 | Pull requests are very welcome. 95 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: 'Setup ddev (deprecated)' 2 | description: 'Set up your GitHub Actions workflow with ddev ' 3 | author: 'Jonas Eberle' 4 | runs: 5 | using: 'node16' 6 | main: 'lib/main.js' 7 | branding: 8 | icon: cpu 9 | color: yellow 10 | inputs: 11 | ddevDir: 12 | description: 'ddev project directory' 13 | required: false 14 | default: '.' 15 | autostart: 16 | description: 'Start ddev automatically' 17 | required: false 18 | default: true 19 | -------------------------------------------------------------------------------- /lib/main.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { 3 | if (k2 === undefined) k2 = k; 4 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); 5 | }) : (function(o, m, k, k2) { 6 | if (k2 === undefined) k2 = k; 7 | o[k2] = m[k]; 8 | })); 9 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { 10 | Object.defineProperty(o, "default", { enumerable: true, value: v }); 11 | }) : function(o, v) { 12 | o["default"] = v; 13 | }); 14 | var __importStar = (this && this.__importStar) || function (mod) { 15 | if (mod && mod.__esModule) return mod; 16 | var result = {}; 17 | if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); 18 | __setModuleDefault(result, mod); 19 | return result; 20 | }; 21 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 22 | function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 23 | return new (P || (P = Promise))(function (resolve, reject) { 24 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 25 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 26 | function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 27 | step((generator = generator.apply(thisArg, _arguments || [])).next()); 28 | }); 29 | }; 30 | Object.defineProperty(exports, "__esModule", { value: true }); 31 | const core = __importStar(require("@actions/core")); 32 | const child_process_1 = require("child_process"); 33 | const path = __importStar(require("path")); 34 | /** 35 | * Executes a shell command and return it as a Promise. 36 | */ 37 | function execShellCommand(cmd) { 38 | return new Promise((resolve, reject) => { 39 | const process = child_process_1.spawn(cmd, [], { shell: true }); 40 | let stdout = ""; 41 | process.stdout.on('data', (data) => { 42 | console.log(data.toString()); 43 | stdout += data.toString(); 44 | }); 45 | process.stderr.on('data', (data) => { 46 | console.error(data.toString()); 47 | }); 48 | process.on('exit', (code) => { 49 | if (code !== 0) { 50 | reject(new Error(code ? code.toString() : undefined)); 51 | } 52 | resolve(stdout); 53 | }); 54 | }); 55 | } 56 | function run() { 57 | return __awaiter(this, void 0, void 0, function* () { 58 | try { 59 | const ddevDir = core.getInput('ddevDir') || '.'; 60 | const autostart = core.getBooleanInput('autostart'); 61 | yield execShellCommand('echo \'dir: ' + __dirname + '\''); 62 | let cmd = 'curl -fsSL https://apt.fury.io/drud/gpg.key | sudo apt-key add -'; 63 | console.log(cmd); 64 | yield execShellCommand(cmd); 65 | cmd = 'echo "deb https://apt.fury.io/drud/ * *" | sudo tee -a /etc/apt/sources.list.d/ddev.list'; 66 | console.log(cmd); 67 | yield execShellCommand(cmd); 68 | cmd = 'sudo apt-get update && sudo apt-get install -y ddev && mkcert -install'; 69 | console.log(cmd); 70 | yield execShellCommand(cmd); 71 | cmd = 'ddev --version'; 72 | console.log(cmd); 73 | yield execShellCommand(cmd); 74 | cmd = 'ddev config global --instrumentation-opt-in=false --omit-containers=dba,ddev-ssh-agent'; 75 | console.log(cmd); 76 | yield execShellCommand(cmd); 77 | if(autostart){ 78 | if (ddevDir != '.') { 79 | cmd = 'cd ' + ddevDir + ' && ddev start'; 80 | } else { 81 | cmd = 'ddev start'; 82 | } 83 | console.log(cmd); 84 | yield execShellCommand(cmd); 85 | } 86 | } 87 | catch (error) { 88 | core.setFailed(error.message); 89 | } 90 | }); 91 | } 92 | run(); 93 | -------------------------------------------------------------------------------- /node_modules/.yarn-integrity: -------------------------------------------------------------------------------- 1 | { 2 | "systemParams": "linux-x64-83", 3 | "modulesFolders": [ 4 | "node_modules" 5 | ], 6 | "flags": [], 7 | "linkedModules": [], 8 | "topLevelPatterns": [ 9 | "@actions/core@^1.2.6", 10 | "@types/node@^12.12.47" 11 | ], 12 | "lockfileEntries": { 13 | "@actions/core@^1.2.6": "https://registry.yarnpkg.com/@actions/core/-/core-1.9.0.tgz#20c1baac5d4bd2508ba1fc3e5f3fc4b8a80d4082", 14 | "@actions/http-client@^2.0.1": "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c", 15 | "@types/node@^12.12.47": "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240", 16 | "tunnel@^0.0.6": "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" 17 | }, 18 | "files": [], 19 | "artifacts": {} 20 | } -------------------------------------------------------------------------------- /node_modules/@actions/core/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright 2019 GitHub 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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 | ### Import the package 8 | 9 | ```js 10 | // javascript 11 | const core = require('@actions/core'); 12 | 13 | // typescript 14 | import * as core from '@actions/core'; 15 | ``` 16 | 17 | #### Inputs/Outputs 18 | 19 | Action inputs can be read with `getInput` which returns a `string` or `getBooleanInput` which parses a boolean based on the [yaml 1.2 specification](https://yaml.org/spec/1.2/spec.html#id2804923). If `required` set to be false, the input should have a default value in `action.yml`. 20 | 21 | Outputs can be set with `setOutput` which makes them available to be mapped into inputs of other actions to ensure they are decoupled. 22 | 23 | ```js 24 | const myInput = core.getInput('inputName', { required: true }); 25 | const myBooleanInput = core.getBooleanInput('booleanInputName', { required: true }); 26 | const myMultilineInput = core.getMultilineInput('multilineInputName', { required: true }); 27 | core.setOutput('outputKey', 'outputVal'); 28 | ``` 29 | 30 | #### Exporting variables 31 | 32 | Since each step runs in a separate process, you can use `exportVariable` to add it to this step and future steps environment blocks. 33 | 34 | ```js 35 | core.exportVariable('envVar', 'Val'); 36 | ``` 37 | 38 | #### Setting a secret 39 | 40 | Setting a secret registers the secret with the runner to ensure it is masked in logs. 41 | 42 | ```js 43 | core.setSecret('myPassword'); 44 | ``` 45 | 46 | #### PATH Manipulation 47 | 48 | To make a tool's path available in the path for the remainder of the job (without altering the machine or containers state), use `addPath`. The runner will prepend the path given to the jobs PATH. 49 | 50 | ```js 51 | core.addPath('/path/to/mytool'); 52 | ``` 53 | 54 | #### Exit codes 55 | 56 | You should use this library to set the failing exit code for your action. If status is not set and the script runs to completion, that will lead to a success. 57 | 58 | ```js 59 | const core = require('@actions/core'); 60 | 61 | try { 62 | // Do stuff 63 | } 64 | catch (err) { 65 | // setFailed logs the message and sets a failing exit code 66 | core.setFailed(`Action failed with error ${err}`); 67 | } 68 | ``` 69 | 70 | Note that `setNeutral` is not yet implemented in actions V2 but equivalent functionality is being planned. 71 | 72 | #### Logging 73 | 74 | Finally, this library provides some utilities for logging. Note that debug logging is hidden from the logs by default. This behavior can be toggled by enabling the [Step Debug Logs](../../docs/action-debugging.md#step-debug-logs). 75 | 76 | ```js 77 | const core = require('@actions/core'); 78 | 79 | const myInput = core.getInput('input'); 80 | try { 81 | core.debug('Inside try block'); 82 | 83 | if (!myInput) { 84 | core.warning('myInput was not set'); 85 | } 86 | 87 | if (core.isDebug()) { 88 | // curl -v https://github.com 89 | } else { 90 | // curl https://github.com 91 | } 92 | 93 | // Do stuff 94 | core.info('Output to the actions build log') 95 | 96 | core.notice('This is a message that will also emit an annotation') 97 | } 98 | catch (err) { 99 | core.error(`Error ${err}, action may still succeed though`); 100 | } 101 | ``` 102 | 103 | This library can also wrap chunks of output in foldable groups. 104 | 105 | ```js 106 | const core = require('@actions/core') 107 | 108 | // Manually wrap output 109 | core.startGroup('Do some function') 110 | doSomeFunction() 111 | core.endGroup() 112 | 113 | // Wrap an asynchronous function call 114 | const result = await core.group('Do something async', async () => { 115 | const response = await doSomeHTTPRequest() 116 | return response 117 | }) 118 | ``` 119 | 120 | #### Annotations 121 | 122 | This library has 3 methods that will produce [annotations](https://docs.github.com/en/rest/reference/checks#create-a-check-run). 123 | ```js 124 | core.error('This is a bad error. This will also fail the build.') 125 | 126 | core.warning('Something went wrong, but it\'s not bad enough to fail the build.') 127 | 128 | core.notice('Something happened that you might want to know about.') 129 | ``` 130 | 131 | These will surface to the UI in the Actions page and on Pull Requests. They look something like this: 132 | 133 | ![Annotations Image](../../docs/assets/annotations.png) 134 | 135 | These annotations can also be attached to particular lines and columns of your source files to show exactly where a problem is occuring. 136 | 137 | These options are: 138 | ```typescript 139 | export interface AnnotationProperties { 140 | /** 141 | * A title for the annotation. 142 | */ 143 | title?: string 144 | 145 | /** 146 | * The name of the file for which the annotation should be created. 147 | */ 148 | file?: string 149 | 150 | /** 151 | * The start line for the annotation. 152 | */ 153 | startLine?: number 154 | 155 | /** 156 | * The end line for the annotation. Defaults to `startLine` when `startLine` is provided. 157 | */ 158 | endLine?: number 159 | 160 | /** 161 | * The start column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. 162 | */ 163 | startColumn?: number 164 | 165 | /** 166 | * The start column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. 167 | * Defaults to `startColumn` when `startColumn` is provided. 168 | */ 169 | endColumn?: number 170 | } 171 | ``` 172 | 173 | #### Styling output 174 | 175 | Colored output is supported in the Action logs via standard [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code). 3/4 bit, 8 bit and 24 bit colors are all supported. 176 | 177 | Foreground colors: 178 | 179 | ```js 180 | // 3/4 bit 181 | core.info('\u001b[35mThis foreground will be magenta') 182 | 183 | // 8 bit 184 | core.info('\u001b[38;5;6mThis foreground will be cyan') 185 | 186 | // 24 bit 187 | core.info('\u001b[38;2;255;0;0mThis foreground will be bright red') 188 | ``` 189 | 190 | Background colors: 191 | 192 | ```js 193 | // 3/4 bit 194 | core.info('\u001b[43mThis background will be yellow'); 195 | 196 | // 8 bit 197 | core.info('\u001b[48;5;6mThis background will be cyan') 198 | 199 | // 24 bit 200 | core.info('\u001b[48;2;255;0;0mThis background will be bright red') 201 | ``` 202 | 203 | Special styles: 204 | 205 | ```js 206 | core.info('\u001b[1mBold text') 207 | core.info('\u001b[3mItalic text') 208 | core.info('\u001b[4mUnderlined text') 209 | ``` 210 | 211 | ANSI escape codes can be combined with one another: 212 | 213 | ```js 214 | core.info('\u001b[31;46mRed foreground with a cyan background and \u001b[1mbold text at the end'); 215 | ``` 216 | 217 | > Note: Escape codes reset at the start of each line 218 | 219 | ```js 220 | core.info('\u001b[35mThis foreground will be magenta') 221 | core.info('This foreground will reset to the default') 222 | ``` 223 | 224 | Manually typing escape codes can be a little difficult, but you can use third party modules such as [ansi-styles](https://github.com/chalk/ansi-styles). 225 | 226 | ```js 227 | const style = require('ansi-styles'); 228 | core.info(style.color.ansi16m.hex('#abcdef') + 'Hello world!') 229 | ``` 230 | 231 | #### Action state 232 | 233 | You can use this library to save state and get state for sharing information between a given wrapper action: 234 | 235 | **action.yml**: 236 | 237 | ```yaml 238 | name: 'Wrapper action sample' 239 | inputs: 240 | name: 241 | default: 'GitHub' 242 | runs: 243 | using: 'node12' 244 | main: 'main.js' 245 | post: 'cleanup.js' 246 | ``` 247 | 248 | In action's `main.js`: 249 | 250 | ```js 251 | const core = require('@actions/core'); 252 | 253 | core.saveState("pidToKill", 12345); 254 | ``` 255 | 256 | In action's `cleanup.js`: 257 | 258 | ```js 259 | const core = require('@actions/core'); 260 | 261 | var pid = core.getState("pidToKill"); 262 | 263 | process.kill(pid); 264 | ``` 265 | 266 | #### OIDC Token 267 | 268 | You can use these methods to interact with the GitHub OIDC provider and get a JWT ID token which would help to get access token from third party cloud providers. 269 | 270 | **Method Name**: getIDToken() 271 | 272 | **Inputs** 273 | 274 | audience : optional 275 | 276 | **Outputs** 277 | 278 | A [JWT](https://jwt.io/) ID Token 279 | 280 | In action's `main.ts`: 281 | ```js 282 | const core = require('@actions/core'); 283 | async function getIDTokenAction(): Promise { 284 | 285 | const audience = core.getInput('audience', {required: false}) 286 | 287 | const id_token1 = await core.getIDToken() // ID Token with default audience 288 | const id_token2 = await core.getIDToken(audience) // ID token with custom audience 289 | 290 | // this id_token can be used to get access token from third party cloud providers 291 | } 292 | getIDTokenAction() 293 | ``` 294 | 295 | In action's `actions.yml`: 296 | 297 | ```yaml 298 | name: 'GetIDToken' 299 | description: 'Get ID token from Github OIDC provider' 300 | inputs: 301 | audience: 302 | description: 'Audience for which the ID token is intended for' 303 | required: false 304 | outputs: 305 | id_token1: 306 | description: 'ID token obtained from OIDC provider' 307 | id_token2: 308 | description: 'ID token obtained from OIDC provider' 309 | runs: 310 | using: 'node12' 311 | main: 'dist/index.js' 312 | ``` 313 | 314 | #### Filesystem path helpers 315 | 316 | You can use these methods to manipulate file paths across operating systems. 317 | 318 | The `toPosixPath` function converts input paths to Posix-style (Linux) paths. 319 | The `toWin32Path` function converts input paths to Windows-style paths. These 320 | functions work independently of the underlying runner operating system. 321 | 322 | ```js 323 | toPosixPath('\\foo\\bar') // => /foo/bar 324 | toWin32Path('/foo/bar') // => \foo\bar 325 | ``` 326 | 327 | The `toPlatformPath` function converts input paths to the expected value on the runner's operating system. 328 | 329 | ```js 330 | // On a Windows runner. 331 | toPlatformPath('/foo/bar') // => \foo\bar 332 | 333 | // On a Linux runner. 334 | toPlatformPath('\\foo\\bar') // => /foo/bar 335 | ``` 336 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/command.d.ts: -------------------------------------------------------------------------------- 1 | export interface CommandProperties { 2 | [key: string]: any; 3 | } 4 | /** 5 | * Commands 6 | * 7 | * Command Format: 8 | * ::name key=value,key=value::message 9 | * 10 | * Examples: 11 | * ::warning::This is the message 12 | * ::set-env name=MY_VAR::some value 13 | */ 14 | export declare function issueCommand(command: string, properties: CommandProperties, message: any): void; 15 | export declare function issue(name: string, message?: string): void; 16 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/command.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { 3 | if (k2 === undefined) k2 = k; 4 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); 5 | }) : (function(o, m, k, k2) { 6 | if (k2 === undefined) k2 = k; 7 | o[k2] = m[k]; 8 | })); 9 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { 10 | Object.defineProperty(o, "default", { enumerable: true, value: v }); 11 | }) : function(o, v) { 12 | o["default"] = v; 13 | }); 14 | var __importStar = (this && this.__importStar) || function (mod) { 15 | if (mod && mod.__esModule) return mod; 16 | var result = {}; 17 | if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); 18 | __setModuleDefault(result, mod); 19 | return result; 20 | }; 21 | Object.defineProperty(exports, "__esModule", { value: true }); 22 | exports.issue = exports.issueCommand = void 0; 23 | const os = __importStar(require("os")); 24 | const utils_1 = require("./utils"); 25 | /** 26 | * Commands 27 | * 28 | * Command Format: 29 | * ::name key=value,key=value::message 30 | * 31 | * Examples: 32 | * ::warning::This is the message 33 | * ::set-env name=MY_VAR::some value 34 | */ 35 | function issueCommand(command, properties, message) { 36 | const cmd = new Command(command, properties, message); 37 | process.stdout.write(cmd.toString() + os.EOL); 38 | } 39 | exports.issueCommand = issueCommand; 40 | function issue(name, message = '') { 41 | issueCommand(name, {}, message); 42 | } 43 | exports.issue = issue; 44 | const CMD_STRING = '::'; 45 | class Command { 46 | constructor(command, properties, message) { 47 | if (!command) { 48 | command = 'missing.command'; 49 | } 50 | this.command = command; 51 | this.properties = properties; 52 | this.message = message; 53 | } 54 | toString() { 55 | let cmdStr = CMD_STRING + this.command; 56 | if (this.properties && Object.keys(this.properties).length > 0) { 57 | cmdStr += ' '; 58 | let first = true; 59 | for (const key in this.properties) { 60 | if (this.properties.hasOwnProperty(key)) { 61 | const val = this.properties[key]; 62 | if (val) { 63 | if (first) { 64 | first = false; 65 | } 66 | else { 67 | cmdStr += ','; 68 | } 69 | cmdStr += `${key}=${escapeProperty(val)}`; 70 | } 71 | } 72 | } 73 | } 74 | cmdStr += `${CMD_STRING}${escapeData(this.message)}`; 75 | return cmdStr; 76 | } 77 | } 78 | function escapeData(s) { 79 | return utils_1.toCommandValue(s) 80 | .replace(/%/g, '%25') 81 | .replace(/\r/g, '%0D') 82 | .replace(/\n/g, '%0A'); 83 | } 84 | function escapeProperty(s) { 85 | return utils_1.toCommandValue(s) 86 | .replace(/%/g, '%25') 87 | .replace(/\r/g, '%0D') 88 | .replace(/\n/g, '%0A') 89 | .replace(/:/g, '%3A') 90 | .replace(/,/g, '%2C'); 91 | } 92 | //# 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,uCAAwB;AACxB,mCAAsC;AAWtC;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,UAA6B,EAC7B,OAAY;IAEZ,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,OAAO,GAAG,EAAE;IAC9C,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC;AAED,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB,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,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,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,IAAI,KAAK,EAAE;4BACT,KAAK,GAAG,KAAK,CAAA;yBACd;6BAAM;4BACL,MAAM,IAAI,GAAG,CAAA;yBACd;wBAED,MAAM,IAAI,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAA;qBAC1C;iBACF;aACF;SACF;QAED,MAAM,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;QACpD,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,UAAU,CAAC,CAAM;IACxB,OAAO,sBAAc,CAAC,CAAC,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,CAAM;IAC5B,OAAO,sBAAc,CAAC,CAAC,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,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 | /** Optional. Whether leading/trailing whitespace will be trimmed for the input. Defaults to true */ 8 | trimWhitespace?: boolean; 9 | } 10 | /** 11 | * The code to exit an action 12 | */ 13 | export declare enum ExitCode { 14 | /** 15 | * A code indicating that the action was successful 16 | */ 17 | Success = 0, 18 | /** 19 | * A code indicating that the action was a failure 20 | */ 21 | Failure = 1 22 | } 23 | /** 24 | * Optional properties that can be sent with annotatation commands (notice, error, and warning) 25 | * See: https://docs.github.com/en/rest/reference/checks#create-a-check-run for more information about annotations. 26 | */ 27 | export interface AnnotationProperties { 28 | /** 29 | * A title for the annotation. 30 | */ 31 | title?: string; 32 | /** 33 | * The path of the file for which the annotation should be created. 34 | */ 35 | file?: string; 36 | /** 37 | * The start line for the annotation. 38 | */ 39 | startLine?: number; 40 | /** 41 | * The end line for the annotation. Defaults to `startLine` when `startLine` is provided. 42 | */ 43 | endLine?: number; 44 | /** 45 | * The start column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. 46 | */ 47 | startColumn?: number; 48 | /** 49 | * The start column for the annotation. Cannot be sent when `startLine` and `endLine` are different values. 50 | * Defaults to `startColumn` when `startColumn` is provided. 51 | */ 52 | endColumn?: number; 53 | } 54 | /** 55 | * Sets env variable for this action and future actions in the job 56 | * @param name the name of the variable to set 57 | * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify 58 | */ 59 | export declare function exportVariable(name: string, val: any): void; 60 | /** 61 | * Registers a secret which will get masked from logs 62 | * @param secret value of the secret 63 | */ 64 | export declare function setSecret(secret: string): void; 65 | /** 66 | * Prepends inputPath to the PATH (for this action and future actions) 67 | * @param inputPath 68 | */ 69 | export declare function addPath(inputPath: string): void; 70 | /** 71 | * Gets the value of an input. 72 | * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. 73 | * Returns an empty string if the value is not defined. 74 | * 75 | * @param name name of the input to get 76 | * @param options optional. See InputOptions. 77 | * @returns string 78 | */ 79 | export declare function getInput(name: string, options?: InputOptions): string; 80 | /** 81 | * Gets the values of an multiline input. Each value is also trimmed. 82 | * 83 | * @param name name of the input to get 84 | * @param options optional. See InputOptions. 85 | * @returns string[] 86 | * 87 | */ 88 | export declare function getMultilineInput(name: string, options?: InputOptions): string[]; 89 | /** 90 | * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. 91 | * Support boolean input list: `true | True | TRUE | false | False | FALSE` . 92 | * The return value is also in boolean type. 93 | * ref: https://yaml.org/spec/1.2/spec.html#id2804923 94 | * 95 | * @param name name of the input to get 96 | * @param options optional. See InputOptions. 97 | * @returns boolean 98 | */ 99 | export declare function getBooleanInput(name: string, options?: InputOptions): boolean; 100 | /** 101 | * Sets the value of an output. 102 | * 103 | * @param name name of the output to set 104 | * @param value value to store. Non-string values will be converted to a string via JSON.stringify 105 | */ 106 | export declare function setOutput(name: string, value: any): void; 107 | /** 108 | * Enables or disables the echoing of commands into stdout for the rest of the step. 109 | * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. 110 | * 111 | */ 112 | export declare function setCommandEcho(enabled: boolean): void; 113 | /** 114 | * Sets the action status to failed. 115 | * When the action exits it will be with an exit code of 1 116 | * @param message add error issue message 117 | */ 118 | export declare function setFailed(message: string | Error): void; 119 | /** 120 | * Gets whether Actions Step Debug is on or not 121 | */ 122 | export declare function isDebug(): boolean; 123 | /** 124 | * Writes debug message to user log 125 | * @param message debug message 126 | */ 127 | export declare function debug(message: string): void; 128 | /** 129 | * Adds an error issue 130 | * @param message error issue message. Errors will be converted to string via toString() 131 | * @param properties optional properties to add to the annotation. 132 | */ 133 | export declare function error(message: string | Error, properties?: AnnotationProperties): void; 134 | /** 135 | * Adds a warning issue 136 | * @param message warning issue message. Errors will be converted to string via toString() 137 | * @param properties optional properties to add to the annotation. 138 | */ 139 | export declare function warning(message: string | Error, properties?: AnnotationProperties): void; 140 | /** 141 | * Adds a notice issue 142 | * @param message notice issue message. Errors will be converted to string via toString() 143 | * @param properties optional properties to add to the annotation. 144 | */ 145 | export declare function notice(message: string | Error, properties?: AnnotationProperties): void; 146 | /** 147 | * Writes info to log with console.log. 148 | * @param message info message 149 | */ 150 | export declare function info(message: string): void; 151 | /** 152 | * Begin an output group. 153 | * 154 | * Output until the next `groupEnd` will be foldable in this group 155 | * 156 | * @param name The name of the output group 157 | */ 158 | export declare function startGroup(name: string): void; 159 | /** 160 | * End an output group. 161 | */ 162 | export declare function endGroup(): void; 163 | /** 164 | * Wrap an asynchronous function call in a group. 165 | * 166 | * Returns the same type as the function itself. 167 | * 168 | * @param name The name of the group 169 | * @param fn The function to wrap in the group 170 | */ 171 | export declare function group(name: string, fn: () => Promise): Promise; 172 | /** 173 | * Saves state for current action, the state can only be retrieved by this action's post job execution. 174 | * 175 | * @param name name of the state to store 176 | * @param value value to store. Non-string values will be converted to a string via JSON.stringify 177 | */ 178 | export declare function saveState(name: string, value: any): void; 179 | /** 180 | * Gets the value of an state set by this action's main execution. 181 | * 182 | * @param name name of the state to get 183 | * @returns string 184 | */ 185 | export declare function getState(name: string): string; 186 | export declare function getIDToken(aud?: string): Promise; 187 | /** 188 | * Summary exports 189 | */ 190 | export { summary } from './summary'; 191 | /** 192 | * @deprecated use core.summary 193 | */ 194 | export { markdownSummary } from './summary'; 195 | /** 196 | * Path exports 197 | */ 198 | export { toPosixPath, toWin32Path, toPlatformPath } from './path-utils'; 199 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/core.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"} -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/file-command.d.ts: -------------------------------------------------------------------------------- 1 | export declare function issueCommand(command: string, message: any): void; 2 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/file-command.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | // For internal use, subject to change. 3 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { 4 | if (k2 === undefined) k2 = k; 5 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); 6 | }) : (function(o, m, k, k2) { 7 | if (k2 === undefined) k2 = k; 8 | o[k2] = m[k]; 9 | })); 10 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { 11 | Object.defineProperty(o, "default", { enumerable: true, value: v }); 12 | }) : function(o, v) { 13 | o["default"] = v; 14 | }); 15 | var __importStar = (this && this.__importStar) || function (mod) { 16 | if (mod && mod.__esModule) return mod; 17 | var result = {}; 18 | if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); 19 | __setModuleDefault(result, mod); 20 | return result; 21 | }; 22 | Object.defineProperty(exports, "__esModule", { value: true }); 23 | exports.issueCommand = void 0; 24 | // We use any as a valid input type 25 | /* eslint-disable @typescript-eslint/no-explicit-any */ 26 | const fs = __importStar(require("fs")); 27 | const os = __importStar(require("os")); 28 | const utils_1 = require("./utils"); 29 | function issueCommand(command, message) { 30 | const filePath = process.env[`GITHUB_${command}`]; 31 | if (!filePath) { 32 | throw new Error(`Unable to find environment variable for file command ${command}`); 33 | } 34 | if (!fs.existsSync(filePath)) { 35 | throw new Error(`Missing file at path: ${filePath}`); 36 | } 37 | fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, { 38 | encoding: 'utf8' 39 | }); 40 | } 41 | exports.issueCommand = issueCommand; 42 | //# sourceMappingURL=file-command.js.map -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/file-command.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"file-command.js","sourceRoot":"","sources":["../src/file-command.ts"],"names":[],"mappings":";AAAA,uCAAuC;;;;;;;;;;;;;;;;;;;;;;AAEvC,mCAAmC;AACnC,uDAAuD;AAEvD,uCAAwB;AACxB,uCAAwB;AACxB,mCAAsC;AAEtC,SAAgB,YAAY,CAAC,OAAe,EAAE,OAAY;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAA;IACjD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CACb,wDAAwD,OAAO,EAAE,CAClE,CAAA;KACF;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;KACrD;IAED,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,sBAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QACjE,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAA;AACJ,CAAC;AAdD,oCAcC"} -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/oidc-utils.d.ts: -------------------------------------------------------------------------------- 1 | export declare class OidcClient { 2 | private static createHttpClient; 3 | private static getRequestToken; 4 | private static getIDTokenUrl; 5 | private static getCall; 6 | static getIDToken(audience?: string): Promise; 7 | } 8 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/oidc-utils.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 3 | function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 4 | return new (P || (P = Promise))(function (resolve, reject) { 5 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 6 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 7 | function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 8 | step((generator = generator.apply(thisArg, _arguments || [])).next()); 9 | }); 10 | }; 11 | Object.defineProperty(exports, "__esModule", { value: true }); 12 | exports.OidcClient = void 0; 13 | const http_client_1 = require("@actions/http-client"); 14 | const auth_1 = require("@actions/http-client/lib/auth"); 15 | const core_1 = require("./core"); 16 | class OidcClient { 17 | static createHttpClient(allowRetry = true, maxRetry = 10) { 18 | const requestOptions = { 19 | allowRetries: allowRetry, 20 | maxRetries: maxRetry 21 | }; 22 | return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions); 23 | } 24 | static getRequestToken() { 25 | const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN']; 26 | if (!token) { 27 | throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable'); 28 | } 29 | return token; 30 | } 31 | static getIDTokenUrl() { 32 | const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL']; 33 | if (!runtimeUrl) { 34 | throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable'); 35 | } 36 | return runtimeUrl; 37 | } 38 | static getCall(id_token_url) { 39 | var _a; 40 | return __awaiter(this, void 0, void 0, function* () { 41 | const httpclient = OidcClient.createHttpClient(); 42 | const res = yield httpclient 43 | .getJson(id_token_url) 44 | .catch(error => { 45 | throw new Error(`Failed to get ID Token. \n 46 | Error Code : ${error.statusCode}\n 47 | Error Message: ${error.result.message}`); 48 | }); 49 | const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; 50 | if (!id_token) { 51 | throw new Error('Response json body do not have ID Token field'); 52 | } 53 | return id_token; 54 | }); 55 | } 56 | static getIDToken(audience) { 57 | return __awaiter(this, void 0, void 0, function* () { 58 | try { 59 | // New ID Token is requested from action service 60 | let id_token_url = OidcClient.getIDTokenUrl(); 61 | if (audience) { 62 | const encodedAudience = encodeURIComponent(audience); 63 | id_token_url = `${id_token_url}&audience=${encodedAudience}`; 64 | } 65 | core_1.debug(`ID token url is ${id_token_url}`); 66 | const id_token = yield OidcClient.getCall(id_token_url); 67 | core_1.setSecret(id_token); 68 | return id_token; 69 | } 70 | catch (error) { 71 | throw new Error(`Error message: ${error.message}`); 72 | } 73 | }); 74 | } 75 | } 76 | exports.OidcClient = OidcClient; 77 | //# sourceMappingURL=oidc-utils.js.map -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/oidc-utils.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"oidc-utils.js","sourceRoot":"","sources":["../src/oidc-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,sDAA+C;AAC/C,wDAAqE;AACrE,iCAAuC;AAKvC,MAAa,UAAU;IACb,MAAM,CAAC,gBAAgB,CAC7B,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,EAAE;QAEb,MAAM,cAAc,GAAmB;YACrC,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,QAAQ;SACrB,CAAA;QAED,OAAO,IAAI,wBAAU,CACnB,qBAAqB,EACrB,CAAC,IAAI,8BAAuB,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,EAC3D,cAAc,CACf,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,eAAe;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAC3D,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAA;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,MAAM,CAAC,aAAa;QAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC9D,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,MAAM,CAAO,OAAO,CAAC,YAAoB;;;YAC/C,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAA;YAEhD,MAAM,GAAG,GAAG,MAAM,UAAU;iBACzB,OAAO,CAAgB,YAAY,CAAC;iBACpC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,MAAM,IAAI,KAAK,CACb;uBACa,KAAK,CAAC,UAAU;yBACd,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CACtC,CAAA;YACH,CAAC,CAAC,CAAA;YAEJ,MAAM,QAAQ,SAAG,GAAG,CAAC,MAAM,0CAAE,KAAK,CAAA;YAClC,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;aACjE;YACD,OAAO,QAAQ,CAAA;;KAChB;IAED,MAAM,CAAO,UAAU,CAAC,QAAiB;;YACvC,IAAI;gBACF,gDAAgD;gBAChD,IAAI,YAAY,GAAW,UAAU,CAAC,aAAa,EAAE,CAAA;gBACrD,IAAI,QAAQ,EAAE;oBACZ,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;oBACpD,YAAY,GAAG,GAAG,YAAY,aAAa,eAAe,EAAE,CAAA;iBAC7D;gBAED,YAAK,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAA;gBAExC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;gBACvD,gBAAS,CAAC,QAAQ,CAAC,CAAA;gBACnB,OAAO,QAAQ,CAAA;aAChB;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;aACnD;QACH,CAAC;KAAA;CACF;AAzED,gCAyEC"} -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/path-utils.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * toPosixPath converts the given path to the posix form. On Windows, \\ will be 3 | * replaced with /. 4 | * 5 | * @param pth. Path to transform. 6 | * @return string Posix path. 7 | */ 8 | export declare function toPosixPath(pth: string): string; 9 | /** 10 | * toWin32Path converts the given path to the win32 form. On Linux, / will be 11 | * replaced with \\. 12 | * 13 | * @param pth. Path to transform. 14 | * @return string Win32 path. 15 | */ 16 | export declare function toWin32Path(pth: string): string; 17 | /** 18 | * toPlatformPath converts the given path to a platform-specific path. It does 19 | * this by replacing instances of / and \ with the platform-specific path 20 | * separator. 21 | * 22 | * @param pth The path to platformize. 23 | * @return string The platform-specific path. 24 | */ 25 | export declare function toPlatformPath(pth: string): string; 26 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/path-utils.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { 3 | if (k2 === undefined) k2 = k; 4 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); 5 | }) : (function(o, m, k, k2) { 6 | if (k2 === undefined) k2 = k; 7 | o[k2] = m[k]; 8 | })); 9 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { 10 | Object.defineProperty(o, "default", { enumerable: true, value: v }); 11 | }) : function(o, v) { 12 | o["default"] = v; 13 | }); 14 | var __importStar = (this && this.__importStar) || function (mod) { 15 | if (mod && mod.__esModule) return mod; 16 | var result = {}; 17 | if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); 18 | __setModuleDefault(result, mod); 19 | return result; 20 | }; 21 | Object.defineProperty(exports, "__esModule", { value: true }); 22 | exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; 23 | const path = __importStar(require("path")); 24 | /** 25 | * toPosixPath converts the given path to the posix form. On Windows, \\ will be 26 | * replaced with /. 27 | * 28 | * @param pth. Path to transform. 29 | * @return string Posix path. 30 | */ 31 | function toPosixPath(pth) { 32 | return pth.replace(/[\\]/g, '/'); 33 | } 34 | exports.toPosixPath = toPosixPath; 35 | /** 36 | * toWin32Path converts the given path to the win32 form. On Linux, / will be 37 | * replaced with \\. 38 | * 39 | * @param pth. Path to transform. 40 | * @return string Win32 path. 41 | */ 42 | function toWin32Path(pth) { 43 | return pth.replace(/[/]/g, '\\'); 44 | } 45 | exports.toWin32Path = toWin32Path; 46 | /** 47 | * toPlatformPath converts the given path to a platform-specific path. It does 48 | * this by replacing instances of / and \ with the platform-specific path 49 | * separator. 50 | * 51 | * @param pth The path to platformize. 52 | * @return string The platform-specific path. 53 | */ 54 | function toPlatformPath(pth) { 55 | return pth.replace(/[/\\]/g, path.sep); 56 | } 57 | exports.toPlatformPath = toPlatformPath; 58 | //# sourceMappingURL=path-utils.js.map -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/path-utils.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../src/path-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAE5B;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC;AAFD,kCAEC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC;AAFD,kCAEC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,GAAW;IACxC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC;AAFD,wCAEC"} -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/summary.d.ts: -------------------------------------------------------------------------------- 1 | export declare const SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY"; 2 | export declare const SUMMARY_DOCS_URL = "https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary"; 3 | export declare type SummaryTableRow = (SummaryTableCell | string)[]; 4 | export interface SummaryTableCell { 5 | /** 6 | * Cell content 7 | */ 8 | data: string; 9 | /** 10 | * Render cell as header 11 | * (optional) default: false 12 | */ 13 | header?: boolean; 14 | /** 15 | * Number of columns the cell extends 16 | * (optional) default: '1' 17 | */ 18 | colspan?: string; 19 | /** 20 | * Number of rows the cell extends 21 | * (optional) default: '1' 22 | */ 23 | rowspan?: string; 24 | } 25 | export interface SummaryImageOptions { 26 | /** 27 | * The width of the image in pixels. Must be an integer without a unit. 28 | * (optional) 29 | */ 30 | width?: string; 31 | /** 32 | * The height of the image in pixels. Must be an integer without a unit. 33 | * (optional) 34 | */ 35 | height?: string; 36 | } 37 | export interface SummaryWriteOptions { 38 | /** 39 | * Replace all existing content in summary file with buffer contents 40 | * (optional) default: false 41 | */ 42 | overwrite?: boolean; 43 | } 44 | declare class Summary { 45 | private _buffer; 46 | private _filePath?; 47 | constructor(); 48 | /** 49 | * Finds the summary file path from the environment, rejects if env var is not found or file does not exist 50 | * Also checks r/w permissions. 51 | * 52 | * @returns step summary file path 53 | */ 54 | private filePath; 55 | /** 56 | * Wraps content in an HTML tag, adding any HTML attributes 57 | * 58 | * @param {string} tag HTML tag to wrap 59 | * @param {string | null} content content within the tag 60 | * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add 61 | * 62 | * @returns {string} content wrapped in HTML element 63 | */ 64 | private wrap; 65 | /** 66 | * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. 67 | * 68 | * @param {SummaryWriteOptions} [options] (optional) options for write operation 69 | * 70 | * @returns {Promise} summary instance 71 | */ 72 | write(options?: SummaryWriteOptions): Promise; 73 | /** 74 | * Clears the summary buffer and wipes the summary file 75 | * 76 | * @returns {Summary} summary instance 77 | */ 78 | clear(): Promise; 79 | /** 80 | * Returns the current summary buffer as a string 81 | * 82 | * @returns {string} string of summary buffer 83 | */ 84 | stringify(): string; 85 | /** 86 | * If the summary buffer is empty 87 | * 88 | * @returns {boolen} true if the buffer is empty 89 | */ 90 | isEmptyBuffer(): boolean; 91 | /** 92 | * Resets the summary buffer without writing to summary file 93 | * 94 | * @returns {Summary} summary instance 95 | */ 96 | emptyBuffer(): Summary; 97 | /** 98 | * Adds raw text to the summary buffer 99 | * 100 | * @param {string} text content to add 101 | * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) 102 | * 103 | * @returns {Summary} summary instance 104 | */ 105 | addRaw(text: string, addEOL?: boolean): Summary; 106 | /** 107 | * Adds the operating system-specific end-of-line marker to the buffer 108 | * 109 | * @returns {Summary} summary instance 110 | */ 111 | addEOL(): Summary; 112 | /** 113 | * Adds an HTML codeblock to the summary buffer 114 | * 115 | * @param {string} code content to render within fenced code block 116 | * @param {string} lang (optional) language to syntax highlight code 117 | * 118 | * @returns {Summary} summary instance 119 | */ 120 | addCodeBlock(code: string, lang?: string): Summary; 121 | /** 122 | * Adds an HTML list to the summary buffer 123 | * 124 | * @param {string[]} items list of items to render 125 | * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) 126 | * 127 | * @returns {Summary} summary instance 128 | */ 129 | addList(items: string[], ordered?: boolean): Summary; 130 | /** 131 | * Adds an HTML table to the summary buffer 132 | * 133 | * @param {SummaryTableCell[]} rows table rows 134 | * 135 | * @returns {Summary} summary instance 136 | */ 137 | addTable(rows: SummaryTableRow[]): Summary; 138 | /** 139 | * Adds a collapsable HTML details element to the summary buffer 140 | * 141 | * @param {string} label text for the closed state 142 | * @param {string} content collapsable content 143 | * 144 | * @returns {Summary} summary instance 145 | */ 146 | addDetails(label: string, content: string): Summary; 147 | /** 148 | * Adds an HTML image tag to the summary buffer 149 | * 150 | * @param {string} src path to the image you to embed 151 | * @param {string} alt text description of the image 152 | * @param {SummaryImageOptions} options (optional) addition image attributes 153 | * 154 | * @returns {Summary} summary instance 155 | */ 156 | addImage(src: string, alt: string, options?: SummaryImageOptions): Summary; 157 | /** 158 | * Adds an HTML section heading element 159 | * 160 | * @param {string} text heading text 161 | * @param {number | string} [level=1] (optional) the heading level, default: 1 162 | * 163 | * @returns {Summary} summary instance 164 | */ 165 | addHeading(text: string, level?: number | string): Summary; 166 | /** 167 | * Adds an HTML thematic break (
) to the summary buffer 168 | * 169 | * @returns {Summary} summary instance 170 | */ 171 | addSeparator(): Summary; 172 | /** 173 | * Adds an HTML line break (
) to the summary buffer 174 | * 175 | * @returns {Summary} summary instance 176 | */ 177 | addBreak(): Summary; 178 | /** 179 | * Adds an HTML blockquote to the summary buffer 180 | * 181 | * @param {string} text quote text 182 | * @param {string} cite (optional) citation url 183 | * 184 | * @returns {Summary} summary instance 185 | */ 186 | addQuote(text: string, cite?: string): Summary; 187 | /** 188 | * Adds an HTML anchor tag to the summary buffer 189 | * 190 | * @param {string} text link text/content 191 | * @param {string} href hyperlink 192 | * 193 | * @returns {Summary} summary instance 194 | */ 195 | addLink(text: string, href: string): Summary; 196 | } 197 | /** 198 | * @deprecated use `core.summary` 199 | */ 200 | export declare const markdownSummary: Summary; 201 | export declare const summary: Summary; 202 | export {}; 203 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/summary.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"} -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/utils.d.ts: -------------------------------------------------------------------------------- 1 | import { AnnotationProperties } from './core'; 2 | import { CommandProperties } from './command'; 3 | /** 4 | * Sanitizes an input into a string so it can be passed into issueCommand safely 5 | * @param input input to sanitize into a string 6 | */ 7 | export declare function toCommandValue(input: any): string; 8 | /** 9 | * 10 | * @param annotationProperties 11 | * @returns The command properties to send with the actual annotation command 12 | * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 13 | */ 14 | export declare function toCommandProperties(annotationProperties: AnnotationProperties): CommandProperties; 15 | -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/utils.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | // We use any as a valid input type 3 | /* eslint-disable @typescript-eslint/no-explicit-any */ 4 | Object.defineProperty(exports, "__esModule", { value: true }); 5 | exports.toCommandProperties = exports.toCommandValue = void 0; 6 | /** 7 | * Sanitizes an input into a string so it can be passed into issueCommand safely 8 | * @param input input to sanitize into a string 9 | */ 10 | function toCommandValue(input) { 11 | if (input === null || input === undefined) { 12 | return ''; 13 | } 14 | else if (typeof input === 'string' || input instanceof String) { 15 | return input; 16 | } 17 | return JSON.stringify(input); 18 | } 19 | exports.toCommandValue = toCommandValue; 20 | /** 21 | * 22 | * @param annotationProperties 23 | * @returns The command properties to send with the actual annotation command 24 | * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 25 | */ 26 | function toCommandProperties(annotationProperties) { 27 | if (!Object.keys(annotationProperties).length) { 28 | return {}; 29 | } 30 | return { 31 | title: annotationProperties.title, 32 | file: annotationProperties.file, 33 | line: annotationProperties.startLine, 34 | endLine: annotationProperties.endLine, 35 | col: annotationProperties.startColumn, 36 | endColumn: annotationProperties.endColumn 37 | }; 38 | } 39 | exports.toCommandProperties = toCommandProperties; 40 | //# sourceMappingURL=utils.js.map -------------------------------------------------------------------------------- /node_modules/@actions/core/lib/utils.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,uDAAuD;;;AAKvD;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAU;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,OAAO,EAAE,CAAA;KACV;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE;QAC/D,OAAO,KAAe,CAAA;KACvB;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAPD,wCAOC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,oBAA0C;IAE1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE;QAC7C,OAAO,EAAE,CAAA;KACV;IAED,OAAO;QACL,KAAK,EAAE,oBAAoB,CAAC,KAAK;QACjC,IAAI,EAAE,oBAAoB,CAAC,IAAI;QAC/B,IAAI,EAAE,oBAAoB,CAAC,SAAS;QACpC,OAAO,EAAE,oBAAoB,CAAC,OAAO;QACrC,GAAG,EAAE,oBAAoB,CAAC,WAAW;QACrC,SAAS,EAAE,oBAAoB,CAAC,SAAS;KAC1C,CAAA;AACH,CAAC;AAfD,kDAeC"} -------------------------------------------------------------------------------- /node_modules/@actions/core/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@actions/core", 3 | "version": "1.9.0", 4 | "description": "Actions core lib", 5 | "keywords": [ 6 | "github", 7 | "actions", 8 | "core" 9 | ], 10 | "homepage": "https://github.com/actions/toolkit/tree/main/packages/core", 11 | "license": "MIT", 12 | "main": "lib/core.js", 13 | "types": "lib/core.d.ts", 14 | "directories": { 15 | "lib": "lib", 16 | "test": "__tests__" 17 | }, 18 | "files": [ 19 | "lib", 20 | "!.DS_Store" 21 | ], 22 | "publishConfig": { 23 | "access": "public" 24 | }, 25 | "repository": { 26 | "type": "git", 27 | "url": "git+https://github.com/actions/toolkit.git", 28 | "directory": "packages/core" 29 | }, 30 | "scripts": { 31 | "audit-moderate": "npm install && npm audit --json --audit-level=moderate > audit.json", 32 | "test": "echo \"Error: run tests from root\" && exit 1", 33 | "tsc": "tsc" 34 | }, 35 | "bugs": { 36 | "url": "https://github.com/actions/toolkit/issues" 37 | }, 38 | "dependencies": { 39 | "@actions/http-client": "^2.0.1" 40 | }, 41 | "devDependencies": { 42 | "@types/node": "^12.0.2" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /node_modules/@actions/http-client/LICENSE: -------------------------------------------------------------------------------- 1 | Actions Http Client for Node.js 2 | 3 | Copyright (c) GitHub, Inc. 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/@actions/http-client/README.md: -------------------------------------------------------------------------------- 1 | # `@actions/http-client` 2 | 3 | A lightweight HTTP client optimized for building actions. 4 | 5 | ## Features 6 | 7 | - HTTP client with TypeScript generics and async/await/Promises 8 | - Typings included! 9 | - [Proxy support](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/about-self-hosted-runners#using-a-proxy-server-with-self-hosted-runners) just works with actions and the runner 10 | - Targets ES2019 (runner runs actions with node 12+). Only supported on node 12+. 11 | - Basic, Bearer and PAT Support out of the box. Extensible handlers for others. 12 | - Redirects supported 13 | 14 | Features and releases [here](./RELEASES.md) 15 | 16 | ## Install 17 | 18 | ``` 19 | npm install @actions/http-client --save 20 | ``` 21 | 22 | ## Samples 23 | 24 | See the [tests](./__tests__) for detailed examples. 25 | 26 | ## Errors 27 | 28 | ### HTTP 29 | 30 | The HTTP client does not throw unless truly exceptional. 31 | 32 | * A request that successfully executes resulting in a 404, 500 etc... will return a response object with a status code and a body. 33 | * Redirects (3xx) will be followed by default. 34 | 35 | See the [tests](./__tests__) for detailed examples. 36 | 37 | ## Debugging 38 | 39 | To enable detailed console logging of all HTTP requests and responses, set the NODE_DEBUG environment varible: 40 | 41 | ```shell 42 | export NODE_DEBUG=http 43 | ``` 44 | 45 | ## Node support 46 | 47 | The http-client is built using the latest LTS version of Node 12. It may work on previous node LTS versions but it's tested and officially supported on Node12+. 48 | 49 | ## Support and Versioning 50 | 51 | We follow semver and will hold compatibility between major versions and increment the minor version with new features and capabilities (while holding compat). 52 | 53 | ## Contributing 54 | 55 | We welcome PRs. Please create an issue and if applicable, a design before proceeding with code. 56 | 57 | once: 58 | 59 | ``` 60 | npm install 61 | ``` 62 | 63 | To build: 64 | 65 | ``` 66 | npm run build 67 | ``` 68 | 69 | To run all tests: 70 | 71 | ``` 72 | npm test 73 | ``` 74 | -------------------------------------------------------------------------------- /node_modules/@actions/http-client/lib/auth.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import * as http from 'http'; 3 | import * as ifm from './interfaces'; 4 | import { HttpClientResponse } from './index'; 5 | export declare class BasicCredentialHandler implements ifm.RequestHandler { 6 | username: string; 7 | password: string; 8 | constructor(username: string, password: string); 9 | prepareRequest(options: http.RequestOptions): void; 10 | canHandleAuthentication(): boolean; 11 | handleAuthentication(): Promise; 12 | } 13 | export declare class BearerCredentialHandler implements ifm.RequestHandler { 14 | token: string; 15 | constructor(token: string); 16 | prepareRequest(options: http.RequestOptions): void; 17 | canHandleAuthentication(): boolean; 18 | handleAuthentication(): Promise; 19 | } 20 | export declare class PersonalAccessTokenCredentialHandler implements ifm.RequestHandler { 21 | token: string; 22 | constructor(token: string); 23 | prepareRequest(options: http.RequestOptions): void; 24 | canHandleAuthentication(): boolean; 25 | handleAuthentication(): Promise; 26 | } 27 | -------------------------------------------------------------------------------- /node_modules/@actions/http-client/lib/auth.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 3 | function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 4 | return new (P || (P = Promise))(function (resolve, reject) { 5 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 6 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 7 | function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 8 | step((generator = generator.apply(thisArg, _arguments || [])).next()); 9 | }); 10 | }; 11 | Object.defineProperty(exports, "__esModule", { value: true }); 12 | exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; 13 | class BasicCredentialHandler { 14 | constructor(username, password) { 15 | this.username = username; 16 | this.password = password; 17 | } 18 | prepareRequest(options) { 19 | if (!options.headers) { 20 | throw Error('The request has no headers'); 21 | } 22 | options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; 23 | } 24 | // This handler cannot handle 401 25 | canHandleAuthentication() { 26 | return false; 27 | } 28 | handleAuthentication() { 29 | return __awaiter(this, void 0, void 0, function* () { 30 | throw new Error('not implemented'); 31 | }); 32 | } 33 | } 34 | exports.BasicCredentialHandler = BasicCredentialHandler; 35 | class BearerCredentialHandler { 36 | constructor(token) { 37 | this.token = token; 38 | } 39 | // currently implements pre-authorization 40 | // TODO: support preAuth = false where it hooks on 401 41 | prepareRequest(options) { 42 | if (!options.headers) { 43 | throw Error('The request has no headers'); 44 | } 45 | options.headers['Authorization'] = `Bearer ${this.token}`; 46 | } 47 | // This handler cannot handle 401 48 | canHandleAuthentication() { 49 | return false; 50 | } 51 | handleAuthentication() { 52 | return __awaiter(this, void 0, void 0, function* () { 53 | throw new Error('not implemented'); 54 | }); 55 | } 56 | } 57 | exports.BearerCredentialHandler = BearerCredentialHandler; 58 | class PersonalAccessTokenCredentialHandler { 59 | constructor(token) { 60 | this.token = token; 61 | } 62 | // currently implements pre-authorization 63 | // TODO: support preAuth = false where it hooks on 401 64 | prepareRequest(options) { 65 | if (!options.headers) { 66 | throw Error('The request has no headers'); 67 | } 68 | options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; 69 | } 70 | // This handler cannot handle 401 71 | canHandleAuthentication() { 72 | return false; 73 | } 74 | handleAuthentication() { 75 | return __awaiter(this, void 0, void 0, function* () { 76 | throw new Error('not implemented'); 77 | }); 78 | } 79 | } 80 | exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; 81 | //# sourceMappingURL=auth.js.map -------------------------------------------------------------------------------- /node_modules/@actions/http-client/lib/auth.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,MAAa,sBAAsB;IAIjC,YAAY,QAAgB,EAAE,QAAgB;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,cAAc,CAAC,OAA4B;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QACD,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,MAAM,CAAC,IAAI,CACrD,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CACpC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;IACxB,CAAC;IAED,iCAAiC;IACjC,uBAAuB;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAEK,oBAAoB;;YACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;KAAA;CACF;AA1BD,wDA0BC;AAED,MAAa,uBAAuB;IAGlC,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,yCAAyC;IACzC,sDAAsD;IACtD,cAAc,CAAC,OAA4B;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QACD,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,CAAA;IAC3D,CAAC;IAED,iCAAiC;IACjC,uBAAuB;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAEK,oBAAoB;;YACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;KAAA;CACF;AAxBD,0DAwBC;AAED,MAAa,oCAAoC;IAI/C,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,yCAAyC;IACzC,sDAAsD;IACtD,cAAc,CAAC,OAA4B;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QACD,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,MAAM,CAAC,IAAI,CACrD,OAAO,IAAI,CAAC,KAAK,EAAE,CACpB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;IACxB,CAAC;IAED,iCAAiC;IACjC,uBAAuB;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAEK,oBAAoB;;YACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;KAAA;CACF;AA3BD,oFA2BC"} -------------------------------------------------------------------------------- /node_modules/@actions/http-client/lib/index.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import * as http from 'http'; 3 | import * as ifm from './interfaces'; 4 | export declare enum HttpCodes { 5 | OK = 200, 6 | MultipleChoices = 300, 7 | MovedPermanently = 301, 8 | ResourceMoved = 302, 9 | SeeOther = 303, 10 | NotModified = 304, 11 | UseProxy = 305, 12 | SwitchProxy = 306, 13 | TemporaryRedirect = 307, 14 | PermanentRedirect = 308, 15 | BadRequest = 400, 16 | Unauthorized = 401, 17 | PaymentRequired = 402, 18 | Forbidden = 403, 19 | NotFound = 404, 20 | MethodNotAllowed = 405, 21 | NotAcceptable = 406, 22 | ProxyAuthenticationRequired = 407, 23 | RequestTimeout = 408, 24 | Conflict = 409, 25 | Gone = 410, 26 | TooManyRequests = 429, 27 | InternalServerError = 500, 28 | NotImplemented = 501, 29 | BadGateway = 502, 30 | ServiceUnavailable = 503, 31 | GatewayTimeout = 504 32 | } 33 | export declare enum Headers { 34 | Accept = "accept", 35 | ContentType = "content-type" 36 | } 37 | export declare enum MediaTypes { 38 | ApplicationJson = "application/json" 39 | } 40 | /** 41 | * Returns the proxy URL, depending upon the supplied url and proxy environment variables. 42 | * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com 43 | */ 44 | export declare function getProxyUrl(serverUrl: string): string; 45 | export declare class HttpClientError extends Error { 46 | constructor(message: string, statusCode: number); 47 | statusCode: number; 48 | result?: any; 49 | } 50 | export declare class HttpClientResponse { 51 | constructor(message: http.IncomingMessage); 52 | message: http.IncomingMessage; 53 | readBody(): Promise; 54 | } 55 | export declare function isHttps(requestUrl: string): boolean; 56 | export declare class HttpClient { 57 | userAgent: string | undefined; 58 | handlers: ifm.RequestHandler[]; 59 | requestOptions: ifm.RequestOptions | undefined; 60 | private _ignoreSslError; 61 | private _socketTimeout; 62 | private _allowRedirects; 63 | private _allowRedirectDowngrade; 64 | private _maxRedirects; 65 | private _allowRetries; 66 | private _maxRetries; 67 | private _agent; 68 | private _proxyAgent; 69 | private _keepAlive; 70 | private _disposed; 71 | constructor(userAgent?: string, handlers?: ifm.RequestHandler[], requestOptions?: ifm.RequestOptions); 72 | options(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 73 | get(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 74 | del(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 75 | post(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 76 | patch(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 77 | put(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 78 | head(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 79 | sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 80 | /** 81 | * Gets a typed object from an endpoint 82 | * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise 83 | */ 84 | getJson(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise>; 85 | postJson(requestUrl: string, obj: any, additionalHeaders?: http.OutgoingHttpHeaders): Promise>; 86 | putJson(requestUrl: string, obj: any, additionalHeaders?: http.OutgoingHttpHeaders): Promise>; 87 | patchJson(requestUrl: string, obj: any, additionalHeaders?: http.OutgoingHttpHeaders): Promise>; 88 | /** 89 | * Makes a raw http request. 90 | * All other methods such as get, post, patch, and request ultimately call this. 91 | * Prefer get, del, post and patch 92 | */ 93 | request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream | null, headers?: http.OutgoingHttpHeaders): Promise; 94 | /** 95 | * Needs to be called if keepAlive is set to true in request options. 96 | */ 97 | dispose(): void; 98 | /** 99 | * Raw request. 100 | * @param info 101 | * @param data 102 | */ 103 | requestRaw(info: ifm.RequestInfo, data: string | NodeJS.ReadableStream | null): Promise; 104 | /** 105 | * Raw request with callback. 106 | * @param info 107 | * @param data 108 | * @param onResult 109 | */ 110 | requestRawWithCallback(info: ifm.RequestInfo, data: string | NodeJS.ReadableStream | null, onResult: (err?: Error, res?: HttpClientResponse) => void): void; 111 | /** 112 | * Gets an http agent. This function is useful when you need an http agent that handles 113 | * routing through a proxy server - depending upon the url and proxy environment variables. 114 | * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com 115 | */ 116 | getAgent(serverUrl: string): http.Agent; 117 | private _prepareRequest; 118 | private _mergeHeaders; 119 | private _getExistingOrDefaultHeader; 120 | private _getAgent; 121 | private _performExponentialBackoff; 122 | private _processResponse; 123 | } 124 | -------------------------------------------------------------------------------- /node_modules/@actions/http-client/lib/interfaces.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import * as http from 'http'; 3 | import * as https from 'https'; 4 | import { HttpClientResponse } from './index'; 5 | export interface HttpClient { 6 | options(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 7 | get(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 8 | del(requestUrl: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 9 | post(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 10 | patch(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 11 | put(requestUrl: string, data: string, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 12 | sendStream(verb: string, requestUrl: string, stream: NodeJS.ReadableStream, additionalHeaders?: http.OutgoingHttpHeaders): Promise; 13 | request(verb: string, requestUrl: string, data: string | NodeJS.ReadableStream, headers: http.OutgoingHttpHeaders): Promise; 14 | requestRaw(info: RequestInfo, data: string | NodeJS.ReadableStream): Promise; 15 | requestRawWithCallback(info: RequestInfo, data: string | NodeJS.ReadableStream, onResult: (err?: Error, res?: HttpClientResponse) => void): void; 16 | } 17 | export interface RequestHandler { 18 | prepareRequest(options: http.RequestOptions): void; 19 | canHandleAuthentication(response: HttpClientResponse): boolean; 20 | handleAuthentication(httpClient: HttpClient, requestInfo: RequestInfo, data: string | NodeJS.ReadableStream | null): Promise; 21 | } 22 | export interface RequestInfo { 23 | options: http.RequestOptions; 24 | parsedUrl: URL; 25 | httpModule: typeof http | typeof https; 26 | } 27 | export interface RequestOptions { 28 | headers?: http.OutgoingHttpHeaders; 29 | socketTimeout?: number; 30 | ignoreSslError?: boolean; 31 | allowRedirects?: boolean; 32 | allowRedirectDowngrade?: boolean; 33 | maxRedirects?: number; 34 | maxSockets?: number; 35 | keepAlive?: boolean; 36 | deserializeDates?: boolean; 37 | allowRetries?: boolean; 38 | maxRetries?: number; 39 | } 40 | export interface TypedResponse { 41 | statusCode: number; 42 | result: T | null; 43 | headers: http.IncomingHttpHeaders; 44 | } 45 | -------------------------------------------------------------------------------- /node_modules/@actions/http-client/lib/interfaces.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | //# sourceMappingURL=interfaces.js.map -------------------------------------------------------------------------------- /node_modules/@actions/http-client/lib/interfaces.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""} -------------------------------------------------------------------------------- /node_modules/@actions/http-client/lib/proxy.d.ts: -------------------------------------------------------------------------------- 1 | export declare function getProxyUrl(reqUrl: URL): URL | undefined; 2 | export declare function checkBypass(reqUrl: URL): boolean; 3 | -------------------------------------------------------------------------------- /node_modules/@actions/http-client/lib/proxy.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.checkBypass = exports.getProxyUrl = void 0; 4 | function getProxyUrl(reqUrl) { 5 | const usingSsl = reqUrl.protocol === 'https:'; 6 | if (checkBypass(reqUrl)) { 7 | return undefined; 8 | } 9 | const proxyVar = (() => { 10 | if (usingSsl) { 11 | return process.env['https_proxy'] || process.env['HTTPS_PROXY']; 12 | } 13 | else { 14 | return process.env['http_proxy'] || process.env['HTTP_PROXY']; 15 | } 16 | })(); 17 | if (proxyVar) { 18 | return new URL(proxyVar); 19 | } 20 | else { 21 | return undefined; 22 | } 23 | } 24 | exports.getProxyUrl = getProxyUrl; 25 | function checkBypass(reqUrl) { 26 | if (!reqUrl.hostname) { 27 | return false; 28 | } 29 | const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; 30 | if (!noProxy) { 31 | return false; 32 | } 33 | // Determine the request port 34 | let reqPort; 35 | if (reqUrl.port) { 36 | reqPort = Number(reqUrl.port); 37 | } 38 | else if (reqUrl.protocol === 'http:') { 39 | reqPort = 80; 40 | } 41 | else if (reqUrl.protocol === 'https:') { 42 | reqPort = 443; 43 | } 44 | // Format the request hostname and hostname with port 45 | const upperReqHosts = [reqUrl.hostname.toUpperCase()]; 46 | if (typeof reqPort === 'number') { 47 | upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); 48 | } 49 | // Compare request host against noproxy 50 | for (const upperNoProxyItem of noProxy 51 | .split(',') 52 | .map(x => x.trim().toUpperCase()) 53 | .filter(x => x)) { 54 | if (upperReqHosts.some(x => x === upperNoProxyItem)) { 55 | return true; 56 | } 57 | } 58 | return false; 59 | } 60 | exports.checkBypass = checkBypass; 61 | //# sourceMappingURL=proxy.js.map -------------------------------------------------------------------------------- /node_modules/@actions/http-client/lib/proxy.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":";;;AAAA,SAAgB,WAAW,CAAC,MAAW;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAA;IAE7C,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;QACvB,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,QAAQ,EAAE;YACZ,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;SAChE;aAAM;YACL,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;SAC9D;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,QAAQ,EAAE;QACZ,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;KACzB;SAAM;QACL,OAAO,SAAS,CAAA;KACjB;AACH,CAAC;AApBD,kCAoBC;AAED,SAAgB,WAAW,CAAC,MAAW;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpB,OAAO,KAAK,CAAA;KACb;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;IACxE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,KAAK,CAAA;KACb;IAED,6BAA6B;IAC7B,IAAI,OAA2B,CAAA;IAC/B,IAAI,MAAM,CAAC,IAAI,EAAE;QACf,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KAC9B;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE;QACtC,OAAO,GAAG,EAAE,CAAA;KACb;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;QACvC,OAAO,GAAG,GAAG,CAAA;KACd;IAED,qDAAqD;IACrD,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;IACrD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAA;KACrD;IAED,uCAAuC;IACvC,KAAK,MAAM,gBAAgB,IAAI,OAAO;SACnC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACjB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAC,EAAE;YACnD,OAAO,IAAI,CAAA;SACZ;KACF;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AArCD,kCAqCC"} -------------------------------------------------------------------------------- /node_modules/@actions/http-client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@actions/http-client", 3 | "version": "2.0.1", 4 | "description": "Actions Http Client", 5 | "keywords": [ 6 | "github", 7 | "actions", 8 | "http" 9 | ], 10 | "homepage": "https://github.com/actions/toolkit/tree/main/packages/http-client", 11 | "license": "MIT", 12 | "main": "lib/index.js", 13 | "types": "lib/index.d.ts", 14 | "directories": { 15 | "lib": "lib", 16 | "test": "__tests__" 17 | }, 18 | "files": [ 19 | "lib", 20 | "!.DS_Store" 21 | ], 22 | "publishConfig": { 23 | "access": "public" 24 | }, 25 | "repository": { 26 | "type": "git", 27 | "url": "git+https://github.com/actions/toolkit.git", 28 | "directory": "packages/http-client" 29 | }, 30 | "scripts": { 31 | "audit-moderate": "npm install && npm audit --json --audit-level=moderate > audit.json", 32 | "test": "echo \"Error: run tests from root\" && exit 1", 33 | "build": "tsc", 34 | "format": "prettier --write **/*.ts", 35 | "format-check": "prettier --check **/*.ts", 36 | "tsc": "tsc" 37 | }, 38 | "bugs": { 39 | "url": "https://github.com/actions/toolkit/issues" 40 | }, 41 | "devDependencies": { 42 | "@types/tunnel": "0.0.3", 43 | "proxy": "^1.0.1" 44 | }, 45 | "dependencies": { 46 | "tunnel": "^0.0.6" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /node_modules/@types/node/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Microsoft Corporation. 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/@types/node/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | > `npm install --save @types/node` 3 | 4 | # Summary 5 | This package contains type definitions for Node.js (https://nodejs.org/). 6 | 7 | # Details 8 | Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node/v12. 9 | 10 | ### Additional Details 11 | * Last updated: Tue, 07 Jun 2022 19:01:37 GMT 12 | * Dependencies: none 13 | * Global values: `Buffer`, `NodeJS`, `__dirname`, `__filename`, `clearImmediate`, `clearInterval`, `clearTimeout`, `console`, `exports`, `global`, `module`, `process`, `queueMicrotask`, `require`, `setImmediate`, `setInterval`, `setTimeout` 14 | 15 | # Credits 16 | These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Hoàng Văn Khải](https://github.com/KSXGitHub), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Zane Hannan AU](https://github.com/ZaneHannanAU), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), and [ExE Boss](https://github.com/ExE-Boss). 17 | -------------------------------------------------------------------------------- /node_modules/@types/node/assert.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'assert' { 2 | function assert(value: any, message?: string | Error): asserts value; 3 | namespace assert { 4 | class AssertionError implements Error { 5 | name: string; 6 | message: string; 7 | actual: any; 8 | expected: any; 9 | operator: string; 10 | generatedMessage: boolean; 11 | code: 'ERR_ASSERTION'; 12 | 13 | constructor(options?: { 14 | message?: string | undefined; 15 | actual?: any; 16 | expected?: any; 17 | operator?: string | undefined; 18 | // tslint:disable-next-line:ban-types 19 | stackStartFn?: Function | undefined; 20 | }); 21 | } 22 | 23 | class CallTracker { 24 | calls(exact?: number): () => void; 25 | calls any>(fn?: Func, exact?: number): Func; 26 | report(): CallTrackerReportInformation[]; 27 | verify(): void; 28 | } 29 | interface CallTrackerReportInformation { 30 | message: string; 31 | /** The actual number of times the function was called. */ 32 | actual: number; 33 | /** The number of times the function was expected to be called. */ 34 | expected: number; 35 | /** The name of the function that is wrapped. */ 36 | operator: string; 37 | /** A stack trace of the function. */ 38 | stack: object; 39 | } 40 | 41 | type AssertPredicate = RegExp | (new () => object) | ((thrown: any) => boolean) | object | Error; 42 | 43 | function fail(message?: string | Error): never; 44 | /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */ 45 | function fail( 46 | actual: any, 47 | expected: any, 48 | message?: string | Error, 49 | operator?: string, 50 | // tslint:disable-next-line:ban-types 51 | stackStartFn?: Function, 52 | ): never; 53 | function ok(value: any, message?: string | Error): asserts value; 54 | /** @deprecated since v9.9.0 - use strictEqual() instead. */ 55 | function equal(actual: any, expected: any, message?: string | Error): void; 56 | /** @deprecated since v9.9.0 - use notStrictEqual() instead. */ 57 | function notEqual(actual: any, expected: any, message?: string | Error): void; 58 | /** @deprecated since v9.9.0 - use deepStrictEqual() instead. */ 59 | function deepEqual(actual: any, expected: any, message?: string | Error): void; 60 | /** @deprecated since v9.9.0 - use notDeepStrictEqual() instead. */ 61 | function notDeepEqual(actual: any, expected: any, message?: string | Error): void; 62 | function strictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T; 63 | function notStrictEqual(actual: any, expected: any, message?: string | Error): void; 64 | function deepStrictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T; 65 | function notDeepStrictEqual(actual: any, expected: any, message?: string | Error): void; 66 | 67 | function throws(block: () => any, message?: string | Error): void; 68 | function throws(block: () => any, error: AssertPredicate, message?: string | Error): void; 69 | function doesNotThrow(block: () => any, message?: string | Error): void; 70 | function doesNotThrow(block: () => any, error: AssertPredicate, message?: string | Error): void; 71 | 72 | function ifError(value: any): asserts value is null | undefined; 73 | 74 | function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise; 75 | function rejects( 76 | block: (() => Promise) | Promise, 77 | error: AssertPredicate, 78 | message?: string | Error, 79 | ): Promise; 80 | function doesNotReject(block: (() => Promise) | Promise, message?: string | Error): Promise; 81 | function doesNotReject( 82 | block: (() => Promise) | Promise, 83 | error: AssertPredicate, 84 | message?: string | Error, 85 | ): Promise; 86 | 87 | const strict: Omit< 88 | typeof assert, 89 | | 'equal' 90 | | 'notEqual' 91 | | 'deepEqual' 92 | | 'notDeepEqual' 93 | | 'ok' 94 | | 'strictEqual' 95 | | 'deepStrictEqual' 96 | | 'ifError' 97 | | 'strict' 98 | > & { 99 | (value: any, message?: string | Error): asserts value; 100 | equal: typeof strictEqual; 101 | notEqual: typeof notStrictEqual; 102 | deepEqual: typeof deepStrictEqual; 103 | notDeepEqual: typeof notDeepStrictEqual; 104 | 105 | // Mapped types and assertion functions are incompatible? 106 | // TS2775: Assertions require every name in the call target 107 | // to be declared with an explicit type annotation. 108 | ok: typeof ok; 109 | strictEqual: typeof strictEqual; 110 | deepStrictEqual: typeof deepStrictEqual; 111 | ifError: typeof ifError; 112 | strict: typeof strict; 113 | }; 114 | } 115 | 116 | export = assert; 117 | } 118 | -------------------------------------------------------------------------------- /node_modules/@types/node/buffer.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'buffer' { 2 | export const INSPECT_MAX_BYTES: number; 3 | export const kMaxLength: number; 4 | export const kStringMaxLength: number; 5 | export const constants: { 6 | MAX_LENGTH: number; 7 | MAX_STRING_LENGTH: number; 8 | }; 9 | const BuffType: typeof Buffer; 10 | 11 | export type TranscodeEncoding = "ascii" | "utf8" | "utf16le" | "ucs2" | "latin1" | "binary"; 12 | 13 | export function transcode(source: Uint8Array, fromEnc: TranscodeEncoding, toEnc: TranscodeEncoding): Buffer; 14 | 15 | export const SlowBuffer: { 16 | /** @deprecated since v6.0.0, use Buffer.allocUnsafeSlow() */ 17 | new(size: number): Buffer; 18 | prototype: Buffer; 19 | }; 20 | 21 | export { BuffType as Buffer }; 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/@types/node/console.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'console' { 2 | export = console; 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/@types/node/dgram.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'dgram' { 2 | import { AddressInfo } from 'net'; 3 | import * as dns from 'dns'; 4 | import EventEmitter = require('events'); 5 | 6 | interface RemoteInfo { 7 | address: string; 8 | family: 'IPv4' | 'IPv6'; 9 | port: number; 10 | size: number; 11 | } 12 | 13 | interface BindOptions { 14 | port?: number | undefined; 15 | address?: string | undefined; 16 | exclusive?: boolean | undefined; 17 | fd?: number | undefined; 18 | } 19 | 20 | type SocketType = "udp4" | "udp6"; 21 | 22 | interface SocketOptions { 23 | type: SocketType; 24 | reuseAddr?: boolean | undefined; 25 | /** 26 | * @default false 27 | */ 28 | ipv6Only?: boolean | undefined; 29 | recvBufferSize?: number | undefined; 30 | sendBufferSize?: number | undefined; 31 | lookup?: ((hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void) | undefined; 32 | } 33 | 34 | function createSocket(type: SocketType, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; 35 | function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; 36 | 37 | class Socket extends EventEmitter { 38 | addMembership(multicastAddress: string, multicastInterface?: string): void; 39 | address(): AddressInfo; 40 | bind(port?: number, address?: string, callback?: () => void): this; 41 | bind(port?: number, callback?: () => void): this; 42 | bind(callback?: () => void): this; 43 | bind(options: BindOptions, callback?: () => void): this; 44 | close(callback?: () => void): this; 45 | connect(port: number, address?: string, callback?: () => void): void; 46 | connect(port: number, callback: () => void): void; 47 | disconnect(): void; 48 | dropMembership(multicastAddress: string, multicastInterface?: string): void; 49 | getRecvBufferSize(): number; 50 | getSendBufferSize(): number; 51 | ref(): this; 52 | remoteAddress(): AddressInfo; 53 | send(msg: string | Uint8Array | ReadonlyArray, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; 54 | send(msg: string | Uint8Array | ReadonlyArray, port?: number, callback?: (error: Error | null, bytes: number) => void): void; 55 | send(msg: string | Uint8Array | ReadonlyArray, callback?: (error: Error | null, bytes: number) => void): void; 56 | send(msg: string | Uint8Array, offset: number, length: number, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; 57 | send(msg: string | Uint8Array, offset: number, length: number, port?: number, callback?: (error: Error | null, bytes: number) => void): void; 58 | send(msg: string | Uint8Array, offset: number, length: number, callback?: (error: Error | null, bytes: number) => void): void; 59 | setBroadcast(flag: boolean): void; 60 | setMulticastInterface(multicastInterface: string): void; 61 | setMulticastLoopback(flag: boolean): boolean; 62 | setMulticastTTL(ttl: number): number; 63 | setRecvBufferSize(size: number): void; 64 | setSendBufferSize(size: number): void; 65 | setTTL(ttl: number): number; 66 | unref(): this; 67 | 68 | /** 69 | * events.EventEmitter 70 | * 1. close 71 | * 2. connect 72 | * 3. error 73 | * 4. listening 74 | * 5. message 75 | */ 76 | addListener(event: string, listener: (...args: any[]) => void): this; 77 | addListener(event: "close", listener: () => void): this; 78 | addListener(event: "connect", listener: () => void): this; 79 | addListener(event: "error", listener: (err: Error) => void): this; 80 | addListener(event: "listening", listener: () => void): this; 81 | addListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; 82 | 83 | emit(event: string | symbol, ...args: any[]): boolean; 84 | emit(event: "close"): boolean; 85 | emit(event: "connect"): boolean; 86 | emit(event: "error", err: Error): boolean; 87 | emit(event: "listening"): boolean; 88 | emit(event: "message", msg: Buffer, rinfo: RemoteInfo): boolean; 89 | 90 | on(event: string, listener: (...args: any[]) => void): this; 91 | on(event: "close", listener: () => void): this; 92 | on(event: "connect", listener: () => void): this; 93 | on(event: "error", listener: (err: Error) => void): this; 94 | on(event: "listening", listener: () => void): this; 95 | on(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; 96 | 97 | once(event: string, listener: (...args: any[]) => void): this; 98 | once(event: "close", listener: () => void): this; 99 | once(event: "connect", listener: () => void): this; 100 | once(event: "error", listener: (err: Error) => void): this; 101 | once(event: "listening", listener: () => void): this; 102 | once(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; 103 | 104 | prependListener(event: string, listener: (...args: any[]) => void): this; 105 | prependListener(event: "close", listener: () => void): this; 106 | prependListener(event: "connect", listener: () => void): this; 107 | prependListener(event: "error", listener: (err: Error) => void): this; 108 | prependListener(event: "listening", listener: () => void): this; 109 | prependListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; 110 | 111 | prependOnceListener(event: string, listener: (...args: any[]) => void): this; 112 | prependOnceListener(event: "close", listener: () => void): this; 113 | prependOnceListener(event: "connect", listener: () => void): this; 114 | prependOnceListener(event: "error", listener: (err: Error) => void): this; 115 | prependOnceListener(event: "listening", listener: () => void): this; 116 | prependOnceListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /node_modules/@types/node/domain.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'domain' { 2 | import EventEmitter = require('events'); 3 | 4 | class Domain extends EventEmitter implements NodeJS.Domain { 5 | run(fn: (...args: any[]) => T, ...args: any[]): T; 6 | add(emitter: EventEmitter | NodeJS.Timer): void; 7 | remove(emitter: EventEmitter | NodeJS.Timer): void; 8 | bind(cb: T): T; 9 | intercept(cb: T): T; 10 | members: Array; 11 | enter(): void; 12 | exit(): void; 13 | } 14 | 15 | function create(): Domain; 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@types/node/events.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'events' { 2 | interface NodeEventTarget { 3 | once(event: string | symbol, listener: (...args: any[]) => void): this; 4 | } 5 | 6 | interface DOMEventTarget { 7 | addEventListener(event: string, listener: (...args: any[]) => void, opts?: { once: boolean }): any; 8 | } 9 | 10 | class EventEmitter extends NodeJS.EventEmitter { 11 | constructor(); 12 | 13 | static once(emitter: NodeEventTarget, event: string | symbol): Promise; 14 | static once(emitter: DOMEventTarget, event: string): Promise; 15 | static on(emitter: NodeJS.EventEmitter, event: string): AsyncIterableIterator; 16 | 17 | /** @deprecated since v4.0.0 */ 18 | static listenerCount(emitter: NodeJS.EventEmitter, event: string | symbol): number; 19 | 20 | /** 21 | * This symbol shall be used to install a listener for only monitoring `'error'` 22 | * events. Listeners installed using this symbol are called before the regular 23 | * `'error'` listeners are called. 24 | * 25 | * Installing a listener using this symbol does not change the behavior once an 26 | * `'error'` event is emitted, therefore the process will still crash if no 27 | * regular `'error'` listener is installed. 28 | */ 29 | static readonly errorMonitor: unique symbol; 30 | static readonly captureRejectionSymbol: unique symbol; 31 | 32 | /** 33 | * Sets or gets the default captureRejection value for all emitters. 34 | */ 35 | // TODO: These should be described using static getter/setter pairs: 36 | static captureRejections: boolean; 37 | static defaultMaxListeners: number; 38 | } 39 | 40 | import internal = require('events'); 41 | namespace EventEmitter { 42 | // Should just be `export { EventEmitter }`, but that doesn't work in TypeScript 3.4 43 | export { internal as EventEmitter }; 44 | } 45 | 46 | export = EventEmitter; 47 | } 48 | -------------------------------------------------------------------------------- /node_modules/@types/node/globals.global.d.ts: -------------------------------------------------------------------------------- 1 | declare var global: NodeJS.Global & typeof globalThis; 2 | -------------------------------------------------------------------------------- /node_modules/@types/node/index.d.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for non-npm package Node.js 12.20 2 | // Project: https://nodejs.org/ 3 | // Definitions by: Microsoft TypeScript 4 | // DefinitelyTyped 5 | // Alberto Schiabel 6 | // Alvis HT Tang 7 | // Andrew Makarov 8 | // Benjamin Toueg 9 | // Chigozirim C. 10 | // David Junger 11 | // Deividas Bakanas 12 | // Eugene Y. Q. Shen 13 | // Hannes Magnusson 14 | // Hoàng Văn Khải 15 | // Huw 16 | // Kelvin Jin 17 | // Klaus Meinhardt 18 | // Lishude 19 | // Mariusz Wiktorczyk 20 | // Mohsen Azimi 21 | // Nicolas Even 22 | // Nikita Galkin 23 | // Parambir Singh 24 | // Sebastian Silbermann 25 | // Simon Schick 26 | // Thomas den Hollander 27 | // Wilco Bakker 28 | // wwwy3y3 29 | // Zane Hannan AU 30 | // Samuel Ainsworth 31 | // Kyle Uehlein 32 | // Thanik Bhongbhibhat 33 | // Marcin Kopacz 34 | // Trivikram Kamat 35 | // Junxiao Shi 36 | // Ilia Baryshnikov 37 | // ExE Boss 38 | // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped 39 | 40 | // NOTE: These definitions support NodeJS and TypeScript 3.7. 41 | // This isn't strictly needed since 3.7 has the assert module, but this way we're consistent. 42 | // Typically type modifications should be made in base.d.ts instead of here 43 | 44 | // Reference required types from the default lib: 45 | /// 46 | /// 47 | /// 48 | /// 49 | 50 | /// 51 | /// 52 | /// 53 | /// 54 | /// 55 | /// 56 | /// 57 | /// 58 | /// 59 | /// 60 | /// 61 | /// 62 | /// 63 | /// 64 | /// 65 | /// 66 | /// 67 | /// 68 | /// 69 | /// 70 | /// 71 | /// 72 | /// 73 | /// 74 | /// 75 | /// 76 | /// 77 | /// 78 | /// 79 | /// 80 | /// 81 | /// 82 | /// 83 | /// 84 | /// 85 | /// 86 | /// 87 | /// 88 | /// 89 | /// 90 | /// 91 | /// 92 | -------------------------------------------------------------------------------- /node_modules/@types/node/module.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'module' { 2 | export = NodeJS.Module; 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/@types/node/os.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'os' { 2 | interface CpuInfo { 3 | model: string; 4 | speed: number; 5 | times: { 6 | user: number; 7 | nice: number; 8 | sys: number; 9 | idle: number; 10 | irq: number; 11 | }; 12 | } 13 | 14 | interface NetworkInterfaceBase { 15 | address: string; 16 | netmask: string; 17 | mac: string; 18 | internal: boolean; 19 | cidr: string | null; 20 | } 21 | 22 | interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase { 23 | family: "IPv4"; 24 | } 25 | 26 | interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase { 27 | family: "IPv6"; 28 | scopeid: number; 29 | } 30 | 31 | interface UserInfo { 32 | username: T; 33 | uid: number; 34 | gid: number; 35 | shell: T; 36 | homedir: T; 37 | } 38 | 39 | type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6; 40 | 41 | function hostname(): string; 42 | function loadavg(): number[]; 43 | function uptime(): number; 44 | function freemem(): number; 45 | function totalmem(): number; 46 | function cpus(): CpuInfo[]; 47 | function type(): string; 48 | function release(): string; 49 | function networkInterfaces(): { [index: string]: NetworkInterfaceInfo[] }; 50 | function homedir(): string; 51 | function userInfo(options: { encoding: 'buffer' }): UserInfo; 52 | function userInfo(options?: { encoding: string }): UserInfo; 53 | const constants: { 54 | UV_UDP_REUSEADDR: number; 55 | // signals: { [key in NodeJS.Signals]: number; }; @todo: change after migration to typescript 2.1 56 | signals: { 57 | SIGHUP: number; 58 | SIGINT: number; 59 | SIGQUIT: number; 60 | SIGILL: number; 61 | SIGTRAP: number; 62 | SIGABRT: number; 63 | SIGIOT: number; 64 | SIGBUS: number; 65 | SIGFPE: number; 66 | SIGKILL: number; 67 | SIGUSR1: number; 68 | SIGSEGV: number; 69 | SIGUSR2: number; 70 | SIGPIPE: number; 71 | SIGALRM: number; 72 | SIGTERM: number; 73 | SIGCHLD: number; 74 | SIGSTKFLT: number; 75 | SIGCONT: number; 76 | SIGSTOP: number; 77 | SIGTSTP: number; 78 | SIGBREAK: number; 79 | SIGTTIN: number; 80 | SIGTTOU: number; 81 | SIGURG: number; 82 | SIGXCPU: number; 83 | SIGXFSZ: number; 84 | SIGVTALRM: number; 85 | SIGPROF: number; 86 | SIGWINCH: number; 87 | SIGIO: number; 88 | SIGPOLL: number; 89 | SIGLOST: number; 90 | SIGPWR: number; 91 | SIGINFO: number; 92 | SIGSYS: number; 93 | SIGUNUSED: number; 94 | }; 95 | errno: { 96 | E2BIG: number; 97 | EACCES: number; 98 | EADDRINUSE: number; 99 | EADDRNOTAVAIL: number; 100 | EAFNOSUPPORT: number; 101 | EAGAIN: number; 102 | EALREADY: number; 103 | EBADF: number; 104 | EBADMSG: number; 105 | EBUSY: number; 106 | ECANCELED: number; 107 | ECHILD: number; 108 | ECONNABORTED: number; 109 | ECONNREFUSED: number; 110 | ECONNRESET: number; 111 | EDEADLK: number; 112 | EDESTADDRREQ: number; 113 | EDOM: number; 114 | EDQUOT: number; 115 | EEXIST: number; 116 | EFAULT: number; 117 | EFBIG: number; 118 | EHOSTUNREACH: number; 119 | EIDRM: number; 120 | EILSEQ: number; 121 | EINPROGRESS: number; 122 | EINTR: number; 123 | EINVAL: number; 124 | EIO: number; 125 | EISCONN: number; 126 | EISDIR: number; 127 | ELOOP: number; 128 | EMFILE: number; 129 | EMLINK: number; 130 | EMSGSIZE: number; 131 | EMULTIHOP: number; 132 | ENAMETOOLONG: number; 133 | ENETDOWN: number; 134 | ENETRESET: number; 135 | ENETUNREACH: number; 136 | ENFILE: number; 137 | ENOBUFS: number; 138 | ENODATA: number; 139 | ENODEV: number; 140 | ENOENT: number; 141 | ENOEXEC: number; 142 | ENOLCK: number; 143 | ENOLINK: number; 144 | ENOMEM: number; 145 | ENOMSG: number; 146 | ENOPROTOOPT: number; 147 | ENOSPC: number; 148 | ENOSR: number; 149 | ENOSTR: number; 150 | ENOSYS: number; 151 | ENOTCONN: number; 152 | ENOTDIR: number; 153 | ENOTEMPTY: number; 154 | ENOTSOCK: number; 155 | ENOTSUP: number; 156 | ENOTTY: number; 157 | ENXIO: number; 158 | EOPNOTSUPP: number; 159 | EOVERFLOW: number; 160 | EPERM: number; 161 | EPIPE: number; 162 | EPROTO: number; 163 | EPROTONOSUPPORT: number; 164 | EPROTOTYPE: number; 165 | ERANGE: number; 166 | EROFS: number; 167 | ESPIPE: number; 168 | ESRCH: number; 169 | ESTALE: number; 170 | ETIME: number; 171 | ETIMEDOUT: number; 172 | ETXTBSY: number; 173 | EWOULDBLOCK: number; 174 | EXDEV: number; 175 | WSAEINTR: number; 176 | WSAEBADF: number; 177 | WSAEACCES: number; 178 | WSAEFAULT: number; 179 | WSAEINVAL: number; 180 | WSAEMFILE: number; 181 | WSAEWOULDBLOCK: number; 182 | WSAEINPROGRESS: number; 183 | WSAEALREADY: number; 184 | WSAENOTSOCK: number; 185 | WSAEDESTADDRREQ: number; 186 | WSAEMSGSIZE: number; 187 | WSAEPROTOTYPE: number; 188 | WSAENOPROTOOPT: number; 189 | WSAEPROTONOSUPPORT: number; 190 | WSAESOCKTNOSUPPORT: number; 191 | WSAEOPNOTSUPP: number; 192 | WSAEPFNOSUPPORT: number; 193 | WSAEAFNOSUPPORT: number; 194 | WSAEADDRINUSE: number; 195 | WSAEADDRNOTAVAIL: number; 196 | WSAENETDOWN: number; 197 | WSAENETUNREACH: number; 198 | WSAENETRESET: number; 199 | WSAECONNABORTED: number; 200 | WSAECONNRESET: number; 201 | WSAENOBUFS: number; 202 | WSAEISCONN: number; 203 | WSAENOTCONN: number; 204 | WSAESHUTDOWN: number; 205 | WSAETOOMANYREFS: number; 206 | WSAETIMEDOUT: number; 207 | WSAECONNREFUSED: number; 208 | WSAELOOP: number; 209 | WSAENAMETOOLONG: number; 210 | WSAEHOSTDOWN: number; 211 | WSAEHOSTUNREACH: number; 212 | WSAENOTEMPTY: number; 213 | WSAEPROCLIM: number; 214 | WSAEUSERS: number; 215 | WSAEDQUOT: number; 216 | WSAESTALE: number; 217 | WSAEREMOTE: number; 218 | WSASYSNOTREADY: number; 219 | WSAVERNOTSUPPORTED: number; 220 | WSANOTINITIALISED: number; 221 | WSAEDISCON: number; 222 | WSAENOMORE: number; 223 | WSAECANCELLED: number; 224 | WSAEINVALIDPROCTABLE: number; 225 | WSAEINVALIDPROVIDER: number; 226 | WSAEPROVIDERFAILEDINIT: number; 227 | WSASYSCALLFAILURE: number; 228 | WSASERVICE_NOT_FOUND: number; 229 | WSATYPE_NOT_FOUND: number; 230 | WSA_E_NO_MORE: number; 231 | WSA_E_CANCELLED: number; 232 | WSAEREFUSED: number; 233 | }; 234 | priority: { 235 | PRIORITY_LOW: number; 236 | PRIORITY_BELOW_NORMAL: number; 237 | PRIORITY_NORMAL: number; 238 | PRIORITY_ABOVE_NORMAL: number; 239 | PRIORITY_HIGH: number; 240 | PRIORITY_HIGHEST: number; 241 | } 242 | }; 243 | function arch(): string; 244 | function platform(): NodeJS.Platform; 245 | function tmpdir(): string; 246 | const EOL: string; 247 | function endianness(): "BE" | "LE"; 248 | /** 249 | * Gets the priority of a process. 250 | * Defaults to current process. 251 | */ 252 | function getPriority(pid?: number): number; 253 | /** 254 | * Sets the priority of the current process. 255 | * @param priority Must be in range of -20 to 19 256 | */ 257 | function setPriority(priority: number): void; 258 | /** 259 | * Sets the priority of the process specified process. 260 | * @param priority Must be in range of -20 to 19 261 | */ 262 | function setPriority(pid: number, priority: number): void; 263 | } 264 | -------------------------------------------------------------------------------- /node_modules/@types/node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@types/node", 3 | "version": "12.20.55", 4 | "description": "TypeScript definitions for Node.js", 5 | "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node", 6 | "license": "MIT", 7 | "contributors": [ 8 | { 9 | "name": "Microsoft TypeScript", 10 | "url": "https://github.com/Microsoft", 11 | "githubUsername": "Microsoft" 12 | }, 13 | { 14 | "name": "DefinitelyTyped", 15 | "url": "https://github.com/DefinitelyTyped", 16 | "githubUsername": "DefinitelyTyped" 17 | }, 18 | { 19 | "name": "Alberto Schiabel", 20 | "url": "https://github.com/jkomyno", 21 | "githubUsername": "jkomyno" 22 | }, 23 | { 24 | "name": "Alvis HT Tang", 25 | "url": "https://github.com/alvis", 26 | "githubUsername": "alvis" 27 | }, 28 | { 29 | "name": "Andrew Makarov", 30 | "url": "https://github.com/r3nya", 31 | "githubUsername": "r3nya" 32 | }, 33 | { 34 | "name": "Benjamin Toueg", 35 | "url": "https://github.com/btoueg", 36 | "githubUsername": "btoueg" 37 | }, 38 | { 39 | "name": "Chigozirim C.", 40 | "url": "https://github.com/smac89", 41 | "githubUsername": "smac89" 42 | }, 43 | { 44 | "name": "David Junger", 45 | "url": "https://github.com/touffy", 46 | "githubUsername": "touffy" 47 | }, 48 | { 49 | "name": "Deividas Bakanas", 50 | "url": "https://github.com/DeividasBakanas", 51 | "githubUsername": "DeividasBakanas" 52 | }, 53 | { 54 | "name": "Eugene Y. Q. Shen", 55 | "url": "https://github.com/eyqs", 56 | "githubUsername": "eyqs" 57 | }, 58 | { 59 | "name": "Hannes Magnusson", 60 | "url": "https://github.com/Hannes-Magnusson-CK", 61 | "githubUsername": "Hannes-Magnusson-CK" 62 | }, 63 | { 64 | "name": "Hoàng Văn Khải", 65 | "url": "https://github.com/KSXGitHub", 66 | "githubUsername": "KSXGitHub" 67 | }, 68 | { 69 | "name": "Huw", 70 | "url": "https://github.com/hoo29", 71 | "githubUsername": "hoo29" 72 | }, 73 | { 74 | "name": "Kelvin Jin", 75 | "url": "https://github.com/kjin", 76 | "githubUsername": "kjin" 77 | }, 78 | { 79 | "name": "Klaus Meinhardt", 80 | "url": "https://github.com/ajafff", 81 | "githubUsername": "ajafff" 82 | }, 83 | { 84 | "name": "Lishude", 85 | "url": "https://github.com/islishude", 86 | "githubUsername": "islishude" 87 | }, 88 | { 89 | "name": "Mariusz Wiktorczyk", 90 | "url": "https://github.com/mwiktorczyk", 91 | "githubUsername": "mwiktorczyk" 92 | }, 93 | { 94 | "name": "Mohsen Azimi", 95 | "url": "https://github.com/mohsen1", 96 | "githubUsername": "mohsen1" 97 | }, 98 | { 99 | "name": "Nicolas Even", 100 | "url": "https://github.com/n-e", 101 | "githubUsername": "n-e" 102 | }, 103 | { 104 | "name": "Nikita Galkin", 105 | "url": "https://github.com/galkin", 106 | "githubUsername": "galkin" 107 | }, 108 | { 109 | "name": "Parambir Singh", 110 | "url": "https://github.com/parambirs", 111 | "githubUsername": "parambirs" 112 | }, 113 | { 114 | "name": "Sebastian Silbermann", 115 | "url": "https://github.com/eps1lon", 116 | "githubUsername": "eps1lon" 117 | }, 118 | { 119 | "name": "Simon Schick", 120 | "url": "https://github.com/SimonSchick", 121 | "githubUsername": "SimonSchick" 122 | }, 123 | { 124 | "name": "Thomas den Hollander", 125 | "url": "https://github.com/ThomasdenH", 126 | "githubUsername": "ThomasdenH" 127 | }, 128 | { 129 | "name": "Wilco Bakker", 130 | "url": "https://github.com/WilcoBakker", 131 | "githubUsername": "WilcoBakker" 132 | }, 133 | { 134 | "name": "wwwy3y3", 135 | "url": "https://github.com/wwwy3y3", 136 | "githubUsername": "wwwy3y3" 137 | }, 138 | { 139 | "name": "Zane Hannan AU", 140 | "url": "https://github.com/ZaneHannanAU", 141 | "githubUsername": "ZaneHannanAU" 142 | }, 143 | { 144 | "name": "Samuel Ainsworth", 145 | "url": "https://github.com/samuela", 146 | "githubUsername": "samuela" 147 | }, 148 | { 149 | "name": "Kyle Uehlein", 150 | "url": "https://github.com/kuehlein", 151 | "githubUsername": "kuehlein" 152 | }, 153 | { 154 | "name": "Thanik Bhongbhibhat", 155 | "url": "https://github.com/bhongy", 156 | "githubUsername": "bhongy" 157 | }, 158 | { 159 | "name": "Marcin Kopacz", 160 | "url": "https://github.com/chyzwar", 161 | "githubUsername": "chyzwar" 162 | }, 163 | { 164 | "name": "Trivikram Kamat", 165 | "url": "https://github.com/trivikr", 166 | "githubUsername": "trivikr" 167 | }, 168 | { 169 | "name": "Junxiao Shi", 170 | "url": "https://github.com/yoursunny", 171 | "githubUsername": "yoursunny" 172 | }, 173 | { 174 | "name": "Ilia Baryshnikov", 175 | "url": "https://github.com/qwelias", 176 | "githubUsername": "qwelias" 177 | }, 178 | { 179 | "name": "ExE Boss", 180 | "url": "https://github.com/ExE-Boss", 181 | "githubUsername": "ExE-Boss" 182 | } 183 | ], 184 | "main": "", 185 | "types": "index.d.ts", 186 | "repository": { 187 | "type": "git", 188 | "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", 189 | "directory": "types/node" 190 | }, 191 | "scripts": {}, 192 | "dependencies": {}, 193 | "typesPublisherContentHash": "3d29774cbf5180f3bd5b1bd954e268a18a74c90d34acff15c56308ec98960bec", 194 | "typeScriptVersion": "3.9" 195 | } -------------------------------------------------------------------------------- /node_modules/@types/node/path.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'path' { 2 | /** 3 | * A parsed path object generated by path.parse() or consumed by path.format(). 4 | */ 5 | interface ParsedPath { 6 | /** 7 | * The root of the path such as '/' or 'c:\' 8 | */ 9 | root: string; 10 | /** 11 | * The full directory path such as '/home/user/dir' or 'c:\path\dir' 12 | */ 13 | dir: string; 14 | /** 15 | * The file name including extension (if any) such as 'index.html' 16 | */ 17 | base: string; 18 | /** 19 | * The file extension (if any) such as '.html' 20 | */ 21 | ext: string; 22 | /** 23 | * The file name without extension (if any) such as 'index' 24 | */ 25 | name: string; 26 | } 27 | interface FormatInputPathObject { 28 | /** 29 | * The root of the path such as '/' or 'c:\' 30 | */ 31 | root?: string | undefined; 32 | /** 33 | * The full directory path such as '/home/user/dir' or 'c:\path\dir' 34 | */ 35 | dir?: string | undefined; 36 | /** 37 | * The file name including extension (if any) such as 'index.html' 38 | */ 39 | base?: string | undefined; 40 | /** 41 | * The file extension (if any) such as '.html' 42 | */ 43 | ext?: string | undefined; 44 | /** 45 | * The file name without extension (if any) such as 'index' 46 | */ 47 | name?: string | undefined; 48 | } 49 | 50 | /** 51 | * Normalize a string path, reducing '..' and '.' parts. 52 | * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used. 53 | * 54 | * @param p string path to normalize. 55 | */ 56 | function normalize(p: string): string; 57 | /** 58 | * Join all arguments together and normalize the resulting path. 59 | * Arguments must be strings. In v0.8, non-string arguments were silently ignored. In v0.10 and up, an exception is thrown. 60 | * 61 | * @param paths paths to join. 62 | */ 63 | function join(...paths: string[]): string; 64 | /** 65 | * The right-most parameter is considered {to}. Other parameters are considered an array of {from}. 66 | * 67 | * Starting from leftmost {from} parameter, resolves {to} to an absolute path. 68 | * 69 | * If {to} isn't already absolute, {from} arguments are prepended in right to left order, 70 | * until an absolute path is found. If after using all {from} paths still no absolute path is found, 71 | * the current working directory is used as well. The resulting path is normalized, 72 | * and trailing slashes are removed unless the path gets resolved to the root directory. 73 | * 74 | * @param pathSegments string paths to join. Non-string arguments are ignored. 75 | */ 76 | function resolve(...pathSegments: string[]): string; 77 | /** 78 | * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory. 79 | * 80 | * @param path path to test. 81 | */ 82 | function isAbsolute(path: string): boolean; 83 | /** 84 | * Solve the relative path from {from} to {to}. 85 | * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve. 86 | */ 87 | function relative(from: string, to: string): string; 88 | /** 89 | * Return the directory name of a path. Similar to the Unix dirname command. 90 | * 91 | * @param p the path to evaluate. 92 | */ 93 | function dirname(p: string): string; 94 | /** 95 | * Return the last portion of a path. Similar to the Unix basename command. 96 | * Often used to extract the file name from a fully qualified path. 97 | * 98 | * @param p the path to evaluate. 99 | * @param ext optionally, an extension to remove from the result. 100 | */ 101 | function basename(p: string, ext?: string): string; 102 | /** 103 | * Return the extension of the path, from the last '.' to end of string in the last portion of the path. 104 | * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string 105 | * 106 | * @param p the path to evaluate. 107 | */ 108 | function extname(p: string): string; 109 | /** 110 | * The platform-specific file separator. '\\' or '/'. 111 | */ 112 | const sep: '\\' | '/'; 113 | /** 114 | * The platform-specific file delimiter. ';' or ':'. 115 | */ 116 | const delimiter: ';' | ':'; 117 | /** 118 | * Returns an object from a path string - the opposite of format(). 119 | * 120 | * @param pathString path to evaluate. 121 | */ 122 | function parse(pathString: string): ParsedPath; 123 | /** 124 | * Returns a path string from an object - the opposite of parse(). 125 | * 126 | * @param pathString path to evaluate. 127 | */ 128 | function format(pathObject: FormatInputPathObject): string; 129 | 130 | namespace posix { 131 | function normalize(p: string): string; 132 | function join(...paths: string[]): string; 133 | function resolve(...pathSegments: string[]): string; 134 | function isAbsolute(p: string): boolean; 135 | function relative(from: string, to: string): string; 136 | function dirname(p: string): string; 137 | function basename(p: string, ext?: string): string; 138 | function extname(p: string): string; 139 | const sep: string; 140 | const delimiter: string; 141 | function parse(p: string): ParsedPath; 142 | function format(pP: FormatInputPathObject): string; 143 | } 144 | 145 | namespace win32 { 146 | function normalize(p: string): string; 147 | function join(...paths: string[]): string; 148 | function resolve(...pathSegments: string[]): string; 149 | function isAbsolute(p: string): boolean; 150 | function relative(from: string, to: string): string; 151 | function dirname(p: string): string; 152 | function basename(p: string, ext?: string): string; 153 | function extname(p: string): string; 154 | const sep: string; 155 | const delimiter: string; 156 | function parse(p: string): ParsedPath; 157 | function format(pP: FormatInputPathObject): string; 158 | } 159 | } 160 | -------------------------------------------------------------------------------- /node_modules/@types/node/process.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'process' { 2 | import * as tty from 'tty'; 3 | 4 | global { 5 | namespace NodeJS { 6 | // this namespace merge is here because these are specifically used 7 | // as the type for process.stdin, process.stdout, and process.stderr. 8 | // they can't live in tty.d.ts because we need to disambiguate the imported name. 9 | interface ReadStream extends tty.ReadStream {} 10 | interface WriteStream extends tty.WriteStream {} 11 | } 12 | } 13 | 14 | export = process; 15 | } 16 | -------------------------------------------------------------------------------- /node_modules/@types/node/punycode.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @deprecated since v7.0.0 3 | * The version of the punycode module bundled in Node.js is being deprecated. 4 | * In a future major version of Node.js this module will be removed. 5 | * Users currently depending on the punycode module should switch to using 6 | * the userland-provided Punycode.js module instead. 7 | */ 8 | declare module 'punycode' { 9 | /** 10 | * @deprecated since v7.0.0 11 | * The version of the punycode module bundled in Node.js is being deprecated. 12 | * In a future major version of Node.js this module will be removed. 13 | * Users currently depending on the punycode module should switch to using 14 | * the userland-provided Punycode.js module instead. 15 | */ 16 | function decode(string: string): string; 17 | /** 18 | * @deprecated since v7.0.0 19 | * The version of the punycode module bundled in Node.js is being deprecated. 20 | * In a future major version of Node.js this module will be removed. 21 | * Users currently depending on the punycode module should switch to using 22 | * the userland-provided Punycode.js module instead. 23 | */ 24 | function encode(string: string): string; 25 | /** 26 | * @deprecated since v7.0.0 27 | * The version of the punycode module bundled in Node.js is being deprecated. 28 | * In a future major version of Node.js this module will be removed. 29 | * Users currently depending on the punycode module should switch to using 30 | * the userland-provided Punycode.js module instead. 31 | */ 32 | function toUnicode(domain: string): string; 33 | /** 34 | * @deprecated since v7.0.0 35 | * The version of the punycode module bundled in Node.js is being deprecated. 36 | * In a future major version of Node.js this module will be removed. 37 | * Users currently depending on the punycode module should switch to using 38 | * the userland-provided Punycode.js module instead. 39 | */ 40 | function toASCII(domain: string): string; 41 | /** 42 | * @deprecated since v7.0.0 43 | * The version of the punycode module bundled in Node.js is being deprecated. 44 | * In a future major version of Node.js this module will be removed. 45 | * Users currently depending on the punycode module should switch to using 46 | * the userland-provided Punycode.js module instead. 47 | */ 48 | const ucs2: ucs2; 49 | interface ucs2 { 50 | /** 51 | * @deprecated since v7.0.0 52 | * The version of the punycode module bundled in Node.js is being deprecated. 53 | * In a future major version of Node.js this module will be removed. 54 | * Users currently depending on the punycode module should switch to using 55 | * the userland-provided Punycode.js module instead. 56 | */ 57 | decode(string: string): number[]; 58 | /** 59 | * @deprecated since v7.0.0 60 | * The version of the punycode module bundled in Node.js is being deprecated. 61 | * In a future major version of Node.js this module will be removed. 62 | * Users currently depending on the punycode module should switch to using 63 | * the userland-provided Punycode.js module instead. 64 | */ 65 | encode(codePoints: ReadonlyArray): string; 66 | } 67 | /** 68 | * @deprecated since v7.0.0 69 | * The version of the punycode module bundled in Node.js is being deprecated. 70 | * In a future major version of Node.js this module will be removed. 71 | * Users currently depending on the punycode module should switch to using 72 | * the userland-provided Punycode.js module instead. 73 | */ 74 | const version: string; 75 | } 76 | -------------------------------------------------------------------------------- /node_modules/@types/node/querystring.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'querystring' { 2 | interface StringifyOptions { 3 | encodeURIComponent?: ((str: string) => string) | undefined; 4 | } 5 | 6 | interface ParseOptions { 7 | maxKeys?: number | undefined; 8 | decodeURIComponent?: ((str: string) => string) | undefined; 9 | } 10 | 11 | interface ParsedUrlQuery { [key: string]: string | string[]; } 12 | 13 | interface ParsedUrlQueryInput { 14 | [key: string]: string | number | boolean | ReadonlyArray | ReadonlyArray | ReadonlyArray | undefined | null; 15 | } 16 | 17 | function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string; 18 | function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery; 19 | /** 20 | * The querystring.encode() function is an alias for querystring.stringify(). 21 | */ 22 | const encode: typeof stringify; 23 | /** 24 | * The querystring.decode() function is an alias for querystring.parse(). 25 | */ 26 | const decode: typeof parse; 27 | function escape(str: string): string; 28 | function unescape(str: string): string; 29 | } 30 | -------------------------------------------------------------------------------- /node_modules/@types/node/readline.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'readline' { 2 | import EventEmitter = require('events'); 3 | 4 | interface Key { 5 | sequence?: string | undefined; 6 | name?: string | undefined; 7 | ctrl?: boolean | undefined; 8 | meta?: boolean | undefined; 9 | shift?: boolean | undefined; 10 | } 11 | 12 | class Interface extends EventEmitter { 13 | readonly terminal: boolean; 14 | 15 | // Need direct access to line/cursor data, for use in external processes 16 | // see: https://github.com/nodejs/node/issues/30347 17 | /** The current input data */ 18 | readonly line: string; 19 | /** The current cursor position in the input line */ 20 | readonly cursor: number; 21 | 22 | /** 23 | * NOTE: According to the documentation: 24 | * 25 | * > Instances of the `readline.Interface` class are constructed using the 26 | * > `readline.createInterface()` method. 27 | * 28 | * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface 29 | */ 30 | protected constructor(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean); 31 | /** 32 | * NOTE: According to the documentation: 33 | * 34 | * > Instances of the `readline.Interface` class are constructed using the 35 | * > `readline.createInterface()` method. 36 | * 37 | * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface 38 | */ 39 | protected constructor(options: ReadLineOptions); 40 | 41 | setPrompt(prompt: string): void; 42 | prompt(preserveCursor?: boolean): void; 43 | question(query: string, callback: (answer: string) => void): void; 44 | pause(): this; 45 | resume(): this; 46 | close(): void; 47 | write(data: string | Buffer, key?: Key): void; 48 | write(data: undefined | null | string | Buffer, key: Key): void; 49 | 50 | /** 51 | * events.EventEmitter 52 | * 1. close 53 | * 2. line 54 | * 3. pause 55 | * 4. resume 56 | * 5. SIGCONT 57 | * 6. SIGINT 58 | * 7. SIGTSTP 59 | */ 60 | 61 | addListener(event: string, listener: (...args: any[]) => void): this; 62 | addListener(event: "close", listener: () => void): this; 63 | addListener(event: "line", listener: (input: string) => void): this; 64 | addListener(event: "pause", listener: () => void): this; 65 | addListener(event: "resume", listener: () => void): this; 66 | addListener(event: "SIGCONT", listener: () => void): this; 67 | addListener(event: "SIGINT", listener: () => void): this; 68 | addListener(event: "SIGTSTP", listener: () => void): this; 69 | 70 | emit(event: string | symbol, ...args: any[]): boolean; 71 | emit(event: "close"): boolean; 72 | emit(event: "line", input: string): boolean; 73 | emit(event: "pause"): boolean; 74 | emit(event: "resume"): boolean; 75 | emit(event: "SIGCONT"): boolean; 76 | emit(event: "SIGINT"): boolean; 77 | emit(event: "SIGTSTP"): boolean; 78 | 79 | on(event: string, listener: (...args: any[]) => void): this; 80 | on(event: "close", listener: () => void): this; 81 | on(event: "line", listener: (input: string) => void): this; 82 | on(event: "pause", listener: () => void): this; 83 | on(event: "resume", listener: () => void): this; 84 | on(event: "SIGCONT", listener: () => void): this; 85 | on(event: "SIGINT", listener: () => void): this; 86 | on(event: "SIGTSTP", listener: () => void): this; 87 | 88 | once(event: string, listener: (...args: any[]) => void): this; 89 | once(event: "close", listener: () => void): this; 90 | once(event: "line", listener: (input: string) => void): this; 91 | once(event: "pause", listener: () => void): this; 92 | once(event: "resume", listener: () => void): this; 93 | once(event: "SIGCONT", listener: () => void): this; 94 | once(event: "SIGINT", listener: () => void): this; 95 | once(event: "SIGTSTP", listener: () => void): this; 96 | 97 | prependListener(event: string, listener: (...args: any[]) => void): this; 98 | prependListener(event: "close", listener: () => void): this; 99 | prependListener(event: "line", listener: (input: string) => void): this; 100 | prependListener(event: "pause", listener: () => void): this; 101 | prependListener(event: "resume", listener: () => void): this; 102 | prependListener(event: "SIGCONT", listener: () => void): this; 103 | prependListener(event: "SIGINT", listener: () => void): this; 104 | prependListener(event: "SIGTSTP", listener: () => void): this; 105 | 106 | prependOnceListener(event: string, listener: (...args: any[]) => void): this; 107 | prependOnceListener(event: "close", listener: () => void): this; 108 | prependOnceListener(event: "line", listener: (input: string) => void): this; 109 | prependOnceListener(event: "pause", listener: () => void): this; 110 | prependOnceListener(event: "resume", listener: () => void): this; 111 | prependOnceListener(event: "SIGCONT", listener: () => void): this; 112 | prependOnceListener(event: "SIGINT", listener: () => void): this; 113 | prependOnceListener(event: "SIGTSTP", listener: () => void): this; 114 | [Symbol.asyncIterator](): AsyncIterableIterator; 115 | } 116 | 117 | type ReadLine = Interface; // type forwarded for backwards compatiblity 118 | 119 | type Completer = (line: string) => CompleterResult; 120 | type AsyncCompleter = (line: string, callback: (err?: null | Error, result?: CompleterResult) => void) => any; 121 | 122 | type CompleterResult = [string[], string]; 123 | 124 | interface ReadLineOptions { 125 | input: NodeJS.ReadableStream; 126 | output?: NodeJS.WritableStream | undefined; 127 | completer?: Completer | AsyncCompleter | undefined; 128 | terminal?: boolean | undefined; 129 | historySize?: number | undefined; 130 | prompt?: string | undefined; 131 | crlfDelay?: number | undefined; 132 | removeHistoryDuplicates?: boolean | undefined; 133 | escapeCodeTimeout?: number | undefined; 134 | } 135 | 136 | function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean): Interface; 137 | function createInterface(options: ReadLineOptions): Interface; 138 | function emitKeypressEvents(stream: NodeJS.ReadableStream, readlineInterface?: Interface): void; 139 | 140 | type Direction = -1 | 0 | 1; 141 | 142 | /** 143 | * Clears the current line of this WriteStream in a direction identified by `dir`. 144 | */ 145 | function clearLine(stream: NodeJS.WritableStream, dir: Direction, callback?: () => void): boolean; 146 | /** 147 | * Clears this `WriteStream` from the current cursor down. 148 | */ 149 | function clearScreenDown(stream: NodeJS.WritableStream, callback?: () => void): boolean; 150 | /** 151 | * Moves this WriteStream's cursor to the specified position. 152 | */ 153 | function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number, callback?: () => void): boolean; 154 | /** 155 | * Moves this WriteStream's cursor relative to its current position. 156 | */ 157 | function moveCursor(stream: NodeJS.WritableStream, dx: number, dy: number, callback?: () => void): boolean; 158 | } 159 | -------------------------------------------------------------------------------- /node_modules/@types/node/string_decoder.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'string_decoder' { 2 | class StringDecoder { 3 | constructor(encoding?: string); 4 | write(buffer: Buffer): string; 5 | end(buffer?: Buffer): string; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /node_modules/@types/node/timers.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'timers' { 2 | function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; 3 | namespace setTimeout { 4 | function __promisify__(ms: number): Promise; 5 | function __promisify__(ms: number, value: T): Promise; 6 | } 7 | function clearTimeout(timeoutId: NodeJS.Timeout | string | number | undefined): void; 8 | function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; 9 | function clearInterval(intervalId: NodeJS.Timeout | string | number | undefined): void; 10 | function setImmediate(callback: (...args: any[]) => void, ...args: any[]): NodeJS.Immediate; 11 | namespace setImmediate { 12 | function __promisify__(): Promise; 13 | function __promisify__(value: T): Promise; 14 | } 15 | function clearImmediate(immediateId: NodeJS.Immediate | undefined): void; 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@types/node/trace_events.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'trace_events' { 2 | /** 3 | * The `Tracing` object is used to enable or disable tracing for sets of 4 | * categories. Instances are created using the 5 | * `trace_events.createTracing()` method. 6 | * 7 | * When created, the `Tracing` object is disabled. Calling the 8 | * `tracing.enable()` method adds the categories to the set of enabled trace 9 | * event categories. Calling `tracing.disable()` will remove the categories 10 | * from the set of enabled trace event categories. 11 | */ 12 | interface Tracing { 13 | /** 14 | * A comma-separated list of the trace event categories covered by this 15 | * `Tracing` object. 16 | */ 17 | readonly categories: string; 18 | 19 | /** 20 | * Disables this `Tracing` object. 21 | * 22 | * Only trace event categories _not_ covered by other enabled `Tracing` 23 | * objects and _not_ specified by the `--trace-event-categories` flag 24 | * will be disabled. 25 | */ 26 | disable(): void; 27 | 28 | /** 29 | * Enables this `Tracing` object for the set of categories covered by 30 | * the `Tracing` object. 31 | */ 32 | enable(): void; 33 | 34 | /** 35 | * `true` only if the `Tracing` object has been enabled. 36 | */ 37 | readonly enabled: boolean; 38 | } 39 | 40 | interface CreateTracingOptions { 41 | /** 42 | * An array of trace category names. Values included in the array are 43 | * coerced to a string when possible. An error will be thrown if the 44 | * value cannot be coerced. 45 | */ 46 | categories: string[]; 47 | } 48 | 49 | /** 50 | * Creates and returns a Tracing object for the given set of categories. 51 | */ 52 | function createTracing(options: CreateTracingOptions): Tracing; 53 | 54 | /** 55 | * Returns a comma-separated list of all currently-enabled trace event 56 | * categories. The current set of enabled trace event categories is 57 | * determined by the union of all currently-enabled `Tracing` objects and 58 | * any categories enabled using the `--trace-event-categories` flag. 59 | */ 60 | function getEnabledCategories(): string | undefined; 61 | } 62 | -------------------------------------------------------------------------------- /node_modules/@types/node/tty.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'tty' { 2 | import * as net from 'net'; 3 | 4 | function isatty(fd: number): boolean; 5 | class ReadStream extends net.Socket { 6 | constructor(fd: number, options?: net.SocketConstructorOpts); 7 | isRaw: boolean; 8 | setRawMode(mode: boolean): this; 9 | isTTY: boolean; 10 | } 11 | /** 12 | * -1 - to the left from cursor 13 | * 0 - the entire line 14 | * 1 - to the right from cursor 15 | */ 16 | type Direction = -1 | 0 | 1; 17 | class WriteStream extends net.Socket { 18 | constructor(fd: number); 19 | addListener(event: string, listener: (...args: any[]) => void): this; 20 | addListener(event: "resize", listener: () => void): this; 21 | 22 | emit(event: string | symbol, ...args: any[]): boolean; 23 | emit(event: "resize"): boolean; 24 | 25 | on(event: string, listener: (...args: any[]) => void): this; 26 | on(event: "resize", listener: () => void): this; 27 | 28 | once(event: string, listener: (...args: any[]) => void): this; 29 | once(event: "resize", listener: () => void): this; 30 | 31 | prependListener(event: string, listener: (...args: any[]) => void): this; 32 | prependListener(event: "resize", listener: () => void): this; 33 | 34 | prependOnceListener(event: string, listener: (...args: any[]) => void): this; 35 | prependOnceListener(event: "resize", listener: () => void): this; 36 | 37 | /** 38 | * Clears the current line of this WriteStream in a direction identified by `dir`. 39 | */ 40 | clearLine(dir: Direction, callback?: () => void): boolean; 41 | /** 42 | * Clears this `WriteStream` from the current cursor down. 43 | */ 44 | clearScreenDown(callback?: () => void): boolean; 45 | /** 46 | * Moves this WriteStream's cursor to the specified position. 47 | */ 48 | cursorTo(x: number, y?: number, callback?: () => void): boolean; 49 | cursorTo(x: number, callback: () => void): boolean; 50 | /** 51 | * Moves this WriteStream's cursor relative to its current position. 52 | */ 53 | moveCursor(dx: number, dy: number, callback?: () => void): boolean; 54 | /** 55 | * @default `process.env` 56 | */ 57 | getColorDepth(env?: {}): number; 58 | hasColors(depth?: number): boolean; 59 | hasColors(env?: {}): boolean; 60 | hasColors(depth: number, env?: {}): boolean; 61 | getWindowSize(): [number, number]; 62 | columns: number; 63 | rows: number; 64 | isTTY: boolean; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /node_modules/@types/node/url.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'url' { 2 | import { ParsedUrlQuery, ParsedUrlQueryInput } from 'querystring'; 3 | 4 | // Input to `url.format` 5 | interface UrlObject { 6 | auth?: string | null | undefined; 7 | hash?: string | null | undefined; 8 | host?: string | null | undefined; 9 | hostname?: string | null | undefined; 10 | href?: string | null | undefined; 11 | path?: string | null | undefined; 12 | pathname?: string | null | undefined; 13 | protocol?: string | null | undefined; 14 | search?: string | null | undefined; 15 | slashes?: boolean | null | undefined; 16 | port?: string | number | null | undefined; 17 | query?: string | null | ParsedUrlQueryInput | undefined; 18 | } 19 | 20 | // Output of `url.parse` 21 | interface Url { 22 | auth: string | null; 23 | hash: string | null; 24 | host: string | null; 25 | hostname: string | null; 26 | href: string; 27 | path: string | null; 28 | pathname: string | null; 29 | protocol: string | null; 30 | search: string | null; 31 | slashes: boolean | null; 32 | port: string | null; 33 | query: string | null | ParsedUrlQuery; 34 | } 35 | 36 | interface UrlWithParsedQuery extends Url { 37 | query: ParsedUrlQuery; 38 | } 39 | 40 | interface UrlWithStringQuery extends Url { 41 | query: string | null; 42 | } 43 | 44 | /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ 45 | function parse(urlStr: string): UrlWithStringQuery; 46 | /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ 47 | function parse(urlStr: string, parseQueryString: false | undefined, slashesDenoteHost?: boolean): UrlWithStringQuery; 48 | /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ 49 | function parse(urlStr: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery; 50 | /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ 51 | function parse(urlStr: string, parseQueryString: boolean, slashesDenoteHost?: boolean): Url; 52 | 53 | function format(URL: URL, options?: URLFormatOptions): string; 54 | /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ 55 | function format(urlObject: UrlObject | string): string; 56 | /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ 57 | function resolve(from: string, to: string): string; 58 | 59 | function domainToASCII(domain: string): string; 60 | function domainToUnicode(domain: string): string; 61 | 62 | /** 63 | * This function ensures the correct decodings of percent-encoded characters as 64 | * well as ensuring a cross-platform valid absolute path string. 65 | * @param url The file URL string or URL object to convert to a path. 66 | */ 67 | function fileURLToPath(url: string | URL): string; 68 | 69 | /** 70 | * This function ensures that path is resolved absolutely, and that the URL 71 | * control characters are correctly encoded when converting into a File URL. 72 | * @param url The path to convert to a File URL. 73 | */ 74 | function pathToFileURL(url: string): URL; 75 | 76 | interface URLFormatOptions { 77 | auth?: boolean | undefined; 78 | fragment?: boolean | undefined; 79 | search?: boolean | undefined; 80 | unicode?: boolean | undefined; 81 | } 82 | 83 | class URL { 84 | constructor(input: string, base?: string | URL); 85 | hash: string; 86 | host: string; 87 | hostname: string; 88 | href: string; 89 | readonly origin: string; 90 | password: string; 91 | pathname: string; 92 | port: string; 93 | protocol: string; 94 | search: string; 95 | readonly searchParams: URLSearchParams; 96 | username: string; 97 | toString(): string; 98 | toJSON(): string; 99 | } 100 | 101 | class URLSearchParams implements Iterable<[string, string]> { 102 | constructor(init?: URLSearchParams | string | { [key: string]: string | ReadonlyArray | undefined } | Iterable<[string, string]> | ReadonlyArray<[string, string]>); 103 | append(name: string, value: string): void; 104 | delete(name: string): void; 105 | entries(): IterableIterator<[string, string]>; 106 | forEach(callback: (value: string, name: string, searchParams: URLSearchParams) => void): void; 107 | get(name: string): string | null; 108 | getAll(name: string): string[]; 109 | has(name: string): boolean; 110 | keys(): IterableIterator; 111 | set(name: string, value: string): void; 112 | sort(): void; 113 | toString(): string; 114 | values(): IterableIterator; 115 | [Symbol.iterator](): IterableIterator<[string, string]>; 116 | } 117 | 118 | import { URL as _URL, URLSearchParams as _URLSearchParams } from 'url'; 119 | global { 120 | interface URLSearchParams extends _URLSearchParams {} 121 | interface URL extends _URL {} 122 | interface Global { 123 | URL: typeof _URL; 124 | URLSearchParams: typeof _URLSearchParams; 125 | } 126 | /** 127 | * `URL` class is a global reference for `require('url').URL` 128 | * https://nodejs.org/api/url.html#the-whatwg-url-api 129 | * @since v10.0.0 130 | */ 131 | var URL: 132 | // For compatibility with "dom" and "webworker" URL declarations 133 | typeof globalThis extends { onmessage: any, URL: infer URL } 134 | ? URL 135 | : typeof _URL; 136 | /** 137 | * `URLSearchParams` class is a global reference for `require('url').URLSearchParams`. 138 | * https://nodejs.org/api/url.html#class-urlsearchparams 139 | * @since v10.0.0 140 | */ 141 | var URLSearchParams: 142 | // For compatibility with "dom" and "webworker" URLSearchParams declarations 143 | typeof globalThis extends { onmessage: any, URLSearchParams: infer URLSearchParams } 144 | ? URLSearchParams 145 | : typeof _URLSearchParams; 146 | } 147 | } 148 | -------------------------------------------------------------------------------- /node_modules/@types/node/v8.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'v8' { 2 | import { Readable } from 'stream'; 3 | 4 | interface HeapSpaceInfo { 5 | space_name: string; 6 | space_size: number; 7 | space_used_size: number; 8 | space_available_size: number; 9 | physical_space_size: number; 10 | } 11 | 12 | // ** Signifies if the --zap_code_space option is enabled or not. 1 == enabled, 0 == disabled. */ 13 | type DoesZapCodeSpaceFlag = 0 | 1; 14 | 15 | interface HeapInfo { 16 | total_heap_size: number; 17 | total_heap_size_executable: number; 18 | total_physical_size: number; 19 | total_available_size: number; 20 | used_heap_size: number; 21 | heap_size_limit: number; 22 | malloced_memory: number; 23 | peak_malloced_memory: number; 24 | does_zap_garbage: DoesZapCodeSpaceFlag; 25 | number_of_native_contexts: number; 26 | number_of_detached_contexts: number; 27 | } 28 | 29 | interface HeapCodeStatistics { 30 | code_and_metadata_size: number; 31 | bytecode_and_metadata_size: number; 32 | external_script_source_size: number; 33 | } 34 | 35 | /** 36 | * Returns an integer representing a "version tag" derived from the V8 version, command line flags and detected CPU features. 37 | * This is useful for determining whether a vm.Script cachedData buffer is compatible with this instance of V8. 38 | */ 39 | function cachedDataVersionTag(): number; 40 | 41 | function getHeapStatistics(): HeapInfo; 42 | function getHeapSpaceStatistics(): HeapSpaceInfo[]; 43 | function setFlagsFromString(flags: string): void; 44 | /** 45 | * Generates a snapshot of the current V8 heap and returns a Readable 46 | * Stream that may be used to read the JSON serialized representation. 47 | * This conversation was marked as resolved by joyeecheung 48 | * This JSON stream format is intended to be used with tools such as 49 | * Chrome DevTools. The JSON schema is undocumented and specific to the 50 | * V8 engine, and may change from one version of V8 to the next. 51 | */ 52 | function getHeapSnapshot(): Readable; 53 | 54 | /** 55 | * 56 | * @param fileName The file path where the V8 heap snapshot is to be 57 | * saved. If not specified, a file name with the pattern 58 | * `'Heap-${yyyymmdd}-${hhmmss}-${pid}-${thread_id}.heapsnapshot'` will be 59 | * generated, where `{pid}` will be the PID of the Node.js process, 60 | * `{thread_id}` will be `0` when `writeHeapSnapshot()` is called from 61 | * the main Node.js thread or the id of a worker thread. 62 | */ 63 | function writeHeapSnapshot(fileName?: string): string; 64 | 65 | function getHeapCodeStatistics(): HeapCodeStatistics; 66 | 67 | /** 68 | * @experimental 69 | */ 70 | class Serializer { 71 | /** 72 | * Writes out a header, which includes the serialization format version. 73 | */ 74 | writeHeader(): void; 75 | 76 | /** 77 | * Serializes a JavaScript value and adds the serialized representation to the internal buffer. 78 | * This throws an error if value cannot be serialized. 79 | */ 80 | writeValue(val: any): boolean; 81 | 82 | /** 83 | * Returns the stored internal buffer. 84 | * This serializer should not be used once the buffer is released. 85 | * Calling this method results in undefined behavior if a previous write has failed. 86 | */ 87 | releaseBuffer(): Buffer; 88 | 89 | /** 90 | * Marks an ArrayBuffer as having its contents transferred out of band.\ 91 | * Pass the corresponding ArrayBuffer in the deserializing context to deserializer.transferArrayBuffer(). 92 | */ 93 | transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; 94 | 95 | /** 96 | * Write a raw 32-bit unsigned integer. 97 | */ 98 | writeUint32(value: number): void; 99 | 100 | /** 101 | * Write a raw 64-bit unsigned integer, split into high and low 32-bit parts. 102 | */ 103 | writeUint64(hi: number, lo: number): void; 104 | 105 | /** 106 | * Write a JS number value. 107 | */ 108 | writeDouble(value: number): void; 109 | 110 | /** 111 | * Write raw bytes into the serializer’s internal buffer. 112 | * The deserializer will require a way to compute the length of the buffer. 113 | */ 114 | writeRawBytes(buffer: NodeJS.TypedArray): void; 115 | } 116 | 117 | /** 118 | * A subclass of `Serializer` that serializes `TypedArray` (in particular `Buffer`) and `DataView` objects as host objects, 119 | * and only stores the part of their underlying `ArrayBuffers` that they are referring to. 120 | * @experimental 121 | */ 122 | class DefaultSerializer extends Serializer { 123 | } 124 | 125 | /** 126 | * @experimental 127 | */ 128 | class Deserializer { 129 | constructor(data: NodeJS.TypedArray); 130 | /** 131 | * Reads and validates a header (including the format version). 132 | * May, for example, reject an invalid or unsupported wire format. 133 | * In that case, an Error is thrown. 134 | */ 135 | readHeader(): boolean; 136 | 137 | /** 138 | * Deserializes a JavaScript value from the buffer and returns it. 139 | */ 140 | readValue(): any; 141 | 142 | /** 143 | * Marks an ArrayBuffer as having its contents transferred out of band. 144 | * Pass the corresponding `ArrayBuffer` in the serializing context to serializer.transferArrayBuffer() 145 | * (or return the id from serializer._getSharedArrayBufferId() in the case of SharedArrayBuffers). 146 | */ 147 | transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; 148 | 149 | /** 150 | * Reads the underlying wire format version. 151 | * Likely mostly to be useful to legacy code reading old wire format versions. 152 | * May not be called before .readHeader(). 153 | */ 154 | getWireFormatVersion(): number; 155 | 156 | /** 157 | * Read a raw 32-bit unsigned integer and return it. 158 | */ 159 | readUint32(): number; 160 | 161 | /** 162 | * Read a raw 64-bit unsigned integer and return it as an array [hi, lo] with two 32-bit unsigned integer entries. 163 | */ 164 | readUint64(): [number, number]; 165 | 166 | /** 167 | * Read a JS number value. 168 | */ 169 | readDouble(): number; 170 | 171 | /** 172 | * Read raw bytes from the deserializer’s internal buffer. 173 | * The length parameter must correspond to the length of the buffer that was passed to serializer.writeRawBytes(). 174 | */ 175 | readRawBytes(length: number): Buffer; 176 | } 177 | 178 | /** 179 | * A subclass of `Serializer` that serializes `TypedArray` (in particular `Buffer`) and `DataView` objects as host objects, 180 | * and only stores the part of their underlying `ArrayBuffers` that they are referring to. 181 | * @experimental 182 | */ 183 | class DefaultDeserializer extends Deserializer { 184 | } 185 | 186 | /** 187 | * Uses a `DefaultSerializer` to serialize value into a buffer. 188 | * @experimental 189 | */ 190 | function serialize(value: any): Buffer; 191 | 192 | /** 193 | * Uses a `DefaultDeserializer` with default options to read a JS value from a buffer. 194 | * @experimental 195 | */ 196 | function deserialize(data: NodeJS.TypedArray): any; 197 | } 198 | -------------------------------------------------------------------------------- /node_modules/@types/node/vm.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'vm' { 2 | interface Context { 3 | [key: string]: any; 4 | } 5 | interface BaseOptions { 6 | /** 7 | * Specifies the filename used in stack traces produced by this script. 8 | * Default: `''`. 9 | */ 10 | filename?: string | undefined; 11 | /** 12 | * Specifies the line number offset that is displayed in stack traces produced by this script. 13 | * Default: `0`. 14 | */ 15 | lineOffset?: number | undefined; 16 | /** 17 | * Specifies the column number offset that is displayed in stack traces produced by this script. 18 | * @default 0 19 | */ 20 | columnOffset?: number | undefined; 21 | } 22 | interface ScriptOptions extends BaseOptions { 23 | displayErrors?: boolean | undefined; 24 | timeout?: number | undefined; 25 | cachedData?: Buffer | undefined; 26 | /** @deprecated in favor of `script.createCachedData()` */ 27 | produceCachedData?: boolean | undefined; 28 | } 29 | interface RunningScriptOptions extends BaseOptions { 30 | /** 31 | * When `true`, if an `Error` occurs while compiling the `code`, the line of code causing the error is attached to the stack trace. 32 | * Default: `true`. 33 | */ 34 | displayErrors?: boolean | undefined; 35 | /** 36 | * Specifies the number of milliseconds to execute code before terminating execution. 37 | * If execution is terminated, an `Error` will be thrown. This value must be a strictly positive integer. 38 | */ 39 | timeout?: number | undefined; 40 | /** 41 | * If `true`, the execution will be terminated when `SIGINT` (Ctrl+C) is received. 42 | * Existing handlers for the event that have been attached via `process.on('SIGINT')` will be disabled during script execution, but will continue to work after that. 43 | * If execution is terminated, an `Error` will be thrown. 44 | * Default: `false`. 45 | */ 46 | breakOnSigint?: boolean | undefined; 47 | } 48 | interface CompileFunctionOptions extends BaseOptions { 49 | /** 50 | * Provides an optional data with V8's code cache data for the supplied source. 51 | */ 52 | cachedData?: Buffer | undefined; 53 | /** 54 | * Specifies whether to produce new cache data. 55 | * Default: `false`, 56 | */ 57 | produceCachedData?: boolean | undefined; 58 | /** 59 | * The sandbox/context in which the said function should be compiled in. 60 | */ 61 | parsingContext?: Context | undefined; 62 | 63 | /** 64 | * An array containing a collection of context extensions (objects wrapping the current scope) to be applied while compiling 65 | */ 66 | contextExtensions?: Object[] | undefined; 67 | } 68 | 69 | interface CreateContextOptions { 70 | /** 71 | * Human-readable name of the newly created context. 72 | * @default 'VM Context i' Where i is an ascending numerical index of the created context. 73 | */ 74 | name?: string | undefined; 75 | /** 76 | * Corresponds to the newly created context for display purposes. 77 | * The origin should be formatted like a `URL`, but with only the scheme, host, and port (if necessary), 78 | * like the value of the `url.origin` property of a URL object. 79 | * Most notably, this string should omit the trailing slash, as that denotes a path. 80 | * @default '' 81 | */ 82 | origin?: string | undefined; 83 | codeGeneration?: { 84 | /** 85 | * If set to false any calls to eval or function constructors (Function, GeneratorFunction, etc) 86 | * will throw an EvalError. 87 | * @default true 88 | */ 89 | strings?: boolean | undefined; 90 | /** 91 | * If set to false any attempt to compile a WebAssembly module will throw a WebAssembly.CompileError. 92 | * @default true 93 | */ 94 | wasm?: boolean | undefined; 95 | } | undefined; 96 | } 97 | 98 | class Script { 99 | constructor(code: string, options?: ScriptOptions); 100 | runInContext(contextifiedSandbox: Context, options?: RunningScriptOptions): any; 101 | runInNewContext(sandbox?: Context, options?: RunningScriptOptions): any; 102 | runInThisContext(options?: RunningScriptOptions): any; 103 | createCachedData(): Buffer; 104 | cachedDataRejected?: boolean | undefined; 105 | } 106 | function createContext(sandbox?: Context, options?: CreateContextOptions): Context; 107 | function isContext(sandbox: Context): boolean; 108 | function runInContext(code: string, contextifiedSandbox: Context, options?: RunningScriptOptions | string): any; 109 | function runInNewContext(code: string, sandbox?: Context, options?: RunningScriptOptions | string): any; 110 | function runInThisContext(code: string, options?: RunningScriptOptions | string): any; 111 | function compileFunction(code: string, params?: ReadonlyArray, options?: CompileFunctionOptions): Function; 112 | } 113 | -------------------------------------------------------------------------------- /node_modules/@types/node/wasi.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'wasi' { 2 | interface WASIOptions { 3 | /** 4 | * An array of strings that the WebAssembly application will 5 | * see as command line arguments. The first argument is the virtual path to the 6 | * WASI command itself. 7 | */ 8 | args?: string[] | undefined; 9 | 10 | /** 11 | * An object similar to `process.env` that the WebAssembly 12 | * application will see as its environment. 13 | */ 14 | env?: object | undefined; 15 | 16 | /** 17 | * This object represents the WebAssembly application's 18 | * sandbox directory structure. The string keys of `preopens` are treated as 19 | * directories within the sandbox. The corresponding values in `preopens` are 20 | * the real paths to those directories on the host machine. 21 | */ 22 | preopens?: NodeJS.Dict | undefined; 23 | 24 | /** 25 | * By default, WASI applications terminate the Node.js 26 | * process via the `__wasi_proc_exit()` function. Setting this option to `true` 27 | * causes `wasi.start()` to return the exit code rather than terminate the 28 | * process. 29 | * @default false 30 | */ 31 | returnOnExit?: boolean | undefined; 32 | } 33 | 34 | class WASI { 35 | constructor(options?: WASIOptions); 36 | /** 37 | * 38 | * Attempt to begin execution of `instance` by invoking its `_start()` export. 39 | * If `instance` does not contain a `_start()` export, then `start()` attempts to 40 | * invoke the `__wasi_unstable_reactor_start()` export. If neither of those exports 41 | * is present on `instance`, then `start()` does nothing. 42 | * 43 | * `start()` requires that `instance` exports a [`WebAssembly.Memory`][] named 44 | * `memory`. If `instance` does not have a `memory` export an exception is thrown. 45 | */ 46 | start(instance: object): void; // TODO: avoid DOM dependency until WASM moved to own lib. 47 | 48 | /** 49 | * Is an object that implements the WASI system call API. This object 50 | * should be passed as the `wasi_snapshot_preview1` import during the instantiation of a 51 | * [`WebAssembly.Instance`][]. 52 | */ 53 | readonly wasiImport: NodeJS.Dict; // TODO: Narrow to DOM types 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /node_modules/@types/node/worker_threads.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'worker_threads' { 2 | import { Context } from 'vm'; 3 | import EventEmitter = require('events'); 4 | import { Readable, Writable } from 'stream'; 5 | import { promises } from 'fs'; 6 | 7 | const isMainThread: boolean; 8 | const parentPort: null | MessagePort; 9 | const resourceLimits: ResourceLimits; 10 | const SHARE_ENV: unique symbol; 11 | const threadId: number; 12 | const workerData: any; 13 | 14 | class MessageChannel { 15 | readonly port1: MessagePort; 16 | readonly port2: MessagePort; 17 | } 18 | 19 | type TransferListItem = ArrayBuffer | MessagePort | promises.FileHandle; 20 | 21 | class MessagePort extends EventEmitter { 22 | close(): void; 23 | postMessage(value: any, transferList?: ReadonlyArray): void; 24 | ref(): void; 25 | unref(): void; 26 | start(): void; 27 | 28 | addListener(event: "close", listener: () => void): this; 29 | addListener(event: "message", listener: (value: any) => void): this; 30 | addListener(event: string | symbol, listener: (...args: any[]) => void): this; 31 | 32 | emit(event: "close"): boolean; 33 | emit(event: "message", value: any): boolean; 34 | emit(event: string | symbol, ...args: any[]): boolean; 35 | 36 | on(event: "close", listener: () => void): this; 37 | on(event: "message", listener: (value: any) => void): this; 38 | on(event: string | symbol, listener: (...args: any[]) => void): this; 39 | 40 | once(event: "close", listener: () => void): this; 41 | once(event: "message", listener: (value: any) => void): this; 42 | once(event: string | symbol, listener: (...args: any[]) => void): this; 43 | 44 | prependListener(event: "close", listener: () => void): this; 45 | prependListener(event: "message", listener: (value: any) => void): this; 46 | prependListener(event: string | symbol, listener: (...args: any[]) => void): this; 47 | 48 | prependOnceListener(event: "close", listener: () => void): this; 49 | prependOnceListener(event: "message", listener: (value: any) => void): this; 50 | prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; 51 | 52 | removeListener(event: "close", listener: () => void): this; 53 | removeListener(event: "message", listener: (value: any) => void): this; 54 | removeListener(event: string | symbol, listener: (...args: any[]) => void): this; 55 | 56 | off(event: "close", listener: () => void): this; 57 | off(event: "message", listener: (value: any) => void): this; 58 | off(event: string | symbol, listener: (...args: any[]) => void): this; 59 | } 60 | 61 | interface WorkerOptions { 62 | eval?: boolean | undefined; 63 | env?: NodeJS.ProcessEnv | typeof SHARE_ENV | undefined; 64 | workerData?: any; 65 | stdin?: boolean | undefined; 66 | stdout?: boolean | undefined; 67 | stderr?: boolean | undefined; 68 | execArgv?: string[] | undefined; 69 | resourceLimits?: ResourceLimits | undefined; 70 | /** 71 | * Additional data to send in the first worker message. 72 | */ 73 | transferList?: TransferListItem[] | undefined; 74 | trackUnmanagedFds?: boolean | undefined; 75 | } 76 | 77 | interface ResourceLimits { 78 | /** 79 | * The maximum size of a heap space for recently created objects. 80 | */ 81 | maxYoungGenerationSizeMb?: number | undefined; 82 | /** 83 | * The maximum size of the main heap in MB. 84 | */ 85 | maxOldGenerationSizeMb?: number | undefined; 86 | /** 87 | * The size of a pre-allocated memory range used for generated code. 88 | */ 89 | codeRangeSizeMb?: number | undefined; 90 | /** 91 | * The default maximum stack size for the thread. Small values may lead to unusable Worker instances. 92 | * @default 4 93 | */ 94 | stackSizeMb?: number | undefined; 95 | } 96 | 97 | class Worker extends EventEmitter { 98 | readonly stdin: Writable | null; 99 | readonly stdout: Readable; 100 | readonly stderr: Readable; 101 | readonly threadId: number; 102 | readonly resourceLimits?: ResourceLimits | undefined; 103 | 104 | constructor(filename: string, options?: WorkerOptions); 105 | 106 | postMessage(value: any, transferList?: ReadonlyArray): void; 107 | ref(): void; 108 | unref(): void; 109 | /** 110 | * Stop all JavaScript execution in the worker thread as soon as possible. 111 | * Returns a Promise for the exit code that is fulfilled when the `exit` event is emitted. 112 | */ 113 | terminate(): Promise; 114 | 115 | addListener(event: "error", listener: (err: Error) => void): this; 116 | addListener(event: "exit", listener: (exitCode: number) => void): this; 117 | addListener(event: "message", listener: (value: any) => void): this; 118 | addListener(event: "messageerror", listener: (error: Error) => void): this; 119 | addListener(event: "online", listener: () => void): this; 120 | addListener(event: string | symbol, listener: (...args: any[]) => void): this; 121 | 122 | emit(event: "error", err: Error): boolean; 123 | emit(event: "exit", exitCode: number): boolean; 124 | emit(event: "message", value: any): boolean; 125 | emit(event: "messageerror", error: Error): boolean; 126 | emit(event: "online"): boolean; 127 | emit(event: string | symbol, ...args: any[]): boolean; 128 | 129 | on(event: "error", listener: (err: Error) => void): this; 130 | on(event: "exit", listener: (exitCode: number) => void): this; 131 | on(event: "message", listener: (value: any) => void): this; 132 | on(event: "messageerror", listener: (error: Error) => void): this; 133 | on(event: "online", listener: () => void): this; 134 | on(event: string | symbol, listener: (...args: any[]) => void): this; 135 | 136 | once(event: "error", listener: (err: Error) => void): this; 137 | once(event: "exit", listener: (exitCode: number) => void): this; 138 | once(event: "message", listener: (value: any) => void): this; 139 | once(event: "messageerror", listener: (error: Error) => void): this; 140 | once(event: "online", listener: () => void): this; 141 | once(event: string | symbol, listener: (...args: any[]) => void): this; 142 | 143 | prependListener(event: "error", listener: (err: Error) => void): this; 144 | prependListener(event: "exit", listener: (exitCode: number) => void): this; 145 | prependListener(event: "message", listener: (value: any) => void): this; 146 | prependListener(event: "messageerror", listener: (error: Error) => void): this; 147 | prependListener(event: "online", listener: () => void): this; 148 | prependListener(event: string | symbol, listener: (...args: any[]) => void): this; 149 | 150 | prependOnceListener(event: "error", listener: (err: Error) => void): this; 151 | prependOnceListener(event: "exit", listener: (exitCode: number) => void): this; 152 | prependOnceListener(event: "message", listener: (value: any) => void): this; 153 | prependOnceListener(event: "messageerror", listener: (error: Error) => void): this; 154 | prependOnceListener(event: "online", listener: () => void): this; 155 | prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; 156 | 157 | removeListener(event: "error", listener: (err: Error) => void): this; 158 | removeListener(event: "exit", listener: (exitCode: number) => void): this; 159 | removeListener(event: "message", listener: (value: any) => void): this; 160 | removeListener(event: "messageerror", listener: (error: Error) => void): this; 161 | removeListener(event: "online", listener: () => void): this; 162 | removeListener(event: string | symbol, listener: (...args: any[]) => void): this; 163 | 164 | off(event: "error", listener: (err: Error) => void): this; 165 | off(event: "exit", listener: (exitCode: number) => void): this; 166 | off(event: "message", listener: (value: any) => void): this; 167 | off(event: "messageerror", listener: (error: Error) => void): this; 168 | off(event: "online", listener: () => void): this; 169 | off(event: string | symbol, listener: (...args: any[]) => void): this; 170 | } 171 | 172 | /** 173 | * Mark an object as not transferable. 174 | * If `object` occurs in the transfer list of a `port.postMessage()` call, it will be ignored. 175 | * 176 | * In particular, this makes sense for objects that can be cloned, rather than transferred, 177 | * and which are used by other objects on the sending side. For example, Node.js marks 178 | * the `ArrayBuffer`s it uses for its Buffer pool with this. 179 | * 180 | * This operation cannot be undone. 181 | */ 182 | function markAsUntransferable(object: object): void; 183 | 184 | /** 185 | * Transfer a `MessagePort` to a different `vm` Context. The original `port` 186 | * object will be rendered unusable, and the returned `MessagePort` instance will 187 | * take its place. 188 | * 189 | * The returned `MessagePort` will be an object in the target context, and will 190 | * inherit from its global `Object` class. Objects passed to the 191 | * `port.onmessage()` listener will also be created in the target context 192 | * and inherit from its global `Object` class. 193 | * 194 | * However, the created `MessagePort` will no longer inherit from 195 | * `EventEmitter`, and only `port.onmessage()` can be used to receive 196 | * events using it. 197 | */ 198 | function moveMessagePortToContext(port: MessagePort, context: Context): MessagePort; 199 | 200 | /** 201 | * Receive a single message from a given `MessagePort`. If no message is available, 202 | * `undefined` is returned, otherwise an object with a single `message` property 203 | * that contains the message payload, corresponding to the oldest message in the 204 | * `MessagePort`’s queue. 205 | */ 206 | function receiveMessageOnPort(port: MessagePort): { message: any } | undefined; 207 | } 208 | -------------------------------------------------------------------------------- /node_modules/tunnel/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /node_modules/tunnel/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /node_modules/tunnel/.idea/node-tunnel.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /node_modules/tunnel/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /node_modules/tunnel/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "4" 4 | - "6" 5 | - "8" 6 | - "10" 7 | -------------------------------------------------------------------------------- /node_modules/tunnel/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | - 0.0.6 (2018/09/11) 4 | - Fix `localAddress` not working (#25) 5 | - Fix `Host:` header for CONNECT method by @tmurakam (#29, #30) 6 | - Fix default port for https (#32) 7 | - Fix error handling when the proxy send illegal response body (#33) 8 | 9 | - 0.0.5 (2017/06/12) 10 | - Fix socket leak. 11 | 12 | - 0.0.4 (2016/01/23) 13 | - supported Node v0.12 or later. 14 | 15 | - 0.0.3 (2014/01/20) 16 | - fixed package.json 17 | 18 | - 0.0.1 (2012/02/18) 19 | - supported Node v0.6.x (0.6.11 or later). 20 | 21 | - 0.0.0 (2012/02/11) 22 | - first release. 23 | -------------------------------------------------------------------------------- /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 | [![Build Status](https://img.shields.io/travis/koichik/node-tunnel.svg?style=flat)](https://travis-ci.org/koichik/node-tunnel) 4 | [![Dependency Status](http://img.shields.io/david/koichik/node-tunnel.svg?style=flat)](https://david-dm.org/koichik/node-tunnel#info=dependencies) 5 | [![DevDependency Status](http://img.shields.io/david/dev/koichik/node-tunnel.svg?style=flat)](https://david-dm.org/koichik/node-tunnel#info=devDependencies) 6 | 7 | ## Example 8 | 9 | ```javascript 10 | var tunnel = require('tunnel'); 11 | 12 | var tunnelingAgent = tunnel.httpsOverHttp({ 13 | proxy: { 14 | host: 'localhost', 15 | port: 3128 16 | } 17 | }); 18 | 19 | var req = https.request({ 20 | host: 'example.com', 21 | port: 443, 22 | agent: tunnelingAgent 23 | }); 24 | ``` 25 | 26 | ## Installation 27 | 28 | $ npm install tunnel 29 | 30 | ## Usages 31 | 32 | ### HTTP over HTTP tunneling 33 | 34 | ```javascript 35 | var tunnelingAgent = tunnel.httpOverHttp({ 36 | maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets 37 | 38 | proxy: { // Proxy settings 39 | host: proxyHost, // Defaults to 'localhost' 40 | port: proxyPort, // Defaults to 80 41 | localAddress: localAddress, // Local interface if necessary 42 | 43 | // Basic authorization for proxy server if necessary 44 | proxyAuth: 'user:password', 45 | 46 | // Header fields for proxy server if necessary 47 | headers: { 48 | 'User-Agent': 'Node' 49 | } 50 | } 51 | }); 52 | 53 | var req = http.request({ 54 | host: 'example.com', 55 | port: 80, 56 | agent: tunnelingAgent 57 | }); 58 | ``` 59 | 60 | ### HTTPS over HTTP tunneling 61 | 62 | ```javascript 63 | var tunnelingAgent = tunnel.httpsOverHttp({ 64 | maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets 65 | 66 | // CA for origin server if necessary 67 | ca: [ fs.readFileSync('origin-server-ca.pem')], 68 | 69 | // Client certification for origin server if necessary 70 | key: fs.readFileSync('origin-server-key.pem'), 71 | cert: fs.readFileSync('origin-server-cert.pem'), 72 | 73 | proxy: { // Proxy settings 74 | host: proxyHost, // Defaults to 'localhost' 75 | port: proxyPort, // Defaults to 80 76 | localAddress: localAddress, // Local interface if necessary 77 | 78 | // Basic authorization for proxy server if necessary 79 | proxyAuth: 'user:password', 80 | 81 | // Header fields for proxy server if necessary 82 | headers: { 83 | 'User-Agent': 'Node' 84 | }, 85 | } 86 | }); 87 | 88 | var req = https.request({ 89 | host: 'example.com', 90 | port: 443, 91 | agent: tunnelingAgent 92 | }); 93 | ``` 94 | 95 | ### HTTP over HTTPS tunneling 96 | 97 | ```javascript 98 | var tunnelingAgent = tunnel.httpOverHttps({ 99 | maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets 100 | 101 | proxy: { // Proxy settings 102 | host: proxyHost, // Defaults to 'localhost' 103 | port: proxyPort, // Defaults to 443 104 | localAddress: localAddress, // Local interface if necessary 105 | 106 | // Basic authorization for proxy server if necessary 107 | proxyAuth: 'user:password', 108 | 109 | // Header fields for proxy server if necessary 110 | headers: { 111 | 'User-Agent': 'Node' 112 | }, 113 | 114 | // CA for proxy server if necessary 115 | ca: [ fs.readFileSync('origin-server-ca.pem')], 116 | 117 | // Server name for verification if necessary 118 | servername: 'example.com', 119 | 120 | // Client certification for proxy server if necessary 121 | key: fs.readFileSync('origin-server-key.pem'), 122 | cert: fs.readFileSync('origin-server-cert.pem'), 123 | } 124 | }); 125 | 126 | var req = http.request({ 127 | host: 'example.com', 128 | port: 80, 129 | agent: tunnelingAgent 130 | }); 131 | ``` 132 | 133 | ### HTTPS over HTTPS tunneling 134 | 135 | ```javascript 136 | var tunnelingAgent = tunnel.httpsOverHttps({ 137 | maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets 138 | 139 | // CA for origin server if necessary 140 | ca: [ fs.readFileSync('origin-server-ca.pem')], 141 | 142 | // Client certification for origin server if necessary 143 | key: fs.readFileSync('origin-server-key.pem'), 144 | cert: fs.readFileSync('origin-server-cert.pem'), 145 | 146 | proxy: { // Proxy settings 147 | host: proxyHost, // Defaults to 'localhost' 148 | port: proxyPort, // Defaults to 443 149 | localAddress: localAddress, // Local interface if necessary 150 | 151 | // Basic authorization for proxy server if necessary 152 | proxyAuth: 'user:password', 153 | 154 | // Header fields for proxy server if necessary 155 | headers: { 156 | 'User-Agent': 'Node' 157 | } 158 | 159 | // CA for proxy server if necessary 160 | ca: [ fs.readFileSync('origin-server-ca.pem')], 161 | 162 | // Server name for verification if necessary 163 | servername: 'example.com', 164 | 165 | // Client certification for proxy server if necessary 166 | key: fs.readFileSync('origin-server-key.pem'), 167 | cert: fs.readFileSync('origin-server-cert.pem'), 168 | } 169 | }); 170 | 171 | var req = https.request({ 172 | host: 'example.com', 173 | port: 443, 174 | agent: tunnelingAgent 175 | }); 176 | ``` 177 | 178 | ## CONTRIBUTORS 179 | * [Aleksis Brezas (abresas)](https://github.com/abresas) 180 | * [Jackson Tian (JacksonTian)](https://github.com/JacksonTian) 181 | * [Dmitry Sorin (1999)](https://github.com/1999) 182 | 183 | ## License 184 | 185 | Licensed under the [MIT](https://github.com/koichik/node-tunnel/blob/master/LICENSE) license. 186 | -------------------------------------------------------------------------------- /node_modules/tunnel/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/tunnel'); 2 | -------------------------------------------------------------------------------- /node_modules/tunnel/lib/tunnel.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var net = require('net'); 4 | var tls = require('tls'); 5 | var http = require('http'); 6 | var https = require('https'); 7 | var events = require('events'); 8 | var assert = require('assert'); 9 | var util = require('util'); 10 | 11 | 12 | exports.httpOverHttp = httpOverHttp; 13 | exports.httpsOverHttp = httpsOverHttp; 14 | exports.httpOverHttps = httpOverHttps; 15 | exports.httpsOverHttps = httpsOverHttps; 16 | 17 | 18 | function httpOverHttp(options) { 19 | var agent = new TunnelingAgent(options); 20 | agent.request = http.request; 21 | return agent; 22 | } 23 | 24 | function httpsOverHttp(options) { 25 | var agent = new TunnelingAgent(options); 26 | agent.request = http.request; 27 | agent.createSocket = createSecureSocket; 28 | agent.defaultPort = 443; 29 | return agent; 30 | } 31 | 32 | function httpOverHttps(options) { 33 | var agent = new TunnelingAgent(options); 34 | agent.request = https.request; 35 | return agent; 36 | } 37 | 38 | function httpsOverHttps(options) { 39 | var agent = new TunnelingAgent(options); 40 | agent.request = https.request; 41 | agent.createSocket = createSecureSocket; 42 | agent.defaultPort = 443; 43 | return agent; 44 | } 45 | 46 | 47 | function TunnelingAgent(options) { 48 | var self = this; 49 | self.options = options || {}; 50 | self.proxyOptions = self.options.proxy || {}; 51 | self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; 52 | self.requests = []; 53 | self.sockets = []; 54 | 55 | self.on('free', function onFree(socket, host, port, localAddress) { 56 | var options = toOptions(host, port, localAddress); 57 | for (var i = 0, len = self.requests.length; i < len; ++i) { 58 | var pending = self.requests[i]; 59 | if (pending.host === options.host && pending.port === options.port) { 60 | // Detect the request to connect same origin server, 61 | // reuse the connection. 62 | self.requests.splice(i, 1); 63 | pending.request.onSocket(socket); 64 | return; 65 | } 66 | } 67 | socket.destroy(); 68 | self.removeSocket(socket); 69 | }); 70 | } 71 | util.inherits(TunnelingAgent, events.EventEmitter); 72 | 73 | TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { 74 | var self = this; 75 | var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); 76 | 77 | if (self.sockets.length >= this.maxSockets) { 78 | // We are over limit so we'll add it to the queue. 79 | self.requests.push(options); 80 | return; 81 | } 82 | 83 | // If we are under maxSockets create a new one. 84 | self.createSocket(options, function(socket) { 85 | socket.on('free', onFree); 86 | socket.on('close', onCloseOrRemove); 87 | socket.on('agentRemove', onCloseOrRemove); 88 | req.onSocket(socket); 89 | 90 | function onFree() { 91 | self.emit('free', socket, options); 92 | } 93 | 94 | function onCloseOrRemove(err) { 95 | self.removeSocket(socket); 96 | socket.removeListener('free', onFree); 97 | socket.removeListener('close', onCloseOrRemove); 98 | socket.removeListener('agentRemove', onCloseOrRemove); 99 | } 100 | }); 101 | }; 102 | 103 | TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { 104 | var self = this; 105 | var placeholder = {}; 106 | self.sockets.push(placeholder); 107 | 108 | var connectOptions = mergeOptions({}, self.proxyOptions, { 109 | method: 'CONNECT', 110 | path: options.host + ':' + options.port, 111 | agent: false, 112 | headers: { 113 | host: options.host + ':' + options.port 114 | } 115 | }); 116 | if (options.localAddress) { 117 | connectOptions.localAddress = options.localAddress; 118 | } 119 | if (connectOptions.proxyAuth) { 120 | connectOptions.headers = connectOptions.headers || {}; 121 | connectOptions.headers['Proxy-Authorization'] = 'Basic ' + 122 | new Buffer(connectOptions.proxyAuth).toString('base64'); 123 | } 124 | 125 | debug('making CONNECT request'); 126 | var connectReq = self.request(connectOptions); 127 | connectReq.useChunkedEncodingByDefault = false; // for v0.6 128 | connectReq.once('response', onResponse); // for v0.6 129 | connectReq.once('upgrade', onUpgrade); // for v0.6 130 | connectReq.once('connect', onConnect); // for v0.7 or later 131 | connectReq.once('error', onError); 132 | connectReq.end(); 133 | 134 | function onResponse(res) { 135 | // Very hacky. This is necessary to avoid http-parser leaks. 136 | res.upgrade = true; 137 | } 138 | 139 | function onUpgrade(res, socket, head) { 140 | // Hacky. 141 | process.nextTick(function() { 142 | onConnect(res, socket, head); 143 | }); 144 | } 145 | 146 | function onConnect(res, socket, head) { 147 | connectReq.removeAllListeners(); 148 | socket.removeAllListeners(); 149 | 150 | if (res.statusCode !== 200) { 151 | debug('tunneling socket could not be established, statusCode=%d', 152 | res.statusCode); 153 | socket.destroy(); 154 | var error = new Error('tunneling socket could not be established, ' + 155 | 'statusCode=' + res.statusCode); 156 | error.code = 'ECONNRESET'; 157 | options.request.emit('error', error); 158 | self.removeSocket(placeholder); 159 | return; 160 | } 161 | if (head.length > 0) { 162 | debug('got illegal response body from proxy'); 163 | socket.destroy(); 164 | var error = new Error('got illegal response body from proxy'); 165 | error.code = 'ECONNRESET'; 166 | options.request.emit('error', error); 167 | self.removeSocket(placeholder); 168 | return; 169 | } 170 | debug('tunneling connection has established'); 171 | self.sockets[self.sockets.indexOf(placeholder)] = socket; 172 | return cb(socket); 173 | } 174 | 175 | function onError(cause) { 176 | connectReq.removeAllListeners(); 177 | 178 | debug('tunneling socket could not be established, cause=%s\n', 179 | cause.message, cause.stack); 180 | var error = new Error('tunneling socket could not be established, ' + 181 | 'cause=' + cause.message); 182 | error.code = 'ECONNRESET'; 183 | options.request.emit('error', error); 184 | self.removeSocket(placeholder); 185 | } 186 | }; 187 | 188 | TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { 189 | var pos = this.sockets.indexOf(socket) 190 | if (pos === -1) { 191 | return; 192 | } 193 | this.sockets.splice(pos, 1); 194 | 195 | var pending = this.requests.shift(); 196 | if (pending) { 197 | // If we have pending requests and a socket gets closed a new one 198 | // needs to be created to take over in the pool for the one that closed. 199 | this.createSocket(pending, function(socket) { 200 | pending.request.onSocket(socket); 201 | }); 202 | } 203 | }; 204 | 205 | function createSecureSocket(options, cb) { 206 | var self = this; 207 | TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { 208 | var hostHeader = options.request.getHeader('host'); 209 | var tlsOptions = mergeOptions({}, self.options, { 210 | socket: socket, 211 | servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host 212 | }); 213 | 214 | // 0 is dummy port for v0.6 215 | var secureSocket = tls.connect(0, tlsOptions); 216 | self.sockets[self.sockets.indexOf(socket)] = secureSocket; 217 | cb(secureSocket); 218 | }); 219 | } 220 | 221 | 222 | function toOptions(host, port, localAddress) { 223 | if (typeof host === 'string') { // since v0.10 224 | return { 225 | host: host, 226 | port: port, 227 | localAddress: localAddress 228 | }; 229 | } 230 | return host; // for v0.11 or later 231 | } 232 | 233 | function mergeOptions(target) { 234 | for (var i = 1, len = arguments.length; i < len; ++i) { 235 | var overrides = arguments[i]; 236 | if (typeof overrides === 'object') { 237 | var keys = Object.keys(overrides); 238 | for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { 239 | var k = keys[j]; 240 | if (overrides[k] !== undefined) { 241 | target[k] = overrides[k]; 242 | } 243 | } 244 | } 245 | } 246 | return target; 247 | } 248 | 249 | 250 | var debug; 251 | if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { 252 | debug = function() { 253 | var args = Array.prototype.slice.call(arguments); 254 | if (typeof args[0] === 'string') { 255 | args[0] = 'TUNNEL: ' + args[0]; 256 | } else { 257 | args.unshift('TUNNEL:'); 258 | } 259 | console.error.apply(console, args); 260 | } 261 | } else { 262 | debug = function() {}; 263 | } 264 | exports.debug = debug; // for test 265 | -------------------------------------------------------------------------------- /node_modules/tunnel/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tunnel", 3 | "version": "0.0.6", 4 | "description": "Node HTTP/HTTPS Agents for tunneling proxies", 5 | "keywords": [ 6 | "http", 7 | "https", 8 | "agent", 9 | "proxy", 10 | "tunnel" 11 | ], 12 | "homepage": "https://github.com/koichik/node-tunnel/", 13 | "bugs": "https://github.com/koichik/node-tunnel/issues", 14 | "license": "MIT", 15 | "author": "Koichi Kobayashi ", 16 | "main": "./index.js", 17 | "directories": { 18 | "lib": "./lib" 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "https://github.com/koichik/node-tunnel.git" 23 | }, 24 | "scripts": { 25 | "test": "mocha" 26 | }, 27 | "devDependencies": { 28 | "mocha": "^5.2.0", 29 | "should": "^13.2.3" 30 | }, 31 | "engines": { 32 | "node": ">=0.6.11 <=0.7.0 || >=0.7.3" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-action-setup-ddev", 3 | "version": "1.0.0", 4 | "private": true, 5 | "license": "GPL v3", 6 | "description": "", 7 | "main": "lib/main.js", 8 | "repository": { 9 | "type": "git", 10 | "url": "git+https://github.com/jonaseberle/github-action-setup-ddev.git" 11 | }, 12 | "keywords": [ 13 | "actions", 14 | "ddev", 15 | "setup" 16 | ], 17 | "author": "Jonas Eberle", 18 | "dependencies": { 19 | "@actions/core": "^1.9.1", 20 | "@types/node": "^12.12.47" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/fixtures/ddevProj1/.ddev/config.yaml: -------------------------------------------------------------------------------- 1 | name: setup-ddev-proj1 2 | type: php 3 | docroot: "" 4 | php_version: "8.0" 5 | webserver_type: nginx-fpm 6 | router_http_port: "80" 7 | router_https_port: "443" 8 | xdebug_enabled: false 9 | additional_hostnames: [] 10 | additional_fqdns: [] 11 | mariadb_version: "10.2" 12 | provider: default 13 | use_dns_when_possible: true 14 | 15 | 16 | # This config.yaml was created with ddev version v1.14.2 17 | # webimage: drud/ddev-webserver:v1.14.2 18 | # dbimage: drud/ddev-dbserver-mariadb-10.2:v1.14.1 19 | # dbaimage: phpmyadmin/phpmyadmin:5 20 | # However we do not recommend explicitly wiring these images into the 21 | # config.yaml as they may break future versions of ddev. 22 | # You can update this config.yaml using 'ddev config'. 23 | 24 | # Key features of ddev's config.yaml: 25 | 26 | # name: # Name of the project, automatically provides 27 | # http://projectname.ddev.site and https://projectname.ddev.site 28 | 29 | # type: # drupal6/7/8, backdrop, typo3, wordpress, php 30 | 31 | # docroot: # Relative path to the directory containing index.php. 32 | 33 | # php_version: "7.3" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4" 34 | 35 | # You can explicitly specify the webimage, dbimage, dbaimage lines but this 36 | # is not recommended, as the images are often closely tied to ddev's' behavior, 37 | # so this can break upgrades. 38 | 39 | # webimage: # nginx/php docker image. 40 | # dbimage: # mariadb docker image. 41 | # dbaimage: 42 | 43 | # mariadb_version and mysql_version 44 | # ddev can use many versions of mariadb and mysql 45 | # However these directives are mutually exclusive 46 | # mariadb_version: 10.2 47 | # mysql_version: 8.0 48 | 49 | # router_http_port: # Port to be used for http (defaults to port 80) 50 | # router_https_port: # Port for https (defaults to 443) 51 | 52 | # xdebug_enabled: false # Set to true to enable xdebug and "ddev start" or "ddev restart" 53 | # Note that for most people the commands 54 | # "ddev exec enable_xdebug" and "ddev exec disable_xdebug" work better, 55 | # as leaving xdebug enabled all the time is a big performance hit. 56 | 57 | # webserver_type: nginx-fpm # Can be set to apache-fpm or apache-cgi as well 58 | 59 | # timezone: Europe/Berlin 60 | # This is the timezone used in the containers and by PHP; 61 | # it can be set to any valid timezone, 62 | # see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones 63 | # For example Europe/Dublin or MST7MDT 64 | 65 | # additional_hostnames: 66 | # - somename 67 | # - someothername 68 | # would provide http and https URLs for "somename.ddev.site" 69 | # and "someothername.ddev.site". 70 | 71 | # additional_fqdns: 72 | # - example.com 73 | # - sub1.example.com 74 | # would provide http and https URLs for "example.com" and "sub1.example.com" 75 | # Please take care with this because it can cause great confusion. 76 | 77 | # upload_dir: custom/upload/dir 78 | # would set the destination path for ddev import-files to custom/upload/dir. 79 | 80 | # working_dir: 81 | # web: /var/www/html 82 | # db: /home 83 | # would set the default working directory for the web and db services. 84 | # These values specify the destination directory for ddev ssh and the 85 | # directory in which commands passed into ddev exec are run. 86 | 87 | # omit_containers: ["db", dba", "ddev-ssh-agent"] 88 | # Currently only these containers are supported. Some containers can also be 89 | # omitted globally in the ~/.ddev/global_config.yaml. Note that if you omit 90 | # the "db" container, several standard features of ddev that access the 91 | # database container will be unusable. 92 | 93 | # nfs_mount_enabled: false 94 | # Great performance improvement but requires host configuration first. 95 | # See https://ddev.readthedocs.io/en/stable/users/performance/#using-nfs-to-mount-the-project-into-the-container 96 | 97 | # host_https_port: "59002" 98 | # The host port binding for https can be explicitly specified. It is 99 | # dynamic unless otherwise specified. 100 | # This is not used by most people, most people use the *router* instead 101 | # of the localhost port. 102 | 103 | # host_webserver_port: "59001" 104 | # The host port binding for the ddev-webserver can be explicitly specified. It is 105 | # dynamic unless otherwise specified. 106 | # This is not used by most people, most people use the *router* instead 107 | # of the localhost port. 108 | 109 | # host_db_port: "59002" 110 | # The host port binding for the ddev-dbserver can be explicitly specified. It is dynamic 111 | # unless explicitly specified. 112 | 113 | # phpmyadmin_port: "8036" 114 | # phpmyadmin_https_port: "8037" 115 | # The PHPMyAdmin ports can be changed from the default 8036 and 8037 116 | 117 | # mailhog_port: "8025" 118 | # mailhog_https_port: "8026" 119 | # The MailHog ports can be changed from the default 8025 and 8026 120 | 121 | # webimage_extra_packages: [php-yaml, php7.3-ldap] 122 | # Extra Debian packages that are needed in the webimage can be added here 123 | 124 | # dbimage_extra_packages: [telnet,netcat] 125 | # Extra Debian packages that are needed in the dbimage can be added here 126 | 127 | # use_dns_when_possible: true 128 | # If the host has internet access and the domain configured can 129 | # successfully be looked up, DNS will be used for hostname resolution 130 | # instead of editing /etc/hosts 131 | # Defaults to true 132 | 133 | # project_tld: ddev.site 134 | # The top-level domain used for project URLs 135 | # The default "ddev.site" allows DNS lookup via a wildcard 136 | # If you prefer you can change this to "ddev.local" to preserve 137 | # pre-v1.9 behavior. 138 | 139 | # ngrok_args: --subdomain mysite --auth username:pass 140 | # Provide extra flags to the "ngrok http" command, see 141 | # https://ngrok.com/docs#http or run "ngrok http -h" 142 | 143 | # disable_settings_management: false 144 | # If true, ddev will not create CMS-specific settings files like 145 | # Drupal's settings.php/settings.ddev.php or TYPO3's AdditionalSettings.php 146 | # In this case the user must provide all such settings. 147 | 148 | # no_project_mount: false 149 | # (Experimental) If true, ddev will not mount the project into the web container; 150 | # the user is responsible for mounting it manually or via a script. 151 | # This is to enable experimentation with alternate file mounting strategies. 152 | # For advanced users only! 153 | 154 | # provider: default # Currently either "default" or "pantheon" 155 | # 156 | # Many ddev commands can be extended to run tasks before or after the 157 | # ddev command is executed, for example "post-start", "post-import-db", 158 | # "pre-composer", "post-composer" 159 | # See https://ddev.readthedocs.io/en/stable/users/extending-commands/ for more 160 | # information on the commands that can be extended and the tasks you can define 161 | # for them. Example: 162 | #hooks: 163 | -------------------------------------------------------------------------------- /tests/fixtures/ddevProj1/index.html: -------------------------------------------------------------------------------- 1 | index.html test output 2 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@actions/core@^1.9.1": 6 | version "1.9.1" 7 | resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.9.1.tgz#97c0201b1f9856df4f7c3a375cdcdb0c2a2f750b" 8 | integrity sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA== 9 | dependencies: 10 | "@actions/http-client" "^2.0.1" 11 | uuid "^8.3.2" 12 | 13 | "@actions/http-client@^2.0.1": 14 | version "2.0.1" 15 | resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c" 16 | integrity sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw== 17 | dependencies: 18 | tunnel "^0.0.6" 19 | 20 | "@types/node@^12.12.47": 21 | version "12.20.55" 22 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" 23 | integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== 24 | 25 | tunnel@^0.0.6: 26 | version "0.0.6" 27 | resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" 28 | integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== 29 | 30 | uuid@^8.3.2: 31 | version "8.3.2" 32 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 33 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 34 | --------------------------------------------------------------------------------