Compare commits

..

8 Commits

Author SHA1 Message Date
29a7472b3c 1.0.25 2020-04-26 23:24:03 +00:00
5490be1033 fix(core): update 2020-04-26 23:24:03 +00:00
6ee7c6af76 1.0.24 2020-01-23 17:31:11 +00:00
aa1750524b fix(core): update 2020-01-23 17:31:10 +00:00
da7c57165e 1.0.23 2020-01-23 16:55:21 +00:00
708c05d1e3 fix(core): update 2020-01-23 16:55:20 +00:00
58b7f602bd 1.0.22 2020-01-21 10:07:07 +00:00
23507b83fc fix(core): update 2020-01-21 10:07:07 +00:00
9 changed files with 410 additions and 491 deletions

View File

@ -3,14 +3,14 @@ image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
cache:
paths:
- .npmci_cache/
key: "$CI_BUILD_STAGE"
- .npmci_cache/
key: '$CI_BUILD_STAGE'
stages:
- security
- test
- release
- metadata
- security
- test
- release
- metadata
# ====================
# security stage
@ -18,21 +18,23 @@ stages:
mirror:
stage: security
script:
- npmci git mirror
- npmci git mirror
tags:
- docker
- notpriv
- lossless
- docker
- notpriv
snyk:
image: registry.gitlab.com/hosttoday/ht-docker-node:snyk
stage: security
script:
- npmci npm prepare
- npmci command npm install -g snyk
- npmci command npm install --ignore-scripts
- npmci command snyk test
tags:
- docker
- notpriv
- lossless
- docker
- notpriv
# ====================
# test stage
@ -41,37 +43,40 @@ snyk:
testStable:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci npm test
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- priv
- lossless
- docker
- priv
testBuild:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command npm run build
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
- lossless
- docker
- notpriv
release:
stage: release
script:
- npmci node install stable
- npmci npm publish
- npmci node install stable
- npmci npm publish
only:
- tags
- tags
tags:
- docker
- notpriv
- lossless
- docker
- notpriv
# ====================
# metadata stage
@ -85,18 +90,20 @@ codequality:
- npmci npm install
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
tags:
- docker
- priv
- lossless
- docker
- priv
trigger:
stage: metadata
script:
- npmci trigger
- npmci trigger
only:
- tags
- tags
tags:
- docker
- notpriv
- lossless
- docker
- notpriv
pages:
stage: metadata
@ -107,6 +114,7 @@ pages:
- npmci npm install
- npmci command tsdoc
tags:
- lossless
- docker
- notpriv
only:
@ -114,5 +122,5 @@ pages:
artifacts:
expire_in: 1 week
paths:
- public
- public
allow_failure: true

4
.snyk Normal file
View File

@ -0,0 +1,4 @@
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
version: v1.13.5
ignore: {}
patch: {}

View File

@ -1,5 +1,6 @@
{
"gitzone": {
"projectType": "npm",
"module": {
"githost": "gitlab.com",
"gitscope": "mojoio",

777
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "@mojoio/mailgun",
"version": "1.0.21",
"version": "1.0.25",
"private": false,
"description": "an api abstraction package for mailgun",
"main": "dist/index.js",
@ -13,19 +13,19 @@
"format": "(gitzone format)"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.0.22",
"@gitzone/tsbuild": "^2.1.22",
"@gitzone/tstest": "^1.0.15",
"@pushrocks/qenv": "^4.0.6",
"@pushrocks/tapbundle": "^3.2.0",
"@types/node": "^13.1.6",
"tslint": "^5.20.1",
"@pushrocks/tapbundle": "^3.2.1",
"@types/node": "^13.13.4",
"tslint": "^6.1.1",
"tslint-config-prettier": "^1.15.0"
},
"dependencies": {
"@pushrocks/smartfile": "^7.0.6",
"@pushrocks/smartfile": "^7.0.12",
"@pushrocks/smartmail": "^1.0.11",
"@pushrocks/smartrequest": "^1.1.47",
"@pushrocks/smartstring": "^3.0.17"
"@pushrocks/smartstring": "^3.0.18"
},
"files": [
"ts/**/*",

View File

@ -19,14 +19,14 @@ tap.test('should create a mailgun account', async () => {
tap.test('should create a smartmail', async () => {
testSmartmail = new smartmail.Smartmail({
body: 'hi there. This is the body.',
from: 'noreply@mail.lossless.com',
subject: 'hi there. This is the subject'
from: 'Lossless GmbH <noreply@mail.lossless.com>',
subject: 'TestMessage from @mojoio/mailgun test'
});
return testSmartmail;
});
tap.test('should send a smartmail', async () => {
testMailgunAccount.sendSmartMail(testSmartmail, 'sandbox@mail.git.zone');
await testMailgunAccount.sendSmartMail(testSmartmail, 'Sandbox Team <sandbox@mail.git.zone>');
});
tap.test('should retrieve a mail using a retrieval url', async () => {
@ -34,7 +34,7 @@ tap.test('should retrieve a mail using a retrieval url', async () => {
if (result) {
result.options.subject = 'hi there. This is a testmail with attachment';
result.options.from = 'noreply@mail.lossless.com';
testMailgunAccount.sendSmartMail(result, 'sandbox@mail.git.zone');
await testMailgunAccount.sendSmartMail(result, 'Sandbox Team <sandbox@mail.git.zone>');
}
});

View File

@ -15,14 +15,14 @@ export interface IMailgunMessage {
'X-Gm-Message-State': string;
'body-plain': string;
attachments: Array<{
url: string,
'content-type': string,
name: string,
size: number
}>;
url: string;
'content-type': string;
name: string;
size: number;
}>;
'body-html': string;
'Mime-Version': string;
Date: string,
Date: string;
'Message-Id': string;
'Content-Type': string;
'X-Google-Smtp-Source': string;

View File

@ -43,5 +43,5 @@ export interface IMailgunNotification {
'stripped-signature': string;
// Lossless specific
X-Lossless-Auth: string
"X-Lossless-Auth": string;
}

View File

@ -52,7 +52,7 @@ export class MailgunAccount {
* sends a SmartMail
*/
public async sendSmartMail(smartmailArg: plugins.smartmail.Smartmail<interfaces.IMailgunMessage>, toArg: string, dataArg = {}) {
const domain = smartmailArg.options.from.split('@')[1];
const domain = smartmailArg.options.from.split('@')[1].replace('>', '');
const formFields: plugins.smartrequest.IFormField[] = [
{
name: 'from',
@ -107,6 +107,7 @@ export class MailgunAccount {
from: responseBody.From,
body: responseBody["body-html"],
subject: responseBody.Subject,
creationObjectRef: responseBody
});
// lets care about attachments