Compare commits

...

8 Commits

Author SHA1 Message Date
e920406ce9 3.0.11 2021-01-22 18:47:02 +00:00
e044fd81bd fix(core): update 2021-01-22 18:47:01 +00:00
edaccc357d 3.0.10 2021-01-22 18:33:53 +00:00
67f645ad50 fix(core): update 2021-01-22 18:33:53 +00:00
bfeced5f34 3.0.9 2020-11-18 16:52:50 +00:00
24b9794a18 fix(core): update 2020-11-18 16:52:49 +00:00
a781329a47 3.0.8 2020-08-13 03:10:38 +00:00
6b5e0a1207 fix(core): update 2020-08-13 03:10:37 +00:00
8 changed files with 1949 additions and 1736 deletions

View File

@ -4,9 +4,9 @@
"module": { "module": {
"githost": "gitlab.com", "githost": "gitlab.com",
"gitscope": "pushrocks", "gitscope": "pushrocks",
"gitrepo": "smartuniverse", "gitrepo": "smartacme",
"shortDescription": "acme with an easy yet powerful interface in TypeScript", "shortDescription": "acme with an easy yet powerful interface in TypeScript",
"npmPackagename": "@pushrocks/smartuniverse", "npmPackagename": "@pushrocks/smartacme",
"license": "MIT", "license": "MIT",
"projectDomain": "push.rocks" "projectDomain": "push.rocks"
} }

3598
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/smartacme", "name": "@pushrocks/smartacme",
"version": "3.0.7", "version": "3.0.11",
"private": false, "private": false,
"description": "acme with an easy yet powerful interface in TypeScript", "description": "acme with an easy yet powerful interface in TypeScript",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
@ -25,28 +25,28 @@
}, },
"homepage": "https://gitlab.com/umbrellazone/smartacme#README", "homepage": "https://gitlab.com/umbrellazone/smartacme#README",
"dependencies": { "dependencies": {
"@pushrocks/lik": "^4.0.17", "@pushrocks/lik": "^4.0.20",
"@pushrocks/smartdata": "^3.1.29", "@pushrocks/smartdata": "^3.1.54",
"@pushrocks/smartdelay": "^2.0.10", "@pushrocks/smartdelay": "^2.0.10",
"@pushrocks/smartdns": "^4.0.4", "@pushrocks/smartdns": "^4.0.4",
"@pushrocks/smartexpress": "^3.0.76", "@pushrocks/smartexpress": "^3.0.100",
"@pushrocks/smartlog": "^2.0.36", "@pushrocks/smartlog": "^2.0.39",
"@pushrocks/smartpromise": "^3.0.6", "@pushrocks/smartpromise": "^3.1.3",
"@pushrocks/smartrequest": "^1.1.47", "@pushrocks/smartrequest": "^1.1.51",
"@pushrocks/smartstring": "^3.0.18", "@pushrocks/smartstring": "^3.0.24",
"@pushrocks/smarttime": "^3.0.24", "@pushrocks/smarttime": "^3.0.38",
"@pushrocks/smartunique": "^3.0.3", "@pushrocks/smartunique": "^3.0.3",
"@tsclass/tsclass": "^3.0.21", "@tsclass/tsclass": "^3.0.29",
"acme-client": "^3.3.1" "acme-client": "^3.3.1"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.24", "@gitzone/tsbuild": "^2.1.25",
"@gitzone/tsrun": "^1.2.12", "@gitzone/tsrun": "^1.2.12",
"@gitzone/tstest": "^1.0.43", "@gitzone/tstest": "^1.0.52",
"@mojoio/cloudflare": "^5.0.6", "@mojoio/cloudflare": "^5.0.6",
"@pushrocks/qenv": "^4.0.10", "@pushrocks/qenv": "^4.0.10",
"@pushrocks/tapbundle": "^3.2.9", "@pushrocks/tapbundle": "^3.2.9",
"@types/node": "^14.0.27", "@types/node": "^14.14.22",
"tslint": "^6.1.3", "tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0" "tslint-config-prettier": "^1.18.0"
}, },

View File

@ -1,6 +1,5 @@
required: required:
- CF_EMAIL - CF_TOKEN
- CF_KEY
- MONGODB_URL - MONGODB_URL
- MONGODB_PASSWORD - MONGODB_PASSWORD
- MONGODB_DATABASE - MONGODB_DATABASE

View File

@ -1,26 +1,26 @@
# @pushrocks/smartuniverse # @pushrocks/smartacme
acme with an easy yet powerful interface in TypeScript acme with an easy yet powerful interface in TypeScript
## Availabililty and Links ## Availabililty and Links
* [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/smartuniverse) * [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/smartacme)
* [gitlab.com (source)](https://gitlab.com/pushrocks/smartuniverse) * [gitlab.com (source)](https://gitlab.com/pushrocks/smartacme)
* [github.com (source mirror)](https://github.com/pushrocks/smartuniverse) * [github.com (source mirror)](https://github.com/pushrocks/smartacme)
* [docs (typedoc)](https://pushrocks.gitlab.io/smartuniverse/) * [docs (typedoc)](https://pushrocks.gitlab.io/smartacme/)
## Status for master ## Status for master
Status Category | Status Badge Status Category | Status Badge
-- | -- -- | --
GitLab Pipelines | [![pipeline status](https://gitlab.com/pushrocks/smartuniverse/badges/master/pipeline.svg)](https://lossless.cloud) GitLab Pipelines | [![pipeline status](https://gitlab.com/pushrocks/smartacme/badges/master/pipeline.svg)](https://lossless.cloud)
GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/pushrocks/smartuniverse/badges/master/coverage.svg)](https://lossless.cloud) GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/pushrocks/smartacme/badges/master/coverage.svg)](https://lossless.cloud)
npm | [![npm downloads per month](https://badgen.net/npm/dy/@pushrocks/smartuniverse)](https://lossless.cloud) npm | [![npm downloads per month](https://badgen.net/npm/dy/@pushrocks/smartacme)](https://lossless.cloud)
Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/pushrocks/smartuniverse)](https://lossless.cloud) Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/pushrocks/smartacme)](https://lossless.cloud)
TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud) TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud)
node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud) Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud)
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@pushrocks/smartuniverse)](https://lossless.cloud) PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@pushrocks/smartacme)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/smartuniverse)](https://lossless.cloud) PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/smartacme)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/smartuniverse)](https://lossless.cloud) BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/smartacme)](https://lossless.cloud)
Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud) Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud)
## Usage ## Usage

