diff --git a/package.json b/package.json index a86dae6..f6ce42f 100644 --- a/package.json +++ b/package.json @@ -17,12 +17,12 @@ "@git.zone/tsbundle": "^2.0.8", "@git.zone/tstest": "^1.0.77", "@push.rocks/tapbundle": "^5.0.8", - "@types/node": "^20.11.16" + "@types/node": "^20.11.17" }, "dependencies": { "@apiglobal/typedrequest-interfaces": "^2.0.1", "@push.rocks/smartlog-interfaces": "^3.0.0", - "@tsclass/tsclass": "^4.0.46" + "@tsclass/tsclass": "^4.0.50" }, "browserslist": [ "last 1 chrome versions" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5a5073..4593ee8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ dependencies: specifier: ^3.0.0 version: 3.0.0 '@tsclass/tsclass': - specifier: ^4.0.46 - version: 4.0.46 + specifier: ^4.0.50 + version: 4.0.50 devDependencies: '@git.zone/tsbuild': @@ -24,13 +24,13 @@ devDependencies: version: 2.0.15 '@git.zone/tstest': specifier: ^1.0.77 - version: 1.0.86(@types/node@20.11.16)(sinon@17.0.1) + version: 1.0.86(@types/node@20.11.17)(sinon@17.0.1) '@push.rocks/tapbundle': specifier: ^5.0.8 version: 5.0.15(sinon@17.0.1) '@types/node': - specifier: ^20.11.16 - version: 20.11.16 + specifier: ^20.11.17 + version: 20.11.17 packages: @@ -74,7 +74,7 @@ packages: '@push.rocks/smartstream': 3.0.30 '@push.rocks/smarttime': 4.0.6 '@push.rocks/webstore': 2.0.13 - '@tsclass/tsclass': 4.0.46 + '@tsclass/tsclass': 4.0.50 '@types/express': 4.17.21 body-parser: 1.20.2 cors: 2.8.5 @@ -382,13 +382,13 @@ packages: - supports-color dev: true - /@git.zone/tsrun@1.2.46(@types/node@20.11.16): + /@git.zone/tsrun@1.2.46(@types/node@20.11.17): resolution: {integrity: sha512-8miFVBle9Mnjx+uPGI/P+EuWcIOXWjBAkdjN5IYbdp5Ytt4xQODCLh4JSnC9h56UeU1nUxCAxZeJs2e9TXrivA==} hasBin: true dependencies: '@push.rocks/smartfile': 10.0.41 '@push.rocks/smartshell': 3.0.3 - ts-node: 10.9.2(@types/node@20.11.16)(typescript@5.1.6) + ts-node: 10.9.2(@types/node@20.11.17)(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - '@swc/core' @@ -396,13 +396,13 @@ packages: - '@types/node' dev: true - /@git.zone/tstest@1.0.86(@types/node@20.11.16)(sinon@17.0.1): + /@git.zone/tstest@1.0.86(@types/node@20.11.17)(sinon@17.0.1): resolution: {integrity: sha512-ec95MNeA21L+ob+lvLVCmwPTTC1BY+v/JHLYZ9DOZ9+9buLgx+cJ7VkwGBJCnlWJtqEtJosUrFKTih36iNuT3g==} hasBin: true dependencies: '@api.global/typedserver': 3.0.20 '@git.zone/tsbundle': 2.0.15 - '@git.zone/tsrun': 1.2.46(@types/node@20.11.16) + '@git.zone/tsrun': 1.2.46(@types/node@20.11.17) '@push.rocks/consolecolor': 2.0.1 '@push.rocks/smartbrowser': 2.0.6 '@push.rocks/smartdelay': 3.0.5 @@ -816,7 +816,7 @@ packages: '@push.rocks/smartpromise': 4.0.3 '@push.rocks/smartpuppeteer': 2.0.2 '@push.rocks/smartunique': 3.0.6 - '@tsclass/tsclass': 4.0.46 + '@tsclass/tsclass': 4.0.50 '@types/express': 4.17.21 express: 4.18.2 pdf-merger-js: 3.4.0 @@ -881,7 +881,7 @@ packages: '@push.rocks/smartxml': 1.0.8 '@push.rocks/smartyaml': 2.0.5 '@push.rocks/webrequest': 3.0.34 - '@tsclass/tsclass': 4.0.46 + '@tsclass/tsclass': 4.0.50 dev: true /@push.rocks/smartsocket@2.0.24: @@ -1337,10 +1337,10 @@ packages: type-fest: 2.19.0 dev: true - /@tsclass/tsclass@4.0.46: - resolution: {integrity: sha512-UovPUvlozv1ftJp4KW5tt4MP/LQCNP3lSCinjyIrLkopOymczyzONUGvSAAwOBf1XBE9bO0tI4KtRuXWN9XBXQ==} + /@tsclass/tsclass@4.0.50: + resolution: {integrity: sha512-ICUe4hfebpvbn8JkReGP1m3DCTq6S5FIhLJzbFx9F7tx6dn909fA9YIEHkFeMj2X7fT5aGvAXOZRlT52GsnSUw==} dependencies: - type-fest: 4.10.0 + type-fest: 4.10.2 /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} @@ -1361,7 +1361,7 @@ packages: /@types/accepts@1.3.7: resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/babel__code-frame@7.0.6: @@ -1372,7 +1372,7 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/buffer-json@2.0.3: @@ -1399,21 +1399,21 @@ packages: /@types/clean-css@4.2.11: resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 source-map: 0.6.1 dev: true /@types/co-body@6.1.3: resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 '@types/qs': 6.9.11 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/content-disposition@0.5.8: @@ -1434,13 +1434,13 @@ packages: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/cors@2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/debounce@1.2.4: @@ -1454,7 +1454,7 @@ packages: /@types/express-serve-static-core@4.17.41: resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 '@types/qs': 6.9.11 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -1472,21 +1472,21 @@ packages: /@types/from2@2.3.5: resolution: {integrity: sha512-giavnjf3kNlJnE+HpZA1CQ3UKHxgehzsTuIMGda8pGMbOiLYGVNADEskey44OZcADHm/HOoBany8IV+0x28XFw==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/fs-extra@11.0.4: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/glob@8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/html-minifier@4.0.5: @@ -1536,7 +1536,7 @@ packages: /@types/jsonfile@6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/keygrip@1.0.6: @@ -1559,7 +1559,7 @@ packages: '@types/http-errors': 2.0.4 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/mime-types@2.1.4: @@ -1586,8 +1586,8 @@ packages: resolution: {integrity: sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==} dev: true - /@types/node@20.11.16: - resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} + /@types/node@20.11.17: + resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==} dependencies: undici-types: 5.26.5 dev: true @@ -1620,7 +1620,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/serve-static@1.15.5: @@ -1628,7 +1628,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/shortid@0.0.29: @@ -1659,7 +1659,7 @@ packages: /@types/through2@2.0.41: resolution: {integrity: sha512-ryQ0tidWkb1O1JuYvWKyMLYEtOWDqF5mHerJzKz/gQpoAaJq2l/dsMPBF0B5BNVT34rbARYJ5/tsZwLfUi2kwQ==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/trusted-types@2.0.7: @@ -1691,20 +1691,20 @@ packages: /@types/ws@7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 20.11.16 + '@types/node': 20.11.17 dev: true optional: true @@ -2641,7 +2641,7 @@ packages: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 20.11.16 + '@types/node': 20.11.17 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -5222,7 +5222,7 @@ packages: hasBin: true dev: true - /ts-node@10.9.2(@types/node@20.11.16)(typescript@5.1.6): + /ts-node@10.9.2(@types/node@20.11.17)(typescript@5.1.6): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -5241,7 +5241,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.16 + '@types/node': 20.11.17 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -5277,8 +5277,8 @@ packages: engines: {node: '>=12.20'} dev: true - /type-fest@4.10.0: - resolution: {integrity: sha512-NPaKJsb4wyJ16qc8zBQrWswLKv/YirgBFykvUQ1Iajt2wd+twC8E4hFXdlIXqiMl6kWA0zY8tUJ9ELVAdu5h7w==} + /type-fest@4.10.2: + resolution: {integrity: sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==} engines: {node: '>=16'} /type-is@1.6.18: diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index ab3b2c8..d92763a 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/interfaces', - version: '1.0.27', + version: '1.0.28', description: 'interfaces for working with containers' } diff --git a/ts/data/cloudlyconfig.ts b/ts/data/cloudlyconfig.ts index 149d6d6..97d7e35 100644 --- a/ts/data/cloudlyconfig.ts +++ b/ts/data/cloudlyconfig.ts @@ -2,13 +2,12 @@ import * as plugins from '../plugins.js'; export interface ICloudlyConfig { cfToken?: string; - digitalOceanToken?: string; + hetznerToken?: string; environment?: 'production' | 'integration'; - gitlabUser?: string; - gitlabToken?: string; letsEncryptEmail?: string; letsEncryptPrivateKey?: string; mongoDescriptor?: plugins.tsclass.database.IMongoDescriptor; + s3Descriptor?: plugins.tsclass.storage.IS3Descriptor; publicUrl?: string; publicPort?: string; sslMode?: 'none' | 'letsencrypt' | 'external'; diff --git a/ts/data/cluster.ts b/ts/data/cluster.ts index b70f740..96bc92b 100644 --- a/ts/data/cluster.ts +++ b/ts/data/cluster.ts @@ -1,3 +1,5 @@ +import * as plugins from '../plugins.js'; + import { type IDockerRegistryInfo, type IServiceRessources } from '../data/docker.js'; import type { IServer } from './server.js'; @@ -36,6 +38,8 @@ export interface ICluster { serverAddress: string; serverSecret: string; }; + + sshKeys: plugins.tsclass.network.ISshKey[]; }; } diff --git a/ts/data/server.ts b/ts/data/server.ts index 9f638cf..14305cd 100644 --- a/ts/data/server.ts +++ b/ts/data/server.ts @@ -1,3 +1,5 @@ +import * as plugins from '../plugins.js'; + import { type IDockerRegistryInfo } from './docker.js'; export interface IServerMetrics { @@ -25,11 +27,5 @@ export interface IServer { /** * a list of SSH keys to deploy */ - sshKeys: ISshKey[]; -} - -export interface ISshKey { - keyName: string; - public: string; - private?: string; + sshKeys: plugins.tsclass.network.ISshKey[]; }