switch to acme core
This commit is contained in:
199
dist/smartacme.classes.acmeclient.d.ts
vendored
199
dist/smartacme.classes.acmeclient.d.ts
vendored
@ -1,199 +0,0 @@
|
||||
/// <reference types="q" />
|
||||
import * as q from 'q';
|
||||
import { JWebClient } from './smartacme.classes.jwebclient';
|
||||
import { IReqResArg } from './smartacme.classes.jwebclient';
|
||||
/**
|
||||
* @class AcmeClient
|
||||
* @constructor
|
||||
* @description ACME protocol implementation from client perspective
|
||||
* @param {string} directory_url - Address of directory
|
||||
* @param {module:JWebClient~JWebClient} jWebClient - Reference to JSON-Web-Client
|
||||
*/
|
||||
export declare class AcmeClient {
|
||||
clientProfilePubKey: any;
|
||||
daysValid: number;
|
||||
directory: any;
|
||||
directoryUrl: string;
|
||||
emailDefaultPrefix: string;
|
||||
emailOverride: string;
|
||||
jWebClient: JWebClient;
|
||||
regLink: string;
|
||||
tosLink: string;
|
||||
webroot: string;
|
||||
wellKnownPath: string;
|
||||
withInteraction: boolean;
|
||||
constructor(directoryUrlArg: any);
|
||||
/**
|
||||
* getDirectory
|
||||
* @description retrieve directory entries (directory url must be set prior to execution)
|
||||
* @param {function} callback - first argument will be the answer object
|
||||
*/
|
||||
getDirectory(): q.Promise<IReqResArg>;
|
||||
/**
|
||||
* newRegistration
|
||||
* @description try to register (directory lookup must have occured prior to execution)
|
||||
* @param {Object} payload
|
||||
* @param {function} callback - first argument will be the answer object
|
||||
*/
|
||||
newRegistration(payload: any): q.Promise<{}>;
|
||||
/**
|
||||
* getRegistration
|
||||
* @description get information about registration
|
||||
* @param {string} uri - will be exposed when trying to register
|
||||
* @param {Object} payload - update information
|
||||
* @param {function} callback - first argument will be the answer object
|
||||
*/
|
||||
getRegistration(uri: any, payload: any): q.Promise<IReqResArg>;
|
||||
/**
|
||||
* authorizeDomain
|
||||
* @description authorize domain using challenge-response-method
|
||||
* @param {string} domain
|
||||
* @param {function} callback - first argument will be the answer object
|
||||
*/
|
||||
authorizeDomain(domain: any): q.Promise<{}>;
|
||||
/**
|
||||
* acceptChallenge
|
||||
* @description tell server which challenge will be accepted
|
||||
* @param {Object} challenge
|
||||
* @param {function} callback - first argument will be the answer object
|
||||
*/
|
||||
acceptChallenge(challenge?: {}): q.Promise<{}>;
|
||||
/**
|
||||
* pollUntilValid
|
||||
* @description periodically (with exponential back-off) check status of challenge
|
||||
* @param {string} uri
|
||||
* @param {function} callback - first argument will be the answer object
|
||||
* @param {number} retry - factor of delay
|
||||
*/
|
||||
pollUntilValid(uri: any, retry?: number): q.Promise<{}>;
|
||||
/**
|
||||
* pollUntilIssued
|
||||
* @description periodically (with exponential back-off) check status of CSR
|
||||
* @param {string} uri
|
||||
* @param {function} callback - first argument will be the answer object
|
||||
* @param {number} retry - factor of delay
|
||||
*/
|
||||
pollUntilIssued(uri: any, retry?: number): q.Promise<{}>;
|
||||
/**
|
||||
* requestSigning
|
||||
* @description send CSR
|
||||
* @param {string} domain - expected to be already sanitized
|
||||
* @param {function} callback - first argument will be the answer object
|
||||
*/
|
||||
requestSigning(commonName: any): q.Promise<{}>;
|
||||
/**
|
||||
* retrieves profile of user (will make directory lookup and registration check)
|
||||
* @param {function} callback - first argument will be the answer object
|
||||
*/
|
||||
getProfile(): q.Promise<{}>;
|
||||
/**
|
||||
* createAccount
|
||||
* @description create new account (assumes directory lookup has already occured)
|
||||
* @param {string} email
|
||||
* @param {function} callback - first argument will be the registration URI
|
||||
*/
|
||||
createAccount(email: string): q.Promise<{}>;
|
||||
/**
|
||||
* agreeTos
|
||||
* @description agree with terms of service (update agreement status in profile)
|
||||
* @param {string} tosLink
|
||||
* @param {function} callback - first argument will be the answer object
|
||||
*/
|
||||
agreeTos(tosLink: any): q.Promise<{}>;
|
||||
/**
|
||||
* Entry-Point: Request certificate
|
||||
*/
|
||||
requestCertificate(domainArg: string, organizationArg: string, countryCodeArg: string): q.Promise<{}>;
|
||||
/**
|
||||
* External: Create key pair
|
||||
* @param {number} bit - key strength, expected to be already sanitized
|
||||
* @param {string} c - country code, expected to be already sanitized
|
||||
* @param {string} o - organization, expected to be already sanitized
|
||||
* @param {string} cn - common name (domain name), expected to be already sanitized
|
||||
* @param {string} e - email address, expected to be already sanitized
|
||||
* @param {function} callback
|
||||
*/
|
||||
createKeyPair(optionsArg: {
|
||||
keyBitSize: number;
|
||||
countryCode: string;
|
||||
organization: string;
|
||||
commonName: string;
|
||||
emailAddress: string;
|
||||
}): q.Promise<{}>;
|
||||
/**
|
||||
* Helper: Empty callback
|
||||
*/
|
||||
emptyCallback(): void;
|
||||
/**
|
||||
* Helper: Make safe file name or path from string
|
||||
* @param {string} name
|
||||
* @param {boolean} withPath - optional, default false
|
||||
* @return {string}
|
||||
*/
|
||||
makeSafeFileName(name: any, withPath?: boolean): any;
|
||||
/**
|
||||
* Helper: Prepare challenge
|
||||
* @param {string} domain
|
||||
* @param {Object} challenge
|
||||
* @param {function} callback
|
||||
*/
|
||||
prepareChallenge(domain: any, challenge: any, callback: any): void;
|
||||
/**
|
||||
* Helper: Extract TOS Link, e.g. from "<http://...>;rel="terms-of-service"
|
||||
* @param {string} linkStr
|
||||
* @return {string}
|
||||
*/
|
||||
getTosLink(linkStr: any): string;
|
||||
/**
|
||||
* Helper: Select challenge by type
|
||||
* @param {Object} ans
|
||||
* @param {string} challenge_type
|
||||
* @return {Object}
|
||||
*/
|
||||
selectChallenge(ans: any, challengeType: string): any;
|
||||
/**
|
||||
* Helper: Extract first found email from profile (without mailto prefix)
|
||||
* @param {Object} profile
|
||||
* @return {string}
|
||||
*/
|
||||
extractEmail(profile: any): string;
|
||||
/**
|
||||
* Make ACME-Request: Domain-Authorization Request - Object: resource, identifier
|
||||
* @param {string} domain
|
||||
* @return {{resource: string, identifier: Object}}
|
||||
*/
|
||||
makeDomainAuthorizationRequest(domain: any): {
|
||||
'resource': string;
|
||||
'identifier': {
|
||||
'type': string;
|
||||
'value': any;
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Make ACME-Object: Key-Authorization (encoded) - String: Challenge-Token . Encoded-Account-Key-Hash
|
||||
* @param {Object} challenge
|
||||
* @return {string}
|
||||
*/
|
||||
makeKeyAuthorization(challenge: any): string;
|
||||
/**
|
||||
* Make ACME-Request: Challenge-Response - Object: resource, keyAuthorization
|
||||
* @param {Object} challenge
|
||||
* @return {{resource: string, keyAuthorization: string}}
|
||||
*/
|
||||
makeChallengeResponse(challenge: any): {
|
||||
'resource': string;
|
||||
'keyAuthorization': string;
|
||||
};
|
||||
/**
|
||||
* Make ACME-Request: CSR - Object: resource, csr, notBefore, notAfter
|
||||
* @param {string} csr
|
||||
* @param {number} days_valid
|
||||
* @return {{resource: string, csr: string, notBefore: string, notAfter: string}}
|
||||
*/
|
||||
makeCertRequest(csr: string, DAYS_VALID: number): {
|
||||
'resource': string;
|
||||
'csr': any;
|
||||
'notBefore': string;
|
||||
'notAfter': string;
|
||||
};
|
||||
}
|
717
dist/smartacme.classes.acmeclient.js
vendored
717
dist/smartacme.classes.acmeclient.js
vendored
File diff suppressed because one or more lines are too long
71
dist/smartacme.classes.jwebclient.d.ts
vendored
71
dist/smartacme.classes.jwebclient.d.ts
vendored
@ -1,71 +0,0 @@
|
||||
/// <reference types="q" />
|
||||
import * as q from 'q';
|
||||
export interface IReqResArg {
|
||||
ans: any;
|
||||
res: any;
|
||||
}
|
||||
/**
|
||||
* @class JWebClient
|
||||
* @constructor
|
||||
* @description Implementation of HTTPS-based JSON-Web-Client
|
||||
*/
|
||||
export declare class JWebClient {
|
||||
/**
|
||||
* User account key pair
|
||||
*/
|
||||
keyPair: any;
|
||||
/**
|
||||
* Cached nonce returned with last request
|
||||
*/
|
||||
lastNonce: string;
|
||||
/**
|
||||
* @member {boolean} module:JWebClient~JWebClient#verbose
|
||||
* @desc Determines verbose mode
|
||||
*/
|
||||
verbose: boolean;
|
||||
constructor();
|
||||
/**
|
||||
* createJWT
|
||||
* @description create JSON-Web-Token signed object
|
||||
* @param {string|undefined} nonce
|
||||
* @param {Object|string|number|boolean} payload
|
||||
* @param {string} alg
|
||||
* @param {Object|string} key
|
||||
* @param {Object} jwk
|
||||
* @return {string}
|
||||
*/
|
||||
createJWT(nonce: any, payload: any, alg: any, key: any, jwk: any): string;
|
||||
/**
|
||||
* request
|
||||
* @description make GET or POST request over HTTPS and use JOSE as payload type
|
||||
* @param {string} query
|
||||
* @param {string} payload
|
||||
* @param {function} callback
|
||||
* @param {function} errorCallback
|
||||
*/
|
||||
request(query: string, payload?: string): q.Promise<{}>;
|
||||
/**
|
||||
* get
|
||||
* @description make GET request
|
||||
* @param {string} uri
|
||||
* @param {function} callback
|
||||
* @param {function} errorCallback
|
||||
*/
|
||||
get(uri: string): q.Promise<IReqResArg>;
|
||||
/**
|
||||
* make POST request
|
||||
* @param {string} uri
|
||||
* @param {Object|string|number|boolean} payload
|
||||
* @param {function} callback
|
||||
* @param {function} errorCallback
|
||||
*/
|
||||
post(uri: string, payload: any): q.Promise<IReqResArg>;
|
||||
/**
|
||||
* checks if status is expected and log errors
|
||||
* @param {string} uri
|
||||
* @param {Object|string|number|boolean} payload
|
||||
* @param {Object|string} ans
|
||||
* @param {Object} res
|
||||
*/
|
||||
evaluateStatus(uri: any, payload: any, ans: any, res: any): void;
|
||||
}
|
222
dist/smartacme.classes.jwebclient.js
vendored
222
dist/smartacme.classes.jwebclient.js
vendored
File diff suppressed because one or more lines are too long
33
dist/smartacme.classes.smartacme.d.ts
vendored
33
dist/smartacme.classes.smartacme.d.ts
vendored
@ -1,16 +1,29 @@
|
||||
import * as acmeclient from './smartacme.classes.acmeclient';
|
||||
/// <reference types="q" />
|
||||
import 'typings-global';
|
||||
import * as q from 'q';
|
||||
/**
|
||||
* class SmartAcme exports methods for maintaining SSL Certificates
|
||||
*/
|
||||
export declare class SmartAcme {
|
||||
acmeAccount: AcmeAccount;
|
||||
acmeClient: acmeclient.AcmeClient;
|
||||
constructor(directoryUrlArg?: string);
|
||||
preparedBool: boolean;
|
||||
acmeUrls: any;
|
||||
productionBool: boolean;
|
||||
keyPair: any;
|
||||
constructor(productionArg?: boolean);
|
||||
/**
|
||||
* creates an account
|
||||
* prepares the SmartAcme class
|
||||
*/
|
||||
createAccount(): void;
|
||||
prepareAcme(): q.Promise<{}>;
|
||||
/**
|
||||
* returns the openssl key pair for
|
||||
* creates an account if not currently present in module
|
||||
*/
|
||||
getKeyPair(): any;
|
||||
}
|
||||
export declare class AcmeAccount {
|
||||
createAccount(): q.Promise<{}>;
|
||||
/**
|
||||
* creates a keyPair
|
||||
*/
|
||||
createKeyPair(): q.Promise<{}>;
|
||||
/**
|
||||
* gets the Acme Urls
|
||||
*/
|
||||
getAcmeUrls(): q.Promise<{}>;
|
||||
}
|
||||
|
106
dist/smartacme.classes.smartacme.js
vendored
106
dist/smartacme.classes.smartacme.js
vendored
@ -1,26 +1,104 @@
|
||||
"use strict";
|
||||
const acmeclient = require("./smartacme.classes.acmeclient");
|
||||
require("typings-global");
|
||||
const q = require("q");
|
||||
let ACME = require('le-acme-core').ACME.create();
|
||||
let RSA = require('rsa-compat').RSA;
|
||||
let bitlen = 1024;
|
||||
let exp = 65537;
|
||||
let options = {
|
||||
public: true,
|
||||
pem: true,
|
||||
internal: true
|
||||
};
|
||||
/**
|
||||
* class SmartAcme exports methods for maintaining SSL Certificates
|
||||
*/
|
||||
class SmartAcme {
|
||||
constructor(directoryUrlArg = 'https://acme-staging.api.letsencrypt.org/directory') {
|
||||
this.acmeClient = new acmeclient.AcmeClient(directoryUrlArg);
|
||||
constructor(productionArg = false) {
|
||||
this.preparedBool = false;
|
||||
this.productionBool = productionArg;
|
||||
}
|
||||
/**
|
||||
* creates an account
|
||||
* prepares the SmartAcme class
|
||||
*/
|
||||
prepareAcme() {
|
||||
let done = q.defer();
|
||||
if (this.preparedBool === false) {
|
||||
this.getAcmeUrls()
|
||||
.then(() => {
|
||||
return this.createKeyPair();
|
||||
})
|
||||
.then((x) => {
|
||||
console.log('prepared smartacme instance');
|
||||
done.resolve();
|
||||
});
|
||||
}
|
||||
else {
|
||||
done.resolve();
|
||||
}
|
||||
return done.promise;
|
||||
}
|
||||
/**
|
||||
* creates an account if not currently present in module
|
||||
*/
|
||||
createAccount() {
|
||||
this.acmeClient.createAccount('test@bleu.de', (answer) => {
|
||||
console.log(answer);
|
||||
});
|
||||
let done = q.defer();
|
||||
this.prepareAcme()
|
||||
.then(() => {
|
||||
return this.createKeyPair();
|
||||
})
|
||||
.then(() => {
|
||||
let options = {
|
||||
newRegUrl: this.acmeUrls.newReg,
|
||||
email: 'domains@lossless.org',
|
||||
accountKeypair: {
|
||||
privateKeyPem: this.keyPair
|
||||
},
|
||||
agreeToTerms: function (tosUrl, done) {
|
||||
done(null, tosUrl);
|
||||
}
|
||||
};
|
||||
ACME.registerNewAccount(options, (err, regr) => {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
done.reject(err);
|
||||
}
|
||||
done.resolve(regr);
|
||||
}); // returns "regr" registration data
|
||||
}).catch(err => { console.log(err); });
|
||||
return done.promise;
|
||||
}
|
||||
/**
|
||||
* returns the openssl key pair for
|
||||
* creates a keyPair
|
||||
*/
|
||||
getKeyPair() {
|
||||
return this.acmeClient.getKeyPair();
|
||||
createKeyPair() {
|
||||
let done = q.defer();
|
||||
RSA.generateKeypair(bitlen, exp, options, (err, keypair) => {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
done.reject(err);
|
||||
}
|
||||
console.log(keypair);
|
||||
this.keyPair = keypair;
|
||||
});
|
||||
done.resolve();
|
||||
return done.promise;
|
||||
}
|
||||
/**
|
||||
* gets the Acme Urls
|
||||
*/
|
||||
getAcmeUrls() {
|
||||
let done = q.defer();
|
||||
ACME.getAcmeUrls(ACME.stagingServerUrl, (err, urls) => {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
this.acmeUrls = urls;
|
||||
console.log(this.acmeUrls);
|
||||
done.resolve();
|
||||
});
|
||||
return done.promise;
|
||||
}
|
||||
}
|
||||
exports.SmartAcme = SmartAcme;
|
||||
class AcmeAccount {
|
||||
}
|
||||
exports.AcmeAccount = AcmeAccount;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLmNsYXNzZXMuc21hcnRhY21lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhY21lLmNsYXNzZXMuc21hcnRhY21lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSw2REFBNEQ7QUFFNUQ7SUFHSSxZQUFZLGtCQUEwQixvREFBb0Q7UUFDdEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBQyxDQUFDLE1BQU07WUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN2QixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUN2QyxDQUFDO0NBQ0o7QUF0QkQsOEJBc0JDO0FBRUQ7Q0FFQztBQUZELGtDQUVDIn0=
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLmNsYXNzZXMuc21hcnRhY21lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhY21lLmNsYXNzZXMuc21hcnRhY21lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwQkFBdUI7QUFDdkIsdUJBQXNCO0FBTXRCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7QUFDaEQsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQTtBQUVuQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUE7QUFDakIsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFBO0FBQ2YsSUFBSSxPQUFPLEdBQUc7SUFDVixNQUFNLEVBQUUsSUFBSTtJQUNaLEdBQUcsRUFBRSxJQUFJO0lBQ1QsUUFBUSxFQUFFLElBQUk7Q0FDakIsQ0FBQTtBQUNEOztHQUVHO0FBQ0g7SUFLSSxZQUFZLGdCQUF5QixLQUFLO1FBSjFDLGlCQUFZLEdBQVksS0FBSyxDQUFBO1FBS3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFBO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDUCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDcEIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLEVBQUU7aUJBQ2IsSUFBSSxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDL0IsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO2dCQUMxQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDbEIsQ0FBQyxD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
|
10
dist/smartacme.paths.js
vendored
10
dist/smartacme.paths.js
vendored
@ -1,5 +1,7 @@
|
||||
"use strict";
|
||||
const plugins = require("./smartacme.plugins");
|
||||
exports.packageDir = plugins.path.join(__dirname, '../');
|
||||
exports.assetDir = plugins.path.join(exports.packageDir, 'assets/');
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLnBhdGhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhY21lLnBhdGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBOEM7QUFFbkMsUUFBQSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLEtBQUssQ0FBQyxDQUFBO0FBQy9DLFFBQUEsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFVLEVBQUMsU0FBUyxDQUFDLENBQUEifQ==
|
||||
const path = require("path");
|
||||
const smartfile = require("smartfile");
|
||||
exports.packageDir = path.join(__dirname, '../');
|
||||
exports.assetDir = path.join(exports.packageDir, 'assets/');
|
||||
smartfile.fs.ensureDirSync(exports.assetDir);
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLnBhdGhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhY21lLnBhdGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw2QkFBNEI7QUFDNUIsdUNBQXNDO0FBRTNCLFFBQUEsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLEtBQUssQ0FBQyxDQUFBO0FBQ3ZDLFFBQUEsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQTtBQUNyRCxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxnQkFBUSxDQUFDLENBQUEifQ==
|
6
dist/smartacme.plugins.d.ts
vendored
6
dist/smartacme.plugins.d.ts
vendored
@ -1,6 +0,0 @@
|
||||
import 'typings-global';
|
||||
import * as path from 'path';
|
||||
import * as smartfile from 'smartfile';
|
||||
import * as smartstring from 'smartstring';
|
||||
import * as shelljs from 'shelljs';
|
||||
export { path, smartfile, smartstring, shelljs };
|
11
dist/smartacme.plugins.js
vendored
11
dist/smartacme.plugins.js
vendored
@ -1,11 +0,0 @@
|
||||
"use strict";
|
||||
require("typings-global");
|
||||
const path = require("path");
|
||||
exports.path = path;
|
||||
const smartfile = require("smartfile");
|
||||
exports.smartfile = smartfile;
|
||||
const smartstring = require("smartstring");
|
||||
exports.smartstring = smartstring;
|
||||
const shelljs = require("shelljs");
|
||||
exports.shelljs = shelljs;
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhY21lLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFjbWUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBQ3ZCLDZCQUE0QjtBQU14QixvQkFBSTtBQUxSLHVDQUFzQztBQU1sQyw4QkFBUztBQUxiLDJDQUEwQztBQU10QyxrQ0FBVztBQUxmLG1DQUFrQztBQU05QiwwQkFBTyJ9
|
Reference in New Issue
Block a user