View File

@ -3,10 +3,7 @@ import { Qenv } from '@pushrocks/qenv';
import * as cloudflare from '@mojoio/cloudflare'; import * as cloudflare from '@mojoio/cloudflare';
const testQenv = new Qenv('./', './.nogit/'); const testQenv = new Qenv('./', './.nogit/');
const testCloudflare = new cloudflare.CloudflareAccount({ const testCloudflare = new cloudflare.CloudflareAccount(testQenv.getEnvVarOnDemand('CF_TOKEN'));
email: testQenv.getEnvVarOnDemand('CF_EMAIL'),
key: testQenv.getEnvVarOnDemand('CF_KEY'),
});
import * as smartacme from '../ts/index'; import * as smartacme from '../ts/index';
@ -33,7 +30,8 @@ tap.test('should create a valid instance of SmartAcme', async () => {
}); });
tap.test('should get a domain certificate', async () => { tap.test('should get a domain certificate', async () => {
await smartAcmeInstance.getCertificateForDomain('bleu.de'); const certificate = await smartAcmeInstance.getCertificateForDomain('bleu.de');
console.log(certificate);
}); });
tap.test('certmatcher should correctly match domains', async () => { tap.test('certmatcher should correctly match domains', async () => {

View File

@ -43,7 +43,7 @@ export class CertManager {
* @param certDomainNameArg the domain Name to retrieve the vcertificate for * @param certDomainNameArg the domain Name to retrieve the vcertificate for
*/ */
public async retrieveCertificate(certDomainNameArg: string): Promise<Cert> { public async retrieveCertificate(certDomainNameArg: string): Promise<Cert> {
const existingCertificate: Cert = await Cert.getInstance({ const existingCertificate: Cert = await Cert.getInstance<Cert>({
domainName: certDomainNameArg, domainName: certDomainNameArg,
}); });
@ -69,7 +69,7 @@ export class CertManager {
} }
public async deleteCertificate(certDomainNameArg: string) { public async deleteCertificate(certDomainNameArg: string) {
const cert: Cert = await Cert.getInstance({ const cert: Cert = await Cert.getInstance<Cert>({
domainName: certDomainNameArg, domainName: certDomainNameArg,
}); });
await cert.delete(); await cert.delete();

View File

@ -13,7 +13,6 @@ export interface ISmartAcmeOptions {
setChallenge: (dnsChallengeArg: plugins.tsclass.network.IDnsChallenge) => Promise<any>; setChallenge: (dnsChallengeArg: plugins.tsclass.network.IDnsChallenge) => Promise<any>;
removeChallenge: (dnsChallengeArg: plugins.tsclass.network.IDnsChallenge) => Promise<any>; removeChallenge: (dnsChallengeArg: plugins.tsclass.network.IDnsChallenge) => Promise<any>;
environment: 'production' | 'integration'; environment: 'production' | 'integration';
logger?: plugins.smartlog.Smartlog;
} }
/** /**
@ -32,7 +31,7 @@ export class SmartAcme {
// the acme client // the acme client
private client: any; private client: any;
private smartdns = new plugins.smartdns.Smartdns({}); private smartdns = new plugins.smartdns.Smartdns({});
public logger: plugins.smartlog.Smartlog; public logger: plugins.smartlog.ConsoleLog;
// the account private key // the account private key
private privateKey: string; private privateKey: string;
@ -47,9 +46,7 @@ export class SmartAcme {
constructor(optionsArg: ISmartAcmeOptions) { constructor(optionsArg: ISmartAcmeOptions) {
this.options = optionsArg; this.options = optionsArg;
this.options.logger this.logger = new plugins.smartlog.ConsoleLog();
? (this.logger = optionsArg.logger)
: (this.logger = plugins.smartlog.defaultLogger);
} }
/** /**
@ -156,6 +153,7 @@ export class SmartAcme {
hostName: fullHostName, hostName: fullHostName,
challenge: keyAuthorization, challenge: keyAuthorization,
}); });
await plugins.smartdelay.delayFor(30000);
await this.smartdns.checkUntilAvailable(fullHostName, 'TXT', keyAuthorization, 100, 5000); await this.smartdns.checkUntilAvailable(fullHostName, 'TXT', keyAuthorization, 100, 5000);
console.log('Cool down an extra 60 second for region availability'); console.log('Cool down an extra 60 second for region availability');
await plugins.smartdelay.delayFor(60000); await plugins.smartdelay.delayFor(60000);