mirror of
https://github.com/dawidd6/action-send-mail.git
synced 2025-07-01 20:53:14 +07:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
6063705cef | |||
64262eed9b | |||
118894614c | |||
07d4810b3b | |||
924d1fedb2 | |||
602f9d1725 | |||
6d23605227 | |||
f5b1987fb0 | |||
9020e79ee7 | |||
ba46013833 | |||
fd76768b61 | |||
4ef78fc181 | |||
ceb614a2c5 |
16
.github/workflows/test.yml
vendored
16
.github/workflows/test.yml
vendored
@ -58,3 +58,19 @@ jobs:
|
|||||||
attachments: ${{matrix.attachments}}
|
attachments: ${{matrix.attachments}}
|
||||||
convert_markdown: ${{matrix.convert_markdown}}
|
convert_markdown: ${{matrix.convert_markdown}}
|
||||||
priority: high
|
priority: high
|
||||||
|
|
||||||
|
url-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Send mail
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
connection_url: smtp+starttls://${{secrets.USERNAME}}:${{secrets.PASSWORD}}@${{secrets.ADDRESS}}/
|
||||||
|
subject: Plain body with connection_url
|
||||||
|
body: |
|
||||||
|
first line
|
||||||
|
second line
|
||||||
|
to: ${{github.event.pusher.email}}
|
||||||
|
from: github-actions
|
||||||
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.idea
|
29
README.md
29
README.md
@ -16,10 +16,20 @@ Some features:
|
|||||||
- name: Send mail
|
- name: Send mail
|
||||||
uses: dawidd6/action-send-mail@v3
|
uses: dawidd6/action-send-mail@v3
|
||||||
with:
|
with:
|
||||||
# Required mail server address:
|
# Specify connection via URL (replaces server_address, server_port, secure,
|
||||||
|
# username and password)
|
||||||
|
#
|
||||||
|
# Format:
|
||||||
|
#
|
||||||
|
# * smtp://user:password@server:port
|
||||||
|
# * smtp+starttls://user:password@server:port
|
||||||
|
connection_url: ${{secrets.MAIL_CONNECTION}}
|
||||||
|
# Required mail server address if not connection_url:
|
||||||
server_address: smtp.gmail.com
|
server_address: smtp.gmail.com
|
||||||
# Required mail server port:
|
# Server port, default 25:
|
||||||
server_port: 465
|
server_port: 465
|
||||||
|
# Optional whether this connection use TLS (default is true if server_port is 465)
|
||||||
|
secure: true
|
||||||
# Optional (recommended): mail server username:
|
# Optional (recommended): mail server username:
|
||||||
username: ${{secrets.MAIL_USERNAME}}
|
username: ${{secrets.MAIL_USERNAME}}
|
||||||
# Optional (recommended) mail server password:
|
# Optional (recommended) mail server password:
|
||||||
@ -30,8 +40,6 @@ Some features:
|
|||||||
to: obiwan@example.com,yoda@example.com
|
to: obiwan@example.com,yoda@example.com
|
||||||
# Required sender full name (address can be skipped):
|
# Required sender full name (address can be skipped):
|
||||||
from: Luke Skywalker # <user@example.com>
|
from: Luke Skywalker # <user@example.com>
|
||||||
# Optional whether this connection use TLS (default is true if server_port is 465)
|
|
||||||
secure: true
|
|
||||||
# Optional plain body:
|
# Optional plain body:
|
||||||
body: Build job of ${{github.repository}} completed successfully!
|
body: Build job of ${{github.repository}} completed successfully!
|
||||||
# Optional HTML body read from file:
|
# Optional HTML body read from file:
|
||||||
@ -42,6 +50,8 @@ Some features:
|
|||||||
bcc: r2d2@example.com,hansolo@example.com
|
bcc: r2d2@example.com,hansolo@example.com
|
||||||
# Optional recipient of the email response:
|
# Optional recipient of the email response:
|
||||||
reply_to: luke@example.com
|
reply_to: luke@example.com
|
||||||
|
# Optional Message ID this message is replying to:
|
||||||
|
in_reply_to: <random-luke@example.com>
|
||||||
# Optional unsigned/invalid certificates allowance:
|
# Optional unsigned/invalid certificates allowance:
|
||||||
ignore_cert: true
|
ignore_cert: true
|
||||||
# Optional converting Markdown to HTML (set content_type to text/html too):
|
# Optional converting Markdown to HTML (set content_type to text/html too):
|
||||||
@ -56,14 +66,11 @@ Some features:
|
|||||||
|
|
||||||
### Gmail
|
### Gmail
|
||||||
|
|
||||||
Gmail security settings may cause this Action to fail. This failure may involve a message in the GitHub Actions details about access being denied and an email from Google to the email account being used about a sign-in being blocked and why.
|
Instead of using your normal Google password, use an App password.
|
||||||
|
|
||||||
Changes in Gmail settings may be necessary to get this action to work.
|
1. [Enable 2-Step Verification.](https://support.google.com/accounts/answer/185839?hl=en&co=GENIE.Platform%3DAndroid).
|
||||||
1. Google treats this method of using email as a "Less Secure App". However, "Less Secure Apps" can be enabled in Google profile settings. There doesn't appear to be a static link for this, but if you go to Google profile settings while signed-in and type "less secure apps" into the search bar, the appropriate instructions will come up.
|
This is needed to create an App password.
|
||||||
2. IMAP needs to be enabled in Gmail settings as described [here](https://support.google.com/mail/answer/7126229?hl=en).
|
2. [Create an App password](https://support.google.com/accounts/answer/185833?hl=en) for `Mail`.
|
||||||
3. If the Gmail account you're trying to use in this Action is already 2FA (Two Factor Authentication) enabled, the 2FA password will need to be provided as well, which isn't included in the default template.
|
|
||||||
|
|
||||||
Users who have had problems have reported success by doing each of these three steps or by doing the first two steps and using a Gmail account that didn't have 2FA enabled.
|
|
||||||
|
|
||||||
### Unauthenticated login (username/password fields)
|
### Unauthenticated login (username/password fields)
|
||||||
|
|
||||||
|
17
action.yml
17
action.yml
@ -5,18 +5,19 @@ branding:
|
|||||||
icon: mail
|
icon: mail
|
||||||
color: blue
|
color: blue
|
||||||
inputs:
|
inputs:
|
||||||
|
connection_url:
|
||||||
|
description: Connection URL protocol://user:password@server:port, protocol can be smtp or smtp+starttls, replaces server_address, server_port, secure, username and password
|
||||||
server_address:
|
server_address:
|
||||||
description: SMTP server address
|
description: SMTP server address
|
||||||
required: true
|
|
||||||
server_port:
|
server_port:
|
||||||
description: SMTP server port
|
description: SMTP server port
|
||||||
required: true
|
default: "25"
|
||||||
|
secure:
|
||||||
|
description: Whether this connection use TLS (default is true if server_port is 465)
|
||||||
username:
|
username:
|
||||||
description: Authenticate as this user to SMTP server
|
description: Authenticate as this user to SMTP server
|
||||||
required: false
|
|
||||||
password:
|
password:
|
||||||
description: Authenticate with this password to SMTP server
|
description: Authenticate with this password to SMTP server
|
||||||
required: false
|
|
||||||
subject:
|
subject:
|
||||||
description: Subject of mail message
|
description: Subject of mail message
|
||||||
required: true
|
required: true
|
||||||
@ -26,9 +27,6 @@ inputs:
|
|||||||
from:
|
from:
|
||||||
description: Full name of mail sender (might be with an email address specified in <>)
|
description: Full name of mail sender (might be with an email address specified in <>)
|
||||||
required: true
|
required: true
|
||||||
secure:
|
|
||||||
description: Whether this connection use TLS (default is true if server_port is 465)
|
|
||||||
required: false
|
|
||||||
body:
|
body:
|
||||||
description: Body of mail message (might be a filename prefixed with file:// to read from)
|
description: Body of mail message (might be a filename prefixed with file:// to read from)
|
||||||
required: false
|
required: false
|
||||||
@ -44,6 +42,9 @@ inputs:
|
|||||||
reply_to:
|
reply_to:
|
||||||
description: An email address that will appear on the Reply-To field
|
description: An email address that will appear on the Reply-To field
|
||||||
required: false
|
required: false
|
||||||
|
in_reply_to:
|
||||||
|
description: The Message-ID this message is replying to
|
||||||
|
required: false
|
||||||
ignore_cert:
|
ignore_cert:
|
||||||
description: Allow unsigned/invalid certificates
|
description: Allow unsigned/invalid certificates
|
||||||
required: false
|
required: false
|
||||||
@ -57,5 +58,5 @@ inputs:
|
|||||||
description: Set Priority level for the mail message to 'high', 'normal' (default) or 'low'
|
description: Set Priority level for the mail message to 'high', 'normal' (default) or 'low'
|
||||||
required: false
|
required: false
|
||||||
runs:
|
runs:
|
||||||
using: node12
|
using: node16
|
||||||
main: main.js
|
main: main.js
|
||||||
|
56
main.js
56
main.js
@ -3,6 +3,7 @@ const core = require("@actions/core")
|
|||||||
const glob = require("@actions/glob")
|
const glob = require("@actions/glob")
|
||||||
const fs = require("fs")
|
const fs = require("fs")
|
||||||
const showdown = require("showdown")
|
const showdown = require("showdown")
|
||||||
|
const path = require("path")
|
||||||
|
|
||||||
function getBody(bodyOrFile, convertMarkdown) {
|
function getBody(bodyOrFile, convertMarkdown) {
|
||||||
let body = bodyOrFile
|
let body = bodyOrFile
|
||||||
@ -33,29 +34,68 @@ function getFrom(from, username) {
|
|||||||
async function getAttachments(attachments) {
|
async function getAttachments(attachments) {
|
||||||
const globber = await glob.create(attachments.split(',').join('\n'))
|
const globber = await glob.create(attachments.split(',').join('\n'))
|
||||||
const files = await globber.glob()
|
const files = await globber.glob()
|
||||||
return files.map(f => ({ path: f }))
|
return files.map(f => ({ filename: path.basename(f), path: f, cid: f.replace(/^.*[\\\/]/, '')}))
|
||||||
}
|
}
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
try {
|
try {
|
||||||
const serverAddress = core.getInput("server_address", { required: true })
|
let serverAddress = core.getInput("server_address")
|
||||||
const serverPort = core.getInput("server_port", { required: true })
|
let serverPort = core.getInput("server_port")
|
||||||
const username = core.getInput("username")
|
let secure = core.getInput("secure")
|
||||||
const password = core.getInput("password")
|
let username = core.getInput("username")
|
||||||
|
let password = core.getInput("password")
|
||||||
|
|
||||||
|
if (!secure) {
|
||||||
|
secure = serverPort === "465" ? "true" : "false"
|
||||||
|
}
|
||||||
|
|
||||||
|
const connectionUrl = core.getInput("connection_url")
|
||||||
|
if (connectionUrl) {
|
||||||
|
const url = new URL(connectionUrl)
|
||||||
|
switch (url.protocol) {
|
||||||
|
default:
|
||||||
|
throw new Error(`Unsupported connection protocol '${url.protocol}'`)
|
||||||
|
case "smtp:":
|
||||||
|
serverPort = "25"
|
||||||
|
secure = "false"
|
||||||
|
break
|
||||||
|
case "smtp+starttls:":
|
||||||
|
serverPort = "465"
|
||||||
|
secure = "true"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if (url.hostname) {
|
||||||
|
serverAddress = url.hostname
|
||||||
|
}
|
||||||
|
if (url.port) {
|
||||||
|
serverPort = url.port
|
||||||
|
}
|
||||||
|
if (url.username) {
|
||||||
|
username = unescape(url.username)
|
||||||
|
}
|
||||||
|
if (url.password) {
|
||||||
|
password = unescape(url.password)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const subject = core.getInput("subject", { required: true })
|
const subject = core.getInput("subject", { required: true })
|
||||||
const from = core.getInput("from", { required: true })
|
const from = core.getInput("from", { required: true })
|
||||||
const to = core.getInput("to", { required: true })
|
const to = core.getInput("to", { required: true })
|
||||||
const secure = core.getInput("secure", { required: false })
|
|
||||||
const body = core.getInput("body", { required: false })
|
const body = core.getInput("body", { required: false })
|
||||||
const htmlBody = core.getInput("html_body", { required: false })
|
const htmlBody = core.getInput("html_body", { required: false })
|
||||||
const cc = core.getInput("cc", { required: false })
|
const cc = core.getInput("cc", { required: false })
|
||||||
const bcc = core.getInput("bcc", { required: false })
|
const bcc = core.getInput("bcc", { required: false })
|
||||||
const replyTo = core.getInput("reply_to", { required: false })
|
const replyTo = core.getInput("reply_to", { required: false })
|
||||||
|
const inReplyTo = core.getInput("in_reply_to", { required: false })
|
||||||
const attachments = core.getInput("attachments", { required: false })
|
const attachments = core.getInput("attachments", { required: false })
|
||||||
const convertMarkdown = core.getInput("convert_markdown", { required: false })
|
const convertMarkdown = core.getInput("convert_markdown", { required: false })
|
||||||
const ignoreCert = core.getInput("ignore_cert", { required: false })
|
const ignoreCert = core.getInput("ignore_cert", { required: false })
|
||||||
const priority = core.getInput("priority", { required: false })
|
const priority = core.getInput("priority", { required: false })
|
||||||
|
|
||||||
|
if (!serverAddress) {
|
||||||
|
throw new Error("Server address must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
if (!username || !password) {
|
if (!username || !password) {
|
||||||
core.warning("Username and password not specified. You should only do this if you are using a self-hosted runner to access an on-premise mail server.")
|
core.warning("Username and password not specified. You should only do this if you are using a self-hosted runner to access an on-premise mail server.")
|
||||||
}
|
}
|
||||||
@ -67,7 +107,7 @@ async function main() {
|
|||||||
pass: password
|
pass: password
|
||||||
} : undefined,
|
} : undefined,
|
||||||
port: serverPort,
|
port: serverPort,
|
||||||
secure: secure == "true" ? true : serverPort == "465",
|
secure: secure === "true",
|
||||||
tls: ignoreCert == "true" ? {
|
tls: ignoreCert == "true" ? {
|
||||||
rejectUnauthorized: false
|
rejectUnauthorized: false
|
||||||
} : undefined,
|
} : undefined,
|
||||||
@ -80,6 +120,8 @@ async function main() {
|
|||||||
cc: cc ? cc : undefined,
|
cc: cc ? cc : undefined,
|
||||||
bcc: bcc ? bcc : undefined,
|
bcc: bcc ? bcc : undefined,
|
||||||
replyTo: replyTo ? replyTo : undefined,
|
replyTo: replyTo ? replyTo : undefined,
|
||||||
|
inReplyTo: inReplyTo ? inReplyTo : undefined,
|
||||||
|
references: inReplyTo ? inReplyTo : undefined,
|
||||||
text: body ? getBody(body, false) : undefined,
|
text: body ? getBody(body, false) : undefined,
|
||||||
html: htmlBody ? getBody(htmlBody, convertMarkdown) : undefined,
|
html: htmlBody ? getBody(htmlBody, convertMarkdown) : undefined,
|
||||||
priority: priority ? priority : undefined,
|
priority: priority ? priority : undefined,
|
||||||
|
13
node_modules/.bin/showdown
generated
vendored
13
node_modules/.bin/showdown
generated
vendored
@ -1,12 +1 @@
|
|||||||
#!/bin/sh
|
../showdown/bin/showdown.js
|
||||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
||||||
|
|
||||||
case `uname` in
|
|
||||||
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -x "$basedir/node" ]; then
|
|
||||||
exec "$basedir/node" "$basedir/../showdown/bin/showdown.js" "$@"
|
|
||||||
else
|
|
||||||
exec node "$basedir/../showdown/bin/showdown.js" "$@"
|
|
||||||
fi
|
|
17
node_modules/.bin/showdown.cmd
generated
vendored
17
node_modules/.bin/showdown.cmd
generated
vendored
@ -1,17 +0,0 @@
|
|||||||
@ECHO off
|
|
||||||
GOTO start
|
|
||||||
:find_dp0
|
|
||||||
SET dp0=%~dp0
|
|
||||||
EXIT /b
|
|
||||||
:start
|
|
||||||
SETLOCAL
|
|
||||||
CALL :find_dp0
|
|
||||||
|
|
||||||
IF EXIST "%dp0%\node.exe" (
|
|
||||||
SET "_prog=%dp0%\node.exe"
|
|
||||||
) ELSE (
|
|
||||||
SET "_prog=node"
|
|
||||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
|
||||||
)
|
|
||||||
|
|
||||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\showdown\bin\showdown.js" %*
|
|
28
node_modules/.bin/showdown.ps1
generated
vendored
28
node_modules/.bin/showdown.ps1
generated
vendored
@ -1,28 +0,0 @@
|
|||||||
#!/usr/bin/env pwsh
|
|
||||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
|
||||||
|
|
||||||
$exe=""
|
|
||||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
|
||||||
# Fix case when both the Windows and Linux builds of Node
|
|
||||||
# are installed in the same directory
|
|
||||||
$exe=".exe"
|
|
||||||
}
|
|
||||||
$ret=0
|
|
||||||
if (Test-Path "$basedir/node$exe") {
|
|
||||||
# Support pipeline input
|
|
||||||
if ($MyInvocation.ExpectingInput) {
|
|
||||||
$input | & "$basedir/node$exe" "$basedir/../showdown/bin/showdown.js" $args
|
|
||||||
} else {
|
|
||||||
& "$basedir/node$exe" "$basedir/../showdown/bin/showdown.js" $args
|
|
||||||
}
|
|
||||||
$ret=$LASTEXITCODE
|
|
||||||
} else {
|
|
||||||
# Support pipeline input
|
|
||||||
if ($MyInvocation.ExpectingInput) {
|
|
||||||
$input | & "node$exe" "$basedir/../showdown/bin/showdown.js" $args
|
|
||||||
} else {
|
|
||||||
& "node$exe" "$basedir/../showdown/bin/showdown.js" $args
|
|
||||||
}
|
|
||||||
$ret=$LASTEXITCODE
|
|
||||||
}
|
|
||||||
exit $ret
|
|
25
node_modules/.package-lock.json
generated
vendored
25
node_modules/.package-lock.json
generated
vendored
@ -1,13 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "action-send-mail",
|
"name": "action-send-mail",
|
||||||
"version": "1.0.0",
|
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"node_modules/@actions/core": {
|
"node_modules/@actions/core": {
|
||||||
"version": "1.2.7",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.7.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.4.0.tgz",
|
||||||
"integrity": "sha512-kzLFD5BgEvq6ubcxdgPbRKGD2Qrgya/5j+wh4LZzqT915I0V3rED+MvjH6NXghbvk1MXknpNNQ3uKjXSEN00Ig=="
|
"integrity": "sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg=="
|
||||||
},
|
},
|
||||||
"node_modules/@actions/glob": {
|
"node_modules/@actions/glob": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
@ -151,9 +150,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/nodemailer": {
|
"node_modules/nodemailer": {
|
||||||
"version": "6.5.0",
|
"version": "6.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.6.2.tgz",
|
||||||
"integrity": "sha512-Tm4RPrrIZbnqDKAvX+/4M+zovEReiKlEXWDzG4iwtpL9X34MJY+D5LnQPH/+eghe8DLlAVshHAJZAZWBGhkguw==",
|
"integrity": "sha512-YSzu7TLbI+bsjCis/TZlAXBoM4y93HhlIgo0P5oiA2ua9Z4k+E2Fod//ybIzdJxOlXGRcHIh/WaeCBehvxZb/Q==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.0.0"
|
"node": ">=6.0.0"
|
||||||
}
|
}
|
||||||
@ -271,9 +270,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/y18n": {
|
"node_modules/y18n": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
|
||||||
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
|
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
|
||||||
},
|
},
|
||||||
"node_modules/yargs": {
|
"node_modules/yargs": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.3",
|
||||||
@ -294,9 +293,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/yargs-parser": {
|
"node_modules/yargs-parser": {
|
||||||
"version": "15.0.1",
|
"version": "15.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz",
|
||||||
"integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
|
"integrity": "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"camelcase": "^5.0.0",
|
"camelcase": "^5.0.0",
|
||||||
"decamelize": "^1.2.0"
|
"decamelize": "^1.2.0"
|
||||||
|
17
node_modules/@actions/core/README.md
generated
vendored
17
node_modules/@actions/core/README.md
generated
vendored
@ -16,11 +16,14 @@ import * as core from '@actions/core';
|
|||||||
|
|
||||||
#### Inputs/Outputs
|
#### Inputs/Outputs
|
||||||
|
|
||||||
Action inputs can be read with `getInput`. Outputs can be set with `setOutput` which makes them available to be mapped into inputs of other actions to ensure they are decoupled.
|
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`.
|
||||||
|
|
||||||
|
Outputs can be set with `setOutput` which makes them available to be mapped into inputs of other actions to ensure they are decoupled.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const myInput = core.getInput('inputName', { required: true });
|
const myInput = core.getInput('inputName', { required: true });
|
||||||
|
const myBooleanInput = core.getBooleanInput('booleanInputName', { required: true });
|
||||||
|
const myMultilineInput = core.getMultilineInput('multilineInputName', { required: true });
|
||||||
core.setOutput('outputKey', 'outputVal');
|
core.setOutput('outputKey', 'outputVal');
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -66,7 +69,6 @@ catch (err) {
|
|||||||
|
|
||||||
Note that `setNeutral` is not yet implemented in actions V2 but equivalent functionality is being planned.
|
Note that `setNeutral` is not yet implemented in actions V2 but equivalent functionality is being planned.
|
||||||
|
|
||||||
|
|
||||||
#### Logging
|
#### Logging
|
||||||
|
|
||||||
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).
|
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).
|
||||||
@ -118,6 +120,7 @@ const result = await core.group('Do something async', async () => {
|
|||||||
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.
|
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.
|
||||||
|
|
||||||
Foreground colors:
|
Foreground colors:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// 3/4 bit
|
// 3/4 bit
|
||||||
core.info('\u001b[35mThis foreground will be magenta')
|
core.info('\u001b[35mThis foreground will be magenta')
|
||||||
@ -130,6 +133,7 @@ core.info('\u001b[38;2;255;0;0mThis foreground will be bright red')
|
|||||||
```
|
```
|
||||||
|
|
||||||
Background colors:
|
Background colors:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// 3/4 bit
|
// 3/4 bit
|
||||||
core.info('\u001b[43mThis background will be yellow');
|
core.info('\u001b[43mThis background will be yellow');
|
||||||
@ -156,6 +160,7 @@ core.info('\u001b[31;46mRed foreground with a cyan background and \u001b[1mbold
|
|||||||
```
|
```
|
||||||
|
|
||||||
> Note: Escape codes reset at the start of each line
|
> Note: Escape codes reset at the start of each line
|
||||||
|
|
||||||
```js
|
```js
|
||||||
core.info('\u001b[35mThis foreground will be magenta')
|
core.info('\u001b[35mThis foreground will be magenta')
|
||||||
core.info('This foreground will reset to the default')
|
core.info('This foreground will reset to the default')
|
||||||
@ -170,9 +175,10 @@ core.info(style.color.ansi16m.hex('#abcdef') + 'Hello world!')
|
|||||||
|
|
||||||
#### Action state
|
#### Action state
|
||||||
|
|
||||||
You can use this library to save state and get state for sharing information between a given wrapper action:
|
You can use this library to save state and get state for sharing information between a given wrapper action:
|
||||||
|
|
||||||
|
**action.yml**:
|
||||||
|
|
||||||
**action.yml**
|
|
||||||
```yaml
|
```yaml
|
||||||
name: 'Wrapper action sample'
|
name: 'Wrapper action sample'
|
||||||
inputs:
|
inputs:
|
||||||
@ -193,6 +199,7 @@ core.saveState("pidToKill", 12345);
|
|||||||
```
|
```
|
||||||
|
|
||||||
In action's `cleanup.js`:
|
In action's `cleanup.js`:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const core = require('@actions/core');
|
const core = require('@actions/core');
|
||||||
|
|
||||||
|
17
node_modules/@actions/core/lib/command.js
generated
vendored
17
node_modules/@actions/core/lib/command.js
generated
vendored
@ -1,12 +1,25 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||||
|
}) : (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
o[k2] = m[k];
|
||||||
|
}));
|
||||||
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||||
|
}) : function(o, v) {
|
||||||
|
o["default"] = v;
|
||||||
|
});
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
if (mod && mod.__esModule) return mod;
|
if (mod && mod.__esModule) return mod;
|
||||||
var result = {};
|
var result = {};
|
||||||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||||
result["default"] = mod;
|
__setModuleDefault(result, mod);
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.issue = exports.issueCommand = void 0;
|
||||||
const os = __importStar(require("os"));
|
const os = __importStar(require("os"));
|
||||||
const utils_1 = require("./utils");
|
const utils_1 = require("./utils");
|
||||||
/**
|
/**
|
||||||
|
2
node_modules/@actions/core/lib/command.js.map
generated
vendored
2
node_modules/@actions/core/lib/command.js.map
generated
vendored
@ -1 +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,UAAkB,EAAE;IACtD,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"}
|
{"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"}
|
26
node_modules/@actions/core/lib/core.d.ts
generated
vendored
26
node_modules/@actions/core/lib/core.d.ts
generated
vendored
@ -4,6 +4,8 @@
|
|||||||
export interface InputOptions {
|
export interface InputOptions {
|
||||||
/** Optional. Whether the input is required. If required and not present, will throw. Defaults to false */
|
/** Optional. Whether the input is required. If required and not present, will throw. Defaults to false */
|
||||||
required?: boolean;
|
required?: boolean;
|
||||||
|
/** Optional. Whether leading/trailing whitespace will be trimmed for the input. Defaults to true */
|
||||||
|
trimWhitespace?: boolean;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* The code to exit an action
|
* The code to exit an action
|
||||||
@ -35,13 +37,35 @@ export declare function setSecret(secret: string): void;
|
|||||||
*/
|
*/
|
||||||
export declare function addPath(inputPath: string): void;
|
export declare function addPath(inputPath: string): void;
|
||||||
/**
|
/**
|
||||||
* Gets the value of an input. The value is also trimmed.
|
* Gets the value of an input.
|
||||||
|
* Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.
|
||||||
|
* Returns an empty string if the value is not defined.
|
||||||
*
|
*
|
||||||
* @param name name of the input to get
|
* @param name name of the input to get
|
||||||
* @param options optional. See InputOptions.
|
* @param options optional. See InputOptions.
|
||||||
* @returns string
|
* @returns string
|
||||||
*/
|
*/
|
||||||
export declare function getInput(name: string, options?: InputOptions): string;
|
export declare function getInput(name: string, options?: InputOptions): string;
|
||||||
|
/**
|
||||||
|
* Gets the values of an multiline input. Each value is also trimmed.
|
||||||
|
*
|
||||||
|
* @param name name of the input to get
|
||||||
|
* @param options optional. See InputOptions.
|
||||||
|
* @returns string[]
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
export declare function getMultilineInput(name: string, options?: InputOptions): string[];
|
||||||
|
/**
|
||||||
|
* Gets the input value of the boolean type in the YAML 1.2 "core schema" specification.
|
||||||
|
* Support boolean input list: `true | True | TRUE | false | False | FALSE` .
|
||||||
|
* The return value is also in boolean type.
|
||||||
|
* ref: https://yaml.org/spec/1.2/spec.html#id2804923
|
||||||
|
*
|
||||||
|
* @param name name of the input to get
|
||||||
|
* @param options optional. See InputOptions.
|
||||||
|
* @returns boolean
|
||||||
|
*/
|
||||||
|
export declare function getBooleanInput(name: string, options?: InputOptions): boolean;
|
||||||
/**
|
/**
|
||||||
* Sets the value of an output.
|
* Sets the value of an output.
|
||||||
*
|
*
|
||||||
|
71
node_modules/@actions/core/lib/core.js
generated
vendored
71
node_modules/@actions/core/lib/core.js
generated
vendored
@ -1,4 +1,23 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||||
|
}) : (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
o[k2] = m[k];
|
||||||
|
}));
|
||||||
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||||
|
}) : function(o, v) {
|
||||||
|
o["default"] = v;
|
||||||
|
});
|
||||||
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
|
if (mod && mod.__esModule) return mod;
|
||||||
|
var result = {};
|
||||||
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||||
|
__setModuleDefault(result, mod);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
@ -8,14 +27,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
|
||||||
result["default"] = mod;
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;
|
||||||
const command_1 = require("./command");
|
const command_1 = require("./command");
|
||||||
const file_command_1 = require("./file-command");
|
const file_command_1 = require("./file-command");
|
||||||
const utils_1 = require("./utils");
|
const utils_1 = require("./utils");
|
||||||
@ -82,7 +95,9 @@ function addPath(inputPath) {
|
|||||||
}
|
}
|
||||||
exports.addPath = addPath;
|
exports.addPath = addPath;
|
||||||
/**
|
/**
|
||||||
* Gets the value of an input. The value is also trimmed.
|
* Gets the value of an input.
|
||||||
|
* Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.
|
||||||
|
* Returns an empty string if the value is not defined.
|
||||||
*
|
*
|
||||||
* @param name name of the input to get
|
* @param name name of the input to get
|
||||||
* @param options optional. See InputOptions.
|
* @param options optional. See InputOptions.
|
||||||
@ -93,9 +108,49 @@ function getInput(name, options) {
|
|||||||
if (options && options.required && !val) {
|
if (options && options.required && !val) {
|
||||||
throw new Error(`Input required and not supplied: ${name}`);
|
throw new Error(`Input required and not supplied: ${name}`);
|
||||||
}
|
}
|
||||||
|
if (options && options.trimWhitespace === false) {
|
||||||
|
return val;
|
||||||
|
}
|
||||||
return val.trim();
|
return val.trim();
|
||||||
}
|
}
|
||||||
exports.getInput = getInput;
|
exports.getInput = getInput;
|
||||||
|
/**
|
||||||
|
* Gets the values of an multiline input. Each value is also trimmed.
|
||||||
|
*
|
||||||
|
* @param name name of the input to get
|
||||||
|
* @param options optional. See InputOptions.
|
||||||
|
* @returns string[]
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function getMultilineInput(name, options) {
|
||||||
|
const inputs = getInput(name, options)
|
||||||
|
.split('\n')
|
||||||
|
.filter(x => x !== '');
|
||||||
|
return inputs;
|
||||||
|
}
|
||||||
|
exports.getMultilineInput = getMultilineInput;
|
||||||
|
/**
|
||||||
|
* Gets the input value of the boolean type in the YAML 1.2 "core schema" specification.
|
||||||
|
* Support boolean input list: `true | True | TRUE | false | False | FALSE` .
|
||||||
|
* The return value is also in boolean type.
|
||||||
|
* ref: https://yaml.org/spec/1.2/spec.html#id2804923
|
||||||
|
*
|
||||||
|
* @param name name of the input to get
|
||||||
|
* @param options optional. See InputOptions.
|
||||||
|
* @returns boolean
|
||||||
|
*/
|
||||||
|
function getBooleanInput(name, options) {
|
||||||
|
const trueValue = ['true', 'True', 'TRUE'];
|
||||||
|
const falseValue = ['false', 'False', 'FALSE'];
|
||||||
|
const val = getInput(name, options);
|
||||||
|
if (trueValue.includes(val))
|
||||||
|
return true;
|
||||||
|
if (falseValue.includes(val))
|
||||||
|
return false;
|
||||||
|
throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` +
|
||||||
|
`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);
|
||||||
|
}
|
||||||
|
exports.getBooleanInput = getBooleanInput;
|
||||||
/**
|
/**
|
||||||
* Sets the value of an output.
|
* Sets the value of an output.
|
||||||
*
|
*
|
||||||
|
2
node_modules/@actions/core/lib/core.js.map
generated
vendored
2
node_modules/@actions/core/lib/core.js.map
generated
vendored
@ -1 +1 @@
|
|||||||
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
17
node_modules/@actions/core/lib/file-command.js
generated
vendored
17
node_modules/@actions/core/lib/file-command.js
generated
vendored
@ -1,13 +1,26 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
// For internal use, subject to change.
|
// For internal use, subject to change.
|
||||||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||||
|
}) : (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
o[k2] = m[k];
|
||||||
|
}));
|
||||||
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||||
|
}) : function(o, v) {
|
||||||
|
o["default"] = v;
|
||||||
|
});
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
if (mod && mod.__esModule) return mod;
|
if (mod && mod.__esModule) return mod;
|
||||||
var result = {};
|
var result = {};
|
||||||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||||
result["default"] = mod;
|
__setModuleDefault(result, mod);
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.issueCommand = void 0;
|
||||||
// We use any as a valid input type
|
// We use any as a valid input type
|
||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
const fs = __importStar(require("fs"));
|
const fs = __importStar(require("fs"));
|
||||||
|
2
node_modules/@actions/core/lib/file-command.js.map
generated
vendored
2
node_modules/@actions/core/lib/file-command.js.map
generated
vendored
@ -1 +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"}
|
{"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"}
|
1
node_modules/@actions/core/lib/utils.js
generated
vendored
1
node_modules/@actions/core/lib/utils.js
generated
vendored
@ -2,6 +2,7 @@
|
|||||||
// We use any as a valid input type
|
// We use any as a valid input type
|
||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.toCommandValue = void 0;
|
||||||
/**
|
/**
|
||||||
* Sanitizes an input into a string so it can be passed into issueCommand safely
|
* Sanitizes an input into a string so it can be passed into issueCommand safely
|
||||||
* @param input input to sanitize into a string
|
* @param input input to sanitize into a string
|
||||||
|
2
node_modules/@actions/core/lib/utils.js.map
generated
vendored
2
node_modules/@actions/core/lib/utils.js.map
generated
vendored
@ -1 +1 @@
|
|||||||
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,uDAAuD;;AAEvD;;;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"}
|
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,uDAAuD;;;AAEvD;;;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"}
|
2
node_modules/@actions/core/package.json
generated
vendored
2
node_modules/@actions/core/package.json
generated
vendored
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@actions/core",
|
"name": "@actions/core",
|
||||||
"version": "1.2.7",
|
"version": "1.4.0",
|
||||||
"description": "Actions core lib",
|
"description": "Actions core lib",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"github",
|
"github",
|
||||||
|
9
node_modules/nodemailer/CHANGELOG.md
generated
vendored
9
node_modules/nodemailer/CHANGELOG.md
generated
vendored
@ -1,5 +1,14 @@
|
|||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
|
|
||||||
|
## 6.6.1 2021-05-23
|
||||||
|
|
||||||
|
- Fixed address formatting issue where newlines in an email address, if provided via address object, were not properly removed. Reported by tmazeika (#1289)
|
||||||
|
|
||||||
|
## 6.6.0 2021-04-28
|
||||||
|
|
||||||
|
- Added new option `newline` for MailComposer
|
||||||
|
- aws ses connection verification (Ognjen Jevremovic)
|
||||||
|
|
||||||
## 6.5.0 2021-02-26
|
## 6.5.0 2021-02-26
|
||||||
|
|
||||||
- Pass through textEncoding to subnodes
|
- Pass through textEncoding to subnodes
|
||||||
|
6
node_modules/nodemailer/README.md
generated
vendored
6
node_modules/nodemailer/README.md
generated
vendored
@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
[](https://nodemailer.com/about/)
|
[](https://nodemailer.com/about/)
|
||||||
|
|
||||||
> Sponsored by [Forward Email](https://forwardemail.net/?ref=nodemailer) – free email forwarding + custom domains + 100% open-source!
|
|
||||||
|
|
||||||
Send e-mails from Node.js – easy as cake! 🍰✉️
|
Send e-mails from Node.js – easy as cake! 🍰✉️
|
||||||
|
|
||||||
[](https://nodemailer.com/about/)
|
[](https://nodemailer.com/about/)
|
||||||
@ -30,8 +28,8 @@ Check your firewall settings. Timeout usually occurs when you try to open a conn
|
|||||||
|
|
||||||
#### I get TLS errors
|
#### I get TLS errors
|
||||||
|
|
||||||
* If you are running the code in your own machine, then check your antivirus settings. Antiviruses often mess around with email ports usage. Node.js might not recognize the MITM cert your antivirus is using.
|
- If you are running the code in your own machine, then check your antivirus settings. Antiviruses often mess around with email ports usage. Node.js might not recognize the MITM cert your antivirus is using.
|
||||||
* Latest Node versions allow only TLS versions 1.2 and higher, some servers might still use TLS 1.1 or lower. Check Node.js docs how to get correct TLS support for your app.
|
- Latest Node versions allow only TLS versions 1.2 and higher, some servers might still use TLS 1.1 or lower. Check Node.js docs how to get correct TLS support for your app.
|
||||||
|
|
||||||
#### I have a different problem
|
#### I have a different problem
|
||||||
|
|
||||||
|
26
node_modules/nodemailer/lib/mail-composer/index.js
generated
vendored
26
node_modules/nodemailer/lib/mail-composer/index.js
generated
vendored
@ -31,7 +31,7 @@ class MailComposer {
|
|||||||
|
|
||||||
// Compose MIME tree
|
// Compose MIME tree
|
||||||
if (this.mail.raw) {
|
if (this.mail.raw) {
|
||||||
this.message = new MimeNode().setRaw(this.mail.raw);
|
this.message = new MimeNode('message/rfc822', { newline: this.mail.newline }).setRaw(this.mail.raw);
|
||||||
} else if (this._useMixed) {
|
} else if (this._useMixed) {
|
||||||
this.message = this._createMixed();
|
this.message = this._createMixed();
|
||||||
} else if (this._useAlternative) {
|
} else if (this._useAlternative) {
|
||||||
@ -345,13 +345,15 @@ class MailComposer {
|
|||||||
boundaryPrefix: this.mail.boundaryPrefix,
|
boundaryPrefix: this.mail.boundaryPrefix,
|
||||||
disableUrlAccess: this.mail.disableUrlAccess,
|
disableUrlAccess: this.mail.disableUrlAccess,
|
||||||
disableFileAccess: this.mail.disableFileAccess,
|
disableFileAccess: this.mail.disableFileAccess,
|
||||||
normalizeHeaderKey: this.mail.normalizeHeaderKey
|
normalizeHeaderKey: this.mail.normalizeHeaderKey,
|
||||||
|
newline: this.mail.newline
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
node = parentNode.createChild('multipart/mixed', {
|
node = parentNode.createChild('multipart/mixed', {
|
||||||
disableUrlAccess: this.mail.disableUrlAccess,
|
disableUrlAccess: this.mail.disableUrlAccess,
|
||||||
disableFileAccess: this.mail.disableFileAccess,
|
disableFileAccess: this.mail.disableFileAccess,
|
||||||
normalizeHeaderKey: this.mail.normalizeHeaderKey
|
normalizeHeaderKey: this.mail.normalizeHeaderKey,
|
||||||
|
newline: this.mail.newline
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -391,13 +393,15 @@ class MailComposer {
|
|||||||
boundaryPrefix: this.mail.boundaryPrefix,
|
boundaryPrefix: this.mail.boundaryPrefix,
|
||||||
disableUrlAccess: this.mail.disableUrlAccess,
|
disableUrlAccess: this.mail.disableUrlAccess,
|
||||||
disableFileAccess: this.mail.disableFileAccess,
|
disableFileAccess: this.mail.disableFileAccess,
|
||||||
normalizeHeaderKey: this.mail.normalizeHeaderKey
|
normalizeHeaderKey: this.mail.normalizeHeaderKey,
|
||||||
|
newline: this.mail.newline
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
node = parentNode.createChild('multipart/alternative', {
|
node = parentNode.createChild('multipart/alternative', {
|
||||||
disableUrlAccess: this.mail.disableUrlAccess,
|
disableUrlAccess: this.mail.disableUrlAccess,
|
||||||
disableFileAccess: this.mail.disableFileAccess,
|
disableFileAccess: this.mail.disableFileAccess,
|
||||||
normalizeHeaderKey: this.mail.normalizeHeaderKey
|
normalizeHeaderKey: this.mail.normalizeHeaderKey,
|
||||||
|
newline: this.mail.newline
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -428,13 +432,15 @@ class MailComposer {
|
|||||||
boundaryPrefix: this.mail.boundaryPrefix,
|
boundaryPrefix: this.mail.boundaryPrefix,
|
||||||
disableUrlAccess: this.mail.disableUrlAccess,
|
disableUrlAccess: this.mail.disableUrlAccess,
|
||||||
disableFileAccess: this.mail.disableFileAccess,
|
disableFileAccess: this.mail.disableFileAccess,
|
||||||
normalizeHeaderKey: this.mail.normalizeHeaderKey
|
normalizeHeaderKey: this.mail.normalizeHeaderKey,
|
||||||
|
newline: this.mail.newline
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
node = parentNode.createChild('multipart/related; type="text/html"', {
|
node = parentNode.createChild('multipart/related; type="text/html"', {
|
||||||
disableUrlAccess: this.mail.disableUrlAccess,
|
disableUrlAccess: this.mail.disableUrlAccess,
|
||||||
disableFileAccess: this.mail.disableFileAccess,
|
disableFileAccess: this.mail.disableFileAccess,
|
||||||
normalizeHeaderKey: this.mail.normalizeHeaderKey
|
normalizeHeaderKey: this.mail.normalizeHeaderKey,
|
||||||
|
newline: this.mail.newline
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -470,7 +476,8 @@ class MailComposer {
|
|||||||
boundaryPrefix: this.mail.boundaryPrefix,
|
boundaryPrefix: this.mail.boundaryPrefix,
|
||||||
disableUrlAccess: this.mail.disableUrlAccess,
|
disableUrlAccess: this.mail.disableUrlAccess,
|
||||||
disableFileAccess: this.mail.disableFileAccess,
|
disableFileAccess: this.mail.disableFileAccess,
|
||||||
normalizeHeaderKey: this.mail.normalizeHeaderKey
|
normalizeHeaderKey: this.mail.normalizeHeaderKey,
|
||||||
|
newline: this.mail.newline
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
node = parentNode.createChild(element.contentType, {
|
node = parentNode.createChild(element.contentType, {
|
||||||
@ -478,7 +485,8 @@ class MailComposer {
|
|||||||
textEncoding: this.mail.textEncoding,
|
textEncoding: this.mail.textEncoding,
|
||||||
disableUrlAccess: this.mail.disableUrlAccess,
|
disableUrlAccess: this.mail.disableUrlAccess,
|
||||||
disableFileAccess: this.mail.disableFileAccess,
|
disableFileAccess: this.mail.disableFileAccess,
|
||||||
normalizeHeaderKey: this.mail.normalizeHeaderKey
|
normalizeHeaderKey: this.mail.normalizeHeaderKey,
|
||||||
|
newline: this.mail.newline
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
51
node_modules/nodemailer/lib/mime-node/index.js
generated
vendored
51
node_modules/nodemailer/lib/mime-node/index.js
generated
vendored
@ -16,6 +16,9 @@ const addressparser = require('../addressparser');
|
|||||||
const fetch = require('../fetch');
|
const fetch = require('../fetch');
|
||||||
const LastNewline = require('./last-newline');
|
const LastNewline = require('./last-newline');
|
||||||
|
|
||||||
|
const LeWindows = require('./le-windows');
|
||||||
|
const LeUnix = require('./le-unix');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new mime tree node. Assumes 'multipart/*' as the content type
|
* Creates a new mime tree node. Assumes 'multipart/*' as the content type
|
||||||
* if it is a branch, anything else counts as leaf. If rootNode is missing from
|
* if it is a branch, anything else counts as leaf. If rootNode is missing from
|
||||||
@ -92,6 +95,11 @@ class MimeNode {
|
|||||||
*/
|
*/
|
||||||
this.hostname = options.hostname;
|
this.hostname = options.hostname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If set to 'win' then uses \r\n, if 'linux' then \n. If not set (or `raw` is used) then newlines are kept as is.
|
||||||
|
*/
|
||||||
|
this.newline = options.newline;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An array for possible child nodes
|
* An array for possible child nodes
|
||||||
*/
|
*/
|
||||||
@ -626,6 +634,15 @@ class MimeNode {
|
|||||||
outputStream = transform(outputStream);
|
outputStream = transform(outputStream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.newline) {
|
||||||
|
const winbreak = ['win', 'windows', 'dos', '\r\n'].includes(this.newline.toString().toLowerCase());
|
||||||
|
const newlineTransform = winbreak ? new LeWindows() : new LeUnix();
|
||||||
|
|
||||||
|
const stream = outputStream.pipe(newlineTransform);
|
||||||
|
outputStream.on('error', err => stream.emit('error', err));
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
|
||||||
return outputStream;
|
return outputStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1130,9 +1147,9 @@ class MimeNode {
|
|||||||
address.address = this._normalizeAddress(address.address);
|
address.address = this._normalizeAddress(address.address);
|
||||||
|
|
||||||
if (!address.name) {
|
if (!address.name) {
|
||||||
values.push(address.address);
|
values.push(address.address.indexOf(' ') >= 0 ? `<${address.address}>` : `${address.address}`);
|
||||||
} else if (address.name) {
|
} else if (address.name) {
|
||||||
values.push(this._encodeAddressName(address.name) + ' <' + address.address + '>');
|
values.push(`${this._encodeAddressName(address.name)} <${address.address}>`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (address.address) {
|
if (address.address) {
|
||||||
@ -1141,9 +1158,8 @@ class MimeNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (address.group) {
|
} else if (address.group) {
|
||||||
values.push(
|
let groupListAddresses = (address.group.length ? this._convertAddresses(address.group, uniqueList) : '').trim();
|
||||||
this._encodeAddressName(address.name) + ':' + (address.group.length ? this._convertAddresses(address.group, uniqueList) : '').trim() + ';'
|
values.push(`${this._encodeAddressName(address.name)}:${groupListAddresses};`);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1157,13 +1173,17 @@ class MimeNode {
|
|||||||
* @return {String} address string
|
* @return {String} address string
|
||||||
*/
|
*/
|
||||||
_normalizeAddress(address) {
|
_normalizeAddress(address) {
|
||||||
address = (address || '').toString().trim();
|
address = (address || '')
|
||||||
|
.toString()
|
||||||
|
.replace(/[\x00-\x1F<>]+/g, ' ') // remove unallowed characters
|
||||||
|
.trim();
|
||||||
|
|
||||||
let lastAt = address.lastIndexOf('@');
|
let lastAt = address.lastIndexOf('@');
|
||||||
if (lastAt < 0) {
|
if (lastAt < 0) {
|
||||||
// Bare username
|
// Bare username
|
||||||
return address;
|
return address;
|
||||||
}
|
}
|
||||||
|
|
||||||
let user = address.substr(0, lastAt);
|
let user = address.substr(0, lastAt);
|
||||||
let domain = address.substr(lastAt + 1);
|
let domain = address.substr(lastAt + 1);
|
||||||
|
|
||||||
@ -1172,7 +1192,24 @@ class MimeNode {
|
|||||||
// 'jõgeva.ee' will be converted to 'xn--jgeva-dua.ee'
|
// 'jõgeva.ee' will be converted to 'xn--jgeva-dua.ee'
|
||||||
// non-unicode domains are left as is
|
// non-unicode domains are left as is
|
||||||
|
|
||||||
return user + '@' + punycode.toASCII(domain.toLowerCase());
|
let encodedDomain;
|
||||||
|
|
||||||
|
try {
|
||||||
|
encodedDomain = punycode.toASCII(domain.toLowerCase());
|
||||||
|
} catch (err) {
|
||||||
|
// keep as is?
|
||||||
|
}
|
||||||
|
|
||||||
|
if (user.indexOf(' ') >= 0) {
|
||||||
|
if (user.charAt(0) !== '"') {
|
||||||
|
user = '"' + user;
|
||||||
|
}
|
||||||
|
if (user.substr(-1) !== '"') {
|
||||||
|
user = user + '"';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return `${user}@${encodedDomain}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
10
node_modules/nodemailer/lib/sendmail-transport/index.js
generated
vendored
10
node_modules/nodemailer/lib/sendmail-transport/index.js
generated
vendored
@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
const spawn = require('child_process').spawn;
|
const spawn = require('child_process').spawn;
|
||||||
const packageData = require('../../package.json');
|
const packageData = require('../../package.json');
|
||||||
const LeWindows = require('./le-windows');
|
|
||||||
const LeUnix = require('./le-unix');
|
|
||||||
const shared = require('../shared');
|
const shared = require('../shared');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -68,7 +66,6 @@ class SendmailTransport {
|
|||||||
let args;
|
let args;
|
||||||
let sendmail;
|
let sendmail;
|
||||||
let returned;
|
let returned;
|
||||||
let transform;
|
|
||||||
|
|
||||||
const hasInvalidAddresses = []
|
const hasInvalidAddresses = []
|
||||||
.concat(envelope.from || [])
|
.concat(envelope.from || [])
|
||||||
@ -187,10 +184,8 @@ class SendmailTransport {
|
|||||||
recipients.join(', ')
|
recipients.join(', ')
|
||||||
);
|
);
|
||||||
|
|
||||||
transform = this.winbreak ? new LeWindows() : new LeUnix();
|
|
||||||
let sourceStream = mail.message.createReadStream();
|
let sourceStream = mail.message.createReadStream();
|
||||||
|
sourceStream.once('error', err => {
|
||||||
transform.once('error', err => {
|
|
||||||
this.logger.error(
|
this.logger.error(
|
||||||
{
|
{
|
||||||
err,
|
err,
|
||||||
@ -205,8 +200,7 @@ class SendmailTransport {
|
|||||||
callback(err);
|
callback(err);
|
||||||
});
|
});
|
||||||
|
|
||||||
sourceStream.once('error', err => transform.emit('error', err));
|
sourceStream.pipe(sendmail.stdin);
|
||||||
sourceStream.pipe(transform).pipe(sendmail.stdin);
|
|
||||||
} else {
|
} else {
|
||||||
return callback(new Error('sendmail was not found'));
|
return callback(new Error('sendmail was not found'));
|
||||||
}
|
}
|
||||||
|
42
node_modules/nodemailer/lib/ses-transport/index.js
generated
vendored
42
node_modules/nodemailer/lib/ses-transport/index.js
generated
vendored
@ -3,7 +3,7 @@
|
|||||||
const EventEmitter = require('events');
|
const EventEmitter = require('events');
|
||||||
const packageData = require('../../package.json');
|
const packageData = require('../../package.json');
|
||||||
const shared = require('../shared');
|
const shared = require('../shared');
|
||||||
const LeWindows = require('../sendmail-transport/le-windows');
|
const LeWindows = require('../mime-node/le-windows');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a Transport object for AWS SES
|
* Generates a Transport object for AWS SES
|
||||||
@ -309,6 +309,23 @@ class SESTransport extends EventEmitter {
|
|||||||
*/
|
*/
|
||||||
verify(callback) {
|
verify(callback) {
|
||||||
let promise;
|
let promise;
|
||||||
|
let ses = (this.ses.aws ? this.ses.ses : this.ses) || {};
|
||||||
|
let aws = this.ses.aws || {};
|
||||||
|
|
||||||
|
const sesMessage = {
|
||||||
|
RawMessage: {
|
||||||
|
// required
|
||||||
|
Data: 'From: invalid@invalid\r\nTo: invalid@invalid\r\n Subject: Invalid\r\n\r\nInvalid'
|
||||||
|
},
|
||||||
|
Source: 'invalid@invalid',
|
||||||
|
Destinations: ['invalid@invalid']
|
||||||
|
};
|
||||||
|
const cb = err => {
|
||||||
|
if (err && err.code !== 'InvalidParameterValue') {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
return callback(null, true);
|
||||||
|
};
|
||||||
|
|
||||||
if (!callback) {
|
if (!callback) {
|
||||||
promise = new Promise((resolve, reject) => {
|
promise = new Promise((resolve, reject) => {
|
||||||
@ -316,22 +333,13 @@ class SESTransport extends EventEmitter {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.ses.sendRawEmail(
|
if (typeof ses.send === 'function' && aws.SendRawEmailCommand) {
|
||||||
{
|
// v3 API
|
||||||
RawMessage: {
|
ses.send(new aws.SendRawEmailCommand(sesMessage), cb);
|
||||||
// required
|
} else {
|
||||||
Data: 'From: invalid@invalid\r\nTo: invalid@invalid\r\n Subject: Invalid\r\n\r\nInvalid'
|
// v2 API
|
||||||
},
|
ses.sendRawEmail(sesMessage, cb).promise();
|
||||||
Source: 'invalid@invalid',
|
}
|
||||||
Destinations: ['invalid@invalid']
|
|
||||||
},
|
|
||||||
err => {
|
|
||||||
if (err && err.code !== 'InvalidParameterValue') {
|
|
||||||
return callback(err);
|
|
||||||
}
|
|
||||||
return callback(null, true);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
return promise;
|
return promise;
|
||||||
}
|
}
|
||||||
|
6
node_modules/nodemailer/lib/shared/index.js
generated
vendored
6
node_modules/nodemailer/lib/shared/index.js
generated
vendored
@ -327,7 +327,11 @@ module.exports.resolveContent = (data, key, callback) => {
|
|||||||
}
|
}
|
||||||
// we can't stream twice the same content, so we need
|
// we can't stream twice the same content, so we need
|
||||||
// to replace the stream object with the streaming result
|
// to replace the stream object with the streaming result
|
||||||
data[key] = value;
|
if (data[key].content) {
|
||||||
|
data[key].content = value;
|
||||||
|
} else {
|
||||||
|
data[key] = value;
|
||||||
|
}
|
||||||
callback(null, value);
|
callback(null, value);
|
||||||
});
|
});
|
||||||
} else if (/^https?:\/\//i.test(content.path || content.href)) {
|
} else if (/^https?:\/\//i.test(content.path || content.href)) {
|
||||||
|
21
node_modules/nodemailer/lib/smtp-connection/index.js
generated
vendored
21
node_modules/nodemailer/lib/smtp-connection/index.js
generated
vendored
@ -873,16 +873,21 @@ class SMTPConnection extends EventEmitter {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.upgrading = true;
|
this.upgrading = true;
|
||||||
this._socket = tls.connect(opts, () => {
|
// tls.connect is not an asynchronous function however it may still throw errors and requires to be wrapped with try/catch
|
||||||
this.secure = true;
|
try {
|
||||||
this.upgrading = false;
|
this._socket = tls.connect(opts, () => {
|
||||||
this._socket.on('data', this._onSocketData);
|
this.secure = true;
|
||||||
|
this.upgrading = false;
|
||||||
|
this._socket.on('data', this._onSocketData);
|
||||||
|
|
||||||
socketPlain.removeListener('close', this._onSocketClose);
|
socketPlain.removeListener('close', this._onSocketClose);
|
||||||
socketPlain.removeListener('end', this._onSocketEnd);
|
socketPlain.removeListener('end', this._onSocketEnd);
|
||||||
|
|
||||||
return callback(null, true);
|
return callback(null, true);
|
||||||
});
|
});
|
||||||
|
} catch (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
|
||||||
this._socket.on('error', this._onSocketError);
|
this._socket.on('error', this._onSocketError);
|
||||||
this._socket.once('close', this._onSocketClose);
|
this._socket.once('close', this._onSocketClose);
|
||||||
|
9
node_modules/nodemailer/lib/stream-transport/index.js
generated
vendored
9
node_modules/nodemailer/lib/stream-transport/index.js
generated
vendored
@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
const packageData = require('../../package.json');
|
const packageData = require('../../package.json');
|
||||||
const shared = require('../shared');
|
const shared = require('../shared');
|
||||||
const LeWindows = require('../sendmail-transport/le-windows');
|
|
||||||
const LeUnix = require('../sendmail-transport/le-unix');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a Transport object for streaming
|
* Generates a Transport object for streaming
|
||||||
@ -61,15 +59,10 @@ class StreamTransport {
|
|||||||
);
|
);
|
||||||
|
|
||||||
setImmediate(() => {
|
setImmediate(() => {
|
||||||
let sourceStream;
|
|
||||||
let stream;
|
let stream;
|
||||||
let transform;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
transform = this.winbreak ? new LeWindows() : new LeUnix();
|
stream = mail.message.createReadStream();
|
||||||
sourceStream = mail.message.createReadStream();
|
|
||||||
stream = sourceStream.pipe(transform);
|
|
||||||
sourceStream.on('error', err => stream.emit('error', err));
|
|
||||||
} catch (E) {
|
} catch (E) {
|
||||||
this.logger.error(
|
this.logger.error(
|
||||||
{
|
{
|
||||||
|
16
node_modules/nodemailer/package.json
generated
vendored
16
node_modules/nodemailer/package.json
generated
vendored
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "nodemailer",
|
"name": "nodemailer",
|
||||||
"version": "6.5.0",
|
"version": "6.6.2",
|
||||||
"description": "Easy as cake e-mail sending from your Node.js applications",
|
"description": "Easy as cake e-mail sending from your Node.js applications",
|
||||||
"main": "lib/nodemailer.js",
|
"main": "lib/nodemailer.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -21,22 +21,22 @@
|
|||||||
"homepage": "https://nodemailer.com/",
|
"homepage": "https://nodemailer.com/",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"bunyan": "1.8.15",
|
"bunyan": "1.8.15",
|
||||||
"chai": "4.3.0",
|
"chai": "4.3.4",
|
||||||
"eslint-config-nodemailer": "1.2.0",
|
"eslint-config-nodemailer": "1.2.0",
|
||||||
"eslint-config-prettier": "8.1.0",
|
"eslint-config-prettier": "8.3.0",
|
||||||
"grunt": "1.3.0",
|
"grunt": "1.4.1",
|
||||||
"grunt-cli": "1.3.2",
|
"grunt-cli": "1.4.3",
|
||||||
"grunt-eslint": "23.0.0",
|
"grunt-eslint": "23.0.0",
|
||||||
"grunt-mocha-test": "0.13.3",
|
"grunt-mocha-test": "0.13.3",
|
||||||
"libbase64": "1.2.1",
|
"libbase64": "1.2.1",
|
||||||
"libmime": "5.0.0",
|
"libmime": "5.0.0",
|
||||||
"libqp": "1.1.0",
|
"libqp": "1.1.0",
|
||||||
"mocha": "8.3.0",
|
"mocha": "9.0.0",
|
||||||
"nodemailer-ntlm-auth": "1.0.1",
|
"nodemailer-ntlm-auth": "1.0.1",
|
||||||
"proxy": "1.0.2",
|
"proxy": "1.0.2",
|
||||||
"proxy-test-server": "1.0.0",
|
"proxy-test-server": "1.0.0",
|
||||||
"sinon": "9.2.4",
|
"sinon": "11.1.1",
|
||||||
"smtp-server": "3.8.0"
|
"smtp-server": "3.9.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.0.0"
|
"node": ">=6.0.0"
|
||||||
|
7
node_modules/y18n/CHANGELOG.md
generated
vendored
7
node_modules/y18n/CHANGELOG.md
generated
vendored
@ -3,6 +3,13 @@
|
|||||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||||
|
|
||||||
|
|
||||||
|
### [4.0.3](https://www.github.com/yargs/y18n/compare/y18n-v4.0.2...y18n-v4.0.3) (2021-04-07)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **release:** 4.x.x should not enforce Node 10 ([#126](https://www.github.com/yargs/y18n/issues/126)) ([1e21a53](https://www.github.com/yargs/y18n/commit/1e21a536e9135d8403a47be88922157a706b7cde))
|
||||||
|
|
||||||
### 4.0.1 (2020-11-30)
|
### 4.0.1 (2020-11-30)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
2
node_modules/y18n/package.json
generated
vendored
2
node_modules/y18n/package.json
generated
vendored
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "y18n",
|
"name": "y18n",
|
||||||
"version": "4.0.1",
|
"version": "4.0.3",
|
||||||
"description": "the bare-bones internationalization library used by yargs",
|
"description": "the bare-bones internationalization library used by yargs",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
14
node_modules/yargs-parser/CHANGELOG.md
generated
vendored
14
node_modules/yargs-parser/CHANGELOG.md
generated
vendored
@ -2,6 +2,20 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||||
|
|
||||||
|
### [15.0.3](https://www.github.com/yargs/yargs-parser/compare/yargs-parser-v15.0.2...yargs-parser-v15.0.3) (2021-06-20)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **build:** should use releases_created when using manifest ([49ea4ef](https://www.github.com/yargs/yargs-parser/commit/49ea4ef042f7d9af78d7bb4090a5f37bff067bc3))
|
||||||
|
|
||||||
|
### [15.0.2](https://www.github.com/yargs/yargs-parser/compare/yargs-parser-v15.0.1...yargs-parser-v15.0.2) (2021-06-20)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **perf:** address slow parse when using unknown-options-as-args ([#400](https://www.github.com/yargs/yargs-parser/issues/400)) ([bc387ec](https://www.github.com/yargs/yargs-parser/commit/bc387ec5825cf4a79376709782c7903737e86715))
|
||||||
|
|
||||||
## [15.0.0](https://github.com/yargs/yargs-parser/compare/v14.0.0...v15.0.0) (2019-10-07)
|
## [15.0.0](https://github.com/yargs/yargs-parser/compare/v14.0.0...v15.0.0) (2019-10-07)
|
||||||
|
|
||||||
|
|
||||||
|
1
node_modules/yargs-parser/index.js
generated
vendored
1
node_modules/yargs-parser/index.js
generated
vendored
@ -813,6 +813,7 @@ function parse (args, opts) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isUnknownOption (arg) {
|
function isUnknownOption (arg) {
|
||||||
|
arg = arg.replace(/^-{3,}/, '---')
|
||||||
// ignore negative numbers
|
// ignore negative numbers
|
||||||
if (arg.match(negative)) { return false }
|
if (arg.match(negative)) { return false }
|
||||||
// if this is a short option group and all of them are configured, it isn't unknown
|
// if this is a short option group and all of them are configured, it isn't unknown
|
||||||
|
2
node_modules/yargs-parser/package.json
generated
vendored
2
node_modules/yargs-parser/package.json
generated
vendored
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "yargs-parser",
|
"name": "yargs-parser",
|
||||||
"version": "15.0.1",
|
"version": "15.0.3",
|
||||||
"description": "the mighty option parser used by yargs",
|
"description": "the mighty option parser used by yargs",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
77
package-lock.json
generated
77
package-lock.json
generated
@ -1,35 +1,34 @@
|
|||||||
{
|
{
|
||||||
"name": "action-send-mail",
|
"name": "action-send-mail",
|
||||||
"version": "1.0.0",
|
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.2.7",
|
"@actions/core": "^1.2.7",
|
||||||
"@actions/glob": "^0.2.0",
|
"@actions/glob": "^0.2.1",
|
||||||
"nodemailer": "^6.4.17",
|
"nodemailer": "^6.7.8",
|
||||||
"showdown": "^1.9.1"
|
"showdown": "^1.9.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@actions/core": {
|
"node_modules/@actions/core": {
|
||||||
"version": "1.2.7",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.7.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.4.0.tgz",
|
||||||
"integrity": "sha512-kzLFD5BgEvq6ubcxdgPbRKGD2Qrgya/5j+wh4LZzqT915I0V3rED+MvjH6NXghbvk1MXknpNNQ3uKjXSEN00Ig=="
|
"integrity": "sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg=="
|
||||||
},
|
},
|
||||||
"node_modules/@actions/glob": {
|
"node_modules/@actions/glob": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.2.1.tgz",
|
||||||
"integrity": "sha512-mqE2a7I66kxcvsdwxs/filQwZsq25IfktMaviGfDB51v6Q3bvxnV7mFsZnvYtLhqGZbPxwBnH8AD3UYaOWb//w==",
|
"integrity": "sha512-OqseGbxR8vVikg6rfdKST21GX3QYGq2Nz7/gX3UxZb2Mw1ujJ2S3U5CsYUvYHwxbYguU+HNhfE3930oo5nprXQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.2.6",
|
"@actions/core": "^1.2.6",
|
||||||
"minimatch": "^3.0.4"
|
"minimatch": "^3.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ansi-regex": {
|
"node_modules/ansi-regex": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
|
||||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
"integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
@ -159,9 +158,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/nodemailer": {
|
"node_modules/nodemailer": {
|
||||||
"version": "6.5.0",
|
"version": "6.7.8",
|
||||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.8.tgz",
|
||||||
"integrity": "sha512-Tm4RPrrIZbnqDKAvX+/4M+zovEReiKlEXWDzG4iwtpL9X34MJY+D5LnQPH/+eghe8DLlAVshHAJZAZWBGhkguw==",
|
"integrity": "sha512-2zaTFGqZixVmTxpJRCFC+Vk5eGRd/fYtvIR+dl5u9QXLTQWGIf48x/JXvo58g9sa0bU6To04XUv554Paykum3g==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.0.0"
|
"node": ">=6.0.0"
|
||||||
}
|
}
|
||||||
@ -279,9 +278,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/y18n": {
|
"node_modules/y18n": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
|
||||||
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
|
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
|
||||||
},
|
},
|
||||||
"node_modules/yargs": {
|
"node_modules/yargs": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.3",
|
||||||
@ -302,9 +301,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/yargs-parser": {
|
"node_modules/yargs-parser": {
|
||||||
"version": "15.0.1",
|
"version": "15.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz",
|
||||||
"integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
|
"integrity": "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"camelcase": "^5.0.0",
|
"camelcase": "^5.0.0",
|
||||||
"decamelize": "^1.2.0"
|
"decamelize": "^1.2.0"
|
||||||
@ -313,23 +312,23 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": {
|
"@actions/core": {
|
||||||
"version": "1.2.7",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.7.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.4.0.tgz",
|
||||||
"integrity": "sha512-kzLFD5BgEvq6ubcxdgPbRKGD2Qrgya/5j+wh4LZzqT915I0V3rED+MvjH6NXghbvk1MXknpNNQ3uKjXSEN00Ig=="
|
"integrity": "sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg=="
|
||||||
},
|
},
|
||||||
"@actions/glob": {
|
"@actions/glob": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.2.1.tgz",
|
||||||
"integrity": "sha512-mqE2a7I66kxcvsdwxs/filQwZsq25IfktMaviGfDB51v6Q3bvxnV7mFsZnvYtLhqGZbPxwBnH8AD3UYaOWb//w==",
|
"integrity": "sha512-OqseGbxR8vVikg6rfdKST21GX3QYGq2Nz7/gX3UxZb2Mw1ujJ2S3U5CsYUvYHwxbYguU+HNhfE3930oo5nprXQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@actions/core": "^1.2.6",
|
"@actions/core": "^1.2.6",
|
||||||
"minimatch": "^3.0.4"
|
"minimatch": "^3.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
|
||||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
|
"integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
|
||||||
},
|
},
|
||||||
"ansi-styles": {
|
"ansi-styles": {
|
||||||
"version": "3.2.1",
|
"version": "3.2.1",
|
||||||
@ -432,9 +431,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nodemailer": {
|
"nodemailer": {
|
||||||
"version": "6.5.0",
|
"version": "6.7.8",
|
||||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.8.tgz",
|
||||||
"integrity": "sha512-Tm4RPrrIZbnqDKAvX+/4M+zovEReiKlEXWDzG4iwtpL9X34MJY+D5LnQPH/+eghe8DLlAVshHAJZAZWBGhkguw=="
|
"integrity": "sha512-2zaTFGqZixVmTxpJRCFC+Vk5eGRd/fYtvIR+dl5u9QXLTQWGIf48x/JXvo58g9sa0bU6To04XUv554Paykum3g=="
|
||||||
},
|
},
|
||||||
"p-limit": {
|
"p-limit": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
@ -519,9 +518,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"y18n": {
|
"y18n": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
|
||||||
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
|
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
|
||||||
},
|
},
|
||||||
"yargs": {
|
"yargs": {
|
||||||
"version": "14.2.3",
|
"version": "14.2.3",
|
||||||
@ -542,9 +541,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yargs-parser": {
|
"yargs-parser": {
|
||||||
"version": "15.0.1",
|
"version": "15.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz",
|
||||||
"integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
|
"integrity": "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"camelcase": "^5.0.0",
|
"camelcase": "^5.0.0",
|
||||||
"decamelize": "^1.2.0"
|
"decamelize": "^1.2.0"
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.2.7",
|
"@actions/core": "^1.2.7",
|
||||||
"@actions/glob": "^0.2.0",
|
"@actions/glob": "^0.2.1",
|
||||||
"nodemailer": "^6.4.17",
|
"nodemailer": "^6.7.8",
|
||||||
"showdown": "^1.9.1"
|
"showdown": "^1.9.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user