@lilaquadrat/studio 2.4.2 → 2.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/interfaces.d.ts +2 -1
- package/lib/interfaces.d.ts.map +1 -1
- package/lib/interfaces.js.map +1 -1
- package/lib/main.d.ts +2 -3
- package/lib/main.d.ts.map +1 -1
- package/lib/main.js +3 -5
- package/lib/main.js.map +1 -1
- package/lib/models.d.ts +4 -1
- package/lib/models.d.ts.map +1 -1
- package/lib/models.js +7 -1
- package/lib/models.js.map +1 -1
- package/lib/services.d.ts +5 -1
- package/lib/services.d.ts.map +1 -1
- package/lib/services.js +9 -1
- package/lib/services.js.map +1 -1
- package/lib/src/classes/ControllerBase.class.js +2 -2
- package/lib/src/classes/ControllerBase.class.js.map +1 -1
- package/lib/src/classes/models.class.js +1 -1
- package/lib/src/classes/models.class.js.map +1 -1
- package/lib/src/conf.class.d.ts +1 -0
- package/lib/src/dns.challenge.class.d.ts.map +1 -1
- package/lib/src/dns.challenge.class.js +3 -4
- package/lib/src/dns.challenge.class.js.map +1 -1
- package/lib/src/docker-compose.class.js +2 -2
- package/lib/src/docker-compose.class.js.map +1 -1
- package/lib/src/domain.class.d.ts +6 -4
- package/lib/src/domain.class.d.ts.map +1 -1
- package/lib/src/domain.class.js +33 -45
- package/lib/src/domain.class.js.map +1 -1
- package/lib/src/helpers/companyRights.js +2 -2
- package/lib/src/helpers/companyRights.js.map +1 -1
- package/lib/src/interfaces/CertificateActionResult.interface.d.ts +4 -0
- package/lib/src/interfaces/CertificateActionResult.interface.d.ts.map +1 -0
- package/lib/src/interfaces/CertificateActionResult.interface.js +3 -0
- package/lib/src/interfaces/CertificateActionResult.interface.js.map +1 -0
- package/lib/src/interfaces/HostingPorts.interface.d.ts +4 -0
- package/lib/src/interfaces/HostingPorts.interface.d.ts.map +1 -0
- package/lib/src/interfaces/HostingPorts.interface.js +3 -0
- package/lib/src/interfaces/HostingPorts.interface.js.map +1 -0
- package/lib/src/logger.js +2 -2
- package/lib/src/logger.js.map +1 -1
- package/lib/src/models/certificate-action.model.d.ts +18 -0
- package/lib/src/models/certificate-action.model.d.ts.map +1 -0
- package/lib/src/models/certificate-action.model.js +166 -0
- package/lib/src/models/certificate-action.model.js.map +1 -0
- package/lib/src/models/certificate.model copy.d.ts +17 -0
- package/lib/src/models/certificate.model copy.d.ts.map +1 -0
- package/lib/src/models/certificate.model copy.js +77 -0
- package/lib/src/models/certificate.model copy.js.map +1 -0
- package/lib/src/models/certificate.model.d.ts +9 -11
- package/lib/src/models/certificate.model.d.ts.map +1 -1
- package/lib/src/models/certificate.model.js +76 -39
- package/lib/src/models/certificate.model.js.map +1 -1
- package/lib/src/models/domain.model.d.ts +14 -0
- package/lib/src/models/domain.model.d.ts.map +1 -0
- package/lib/src/models/domain.model.js +62 -0
- package/lib/src/models/domain.model.js.map +1 -0
- package/lib/src/nginx.class.js +1 -1
- package/lib/src/nginx.class.js.map +1 -1
- package/lib/src/prepareContent.js +4 -4
- package/lib/src/prepareContent.js.map +1 -1
- package/lib/src/services/certificates.service copy.d.ts +7 -0
- package/lib/src/services/certificates.service copy.d.ts.map +1 -0
- package/lib/src/services/certificates.service copy.js +20 -0
- package/lib/src/services/certificates.service copy.js.map +1 -0
- package/lib/src/services/certificates.service.d.ts +39 -0
- package/lib/src/services/certificates.service.d.ts.map +1 -0
- package/lib/src/services/certificates.service.js +127 -0
- package/lib/src/services/certificates.service.js.map +1 -0
- package/lib/src/services/certificatesAction.service.d.ts +21 -0
- package/lib/src/services/certificatesAction.service.d.ts.map +1 -0
- package/lib/src/services/certificatesAction.service.js +79 -0
- package/lib/src/services/certificatesAction.service.js.map +1 -0
- package/lib/src/services/conf.class.d.ts +36 -0
- package/lib/src/services/conf.class.d.ts.map +1 -0
- package/lib/src/services/conf.class.js +122 -0
- package/lib/src/services/conf.class.js.map +1 -0
- package/lib/src/services/conf.service.d.ts +29 -0
- package/lib/src/services/conf.service.d.ts.map +1 -0
- package/lib/src/services/conf.service.js +115 -0
- package/lib/src/services/conf.service.js.map +1 -0
- package/lib/src/services/domains.service.d.ts +32 -0
- package/lib/src/services/domains.service.d.ts.map +1 -0
- package/lib/src/services/domains.service.js +127 -0
- package/lib/src/services/domains.service.js.map +1 -0
- package/lib/src/services/editorBase.service.js +1 -1
- package/lib/src/services/editorBase.service.js.map +1 -1
- package/lib/src/services/handleFile.service.js +1 -1
- package/lib/src/services/handleFile.service.js.map +1 -1
- package/lib/src/services/id.service copy.d.ts +7 -0
- package/lib/src/services/id.service copy.d.ts.map +1 -0
- package/lib/src/services/id.service copy.js +20 -0
- package/lib/src/services/id.service copy.js.map +1 -0
- package/lib/src/services/publish.service.js +3 -3
- package/lib/src/services/publish.service.js.map +1 -1
- package/lib/src/services/secret.service.js +2 -2
- package/lib/src/services/secret.service.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareContent.js","sourceRoot":"","sources":["../../src/prepareContent.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AACtD,kEAA0C;AAK1C,MAAM,YAAY,GAAG,CAAC,OAA2B,EAAE,YAAoB,MAAM,EAAE,EAAE;IAE/E,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;;QAE1B,qCAAqC;QACrC,IAAI,MAAA,MAAM,CAAC,IAAI,0CAAE,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;YAAE,OAAO;QAC5D,MAAM,CAAC,IAAI,GAAG,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAE5C,8CAA8C;QAC9C,IAAI,MAAM,CAAC,OAAO;YAAE,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE9D,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,OAA2B,EAAE,SAAoB,EAAE,EAAE;IAEhF,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;;QAE/B,IAAI,CAAC,CAAA,MAAA,YAAY,CAAC,SAAS,0CAAE,KAAK,CAAA;YAAE,OAAO;QAE3C,MAAM,OAAO,GAA4B,EAAE,CAAC;QAE5C,MAAA,YAAY,CAAC,SAAS,CAAC,KAAK,0CAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAE/C,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5C,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;IAExC,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC;AAEF,kBAAe,CAAC,OAAyB,EAAE,MAAgB,EAAE,YAAoB,MAAM,EAAE,EAAE;IAEzF,MAAM,iBAAiB,GAAqB,
|
|
1
|
+
{"version":3,"file":"prepareContent.js","sourceRoot":"","sources":["../../src/prepareContent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class IdService {
|
|
2
|
+
static getCurrent(company: string, project: string, app: string, model: string): Promise<import("mongodb").WithId<import("../models/id.model").Id> | null>;
|
|
3
|
+
static getUnique(company: string, project?: string, app?: string, model?: string): Promise<number | undefined>;
|
|
4
|
+
}
|
|
5
|
+
declare const _default: IdService;
|
|
6
|
+
export default _default;
|
|
7
|
+
//# sourceMappingURL=certificates.service%20copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificates.service copy.d.ts","sourceRoot":"","sources":["../../../src/services/certificates.service copy.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;IAEpB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAQ9E,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAUjF;;AACD,wBAA+B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IdService = void 0;
|
|
4
|
+
const models_1 = require("../../models");
|
|
5
|
+
class IdService {
|
|
6
|
+
static getCurrent(company, project, app, model) {
|
|
7
|
+
return models_1.IdModel.db.findOne({
|
|
8
|
+
company, project, app, model,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
static getUnique(company, project, app, model) {
|
|
12
|
+
return models_1.IdModel.db.findOneAndUpdate({
|
|
13
|
+
company, project, app, model,
|
|
14
|
+
}, { $inc: { count: 1 } }, { upsert: true, returnDocument: 'after' })
|
|
15
|
+
.then((response) => { var _a; return (_a = response.value) === null || _a === void 0 ? void 0 : _a.count; });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.IdService = IdService;
|
|
19
|
+
exports.default = new IdService();
|
|
20
|
+
//# sourceMappingURL=certificates.service%20copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificates.service copy.js","sourceRoot":"","sources":["../../../src/services/certificates.service copy.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;AAEvC,MAAa,SAAS;IAEpB,MAAM,CAAC,UAAU,CAAC,OAAe,EAAE,OAAe,EAAE,GAAW,EAAE,KAAa;QAE5E,OAAO,gBAAO,CAAC,EAAE,CAAC,OAAO,CAAC;YACxB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK;SAC7B,CAAC,CAAC;IAEL,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,OAAe,EAAE,OAAgB,EAAE,GAAY,EAAE,KAAc;QAE9E,OAAO,gBAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC;YACjC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK;SAC7B,EACD,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;aAC/D,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,KAAK,CAAA,EAAA,CAAC,CAAC;IAE/C,CAAC;CAEF;AApBD,8BAoBC;AACD,kBAAe,IAAI,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { PeerCertificate } from 'tls';
|
|
3
|
+
import { ClientSecretCredential, DefaultAzureCredential } from '@azure/identity';
|
|
4
|
+
import { CertificateAction } from '../models/certificate-action.model';
|
|
5
|
+
import { Certificate } from '../models/certificate.model';
|
|
6
|
+
import Immutable from '../Immutable.class';
|
|
7
|
+
import { ShareClientInterface, Wildcardcertificates } from '../../interfaces';
|
|
8
|
+
export declare class CertificatesService extends Immutable<Certificate> {
|
|
9
|
+
model: import("../classes/modelv2.class").default<Certificate>;
|
|
10
|
+
shareClient?: ShareClientInterface;
|
|
11
|
+
acme_email?: string;
|
|
12
|
+
acme_directory: string;
|
|
13
|
+
constructor(acme_email?: string, acmeMode?: 'staging' | 'live', shareClient?: ShareClientInterface);
|
|
14
|
+
exists(domain: string, company: string, project: string): Promise<number>;
|
|
15
|
+
getOrRequest(domain: string, company: string, project: string, user: string, app: string): Promise<{
|
|
16
|
+
type: 'certificate' | 'request';
|
|
17
|
+
data: Certificate | CertificateAction['_id'];
|
|
18
|
+
}>;
|
|
19
|
+
getCertificateDetails(cert: string): PeerCertificate;
|
|
20
|
+
getBase(inputDomains: string[], type: 'wildcard' | 'domain', privateKey: string, privateServerKey: string): Promise<{
|
|
21
|
+
acme: any;
|
|
22
|
+
account: any;
|
|
23
|
+
accountKey: any;
|
|
24
|
+
csr: any;
|
|
25
|
+
domains: string[];
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* creates a letsencrypt wildcard SSL certificate on the given azure subscription
|
|
29
|
+
*/
|
|
30
|
+
createWildcard(domain: string, privateKey: string, privateServerKey: string, credentials: ClientSecretCredential | DefaultAzureCredential, azureSubscriptionId: string): Promise<Wildcardcertificates>;
|
|
31
|
+
convertToPfx(certificate: string, privateKey: string, tempName: string): Promise<Buffer>;
|
|
32
|
+
/**
|
|
33
|
+
* creates a letsencrypt certificate for all given domain
|
|
34
|
+
* http challenge will be used
|
|
35
|
+
*/
|
|
36
|
+
createSSl(domains: string[], company: string, project: string, privateKey: string, privateServerKey: string): Promise<Wildcardcertificates>;
|
|
37
|
+
}
|
|
38
|
+
declare const _default: CertificatesService;
|
|
39
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificates.service.d.ts","sourceRoot":"","sources":["../../../src/services/certificates.service.ts"],"names":[],"mappings":";AAAA,OAAY,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAOjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAyB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAI3C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG9E,qBAAa,mBAAoB,SAAQ,SAAS,CAAC,WAAW,CAAC;IAE7D,KAAK,0DAAoB;IAEzB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAEnC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,cAAc,EAAE,MAAM,CAAC;gBAEX,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,oBAAoB;IAYlG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMjD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAC9F,OAAO,CAAC;QAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;KAAC,CAAC;IAwBxF,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAa9C,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;;;;;;;IA+B/G;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,sBAAsB,GAAG,sBAAsB,EAC5D,mBAAmB,EAAE,MAAM;IAmB7B,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IA+BtE;;;OAGG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM;CAqB3B;;AACD,wBAAyC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CertificatesService = void 0;
|
|
7
|
+
const tls_1 = __importDefault(require("tls"));
|
|
8
|
+
const net_1 = __importDefault(require("net"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const acme_1 = __importDefault(require("@root/acme"));
|
|
11
|
+
const csr_1 = __importDefault(require("@root/csr"));
|
|
12
|
+
const packer_1 = __importDefault(require("@root/pem/packer"));
|
|
13
|
+
const keypairs_1 = __importDefault(require("@root/keypairs"));
|
|
14
|
+
const child_process_1 = require("child_process");
|
|
15
|
+
const certificate_model_1 = __importDefault(require("../models/certificate.model"));
|
|
16
|
+
const Immutable_class_1 = __importDefault(require("../Immutable.class"));
|
|
17
|
+
const certificatesAction_service_1 = __importDefault(require("./certificatesAction.service"));
|
|
18
|
+
const http_challenge_class_1 = __importDefault(require("../http.challenge.class"));
|
|
19
|
+
const logger_1 = __importDefault(require("../logger"));
|
|
20
|
+
const dns_challenge_class_1 = __importDefault(require("../dns.challenge.class"));
|
|
21
|
+
class CertificatesService extends Immutable_class_1.default {
|
|
22
|
+
constructor(acme_email, acmeMode, shareClient) {
|
|
23
|
+
super();
|
|
24
|
+
this.model = certificate_model_1.default;
|
|
25
|
+
this.shareClient = shareClient;
|
|
26
|
+
this.acme_email = acme_email;
|
|
27
|
+
this.acme_directory = acmeMode === 'live'
|
|
28
|
+
? 'https://acme-v02.api.letsencrypt.org/directory'
|
|
29
|
+
: 'https://acme-staging-v02.api.letsencrypt.org/directory';
|
|
30
|
+
}
|
|
31
|
+
exists(domain, company, project) {
|
|
32
|
+
return this.model.db.countDocuments({ domains: { $in: [domain] }, company, project });
|
|
33
|
+
}
|
|
34
|
+
async getOrRequest(domain, company, project, user, app) {
|
|
35
|
+
const certificate = await this.model.db.findOne({ domains: { $in: [domain] }, company, project });
|
|
36
|
+
if (certificate)
|
|
37
|
+
return { type: 'certificate', data: certificate };
|
|
38
|
+
const request = await certificatesAction_service_1.default.request([domain], 'domain', 'pem', true, company, project, user, app);
|
|
39
|
+
return {
|
|
40
|
+
type: 'request',
|
|
41
|
+
data: request._id,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
getCertificateDetails(cert) {
|
|
45
|
+
const secureContext = tls_1.default.createSecureContext({ cert });
|
|
46
|
+
const secureSocket = new tls_1.default.TLSSocket(new net_1.default.Socket(), { secureContext });
|
|
47
|
+
const details = secureSocket.getCertificate();
|
|
48
|
+
secureSocket.destroy();
|
|
49
|
+
return details;
|
|
50
|
+
}
|
|
51
|
+
async getBase(inputDomains, type, privateKey, privateServerKey) {
|
|
52
|
+
const domains = type === 'wildcard' ? [`*.${inputDomains[0]}`] : inputDomains;
|
|
53
|
+
const acme = acme_1.default.create({ maintainerEmail: this.acme_email, packageAgent: 'lilastudio/v1.4', notify: () => { } });
|
|
54
|
+
await acme.init(this.acme_directory);
|
|
55
|
+
const accountKey = await keypairs_1.default.import({ pem: privateKey });
|
|
56
|
+
const serverKey = await keypairs_1.default.import({ pem: privateServerKey });
|
|
57
|
+
const account = await acme.accounts.create({ accountKey, subscriberEmail: this.acme_email, agreeToTerms: true });
|
|
58
|
+
const der = await csr_1.default.csr({
|
|
59
|
+
domains,
|
|
60
|
+
jwk: serverKey,
|
|
61
|
+
encoding: 'der',
|
|
62
|
+
});
|
|
63
|
+
const csr = await packer_1.default.packBlock({ type: 'CERTIFICATE REQUEST', bytes: der });
|
|
64
|
+
return {
|
|
65
|
+
acme,
|
|
66
|
+
account,
|
|
67
|
+
accountKey,
|
|
68
|
+
csr,
|
|
69
|
+
domains,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* creates a letsencrypt wildcard SSL certificate on the given azure subscription
|
|
74
|
+
*/
|
|
75
|
+
async createWildcard(domain, privateKey, privateServerKey, credentials, azureSubscriptionId) {
|
|
76
|
+
const optionsBase = await this.getBase([domain], 'wildcard', privateKey, privateServerKey);
|
|
77
|
+
const options = {
|
|
78
|
+
account: optionsBase.account,
|
|
79
|
+
accountKey: optionsBase.accountKey,
|
|
80
|
+
csr: optionsBase.csr,
|
|
81
|
+
domains: optionsBase.domains,
|
|
82
|
+
challenges: {
|
|
83
|
+
'dns-01': new dns_challenge_class_1.default(domain, credentials, azureSubscriptionId),
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
return optionsBase.acme.certificates.create(options);
|
|
87
|
+
}
|
|
88
|
+
convertToPfx(certificate, privateKey, tempName) {
|
|
89
|
+
return new Promise((resolve, reject) => {
|
|
90
|
+
// eslint-disable-next-line max-len
|
|
91
|
+
child_process_1.exec(`openssl pkcs12 -export -passout pass: -inkey <(echo "${privateKey}") -in <(echo "${certificate}") -out ${tempName}.pfx`, { timeout: 5000 }, (e, stdout, stderr) => {
|
|
92
|
+
// if (this.debug) {
|
|
93
|
+
logger_1.default.debug('stdout ', stdout);
|
|
94
|
+
logger_1.default.debug('stderr ', stderr);
|
|
95
|
+
// }
|
|
96
|
+
if (e instanceof Error) {
|
|
97
|
+
return reject(e);
|
|
98
|
+
}
|
|
99
|
+
const content = fs_1.default.readFileSync(`${tempName}.pfx`);
|
|
100
|
+
fs_1.default.rm(`${tempName}.pfx`, () => { });
|
|
101
|
+
return resolve(content);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* creates a letsencrypt certificate for all given domain
|
|
107
|
+
* http challenge will be used
|
|
108
|
+
*/
|
|
109
|
+
async createSSl(domains, company, project, privateKey, privateServerKey) {
|
|
110
|
+
if (!this.shareClient)
|
|
111
|
+
throw new Error('SHARECLIENT_NOT_INITIALIZED');
|
|
112
|
+
const optionsBase = await this.getBase(domains, 'domain', privateKey, privateServerKey);
|
|
113
|
+
const options = {
|
|
114
|
+
account: optionsBase.account,
|
|
115
|
+
accountKey: optionsBase.accountKey,
|
|
116
|
+
csr: optionsBase.csr,
|
|
117
|
+
domains: optionsBase.domains,
|
|
118
|
+
challenges: {
|
|
119
|
+
'http-01': new http_challenge_class_1.default(company, project, this.shareClient),
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
return optionsBase.acme.certificates.create(options);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.CertificatesService = CertificatesService;
|
|
126
|
+
exports.default = new CertificatesService();
|
|
127
|
+
//# sourceMappingURL=certificates.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificates.service.js","sourceRoot":"","sources":["../../../src/services/certificates.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { QueueClient, QueueServiceClient } from '@azure/storage-queue';
|
|
2
|
+
import { ObjectId } from 'mongodb';
|
|
3
|
+
import CertificateActionResult from '../interfaces/CertificateActionResult.interface';
|
|
4
|
+
import Immutable from '../Immutable.class';
|
|
5
|
+
import { CertificateAction } from '../models/certificate-action.model';
|
|
6
|
+
import { Certificate } from '../models/certificate.model';
|
|
7
|
+
export declare class CertificatesActionsService extends Immutable<CertificateAction> {
|
|
8
|
+
model: import("../classes/modelv2.class").default<CertificateAction>;
|
|
9
|
+
service: QueueServiceClient;
|
|
10
|
+
client: QueueClient;
|
|
11
|
+
constructor(connectionString: string);
|
|
12
|
+
request(domains: CertificateAction['domains'], type: CertificateAction['type'], contentType: CertificateAction['contentType'], renew: boolean, company: string, project: string, user: string, app: string): Promise<import("../interfaces/CreateResult.interface").default<CertificateAction>>;
|
|
13
|
+
planRenew(certificate: Certificate, validPercent: number, user: string, app: string): Promise<void> | Promise<import("../interfaces/CreateResult.interface").default<CertificateAction>>;
|
|
14
|
+
planRetry(certificateAction: CertificateAction, user: string, app: string): Promise<import("@azure/storage-queue").QueueSendMessageResponse>;
|
|
15
|
+
addToQueue(actionInternalId: ObjectId, visibilityTimeout?: number): Promise<import("@azure/storage-queue").QueueSendMessageResponse>;
|
|
16
|
+
single(actionInternalId: ObjectId): Promise<import("mongodb").WithId<CertificateAction> | null>;
|
|
17
|
+
setState(actionInternalId: ObjectId, state: CertificateAction['state'], user: string, app: string): Promise<import("mongodb").UpdateResult>;
|
|
18
|
+
setResult(actionInternalId: ObjectId, result: CertificateActionResult, state: CertificateAction['state'], user: string, app: string): Promise<import("mongodb").UpdateResult>;
|
|
19
|
+
}
|
|
20
|
+
declare const _default: CertificatesActionsService;
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificatesAction.service.d.ts","sourceRoot":"","sources":["../../../src/services/certificatesAction.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,uBAAuB,MAAM,iDAAiD,CAAC;AACtF,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAA+B,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,qBAAa,0BAA2B,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAE1E,KAAK,gEAA0B;IAE/B,OAAO,EAAE,kBAAkB,CAAC;IAE5B,MAAM,EAAE,WAAW,CAAC;gBAER,gBAAgB,EAAE,MAAM;IAc9B,OAAO,CACX,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,EACrC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAC/B,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,EAC7C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM;IAoBb,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IA0B7E,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAiBzE,UAAU,CAAC,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,GAAE,MAAU;IAQ1E,MAAM,CAAC,gBAAgB,EAAE,QAAQ;IAMjC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAejG,SAAS,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAkBpI;;AACD,wBAAqG"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CertificatesActionsService = void 0;
|
|
7
|
+
const storage_queue_1 = require("@azure/storage-queue");
|
|
8
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
9
|
+
const logger_1 = __importDefault(require("../logger"));
|
|
10
|
+
const Immutable_class_1 = __importDefault(require("../Immutable.class"));
|
|
11
|
+
const certificate_action_model_1 = __importDefault(require("../models/certificate-action.model"));
|
|
12
|
+
const hardCopy_1 = __importDefault(require("../helpers/hardCopy"));
|
|
13
|
+
class CertificatesActionsService extends Immutable_class_1.default {
|
|
14
|
+
constructor(connectionString) {
|
|
15
|
+
super();
|
|
16
|
+
this.model = certificate_action_model_1.default;
|
|
17
|
+
if (connectionString) {
|
|
18
|
+
this.service = storage_queue_1.QueueServiceClient.fromConnectionString(connectionString);
|
|
19
|
+
this.client = this.service.getQueueClient('certs');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async request(domains, type, contentType, renew, company, project, user, app) {
|
|
23
|
+
const newAction = await this.create({
|
|
24
|
+
domains,
|
|
25
|
+
type,
|
|
26
|
+
contentType,
|
|
27
|
+
renew,
|
|
28
|
+
state: 'new',
|
|
29
|
+
company,
|
|
30
|
+
project,
|
|
31
|
+
}, user, app);
|
|
32
|
+
await this.addToQueue(newAction._id);
|
|
33
|
+
return newAction;
|
|
34
|
+
}
|
|
35
|
+
planRenew(certificate, validPercent, user, app) {
|
|
36
|
+
const validDays = dayjs_1.default(certificate.valid.to).diff(certificate.valid.from, 'days');
|
|
37
|
+
const renewInDays = Math.floor((validDays * (validPercent / 100)));
|
|
38
|
+
if (renewInDays < 1) {
|
|
39
|
+
logger_1.default.info('cant plan renew of certificate, renew in days is smaller than 1');
|
|
40
|
+
return new Promise((resolve) => resolve());
|
|
41
|
+
}
|
|
42
|
+
const renewObject = {
|
|
43
|
+
planned: dayjs_1.default(certificate.valid.from).add(renewInDays, 'days').toDate(),
|
|
44
|
+
type: certificate.type,
|
|
45
|
+
contentType: certificate.contentType,
|
|
46
|
+
domains: certificate.domains,
|
|
47
|
+
state: 'new',
|
|
48
|
+
renew: true,
|
|
49
|
+
};
|
|
50
|
+
return this.create(renewObject, user, app);
|
|
51
|
+
}
|
|
52
|
+
async planRetry(certificateAction, user, app) {
|
|
53
|
+
const renewObject = Object.assign(Object.assign({}, hardCopy_1.default(certificateAction)), { state: 'new', renew: true });
|
|
54
|
+
delete renewObject._id;
|
|
55
|
+
delete renewObject.history;
|
|
56
|
+
delete renewObject.result;
|
|
57
|
+
const newAction = await this.create(renewObject, user, app);
|
|
58
|
+
return this.addToQueue(newAction._id, 86400);
|
|
59
|
+
}
|
|
60
|
+
async addToQueue(actionInternalId, visibilityTimeout = 0) {
|
|
61
|
+
await this.client.createIfNotExists();
|
|
62
|
+
return this.client.sendMessage(Buffer.from(JSON.stringify({ _id: actionInternalId })).toString('base64'), { visibilityTimeout });
|
|
63
|
+
}
|
|
64
|
+
single(actionInternalId) {
|
|
65
|
+
return this.model.db.findOne({ _id: actionInternalId });
|
|
66
|
+
}
|
|
67
|
+
setState(actionInternalId, state, user, app) {
|
|
68
|
+
return this.immutable(actionInternalId, { state }, user, 'change', app, undefined, undefined, 'stateChange');
|
|
69
|
+
}
|
|
70
|
+
setResult(actionInternalId, result, state, user, app) {
|
|
71
|
+
const update = { state };
|
|
72
|
+
if (result)
|
|
73
|
+
update.result = result;
|
|
74
|
+
return this.immutable(actionInternalId, update, user, 'change', app, undefined, undefined, 'stateChangeResult');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.CertificatesActionsService = CertificatesActionsService;
|
|
78
|
+
exports.default = new CertificatesActionsService(process.env.PUBLISH_QUEUE_CONNECTION_STRING);
|
|
79
|
+
//# sourceMappingURL=certificatesAction.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificatesAction.service.js","sourceRoot":"","sources":["../../../src/services/certificatesAction.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import DomainConf from './interfaces/DomainConf.interface';
|
|
2
|
+
import ShareClientInterface from './interfaces/ShareClient.interface';
|
|
3
|
+
export default class ConfClass {
|
|
4
|
+
shareClient: ShareClientInterface;
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* load the base nginx conf file for further rendering
|
|
8
|
+
*/
|
|
9
|
+
getBase(folder: string, name: string): any;
|
|
10
|
+
constructor(shareClient: ShareClientInterface);
|
|
11
|
+
/**
|
|
12
|
+
* generates nginx config
|
|
13
|
+
*
|
|
14
|
+
* @param {string[]} domains
|
|
15
|
+
* @param {string} defaultDomain e.g. $project-$customer.lila2.de
|
|
16
|
+
* @param {string} project
|
|
17
|
+
* @param {string} company
|
|
18
|
+
* @param {string} baseConf
|
|
19
|
+
* @returns
|
|
20
|
+
* @memberof ProjectClass
|
|
21
|
+
*/
|
|
22
|
+
render(domains: string[], defaultDomain: string, company: string, project: string, baseConf: string, variables: {
|
|
23
|
+
[key: string]: any;
|
|
24
|
+
}): string;
|
|
25
|
+
renderStreamConf(domains: DomainConf[], confString: string): string;
|
|
26
|
+
getComposeObject(domains: DomainConf[], baseFolder: string, image?: string): {
|
|
27
|
+
[key: string]: any;
|
|
28
|
+
};
|
|
29
|
+
getKey(company: string, project: string): string;
|
|
30
|
+
validateDomains(domains: string[]): string[];
|
|
31
|
+
/**
|
|
32
|
+
* validate domains and remove double entries
|
|
33
|
+
*/
|
|
34
|
+
validateStreamDomains(domains: DomainConf[]): DomainConf[];
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=conf.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conf.class.d.ts","sourceRoot":"","sources":["../../../src/services/conf.class.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAC3D,OAAO,oBAAoB,MAAM,oCAAoC,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,SAAS;IAE5B,WAAW,EAAE,oBAAoB,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;gBAMxB,WAAW,EAAE,oBAAoB;IAM7C;;;;;;;;;;SAUK;IACL,MAAM,CACJ,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAC9B,MAAM;IAYT,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAYnE,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAuB;;;IAiC1F,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMvC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;IAcjC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE;CAsC5C"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const handlebars_1 = __importDefault(require("handlebars"));
|
|
7
|
+
class ConfClass {
|
|
8
|
+
constructor(shareClient) {
|
|
9
|
+
this.shareClient = shareClient;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* load the base nginx conf file for further rendering
|
|
14
|
+
*/
|
|
15
|
+
getBase(folder, name) {
|
|
16
|
+
return this.shareClient.get(folder, name);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* generates nginx config
|
|
20
|
+
*
|
|
21
|
+
* @param {string[]} domains
|
|
22
|
+
* @param {string} defaultDomain e.g. $project-$customer.lila2.de
|
|
23
|
+
* @param {string} project
|
|
24
|
+
* @param {string} company
|
|
25
|
+
* @param {string} baseConf
|
|
26
|
+
* @returns
|
|
27
|
+
* @memberof ProjectClass
|
|
28
|
+
*/
|
|
29
|
+
render(domains, defaultDomain, company, project, baseConf, variables) {
|
|
30
|
+
const template = handlebars_1.default.compile(baseConf);
|
|
31
|
+
const conf = template({
|
|
32
|
+
domains, defaultDomain, company, project, variables,
|
|
33
|
+
});
|
|
34
|
+
return conf.trim();
|
|
35
|
+
}
|
|
36
|
+
renderStreamConf(domains, confString) {
|
|
37
|
+
const template = handlebars_1.default.compile(confString);
|
|
38
|
+
const conf = template({
|
|
39
|
+
domains,
|
|
40
|
+
});
|
|
41
|
+
return conf.trim();
|
|
42
|
+
}
|
|
43
|
+
getComposeObject(domains, baseFolder, image = 'nginx:alpine') {
|
|
44
|
+
const composeObject = {
|
|
45
|
+
version: '3',
|
|
46
|
+
services: {},
|
|
47
|
+
};
|
|
48
|
+
domains.map((domain) => {
|
|
49
|
+
const domainObject = {
|
|
50
|
+
image,
|
|
51
|
+
container_name: this.getKey(domain.company, domain.project),
|
|
52
|
+
ports: [
|
|
53
|
+
`${domain.port.http}:80`,
|
|
54
|
+
`${domain.port.https}:443`,
|
|
55
|
+
],
|
|
56
|
+
volumes: [
|
|
57
|
+
`${baseFolder}/${domain.company}/${domain.project}/hosting:/var/www/hosting:ro`,
|
|
58
|
+
`${baseFolder}/${domain.company}/${domain.project}/conf:/etc/nginx/conf.d/`,
|
|
59
|
+
`${baseFolder}/${domain.company}/${domain.project}/certs:/var/www/certs`,
|
|
60
|
+
'/base/data/certs:/var/www/base/certs',
|
|
61
|
+
],
|
|
62
|
+
};
|
|
63
|
+
composeObject.services[this.getKey(domain.company, domain.project)] = domainObject;
|
|
64
|
+
return domainObject;
|
|
65
|
+
});
|
|
66
|
+
return composeObject;
|
|
67
|
+
}
|
|
68
|
+
getKey(company, project) {
|
|
69
|
+
return `${company}-${project}`;
|
|
70
|
+
}
|
|
71
|
+
validateDomains(domains) {
|
|
72
|
+
const fileredDomains = [...new Set(domains)];
|
|
73
|
+
return fileredDomains.filter((domain) => {
|
|
74
|
+
if (!domain)
|
|
75
|
+
return false;
|
|
76
|
+
if (!domain.length)
|
|
77
|
+
return false;
|
|
78
|
+
return true;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* validate domains and remove double entries
|
|
83
|
+
*/
|
|
84
|
+
validateStreamDomains(domains) {
|
|
85
|
+
const filteredDomains = [];
|
|
86
|
+
domains.map((domain) => {
|
|
87
|
+
var _a, _b, _c;
|
|
88
|
+
/**
|
|
89
|
+
* skip all with missing values
|
|
90
|
+
*/
|
|
91
|
+
if (!domain)
|
|
92
|
+
return false;
|
|
93
|
+
if (!((_a = domain === null || domain === void 0 ? void 0 : domain.domains) === null || _a === void 0 ? void 0 : _a.length))
|
|
94
|
+
return false;
|
|
95
|
+
if (!domain.company.length)
|
|
96
|
+
return false;
|
|
97
|
+
if (!domain.project.length)
|
|
98
|
+
return false;
|
|
99
|
+
if (((_b = domain.port) === null || _b === void 0 ? void 0 : _b.http) < 1)
|
|
100
|
+
return false;
|
|
101
|
+
if (((_c = domain.port) === null || _c === void 0 ? void 0 : _c.https) < 1)
|
|
102
|
+
return false;
|
|
103
|
+
/**
|
|
104
|
+
* skip double entries
|
|
105
|
+
*/
|
|
106
|
+
const unique = filteredDomains.filter((searchDomain) => {
|
|
107
|
+
// if (domain.domains.includes(searchDomain.domain)) return true;
|
|
108
|
+
if (searchDomain.company === domain.company && searchDomain.project === domain.project)
|
|
109
|
+
return true;
|
|
110
|
+
if (searchDomain.port === domain.port)
|
|
111
|
+
return true;
|
|
112
|
+
return false;
|
|
113
|
+
});
|
|
114
|
+
if (unique.length)
|
|
115
|
+
return false;
|
|
116
|
+
return filteredDomains.push(domain);
|
|
117
|
+
});
|
|
118
|
+
return filteredDomains;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.default = ConfClass;
|
|
122
|
+
//# sourceMappingURL=conf.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conf.class.js","sourceRoot":"","sources":["../../../src/services/conf.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import DomainConf from '../interfaces/DomainConf.interface';
|
|
3
|
+
import ShareClientInterface from '../interfaces/ShareClient.interface';
|
|
4
|
+
export default class ConfService {
|
|
5
|
+
shareClient: ShareClientInterface;
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
* load the base nginx conf file for further rendering
|
|
9
|
+
*/
|
|
10
|
+
getBase(folder: string, name: string): Promise<Buffer>;
|
|
11
|
+
constructor(shareClient: ShareClientInterface);
|
|
12
|
+
/**
|
|
13
|
+
* generates nginx config
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
render(domains: string[], defaultDomain: string, company: string, project: string, baseConf: string, variables: {
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
}): string;
|
|
19
|
+
renderStreamConf(domains: DomainConf[], confString: string): string;
|
|
20
|
+
getComposeObject(domains: DomainConf[], baseFolder: string, image?: string): {
|
|
21
|
+
[key: string]: any;
|
|
22
|
+
};
|
|
23
|
+
getKey(company: string, project: string): string;
|
|
24
|
+
validateDomains(domains: string[]): string[];
|
|
25
|
+
/**
|
|
26
|
+
* validate domains and remove double entries
|
|
27
|
+
*/
|
|
28
|
+
validateStreamDomains(domains: DomainConf[]): DomainConf[];
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conf.service.d.ts","sourceRoot":"","sources":["../../../src/services/conf.service.ts"],"names":[],"mappings":";AACA,OAAO,UAAU,MAAM,oCAAoC,CAAC;AAC5D,OAAO,oBAAoB,MAAM,qCAAqC,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,WAAW;IAE9B,WAAW,EAAE,oBAAoB,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;gBAMxB,WAAW,EAAE,oBAAoB;IAM7C;;;SAGK;IACL,MAAM,CACJ,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAC9B,MAAM;IAYT,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAYnE,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAuB;;;IAiC1F,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMvC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;IAcjC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE;CAsC5C"}
|