fix(build): update tooling configuration and align nginx certificate generation with current dependencies

This commit is contained in:
2026-04-30 17:47:40 +00:00
parent 8b9420d9b6
commit 6499ba9ceb
13 changed files with 2297 additions and 1958 deletions
+28
View File
@@ -0,0 +1,28 @@
{
"@git.zone/cli": {
"projectType": "npm",
"module": {
"githost": "code.foss.global",
"gitscope": "push.rocks",
"gitrepo": "smartnginx",
"description": "A TypeScript library for controlling Nginx from Node.js, with support for generating and managing Nginx configurations dynamically.",
"npmPackagename": "@push.rocks/smartnginx",
"license": "MIT",
"projectDomain": "push.rocks"
},
"release": {
"registries": [
"https://verdaccio.lossless.digital",
"https://registry.npmjs.org"
],
"accessLevel": "public"
}
},
"@git.zone/tsdoc": {
"legal": "\n## License and Legal Information\n\nThis repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. \n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or if you require further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
},
"@ship.zone/szci": {
"npmGlobalTools": [],
"npmRegistryUrl": "registry.npmjs.org"
}
}
+7
View File
@@ -1,5 +1,12 @@
# Changelog
## 2026-04-30 - 2.0.55 - fix(build)
update tooling configuration and align nginx certificate generation with current dependencies
- migrates project metadata to the new smartconfig and release configuration format
- updates package scripts, TypeScript settings, and dependency versions for the current toolchain
- adapts self-signed certificate generation to the newer selfsigned API and tightens class property initialization
## 2025-11-27 - 2.0.54 - fix(package)
Pin package manager to pnpm@10.18.1 in package.json
+28 -27
View File
@@ -1,27 +1,28 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAuO16Nu4tMkmBqsNWezt3ENqnsbWNUqC+curHyXURaoIH2wQ1
6DIZaBIbO/WndNisMy6TnxJtiMVbKGKjkRH4w3qegthIRCKLD3+Yl1ffqpHRz19h
kNxVg4HfXRQMfH0Pnvd/4wB7g2mapk8SMwsTuEZ0j/7dAwc0dqw94g+aehgZlvxU
DFQjI/4kU9EiheDZ9TPREBMfeIb82zapINekKq5TkN/euWfsfpbZZ6qWZvTX8Neg
ulKOtDCCFauXKv2LNqy4jxWQef2XfMT8Jr4Txud3F8zqfexJYq5ywjH07ecsyi7a
/ifv7VLNXUEgwI6OFJHYnFZ314S6KlurocQUWQIDAQABAoIBAAIMpnWrBrSa+d5X
whB9uX27XITnXKpoAguNfHivvONBrcXGWVl+zkKh3ip4RFIfE7IjXpyQ6vEalD5j
zDh4uiWflt3cVFldDUISdmUb1pEYM5YcMN1c/RRujikQ8qK3ExhyLtqh7Eu8GBnR
L7rQ6x9ZoBAAtJT4Wr6rIeEmfW16lunOu97mTi/RL//EHQvlBPgyr2sHLee2aPWV
jmC4607vV+xNJPC4qd+6HJDjaXi6hNooVDO8jX48RJUVozMRX7i8GIoDotvObVbA
SCqlhbWyawzbCX1p5nvtdOZ0muSIDILudifFUzRzBm0sSL0MxIT0s6OYaQuU0moH
Q1nOr+UCgYEA94R/MkApusWYjRcNEPPE2cB1QvtoEDdfhPzwzg1xympRzn8gOwin
tpJ25H+dYHeIR5TB5GiqKRY/zwqqqiplEQRkIL+aT/mYqM/vSfchm+gVbBYZL7ql
FrE9h+i+mf0/GNoRV3VirWjIjTqBW3DQ0KvxBOos9gJCJA6pMD0xQo0CgYEAv0Pf
BvZpskgmxdOGlynUbfu9hQWOqbagU6U1dUwzYbO2EYqjxZeJn5974vJ5XlHAHy3R
WuVfGjdiNIph+mDiBFK7wUih6dwVUrKf8H1fucsprfmRkaiKnofaefrlWHMnqo45
vWAXkQoJpnR7afQmk3lK8geejMIo/M5Wm+VuS/0CgYA25iRwONsImhsj8CDtyaO3
yIA5wxlpv15oWNHwYfsDMmHCs1+quFi6nfHQ7J0zcE/B0LTQvIZBZrXwbiU8aPrR
s2+h891+L5Y0myov9ah2tBtMRfqAI53KUrWbF3xvG0SLdpKyG08vtzYEXR2j8nne
TsS+mlIunoGdDcNo96mdYQKBgDz7B72xjMuBw5LpOQ0zEf6q96bUucKUbpOcpemr
DOrGoHMBT+vsv7073QTjqByRVf7a3dfsL6EtLUtxH4Hzp7wXILOkU7M7LzU5rFLB
tmaHRteoLWhSYzfeOqMPglXsCSaQyAn//COLHr6KftquNCpqzqFSGpPoR6cqpmR4
Bu2FAoGBAN+UVwhXtSYG89pYFw5u4Oa2XwaVciaqGSkXR0Oyb8pBx65AX6Byy1FD
6IooFiAkHqDDz2iIPx7mxzTrHBfKcaHsUcgT5aXr720A6/aD6W5PsVdebWoMMTyA
OqFdoeXdMWUzCOWQYp6ViD8f0MQydHppOhugEivReRP700C1WVnx
-----END RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCmYXVXbBVKOo7L
wia3tFZQrQI6hVYlhwMAYyO1tedTOc1H7gdE7GAucwRRBmCnOFbt+dnQwM3Em8zg
71/IA5d2lp8dFb66axbBCJWqdyIPVeTTPUYCMESwyVnAYRhk+7bitJbAKzyzUTO9
NrHI7IBFu9vCScr9ZYaZqQa46HA4ththaNY4x4/7b4fCzrhql8JjT4Z3MRjH2Z1e
QBda3br+MdHAG4Owr8gA3dmRbbVPBbAL4PGX1rqvL8Wh5J01WGEmV8OejwtH9Qa8
w8gstgo9mVrJtLPGLXyMvtoUG4K0dPGcEKD1KcOjlxcTH2aPURAs6lnF1wNTN8W8
Dohzs9+TAgMBAAECggEACoBfQCfVxiwhBDJacEDlK81ntRriX5cAdP9M6zSyh5m/
37jh45NJ1NS0ooqVAij3r6iT+22X7z9oNJBXStATOMxz+Yl8Utbchk2M6MgBMdeZ
jE2zRAMY6tGipRZbzE/o8LE2TKXN/IF1Ew3HNefbhss/KSmwMsM8Nimpf3VIVAPs
YGWbd/P02dNMdR2t4X06na/SX+FUDP2TTBonR49V4/9VLFaAvTbm2vxN0Wdb2ipE
t5c79+89OsvDYQHkueBQ9Acg1Gdm1Sau0leUGtbcfk7hQgJZqkVqNra18yDqrx6p
aplyd0pOfwkwWj517o+MCjgc6mV9Al/0h79wYyYHnQKBgQDe0E7IfDc3V9qbf6aV
pyVDkPAy+QdYlOrGh5ImfKgdmkzATgRKKFCZW8i5mRRBoJROx8v1Zr1xF2JISNRV
O1pq2uH5bx2HVIcgDezwhZtKu2gkuzBWHEfmiiCc32WL67E/tKTxHkw0zpo0KJX0
94jeshpeeUq2MHk12SZ2ztVINQKBgQC/KWjImpeJkzP9GeZhQo79BEn4kRaZxxXP
ljH0mVoR56QDYvK8qPpkpi/HpJqaq185G/tEV8QWoEA4I+pz/kJ7lJNpe7TF65l4
1IEZiaXaFDmXyOrPj6a9VQbZyuvhTouHfpc4mOYMwMUZ6GnO2112CQWRgDMYck2+
+Hn2MPVRpwKBgQCXA1QCKb46sj6l2ZSMJWbqLle+FG5YKUYeHFB/6UkAF04hoD7k
DALkjgKzV/8Uo8MgyeWAg4uuFI02NLZEth+IAKXbquW2jSGwJgAK3GLt+aqSCpSu
KCjLJZ8I85gdhzbw2HxaN5Cq0cRNyZwpFYQce1XH5iku5heg2XZqW7DOaQKBgFjb
J7CvYyb4vJ62bkbhSFPFrZiT4FyElNfUKc5Xhe1yreNBGDGnnhQwx17WXWLtq6qB
Hi+rWCNoQ9GUqENYeZC2BDtw3BtvovvuU0AKooQXCJpMMxFd5ZR2NGQCFdi5yNOn
fSU6tRxScovTY3NatjvKf8MdQyLm5sqQ9yf/o9hbAoGBAI0yTeAw89evsJeZf4EK
hfM3wd51grMKSbMqkqmPhQuGK0AmTJDQ0unIIDetAgSRTrWtakYOouyWtEDyizpw
htC3YsxRR34kZXDiJteQtOwtmmyba2gPkgc/LcPXGeO0hjDj/h6vrwZN1LR152II
enxdIKMOcx1/cMqgqnpKBQMr
-----END PRIVATE KEY-----
+19 -19
View File
@@ -1,19 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDBDCCAeygAwIBAgIJZid+XT7/NTaWMA0GCSqGSIb3DQEBBQUAMB4xHDAaBgNV
BAMTE3NlbGZzaWduZWQuZ2l0LnpvbmUwHhcNMjUxMTI3MTMxMzM0WhcNMjYxMTI3
MTMxMzM0WjAeMRwwGgYDVQQDExNzZWxmc2lnbmVkLmdpdC56b25lMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuO16Nu4tMkmBqsNWezt3ENqnsbWNUqC+
curHyXURaoIH2wQ16DIZaBIbO/WndNisMy6TnxJtiMVbKGKjkRH4w3qegthIRCKL
D3+Yl1ffqpHRz19hkNxVg4HfXRQMfH0Pnvd/4wB7g2mapk8SMwsTuEZ0j/7dAwc0
dqw94g+aehgZlvxUDFQjI/4kU9EiheDZ9TPREBMfeIb82zapINekKq5TkN/euWfs
fpbZZ6qWZvTX8NegulKOtDCCFauXKv2LNqy4jxWQef2XfMT8Jr4Txud3F8zqfexJ
Yq5ywjH07ecsyi7a/ifv7VLNXUEgwI6OFJHYnFZ314S6KlurocQUWQIDAQABo0Uw
QzAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIC9DAmBgNVHREEHzAdhhtodHRwOi8v
ZXhhbXBsZS5vcmcvd2ViaWQjbWUwDQYJKoZIhvcNAQEFBQADggEBAH3qUHaBnNn+
e1qlZ0gUooJlLXU5tLGR9cVFV1dKuE5yxZhT0qal4A6Vif1mGKYXmHC4q0/atNsQ
RBvrbpoVtJxWpb6iIh1L5WWeP5OxqeLwZ8gp2Qj67CkwmccjIS66kkpwHBkBmXU9
nRlmGOj9OBHczqE0cp4dW6pCVvRtzC+wTX9oqAdmjyD8S8oo8I2fjCL4pJTPQtbV
RlaryWxlxscXYArA7iE9A5Cl5DdJtkOKS48Rbfw3BEQpgL0J4VeF8Lbb+ryk6BbG
XXkkH570cIdTs588gdfhkS8T6NIl+1Aicqmf+v6j3MHrzyLK3SZTQ83hoCRAEMfW
SPkrHSeL6h8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDHjCCAgagAwIBAgIJQBJbROxXlqB6MA0GCSqGSIb3DQEBBQUAMB4xHDAaBgNV
BAMTE3NlbGZzaWduZWQuZ2l0LnpvbmUwHhcNMjYwNDMwMTc0NzM1WhcNMjcwNDMw
MTc0NzM1WjAeMRwwGgYDVQQDExNzZWxmc2lnbmVkLmdpdC56b25lMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApmF1V2wVSjqOy8Imt7RWUK0COoVWJYcD
AGMjtbXnUznNR+4HROxgLnMEUQZgpzhW7fnZ0MDNxJvM4O9fyAOXdpafHRW+umsW
wQiVqnciD1Xk0z1GAjBEsMlZwGEYZPu24rSWwCs8s1EzvTaxyOyARbvbwknK/WWG
makGuOhwOLYbYWjWOMeP+2+Hws64apfCY0+GdzEYx9mdXkAXWt26/jHRwBuDsK/I
AN3ZkW21TwWwC+Dxl9a6ry/FoeSdNVhhJlfDno8LR/UGvMPILLYKPZlaybSzxi18
jL7aFBuCtHTxnBCg9SnDo5cXEx9mj1EQLOpZxdcDUzfFvA6Ic7PfkwIDAQABo18w
XTAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwHgYDVR0RBBcwFYITc2VsZnNpZ25lZC5naXQuem9uZTAN
BgkqhkiG9w0BAQUFAAOCAQEAJLsBa/k67c+aKgMTc31BeG0rpDBUeXqw0sDfHSbI
niNZdqhaHCM8g7dx8EDSdox0A6NdJH/UXyR+Q7ZJ+rrb1e7Jx2xropHJdVglvXwY
wHJ7jrC+uolCNGrebDbjXiz13pyxZuOgGF9Xvl0BUbh3doEiHZSjFpT8pd+O/OWW
MM0LZ8Rfp6OQS4ka5NpGwmonsyKuUDBklQBk8AM0CRfwcdp0aeYrSEV+Hu66pLp0
GbLv7HCjwYiHEHJmD3qQwMUY3iIUso2JJ8OWsPwttsF4zdySdXtgbdVNMrnIkLCm
x/gIh8xhKxWeQQKtM7Qq2Lm/YhMcVe9F/NKxEco5VK8ZsA==
-----END CERTIFICATE-----
+14 -7
View File
@@ -1,9 +1,5 @@
{
"npmci": {
"npmAccessLevel": "public"
},
"npmdocker": {},
"gitzone": {
"@git.zone/cli": {
"projectType": "npm",
"module": {
"githost": "code.foss.global",
@@ -21,9 +17,20 @@
"reverse proxy",
"SSL certificates"
]
},
"release": {
"registries": [
"https://verdaccio.lossless.digital",
"https://registry.npmjs.org"
],
"accessLevel": "public"
}
},
"tsdoc": {
"@git.zone/tsdoc": {
"legal": "\n## License and Legal Information\n\nThis repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. \n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or if you require further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
},
"@ship.zone/szci": {
"npmGlobalTools": [],
"npmRegistryUrl": "registry.npmjs.org"
}
}
}
+15 -13
View File
@@ -7,8 +7,8 @@
"typings": "dist_ts/index.d.ts",
"scripts": {
"test": "tstest test/ --verbose",
"cleanTest": "(rm -r nginxconfig) && npm run test",
"build": "(tsbuild tsfolders --allowimplicitany)"
"cleanTest": "rm -r nginxconfig && pnpm test",
"build": "tsbuild tsfolders"
},
"repository": {
"type": "git",
@@ -26,25 +26,25 @@
"author": "Lossless GmbH",
"license": "MIT",
"bugs": {
"url": "https://gitlab.com/pushrocks/smartnginx/issues"
"url": "https://code.foss.global/push.rocks/smartnginx/issues"
},
"homepage": "https://code.foss.global/push.rocks/smartnginx",
"dependencies": {
"@push.rocks/lik": "^6.2.2",
"@push.rocks/smartfs": "^1.1.0",
"@push.rocks/smartlog": "^3.1.10",
"@push.rocks/lik": "^6.4.1",
"@push.rocks/smartfs": "^1.5.1",
"@push.rocks/smartlog": "^3.2.2",
"@push.rocks/smartpath": "^6.0.0",
"@push.rocks/smartpromise": "^4.2.3",
"@push.rocks/smartshell": "^3.3.0",
"@push.rocks/smartshell": "^3.3.8",
"@push.rocks/smartstring": "^4.1.0",
"@push.rocks/smartunique": "^3.0.9",
"selfsigned": "^4.0.0"
"selfsigned": "^5.5.0"
},
"devDependencies": {
"@git.zone/tsbuild": "^3.1.0",
"@git.zone/tsrun": "^2.0.0",
"@git.zone/tstest": "^3.1.3",
"@push.rocks/qenv": "^6.1.3"
"@git.zone/tsbuild": "^4.4.0",
"@git.zone/tsrun": "^2.0.3",
"@git.zone/tstest": "^3.6.3",
"@types/node": "^25.6.0"
},
"files": [
"ts/**/*",
@@ -55,6 +55,8 @@
"dist_ts_web/**/*",
"assets/**/*",
"cli.js",
".smartconfig.json",
"license",
"npmextra.json",
"readme.md"
],
@@ -62,5 +64,5 @@
"browserslist": [
"last 1 chrome versions"
],
"packageManager": "pnpm@10.18.1+sha512.77a884a165cbba2d8d1c19e3b4880eee6d2fcabd0d879121e282196b80042351d5eb3ca0935fa599da1dc51265cc68816ad2bddd2a2de5ea9fdf92adbec7cd34"
"packageManager": "pnpm@10.28.2"
}
+2174 -1877
View File
File diff suppressed because it is too large Load Diff
-2
View File
@@ -1,8 +1,6 @@
import { tap, expect } from '@git.zone/tstest/tapbundle';
import * as path from 'node:path';
import { Qenv } from '@push.rocks/qenv';
import * as smartnginx from '../ts/index.js';
let testSmartNginx: smartnginx.SmartNginx;
+1 -1
View File
@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/smartnginx',
version: '2.0.54',
version: '2.0.55',
description: 'A TypeScript library for controlling Nginx from Node.js, with support for generating and managing Nginx configurations dynamically.'
}
+1 -1
View File
@@ -22,7 +22,7 @@ export class NginxHost implements IHostConfig {
public hostName: string; // the host name e.g. domain name
public destination: string;
public destinationPort: number;
public configString: string; // the actual host config file as string
public configString = ''; // the actual host config file as string
public privateKey: string;
public publicKey: string;
+2 -2
View File
@@ -11,7 +11,7 @@ import { ChildProcess } from 'child_process';
export class NginxProcess {
public started: boolean = false;
public smartNginxRef: SmartNginx;
private nginxChildProcess: ChildProcess;
private nginxChildProcess?: ChildProcess;
private smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash',
});
@@ -62,6 +62,6 @@ export class NginxProcess {
* checks if nginx is in path
*/
public check(): boolean {
return;
return Boolean(this.nginxChildProcess);
}
}
+4 -5
View File
@@ -27,7 +27,7 @@ export class SmartNginx {
this.options.logger
? (this.logger = this.options.logger)
: (this.logger = new plugins.smartlog.Smartlog({
logContext: null
logContext: {}
}));
}
@@ -122,10 +122,9 @@ export class SmartNginx {
);
// write standard self signed certificate
const selfsignedCert = plugins.selfsigned.generate(
[{ name: 'commonName', value: 'selfsigned.git.zone' }],
{ days: 365 }
);
const selfsignedCert = await plugins.selfsigned.generate([
{ name: 'commonName', value: 'selfsigned.git.zone' },
]);
// deploy hosts
await plugins.fs.directory(paths.nginxHostDirPath).recursive().create();
+4 -4
View File
@@ -5,10 +5,10 @@
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"noImplicitAny": true,
"esModuleInterop": true,
"verbatimModuleSyntax": true
"verbatimModuleSyntax": true,
"types": ["node"]
},
"exclude": [
"dist_*/**/*.d.ts"
]
"exclude": ["dist_*/**/*.d.ts"]
}