update validation
This commit is contained in:
parent
2cd1794e7e
commit
5fa530456b
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@ node_modules/
|
|||||||
coverage/
|
coverage/
|
||||||
public/
|
public/
|
||||||
pages/
|
pages/
|
||||||
|
.nogit/
|
||||||
|
4
.npmignore
Normal file
4
.npmignore
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
node_modules/
|
||||||
|
coverage/
|
||||||
|
public/
|
||||||
|
pages/
|
4
dist/smartacme.classes.acmecert.d.ts
vendored
4
dist/smartacme.classes.acmecert.d.ts
vendored
@ -59,11 +59,11 @@ export declare class AcmeCert {
|
|||||||
/**
|
/**
|
||||||
* checks if DNS records are set, will go through a max of 30 cycles
|
* checks if DNS records are set, will go through a max of 30 cycles
|
||||||
*/
|
*/
|
||||||
checkDns(cycleArg?: number): Promise<any>;
|
checkDns(cycleArg?: number): any;
|
||||||
/**
|
/**
|
||||||
* validates a challenge, only call after you have set the challenge at the expected location
|
* validates a challenge, only call after you have set the challenge at the expected location
|
||||||
*/
|
*/
|
||||||
requestValidation(): q.Promise<{}>;
|
requestValidation(): Promise<void>;
|
||||||
/**
|
/**
|
||||||
* requests a certificate
|
* requests a certificate
|
||||||
*/
|
*/
|
||||||
|
26
dist/smartacme.classes.acmecert.js
vendored
26
dist/smartacme.classes.acmecert.js
vendored
File diff suppressed because one or more lines are too long
3
dist/smartacme.plugins.d.ts
vendored
3
dist/smartacme.plugins.d.ts
vendored
@ -3,6 +3,7 @@ declare let rsaKeygen: any;
|
|||||||
declare let rawacme: any;
|
declare let rawacme: any;
|
||||||
declare let nodeForge: any;
|
declare let nodeForge: any;
|
||||||
import * as dnsly from 'dnsly';
|
import * as dnsly from 'dnsly';
|
||||||
|
import * as smartdelay from 'smartdelay';
|
||||||
import * as smartfile from 'smartfile';
|
import * as smartfile from 'smartfile';
|
||||||
import * as smartstring from 'smartstring';
|
import * as smartstring from 'smartstring';
|
||||||
export { dnsly, rsaKeygen, rawacme, nodeForge, smartfile, smartstring };
|
export { dnsly, rsaKeygen, rawacme, nodeForge, smartdelay, smartfile, smartstring };
|
||||||
|
4
dist/smartacme.plugins.js
vendored
4
dist/smartacme.plugins.js
vendored
@ -9,8 +9,10 @@ exports.nodeForge = nodeForge;
|
|||||||
// push.rocks modules here
|
// push.rocks modules here
|
||||||
const dnsly = require("dnsly");
|
const dnsly = require("dnsly");
|
||||||
exports.dnsly = dnsly;
|
exports.dnsly = dnsly;
|
||||||
|
const smartdelay = require("smartdelay");
|
||||||
|
exports.smartdelay = smartdelay;
|
||||||
const smartfile = require("smartfile");
|
const smartfile = require("smartfile");
|
||||||
exports.smartfile = smartfile;
|
exports.smartfile = smartfile;
|
||||||
const smartstring = require("smartstring");
|
const smartstring = require("smartstring");
|
||||||
exports.smartstring = smartstring;
|
exports.smartstring = smartstring;
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFjbWUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCLENBQUMsbUJBQW1CO0FBRzNDLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQSxDQUFDLGFBQWE7QUFXL0MsOEJBQVM7QUFWYixJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQyx3QkFBd0I7QUFXckQsMEJBQU87QUFWWCxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7QUFXakMsOEJBQVM7QUFUYiwwQkFBMEI7QUFDMUIsK0JBQThCO0FBSzFCLHNCQUFLO0FBSlQsdUNBQXNDO0FBUWxDLDhCQUFTO0FBUGIsMkNBQTBDO0FBUXRDLGtDQUFXIn0=
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFjbWUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCLENBQUMsbUJBQW1CO0FBRzNDLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQSxDQUFDLGFBQWE7QUFZL0MsOEJBQVM7QUFYYixJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUEsQ0FBQyx3QkFBd0I7QUFZckQsMEJBQU87QUFYWCxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7QUFZakMsOEJBQVM7QUFWYiwwQkFBMEI7QUFDMUIsK0JBQThCO0FBTTFCLHNCQUFLO0FBTFQseUNBQXdDO0FBU3BDLGdDQUFVO0FBUmQsdUNBQXNDO0FBU2xDLDhCQUFTO0FBUmIsMkNBQTBDO0FBU3RDLGtDQUFXIn0=
|
@ -30,14 +30,15 @@
|
|||||||
"q": "^1.4.1",
|
"q": "^1.4.1",
|
||||||
"rawacme": "^0.2.1",
|
"rawacme": "^0.2.1",
|
||||||
"rsa-keygen": "^1.0.6",
|
"rsa-keygen": "^1.0.6",
|
||||||
"smartfile": "^4.1.2",
|
"smartdelay": "^1.0.1",
|
||||||
|
"smartfile": "^4.1.4",
|
||||||
"smartstring": "^2.0.22",
|
"smartstring": "^2.0.22",
|
||||||
"typings-global": "^1.0.14"
|
"typings-global": "^1.0.14"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/should": "^8.1.30",
|
"@types/should": "^8.1.30",
|
||||||
"cflare": "0.0.10",
|
"cflare": "0.0.11",
|
||||||
"qenv": "^1.1.1",
|
"qenv": "^1.1.3",
|
||||||
"should": "^11.1.2",
|
"should": "^11.1.2",
|
||||||
"typings-test": "^1.0.3"
|
"typings-test": "^1.0.3"
|
||||||
}
|
}
|
||||||
|
22
test/test.js
22
test/test.js
@ -1,8 +1,16 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-test");
|
require("typings-test");
|
||||||
const should = require("should");
|
const should = require("should");
|
||||||
|
const cflare = require("cflare");
|
||||||
|
const qenv = require("qenv");
|
||||||
|
let testQenv = new qenv.Qenv(process.cwd(), process.cwd() + '/.nogit');
|
||||||
// import the module to test
|
// import the module to test
|
||||||
const smartacme = require("../dist/index");
|
const smartacme = require("../dist/index");
|
||||||
|
let myCflareAccount = new cflare.CflareAccount();
|
||||||
|
myCflareAccount.auth({
|
||||||
|
email: process.env.CF_EMAIL,
|
||||||
|
key: process.env.CF_KEY
|
||||||
|
});
|
||||||
describe('smartacme', function () {
|
describe('smartacme', function () {
|
||||||
let testSmartAcme;
|
let testSmartAcme;
|
||||||
let testAcmeAccount;
|
let testAcmeAccount;
|
||||||
@ -43,17 +51,25 @@ describe('smartacme', function () {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
it('should set the challenge', function (done) {
|
||||||
|
this.timeout(30000);
|
||||||
|
myCflareAccount.createRecord(testChallenge.domainNamePrefixed, 'TXT', testChallenge.dnsKeyHash).then(() => {
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
it('should check for a DNS record', function (done) {
|
it('should check for a DNS record', function (done) {
|
||||||
|
this.timeout(40000);
|
||||||
testAcmeCert.checkDns().then(x => {
|
testAcmeCert.checkDns().then(x => {
|
||||||
console.log(x);
|
console.log(x);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it.skip('should poll for validation of a challenge', function (done) {
|
it('should poll for validation of a challenge', function (done) {
|
||||||
this.timeout(10000);
|
this.timeout(700000);
|
||||||
testAcmeCert.requestValidation().then(x => {
|
testAcmeCert.requestValidation().then(x => {
|
||||||
|
console.log(x);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFJaEMsNEJBQTRCO0FBQzVCLDJDQUEwQztBQUUxQyxRQUFRLENBQUMsV0FBVyxFQUFFO0lBQ2xCLElBQUksYUFBa0MsQ0FBQTtJQUN0QyxJQUFJLGVBQXNDLENBQUE7SUFDMUMsSUFBSSxZQUFnQyxDQUFBO0lBQ3BDLElBQUksYUFBb0QsQ0FBQTtJQUV4RCxFQUFFLENBQUMsZ0NBQWdDLEVBQUUsVUFBVSxJQUFJO1FBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbkIsYUFBYSxHQUFHLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ3pDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDdEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ3hELElBQUksRUFBRSxDQUFBO1FBQ1YsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRTtRQUM5QixNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3RELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLCtCQUErQixFQUFFLFVBQVUsSUFBSTtRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ25CLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLGVBQWUsR0FBRyxDQUFDLENBQUE7WUFDbkIsSUFBSSxFQUFFLENBQUE7UUFDVixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRztZQUNSLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2IsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwQkFBMEIsRUFBRTtRQUMzQixlQUFlLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELFlBQVksR0FBRyxDQUFDLENBQUE7WUFDaEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzdELENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsdUNBQXVDLEVBQUUsVUFBVSxJQUFJO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbkIsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsaUJBQWlCO1lBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtZQUM5QixhQUFhLEdBQUcsaUJBQWlCLENBQUE7WUFDakMsSUFBSSxFQUFFLENBQUE7UUFDVixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLCtCQUErQixFQUFFLFVBQVMsSUFBSTtRQUM3QyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNkLElBQUksRUFBRSxDQUFBO1FBQ1YsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkNBQTJDLEVBQUUsVUFBVSxJQUFJO1FBQy9ELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbkIsWUFBWSxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsSUFBSSxFQUFFLENBQUE7UUFDVixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUEifQ==
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFDaEMsaUNBQWdDO0FBQ2hDLDZCQUE0QjtBQUU1QixJQUFJLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQTtBQUV0RSw0QkFBNEI7QUFDNUIsMkNBQTBDO0FBRTFDLElBQUksZUFBZSxHQUFHLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFBO0FBQ2hELGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDakIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUTtJQUMzQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNO0NBQzFCLENBQUMsQ0FBQTtBQUVGLFFBQVEsQ0FBQyxXQUFXLEVBQUU7SUFDbEIsSUFBSSxhQUFrQyxDQUFBO0lBQ3RDLElBQUksZUFBc0MsQ0FBQTtJQUMxQyxJQUFJLFlBQWdDLENBQUE7SUFDcEMsSUFBSSxhQUFvRCxDQUFBO0lBRXhELEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxVQUFVLElBQUk7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuQixhQUFhLEdBQUcsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDekMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQztZQUN0QixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDeEQsSUFBSSxFQUFFLENBQUE7UUFDVixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFD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
|
26
test/test.ts
26
test/test.ts
@ -3,9 +3,17 @@ import * as should from 'should'
|
|||||||
import * as cflare from 'cflare'
|
import * as cflare from 'cflare'
|
||||||
import * as qenv from 'qenv'
|
import * as qenv from 'qenv'
|
||||||
|
|
||||||
|
let testQenv = new qenv.Qenv(process.cwd(), process.cwd() + '/.nogit')
|
||||||
|
|
||||||
// import the module to test
|
// import the module to test
|
||||||
import * as smartacme from '../dist/index'
|
import * as smartacme from '../dist/index'
|
||||||
|
|
||||||
|
let myCflareAccount = new cflare.CflareAccount()
|
||||||
|
myCflareAccount.auth({
|
||||||
|
email: process.env.CF_EMAIL,
|
||||||
|
key: process.env.CF_KEY
|
||||||
|
})
|
||||||
|
|
||||||
describe('smartacme', function () {
|
describe('smartacme', function () {
|
||||||
let testSmartAcme: smartacme.SmartAcme
|
let testSmartAcme: smartacme.SmartAcme
|
||||||
let testAcmeAccount: smartacme.AcmeAccount
|
let testAcmeAccount: smartacme.AcmeAccount
|
||||||
@ -52,16 +60,28 @@ describe('smartacme', function () {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it.skip('should check for a DNS record', function(done) {
|
it('should set the challenge', function(done) {
|
||||||
|
this.timeout(30000)
|
||||||
|
myCflareAccount.createRecord(
|
||||||
|
testChallenge.domainNamePrefixed,
|
||||||
|
'TXT', testChallenge.dnsKeyHash
|
||||||
|
).then(() => {
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should check for a DNS record', function(done) {
|
||||||
|
this.timeout(40000)
|
||||||
testAcmeCert.checkDns().then(x => {
|
testAcmeCert.checkDns().then(x => {
|
||||||
console.log(x)
|
console.log(x)
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it.skip('should poll for validation of a challenge', function (done) {
|
it('should poll for validation of a challenge', function (done) {
|
||||||
this.timeout(10000)
|
this.timeout(700000)
|
||||||
testAcmeCert.requestValidation().then(x => {
|
testAcmeCert.requestValidation().then(x => {
|
||||||
|
console.log(x)
|
||||||
done()
|
done()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -139,43 +139,46 @@ export class AcmeCert {
|
|||||||
try {
|
try {
|
||||||
myRecord = await myDnsly.getRecord(helpers.prefixName(this.domainName), 'TXT')
|
myRecord = await myDnsly.getRecord(helpers.prefixName(this.domainName), 'TXT')
|
||||||
console.log('DNS is set!')
|
console.log('DNS is set!')
|
||||||
|
return myRecord[0][0]
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (cycleArg < 30) {
|
if (cycleArg < 30) {
|
||||||
cycleArg++
|
cycleArg++
|
||||||
await this.checkDns(cycleArg)
|
await plugins.smartdelay.delayFor(2000)
|
||||||
|
return await this.checkDns(cycleArg)
|
||||||
} else {
|
} else {
|
||||||
console.log('failed permanently...')
|
console.log('failed permanently...')
|
||||||
throw err
|
throw err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return myRecord[0][0]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* validates a challenge, only call after you have set the challenge at the expected location
|
* validates a challenge, only call after you have set the challenge at the expected location
|
||||||
*/
|
*/
|
||||||
requestValidation() {
|
async requestValidation() {
|
||||||
|
console.log('give it 2 minutes to settle!')
|
||||||
|
await plugins.smartdelay.delayFor(120000)
|
||||||
|
let makeRequest = () => {
|
||||||
let done = q.defer()
|
let done = q.defer()
|
||||||
this.parentAcmeAccount.parentSmartAcme.rawacmeClient.poll(this.acceptedChallenge.uri, (err, res) => {
|
this.parentAcmeAccount.parentSmartAcme.rawacmeClient.poll(this.acceptedChallenge.uri, async (err, res) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(err)
|
console.log(err)
|
||||||
done.reject(err)
|
return
|
||||||
}
|
}
|
||||||
console.log(`Validation response:`)
|
console.log(`Validation response:`)
|
||||||
console.log(JSON.stringify(res.body))
|
console.log(JSON.stringify(res.body))
|
||||||
if (res.body.status === 'pending' || 'invalid') {
|
if (res.body.status === 'pending' || 'invalid') {
|
||||||
setTimeout(
|
console.log('retry in 4 minutes!')
|
||||||
() => {
|
await plugins.smartdelay.delayFor(240000)
|
||||||
this.requestValidation().then(x => { done.resolve(x) })
|
makeRequest().then((x: any) => { done.resolve(x) })
|
||||||
},
|
|
||||||
2000
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
done.resolve(res.body)
|
done.resolve(res.body)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return done.promise
|
return done.promise
|
||||||
}
|
}
|
||||||
|
await makeRequest()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* requests a certificate
|
* requests a certificate
|
||||||
|
@ -7,6 +7,7 @@ let nodeForge = require('node-forge')
|
|||||||
|
|
||||||
// push.rocks modules here
|
// push.rocks modules here
|
||||||
import * as dnsly from 'dnsly'
|
import * as dnsly from 'dnsly'
|
||||||
|
import * as smartdelay from 'smartdelay'
|
||||||
import * as smartfile from 'smartfile'
|
import * as smartfile from 'smartfile'
|
||||||
import * as smartstring from 'smartstring'
|
import * as smartstring from 'smartstring'
|
||||||
|
|
||||||
@ -15,6 +16,7 @@ export {
|
|||||||
rsaKeygen,
|
rsaKeygen,
|
||||||
rawacme,
|
rawacme,
|
||||||
nodeForge,
|
nodeForge,
|
||||||
|
smartdelay,
|
||||||
smartfile,
|
smartfile,
|
||||||
smartstring
|
smartstring
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user