diff --git a/changelog.md b/changelog.md index b936b65..866c58e 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,16 @@ # Changelog +## 2025-09-05 - 5.1.0 - feat(cluster) +Add cluster setupMode (manual|hetzner|aws|digitalocean) with conditional Hetzner auto-provisioning; UI and dashboard improvements; dependency upgrades + +- Introduce optional setupMode on cluster configs and requests (ICluster.data.setupMode, createCluster request) to allow 'manual' | 'hetzner' | 'aws' | 'digitalocean'. +- ClusterManager: default setupMode to 'manual' when creating clusters and only trigger serverManager.ensureServerInfrastructure() for 'hetzner' clusters. +- ServerManager: skip provisioning for clusters not configured with setupMode 'hetzner' and log skipped clusters. +- Web UI: add a 'Setup Mode' dropdown when creating a cluster so users can choose auto-provisioning provider; ensure the add-cluster action passes setupMode. +- Web UI: dashboard enhancements — add icons to view tabs and replace cluster overview with a stats grid (including total clusters, total servers, images, services, deployments, secret groups/bundles, DNS, DBs, backups, mails, s3). The overview now computes total servers across clusters. +- Package dependency bumps (devDependencies and dependencies) to keep libs up-to-date (examples: @git.zone/tsbuild, @git.zone/tstest, @api.global/typedserver, @apiclient.xyz/docker, @design.estate/dees-catalog, @push.rocks/smartlog, @push.rocks/smartrequest, @push.rocks/taskbuffer, etc.). +- Add .claude/settings.local.json with local Claude permissions (editor/automation config). + ## 2025-08-18 - 5.0.6 - fix(connector.letsencrypt) Improve Let's Encrypt integration and certificate handling; fix coreflow certificate response; add local assistant permissions config diff --git a/package.json b/package.json index 253894b..c24d9da 100644 --- a/package.json +++ b/package.json @@ -22,24 +22,24 @@ "docs": "tsdoc aidoc" }, "devDependencies": { - "@git.zone/tsbuild": "^2.6.7", + "@git.zone/tsbuild": "^2.6.8", "@git.zone/tsbundle": "^2.5.1", "@git.zone/tsdoc": "^1.5.1", "@git.zone/tspublish": "^1.10.3", - "@git.zone/tstest": "^2.3.5", + "@git.zone/tstest": "^2.3.6", "@git.zone/tswatch": "^2.2.1", "@types/node": "^22.0.0" }, "dependencies": { "@api.global/typedrequest": "3.1.10", "@api.global/typedrequest-interfaces": "^3.0.19", - "@api.global/typedserver": "^3.0.77", + "@api.global/typedserver": "^3.0.79", "@api.global/typedsocket": "^3.0.1", "@apiclient.xyz/cloudflare": "^6.4.1", - "@apiclient.xyz/docker": "^1.3.0", + "@apiclient.xyz/docker": "^1.3.5", "@apiclient.xyz/hetznercloud": "^1.2.0", "@apiclient.xyz/slack": "^3.0.9", - "@design.estate/dees-catalog": "^1.10.10", + "@design.estate/dees-catalog": "^1.10.12", "@design.estate/dees-domtools": "^2.3.3", "@design.estate/dees-element": "^2.1.2", "@git.zone/tsrun": "^1.3.3", @@ -59,19 +59,19 @@ "@push.rocks/smartguard": "^3.1.0", "@push.rocks/smartjson": "^5.0.19", "@push.rocks/smartjwt": "^2.2.1", - "@push.rocks/smartlog": "^3.1.8", + "@push.rocks/smartlog": "^3.1.9", "@push.rocks/smartlog-destination-clickhouse": "^1.0.13", "@push.rocks/smartlog-interfaces": "^3.0.2", "@push.rocks/smartpath": "^6.0.0", "@push.rocks/smartpromise": "^4.2.3", - "@push.rocks/smartrequest": "^4.2.2", + "@push.rocks/smartrequest": "^4.3.1", "@push.rocks/smartrx": "^3.0.10", "@push.rocks/smartssh": "^2.0.1", "@push.rocks/smartstate": "^2.0.26", "@push.rocks/smartstream": "^3.2.5", "@push.rocks/smartstring": "^4.0.15", "@push.rocks/smartunique": "^3.0.9", - "@push.rocks/taskbuffer": "^3.0.2", + "@push.rocks/taskbuffer": "^3.1.10", "@push.rocks/webjwt": "^1.0.9", "@tsclass/tsclass": "^9.2.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3022f2..e0982da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^3.0.19 version: 3.0.19 '@api.global/typedserver': - specifier: ^3.0.77 - version: 3.0.77 + specifier: ^3.0.79 + version: 3.0.79 '@api.global/typedsocket': specifier: ^3.0.1 version: 3.0.1 @@ -24,8 +24,8 @@ importers: specifier: ^6.4.1 version: 6.4.1 '@apiclient.xyz/docker': - specifier: ^1.3.0 - version: 1.3.0 + specifier: ^1.3.5 + version: 1.3.5 '@apiclient.xyz/hetznercloud': specifier: ^1.2.0 version: 1.2.0 @@ -33,8 +33,8 @@ importers: specifier: ^3.0.9 version: 3.0.9 '@design.estate/dees-catalog': - specifier: ^1.10.10 - version: 1.10.10(@tiptap/pm@2.26.1) + specifier: ^1.10.12 + version: 1.10.12(@tiptap/pm@2.26.1) '@design.estate/dees-domtools': specifier: ^2.3.3 version: 2.3.3 @@ -93,8 +93,8 @@ importers: specifier: ^2.2.1 version: 2.2.1 '@push.rocks/smartlog': - specifier: ^3.1.8 - version: 3.1.8 + specifier: ^3.1.9 + version: 3.1.9 '@push.rocks/smartlog-destination-clickhouse': specifier: ^1.0.13 version: 1.0.13 @@ -108,8 +108,8 @@ importers: specifier: ^4.2.3 version: 4.2.3 '@push.rocks/smartrequest': - specifier: ^4.2.2 - version: 4.2.2 + specifier: ^4.3.1 + version: 4.3.1 '@push.rocks/smartrx': specifier: ^3.0.10 version: 3.0.10 @@ -129,8 +129,8 @@ importers: specifier: ^3.0.9 version: 3.0.9 '@push.rocks/taskbuffer': - specifier: ^3.0.2 - version: 3.1.7 + specifier: ^3.1.10 + version: 3.1.10 '@push.rocks/webjwt': specifier: ^1.0.9 version: 1.0.9 @@ -139,8 +139,8 @@ importers: version: 9.2.0 devDependencies: '@git.zone/tsbuild': - specifier: ^2.6.7 - version: 2.6.7 + specifier: ^2.6.8 + version: 2.6.8 '@git.zone/tsbundle': specifier: ^2.5.1 version: 2.5.1 @@ -151,8 +151,8 @@ importers: specifier: ^1.10.3 version: 1.10.3 '@git.zone/tstest': - specifier: ^2.3.5 - version: 2.3.5(@aws-sdk/credential-providers@3.796.0)(socks@2.8.7)(typescript@5.9.2) + specifier: ^2.3.6 + version: 2.3.6(@aws-sdk/credential-providers@3.796.0)(socks@2.8.7)(typescript@5.9.2) '@git.zone/tswatch': specifier: ^2.2.1 version: 2.2.1 @@ -175,8 +175,8 @@ packages: '@api.global/typedrequest@3.1.10': resolution: {integrity: sha512-EiCp44XVcMjBvEs4oM1nMUaeY4ySU0Pzt3+mDwVG5DNP6EV87Nwancbr2jKScvaFNel9eeDgGtgEnFBKjOnApA==} - '@api.global/typedserver@3.0.77': - resolution: {integrity: sha512-ikFR2dQcH5ErrUCAXxw6YDyfPtMyaB1sALtkA0QBCKVttoidMb8C/quQhCfzfhJxaVFGwBSCvlgQhUDR2N/zUQ==} + '@api.global/typedserver@3.0.79': + resolution: {integrity: sha512-NIZMQOeqEpqPT3qeA0hqTyLgZw5zO3bvRHkiDfFOrWMtnfvOLWZwmqJAcgpSSHHiwzuw47NNPvBZdJGXKnH+Zg==} '@api.global/typedsocket@3.0.1': resolution: {integrity: sha512-xojiAVNXtHoxkpBo8U2HHJG8FrVXXuLvDNndSHXwx4C9VslUwDn5zSCI+PdBl8iAg+ZuBmKjqkpZZ9sL6DC5yQ==} @@ -184,8 +184,8 @@ packages: '@apiclient.xyz/cloudflare@6.4.1': resolution: {integrity: sha512-RYFphnbunjK+Imq/3ynIQpAvIGBJ38kqSZ2nrpTm26zsBIxW7S6xEe3zhXfVMtUIgC99OL3Xr/SGXl3CNBwCug==} - '@apiclient.xyz/docker@1.3.0': - resolution: {integrity: sha512-J0hMPFe7B3sQxgA2Tx4oKwD9PO0eBsDks21n8AoTg3DcdsloXN6KMqHO4f75rsRsslWHdKzAt7UTxBllYwQZkQ==} + '@apiclient.xyz/docker@1.3.5': + resolution: {integrity: sha512-H0o1xdn2Ub9iZ6h1esqhXr+TI2acIgG7v5uTIU3HbPWs4DreCGIn2H74NdbM4YrLlCxV+3keOtkePM336ptfIA==} '@apiclient.xyz/hetznercloud@1.2.0': resolution: {integrity: sha512-j/3oVAZiMK2CkcdfgspHfviP9oBIcmvGOgO37AdOhvYC7IVsArBRVCysSKwAvWhIeiKhFRcKGylENM7jGNqLyQ==} @@ -463,8 +463,8 @@ packages: '@borewit/text-codec@0.1.1': resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} - '@cloudflare/workers-types@4.20250816.0': - resolution: {integrity: sha512-R9ADrrINo1CqTwCddH39Tjlsc3grim6KeO7l8yddNbldH3uTkaAXYCzO0WiyLG7irLzLDrZVc4tLhN6BO3tdFw==} + '@cloudflare/workers-types@4.20250905.0': + resolution: {integrity: sha512-K/noYRtyz+7oZCiTml2wZxpdq7D2kB8QP6DAOq4d1CYYLFZCsvKdEZdVVC3pj2MCmAdG7wDzhf2h7POA5Uw5ig==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -476,8 +476,8 @@ packages: '@dabh/diagnostics@2.0.3': resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} - '@design.estate/dees-catalog@1.10.10': - resolution: {integrity: sha512-z9svCMZGes2WAM13jpbEXB6fG5/qVC2H5w0M9HWURLAO/fgicJodnP9XdvEl5H5yts2EnlNlmsgZi6MCHHgZSA==} + '@design.estate/dees-catalog@1.10.12': + resolution: {integrity: sha512-KoP+ftLsMs2Nyqid25NvhIXc1npeju17a2+B/eYnkaVjrQxiyrLKprzH2457in7qtRY+RZaU3Z/Ux4xwhSDOJw==} '@design.estate/dees-comms@1.0.27': resolution: {integrity: sha512-GvzTUwkV442LD60T08iqSoqvhA02Mou5lFvvqBPc4yBUiU7cZISqBx+76xvMgMIEI9Dx9JfTl4/2nW8MoVAanw==} @@ -800,31 +800,31 @@ packages: cpu: [x64] os: [win32] - '@fortawesome/fontawesome-common-types@6.7.2': - resolution: {integrity: sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==} + '@fortawesome/fontawesome-common-types@7.0.1': + resolution: {integrity: sha512-0VpNtO5cNe1/HQWMkl4OdncYK/mv9hnBte0Ew0n6DMzmo3Q3WzDFABHm6LeNTipt5zAyhQ6Ugjiu8aLaEjh1gg==} engines: {node: '>=6'} - '@fortawesome/fontawesome-svg-core@6.7.2': - resolution: {integrity: sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==} + '@fortawesome/fontawesome-svg-core@7.0.1': + resolution: {integrity: sha512-x0cR55ILVqFpUioSMf6ebpRCMXMcheGN743P05W2RB5uCNpJUqWIqW66Lap8PfL/lngvjTbZj0BNSUweIr/fHQ==} engines: {node: '>=6'} - '@fortawesome/free-brands-svg-icons@6.7.2': - resolution: {integrity: sha512-zu0evbcRTgjKfrr77/2XX+bU+kuGfjm0LbajJHVIgBWNIDzrhpRxiCPNT8DW5AdmSsq7Mcf9D1bH0aSeSUSM+Q==} + '@fortawesome/free-brands-svg-icons@7.0.1': + resolution: {integrity: sha512-6xPmn5SrND/GM0+W33E77x05+aDn6RpR02eWd8eLdN0IxY0vXa5yU/ugaAKloOVxiG9w2330TSRsbJYL6c57Ow==} engines: {node: '>=6'} - '@fortawesome/free-regular-svg-icons@6.7.2': - resolution: {integrity: sha512-7Z/ur0gvCMW8G93dXIQOkQqHo2M5HLhYrRVC0//fakJXxcF1VmMPsxnG6Ee8qEylA8b8Q3peQXWMNZ62lYF28g==} + '@fortawesome/free-regular-svg-icons@7.0.1': + resolution: {integrity: sha512-4V9fHbHjcx9Qu4O99AM5B4zuEDfB4zajk1I77hEzOxPN00f8g3484Aeq6WpfFcmookvjLE3Pr71Dhf/lqw7tbA==} engines: {node: '>=6'} - '@fortawesome/free-solid-svg-icons@6.7.2': - resolution: {integrity: sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==} + '@fortawesome/free-solid-svg-icons@7.0.1': + resolution: {integrity: sha512-esKuSrl1WMOTMDLNt38i16VfLe/gRZt2ZAJ3Yw7slfs7sj583MKqNFqO57zmhknk1Sya6f9Wys89aCzIJkcqlg==} engines: {node: '>=6'} '@gerrit0/mini-shiki@3.9.2': resolution: {integrity: sha512-Tvsj+AOO4Z8xLRJK900WkyfxHsZQu+Zm1//oT1w443PO6RiYMoq/4NGOhaNuZoUMYsjKIAPVQ6eOFMddj6yphQ==} - '@git.zone/tsbuild@2.6.7': - resolution: {integrity: sha512-nLRYk1V4gxdEAp5mbLYNdr/in9mFA26L4MPKBKqzASID4lXSYya5sDbLRdDTv+mD0ZRBgdn6e+WMylA0SU4hSw==} + '@git.zone/tsbuild@2.6.8': + resolution: {integrity: sha512-g1z7+MxiYD0xMfuqn8NSWitbfK1OaF0Qolmw7WOmUsHmNF60T1AR02Lo4DtNmnjSpchA+xzDFAQzL1xTcQA39w==} hasBin: true '@git.zone/tsbundle@2.5.1': @@ -843,8 +843,8 @@ packages: resolution: {integrity: sha512-DDzWunkxXLtXJTxBf4EioXLwhuqdA2VzdTmOzWrw4Z4Qnms/YM67q36yajwNohAajPYyRz5DayU0ikrceFXyVw==} hasBin: true - '@git.zone/tstest@2.3.5': - resolution: {integrity: sha512-XDzUqE2M9wmq3sUEDi/+SEg1h8N53I4ejyo9MtK5XCs8LgKtr8aQ/0/3E07uvJY6pwAvtW9iBm1LVTFjpKuAAg==} + '@git.zone/tstest@2.3.6': + resolution: {integrity: sha512-2dcVM1WvQj9FoLPRWbLgBCWnDK0auI2c2vJxUzrLe0bi/ci50yrXxyKb2FIToQ+kOVe234Yb6jhNyp/d/zyHMQ==} hasBin: true '@git.zone/tswatch@2.2.1': @@ -1197,68 +1197,68 @@ packages: '@mongodb-js/saslprep@1.3.0': resolution: {integrity: sha512-zlayKCsIjYb7/IdfqxorK5+xUMyi4vOKcFy10wKJYc63NSdKI8mNME+uJqfatkPmOSMMUiojrL58IePKBm3gvQ==} - '@napi-rs/canvas-android-arm64@0.1.77': - resolution: {integrity: sha512-jC8YX0rbAnu9YrLK1A52KM2HX9EDjrJSCLVuBf9Dsov4IC6GgwMLS2pwL9GFLJnSZBFgdwnA84efBehHT9eshA==} + '@napi-rs/canvas-android-arm64@0.1.78': + resolution: {integrity: sha512-N1ikxztjrRmh8xxlG5kYm1RuNr8ZW1EINEDQsLhhuy7t0pWI/e7SH91uFVLZKCMDyjel1tyWV93b5fdCAi7ggw==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@napi-rs/canvas-darwin-arm64@0.1.77': - resolution: {integrity: sha512-VFaCaCgAV0+hPwXajDIiHaaGx4fVCuUVYp/CxCGXmTGz699ngIEBx3Sa2oDp0uk3X+6RCRLueb7vD44BKBiPIg==} + '@napi-rs/canvas-darwin-arm64@0.1.78': + resolution: {integrity: sha512-FA3aCU3G5yGc74BSmnLJTObnZRV+HW+JBTrsU+0WVVaNyVKlb5nMvYAQuieQlRVemsAA2ek2c6nYtHh6u6bwFw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/canvas-darwin-x64@0.1.77': - resolution: {integrity: sha512-uD2NSkf6I4S3o0POJDwweK85FE4rfLNA2N714MgiEEMMw5AmupfSJGgpYzcyEXtPzdaca6rBfKcqNvzR1+EyLQ==} + '@napi-rs/canvas-darwin-x64@0.1.78': + resolution: {integrity: sha512-xVij69o9t/frixCDEoyWoVDKgE3ksLGdmE2nvBWVGmoLu94MWUlv2y4Qzf5oozBmydG5Dcm4pRHFBM7YWa1i6g==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/canvas-linux-arm-gnueabihf@0.1.77': - resolution: {integrity: sha512-03GxMMZGhHRQxiA4gyoKT6iQSz8xnA6T9PAfg/WNJnbkVMFZG782DwUJUb39QIZ1uE1euMCPnDgWAJ092MmgJQ==} + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.78': + resolution: {integrity: sha512-aSEXrLcIpBtXpOSnLhTg4jPsjJEnK7Je9KqUdAWjc7T8O4iYlxWxrXFIF8rV8J79h5jNdScgZpAUWYnEcutR3g==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@napi-rs/canvas-linux-arm64-gnu@0.1.77': - resolution: {integrity: sha512-ZO+d2gRU9JU1Bb7SgJcJ1k9wtRMCpSWjJAJ+2phhu0Lw5As8jYXXXmLKmMTGs1bOya2dBMYDLzwp7KS/S/+aCA==} + '@napi-rs/canvas-linux-arm64-gnu@0.1.78': + resolution: {integrity: sha512-dlEPRX1hLGKaY3UtGa1dtkA1uGgFITn2mDnfI6YsLlYyLJQNqHx87D1YTACI4zFCUuLr/EzQDzuX+vnp9YveVg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/canvas-linux-arm64-musl@0.1.77': - resolution: {integrity: sha512-S1KtnP1+nWs2RApzNkdNf8X4trTLrHaY7FivV61ZRaL8NvuGOkSkKa+gWN2iedIGFEDz6gecpl/JAUSewwFXYg==} + '@napi-rs/canvas-linux-arm64-musl@0.1.78': + resolution: {integrity: sha512-TsCfjOPZtm5Q/NO1EZHR5pwDPSPjPEttvnv44GL32Zn1uvudssjTLbvaG1jHq81Qxm16GTXEiYLmx4jOLZQYlg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/canvas-linux-riscv64-gnu@0.1.77': - resolution: {integrity: sha512-A4YIKFYUwDtrSzCtdCAO5DYmRqlhCVKHdpq0+dBGPnIEhOQDFkPBTfoTAjO3pjlEnorlfKmNMOH21sKQg2esGA==} + '@napi-rs/canvas-linux-riscv64-gnu@0.1.78': + resolution: {integrity: sha512-+cpTTb0GDshEow/5Fy8TpNyzaPsYb3clQIjgWRmzRcuteLU+CHEU/vpYvAcSo7JxHYPJd8fjSr+qqh+nI5AtmA==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] - '@napi-rs/canvas-linux-x64-gnu@0.1.77': - resolution: {integrity: sha512-Lt6Sef5l0+5O1cSZ8ysO0JI+x+rSrqZyXs5f7+kVkCAOVq8X5WTcDVbvWvEs2aRhrWTp5y25Jf2Bn+3IcNHOuQ==} + '@napi-rs/canvas-linux-x64-gnu@0.1.78': + resolution: {integrity: sha512-wxRcvKfvYBgtrO0Uy8OmwvjlnTcHpY45LLwkwVNIWHPqHAsyoTyG/JBSfJ0p5tWRzMOPDCDqdhpIO4LOgXjeyg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/canvas-linux-x64-musl@0.1.77': - resolution: {integrity: sha512-NiNFvC+D+omVeJ3IjYlIbyt/igONSABVe9z0ZZph29epHgZYu4eHwV9osfpRt1BGGOAM8LkFrHk4LBdn2EDymA==} + '@napi-rs/canvas-linux-x64-musl@0.1.78': + resolution: {integrity: sha512-vQFOGwC9QDP0kXlhb2LU1QRw/humXgcbVp8mXlyBqzc/a0eijlLF9wzyarHC1EywpymtS63TAj8PHZnhTYN6hg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/canvas-win32-x64-msvc@0.1.77': - resolution: {integrity: sha512-fP6l0hZiWykyjvpZTS3sI46iib8QEflbPakNoUijtwyxRuOPTTBfzAWZUz5z2vKpJJ/8r305wnZeZ8lhsBHY5A==} + '@napi-rs/canvas-win32-x64-msvc@0.1.78': + resolution: {integrity: sha512-/eKlTZBtGUgpRKalzOzRr6h7KVSuziESWXgBcBnXggZmimwIJWPJlEcbrx5Tcwj8rPuZiANXQOG9pPgy9Q4LTQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/canvas@0.1.77': - resolution: {integrity: sha512-N9w2DkEKE1AXGp3q55GBOP6BEoFrqChDiFqJtKViTpQCWNOSVuMz7LkoGehbnpxtidppbsC36P0kCZNqJKs29w==} + '@napi-rs/canvas@0.1.78': + resolution: {integrity: sha512-YaBHJvT+T1DoP16puvWM6w46Lq3VhwKIJ8th5m1iEJyGh7mibk5dT7flBvMQ1EH1LYmMzXJ+OUhu+8wQ9I6u7g==} engines: {node: '>= 10'} '@napi-rs/wasm-runtime@1.0.3': @@ -1389,9 +1389,6 @@ packages: '@push.rocks/smartai@0.5.11': resolution: {integrity: sha512-zbnia/1t1ffM2L2i206V7nBCvAF4/kfq7x3n7m7BEmNoyt9Kp6uIEilPFXJ22gGhK//HLypsPl6P3YF0GJ6H9w==} - '@push.rocks/smartarchive@4.0.39': - resolution: {integrity: sha512-e8xOOa7h4WlZMhjEd7IjAL/wgLBS3yJ6+Q7eZognHg1cNE/TOZ1kYrAN9eo8xmTtd+37hY9NXayk2JwXdXEvyA==} - '@push.rocks/smartarchive@4.2.2': resolution: {integrity: sha512-6EpqbKU32D6Gcqsc9+Tn1dOCU5HoTlrqqs/7IdUr9Tirp9Ngtptkapca1Fw/D0kVJ7SSw3kG/miAYnuPMZLEoA==} @@ -1413,6 +1410,9 @@ packages: '@push.rocks/smartcache@1.0.16': resolution: {integrity: sha512-UAXf74eDuH4/RebJhydIbHlYVR3ACYJjniEY/9ZePblu7bIPgwFZqLBE9g1lcKVogbH9yY62dk3rSpgBzenyfQ==} + '@push.rocks/smartcache@1.0.18': + resolution: {integrity: sha512-3+cmLu9chbnmi4yD4kjlFP/Tn4NReaZIoicEcGTtwbcokTrSDMs3YPdJzIpDZkAs83PW7OcVSHa3Ak5KU5OWzA==} + '@push.rocks/smartchok@1.1.1': resolution: {integrity: sha512-WmNigGmn1muBJMANVuJb4F8x3TzgYrnn6YZm6ixTsG+0WFbYevivEwp+J4S7npobLHsR7ynf+Ky8LxRYmsL50A==} @@ -1440,6 +1440,9 @@ packages: '@push.rocks/smartenv@5.0.13': resolution: {integrity: sha512-ACXmUcHZHl2CF2jnVuRw9saRRrZvJblCRs2d+K5aLR1DfkYFX3eA21kcMlKeLisI3aGNbIj9vz/rowN5qkRkfA==} + '@push.rocks/smarterror@2.0.1': + resolution: {integrity: sha512-iCcH1D8tlDJgMFsaJ6lhdOTKhbU0KoprNv9MRP9o7691QOx4JEDXiHtr/lNtxVo8BUtdb9CF6kazaknO9KuORA==} + '@push.rocks/smartexit@1.0.23': resolution: {integrity: sha512-WmwKYcwbHBByoABhHHB+PAjr5475AtD/xBh1mDcqPrFsOOUOZq3BBUdpq25wI3ccu/SZB5IwaimiVzadls6HkA==} @@ -1497,8 +1500,8 @@ packages: '@push.rocks/smartlog-interfaces@3.0.2': resolution: {integrity: sha512-8hGRTJehbsFSJxLhCQkA018mZtXVPxPTblbg9VaE/EqISRzUw+eosJ2EJV7M4Qu0eiTJZjnWnNLn8CkD77ziWw==} - '@push.rocks/smartlog@3.1.8': - resolution: {integrity: sha512-j4H5x4/hEmiIO7q+/LKyX3N+AhRIOj1jDE4TvZDvujZkbT/9wEWfpO1bqeMe/EQbg1eOQMlAuyrcLXUcDICpQg==} + '@push.rocks/smartlog@3.1.9': + resolution: {integrity: sha512-Lix1pazMhvnSUyj4Bt+pO+SvImw3l0dm5A0LTTx/QaSlWP8bpAQNQ+8z7wfQy3pIKFHkApxvGM6WprgCCS2itQ==} '@push.rocks/smartmanifest@2.0.2': resolution: {integrity: sha512-QGc5C9vunjfUbYsPGz5bynV/mVmPHkrQDkWp8ZO8VJtK1GZe+njgbrNyxn2SUHR0IhSAbSXl1j4JvBqYf5eTVg==} @@ -1518,9 +1521,6 @@ packages: '@push.rocks/smartmongo@2.0.12': resolution: {integrity: sha512-NglYiO14BikxnlvW6JF18FtopBtaWQEGAtPxHmmSCbyhU8Mi0aEFO7VgCasE9Kguba/wcR597qhcDEdcpBg1eQ==} - '@push.rocks/smartnetwork@3.0.2': - resolution: {integrity: sha512-s6CNGzQ1n/d/6cOKXbxeW6/tO//dr1woLqI01g7XhqTriw0nsm2G2kWaZh2J0VOguGNWBgQVCIpR0LjdRNWb3g==} - '@push.rocks/smartnetwork@4.1.2': resolution: {integrity: sha512-TjucG72ooHgzAUpNu2LAv4iFoettmZq2aEWhhzIa7AKcOvt4yxsk3Vl73guhKRohTfhdRauPcH5OHISLUHJbYA==} @@ -1560,8 +1560,8 @@ packages: '@push.rocks/smartrequest@2.1.0': resolution: {integrity: sha512-3eHLTRInHA+u+W98TqJwgTES7rRimBAsJC4JxVNQC3UUezmblAhM5/TIQsEBQTsbjAY8SeQKy6NHzW6iTiaD8w==} - '@push.rocks/smartrequest@4.2.2': - resolution: {integrity: sha512-OMtSyxvuOw04nRR/97yAF3XLe42QDyuwStQMo2bXrVvXgcriNyn0JFavl0IL5hY6Gb+dyCWgOAUwX7cVZ4DzZg==} + '@push.rocks/smartrequest@4.3.1': + resolution: {integrity: sha512-H5FQSfFEbSJCHpE2A+SasQQcxM5FlxhHIUEzhUsSLjtlCTEu9T7Xb1WzVLFYvdWfyP5VIrg+XM4AMOols8cG+Q==} '@push.rocks/smartrouter@1.3.3': resolution: {integrity: sha512-1+xZEnWlhzqLWAaJ1zFNhQ0zgbfCWQl1DBT72LygLxTs+P0K8AwJKgqo/IX6CT55kGCFnPAZIYSbVJlGsgrB0w==} @@ -1629,8 +1629,8 @@ packages: '@push.rocks/smartyaml@2.0.5': resolution: {integrity: sha512-tBcf+HaOIfeEsTMwgUZDtZERCxXQyRsWO8Ar5DjBdiSRchbhVGZQEBzXswMS0W5ZoRenjgPK+4tPW3JQGRTfbg==} - '@push.rocks/taskbuffer@3.1.7': - resolution: {integrity: sha512-QktGVJPucqQmW/QNGnscf4FAigT1H7JWKFGFdRuDEaOHKFh9qN+PXG3QY7DtZ4jfXdGLxPN4yAufDuPSAJYFnw==} + '@push.rocks/taskbuffer@3.1.10': + resolution: {integrity: sha512-jT+FxRSk0+IP17q9LD1/Ks8GJBn5TZWgLtfnKRHW/LAZ1bHX/2ARZvAV8fm1T4WMU5s7PyId+y4fkoohG/5Nkg==} '@push.rocks/webjwt@1.0.9': resolution: {integrity: sha512-IhWAv0hxfXbLbmQHHOGr96Oe3H1kB0OTtDofM8N+9qhJeKxTHfF2pUrdpck6btAQQbaBY2D7xtHvumrIXU5HIg==} @@ -1719,10 +1719,6 @@ packages: resolution: {integrity: sha512-t2lXXGMpKnPlwubIcYGD6cGi2CUJxJ3t2yftVt8tHfjX68jELA5sJhFMtyD3AeFZVxePFZOCiHwWEbWkSDNnmw==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpath - '@pushrocks/smartping@1.0.8': - resolution: {integrity: sha512-VM2gfS1sTuycj/jHyDa0lDntkPe7/JT0b2kGsy265RkichAJZkoEp3fboRJH/WAdzM8T4Du64JYgZkc8v2HHQg==} - deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartping - '@pushrocks/smartpromise@3.1.10': resolution: {integrity: sha512-VeTurbZ1+ZMxBDJk1Y1LV8SN9xLI+oDXKVeCFw41FAGEKOUEqordqFpi6t+7Vhe/TXUZzCVpZ5bXxAxrGf8yTQ==} deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpromise @@ -2474,9 +2470,6 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/default-gateway@3.0.1': - resolution: {integrity: sha512-tpu0hp+AOIzwdAHyZPzLE5pCf9uT0pb+xZ76T4S7MrY2YTVq918Q7Q2VQ3KCVQqYxM7nxuCK/SL3X97jBEIeKQ==} - '@types/default-gateway@7.2.2': resolution: {integrity: sha512-35C93fYQlnLKLASkMPoxRvok4fENwB3By9clRLd2I/08n/XRl0pCdf7EB17K5oMMwZu8NBYA8i66jH5r/LYBKA==} @@ -2614,9 +2607,6 @@ packages: '@types/symbol-tree@3.2.5': resolution: {integrity: sha512-zXnnyENt1TYQcS21MkPaJCVjfcPq7p7yc5mo5JACuumXp6sly5jnlS0IokHd+xmmuCbx6V7JqkMBpswR+nZAcw==} - '@types/tar-stream@3.1.3': - resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==} - '@types/tar-stream@3.1.4': resolution: {integrity: sha512-921gW0+g29mCJX0fRvqeHzBlE/XclDaAG0Ousy1LCghsOhvaKacDeRGEVzQP9IPfKn8Vysy7FEXAIxycpc/CMg==} @@ -2699,10 +2689,6 @@ packages: resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} - aggregate-error@4.0.1: - resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} - engines: {node: '>=12'} - ansi-256-colors@1.1.0: resolution: {integrity: sha1-kQ3lDvzHwJ49gvL4er1rcAwYgYo=} engines: {node: '>=0.10.0'} @@ -2738,8 +2724,8 @@ packages: any-base@1.1.0: resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} - apexcharts@4.7.0: - resolution: {integrity: sha512-iZSrrBGvVlL+nt2B1NpqfDuBZ9jX61X9I2+XV0hlYXHtTwhwLTHDKGXjNXAgFBDLuvSYCB/rq2nPWVPRv2DrGA==} + apexcharts@5.3.4: + resolution: {integrity: sha512-N0gNh8uLu/BN8N+BCphNK+gZAoSoUtDDn1jFGB+3+EMcv8s6vajuP3W0g4dMLTRp6chFkjMmQK3uD8pz4ISmLA==} argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -2972,10 +2958,6 @@ packages: resolution: {integrity: sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=} engines: {node: '>=4'} - clean-stack@4.2.0: - resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} - engines: {node: '>=12'} - cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} @@ -3424,8 +3406,8 @@ packages: resolution: {integrity: sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==} engines: {node: '>=18'} - fake-indexeddb@6.1.0: - resolution: {integrity: sha512-gOzajWIhEug/CQHUIxigKT9Zilh5/I6WvUBez6/UdUtT/YVEHM9r572Os8wfvhp7TkmgBtRNdqSM7YoCXWMzZg==} + fake-indexeddb@6.2.2: + resolution: {integrity: sha512-SGbf7fzjeHz3+12NO1dYigcYn4ivviaeULV5yY5rdGihBvvgwMds4r4UBbNIUMwkze57KTDm32rq3j1Az8mzEw==} engines: {node: '>=18'} fast-deep-equal@3.1.3: @@ -3779,6 +3761,10 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3793,10 +3779,6 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - inflight@1.0.6: resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} @@ -3849,10 +3831,6 @@ packages: resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} - is-ip@4.0.0: - resolution: {integrity: sha512-4B4XA2HEIm/PY+OSpeMBXr8pGWBYbXuHgjMAqrwbLO3CPTCAd9ArEJzBUKGZtk9viY6+aSfadGnWyjY3ydYZkw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-ip@5.0.1: resolution: {integrity: sha512-FCsGHdlrOnZQcp0+XT5a+pYowf33itBalCl+7ovNXC/7o5BhIpG14M3OrpPPdBSIQJCm+0M5+9mO7S9VVTTCFw==} engines: {node: '>=14.16'} @@ -4135,8 +4113,8 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - lucide@0.525.0: - resolution: {integrity: sha512-sfehWlaE/7NVkcEQ4T9JD3eID8RNMIGJBBUq9wF3UFiJIrcMKRbU3g1KGfDk4svcW7yw8BtDLXaXo02scDtUYQ==} + lucide@0.542.0: + resolution: {integrity: sha512-+EtDSHjqg/nONgCfnjHCNd84OzbDjxR8ShnOf+oImlU+A8gqlptZ6pGrMCnhEDw8pVNQv3zu/L0eDvMzcc7nWA==} lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} @@ -4697,6 +4675,9 @@ packages: resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} engines: {node: '>=16'} + path-to-regexp@8.3.0: + resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + pdf-lib@1.17.1: resolution: {integrity: sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==} @@ -4824,8 +4805,8 @@ packages: prosemirror-state@1.4.3: resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} - prosemirror-tables@1.7.1: - resolution: {integrity: sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==} + prosemirror-tables@1.8.1: + resolution: {integrity: sha512-DAgDoUYHCcc6tOGpLVPSU1k84kCUWTWnfWX3UDy2Delv4ryH0KqTD6RBI6k4yi9j9I8gl3j8MkPpRD/vWPZbug==} prosemirror-trailing-node@3.0.0: resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==} @@ -4854,10 +4835,6 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - public-ip@6.0.2: - resolution: {integrity: sha512-+6bkjnf0yQ4+tZV0zJv1017DiIF7y6R4yg17Mrhhkc25L7dtQtXWHgSCrz9BbLL4OeTFbPK4EALXqJUrwCIWXw==} - engines: {node: '>=14.16'} - public-ip@7.0.1: resolution: {integrity: sha512-DdNcqcIbI0wEeCBcqX+bmZpUCvrDMJHXE553zgyG1MZ8S1a/iCCxmK9iTjjql+SpHSv4cZkmRv5/zGYW93AlCw==} engines: {node: '>=18'} @@ -4915,9 +4892,9 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - raw-body@3.0.0: - resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} - engines: {node: '>= 0.8'} + raw-body@3.0.1: + resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==} + engines: {node: '>= 0.10'} rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} @@ -5285,12 +5262,6 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - systeminformation@5.24.3: - resolution: {integrity: sha512-f7uvLgsQIj9/gNcbNZWgw27sNJO5tQvi2tCo4/eVlynxS5slaa7EAN2vSD5jh0YljyjE8qQZ3qtAr7EkDCRyMw==} - engines: {node: '>=8.0.0'} - os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] - hasBin: true - systeminformation@5.27.7: resolution: {integrity: sha512-saaqOoVEEFaux4v0K8Q7caiauRwjXC4XbD2eH60dxHXbpKxQ8kH9Rf7Jh+nryKpOUSEFxtCdBlSUx0/lO6rwRg==} engines: {node: '>=8.0.0'} @@ -5731,12 +5702,12 @@ snapshots: '@push.rocks/webrequest': 3.0.37 '@push.rocks/webstream': 1.0.10 - '@api.global/typedserver@3.0.77': + '@api.global/typedserver@3.0.79': dependencies: '@api.global/typedrequest': 3.1.10 '@api.global/typedrequest-interfaces': 3.0.19 '@api.global/typedsocket': 3.0.1 - '@cloudflare/workers-types': 4.20250816.0 + '@cloudflare/workers-types': 4.20250905.0 '@design.estate/dees-comms': 1.0.27 '@push.rocks/lik': 6.2.2 '@push.rocks/smartchok': 1.1.1 @@ -5745,7 +5716,7 @@ snapshots: '@push.rocks/smartfeed': 1.0.11 '@push.rocks/smartfile': 11.2.7 '@push.rocks/smartjson': 5.0.20 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartlog-destination-devtools': 1.0.12 '@push.rocks/smartlog-interfaces': 3.0.2 '@push.rocks/smartmanifest': 2.0.2 @@ -5755,12 +5726,12 @@ snapshots: '@push.rocks/smartopen': 2.0.0 '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 4.2.2 + '@push.rocks/smartrequest': 4.3.1 '@push.rocks/smartrx': 3.0.10 '@push.rocks/smartsitemap': 2.0.3 '@push.rocks/smartstream': 3.2.5 '@push.rocks/smarttime': 4.1.1 - '@push.rocks/taskbuffer': 3.1.7 + '@push.rocks/taskbuffer': 3.1.10 '@push.rocks/webrequest': 3.0.37 '@push.rocks/webstore': 2.0.20 '@tsclass/tsclass': 9.2.0 @@ -5799,7 +5770,7 @@ snapshots: '@apiclient.xyz/cloudflare@6.4.1': dependencies: '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrequest': 2.1.0 '@push.rocks/smartstring': 4.0.15 @@ -5808,26 +5779,27 @@ snapshots: transitivePeerDependencies: - encoding - '@apiclient.xyz/docker@1.3.0': + '@apiclient.xyz/docker@1.3.5': dependencies: - '@push.rocks/lik': 6.1.0 - '@push.rocks/smartarchive': 4.0.39 + '@push.rocks/lik': 6.2.2 + '@push.rocks/smartarchive': 4.2.2 '@push.rocks/smartbucket': 3.3.10 '@push.rocks/smartfile': 11.2.7 '@push.rocks/smartjson': 5.0.20 - '@push.rocks/smartlog': 3.1.8 - '@push.rocks/smartnetwork': 3.0.2 - '@push.rocks/smartpath': 5.1.0 + '@push.rocks/smartlog': 3.1.9 + '@push.rocks/smartnetwork': 4.1.2 + '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 2.1.0 + '@push.rocks/smartrequest': 4.3.1 '@push.rocks/smartstream': 3.2.5 '@push.rocks/smartstring': 4.0.15 '@push.rocks/smartunique': 3.0.9 '@push.rocks/smartversion': 3.0.5 - '@tsclass/tsclass': 4.4.4 - rxjs: 7.8.1 + '@tsclass/tsclass': 9.2.0 + rxjs: 7.8.2 transitivePeerDependencies: - aws-crt + - supports-color '@apiclient.xyz/hetznercloud@1.2.0': dependencies: @@ -6695,7 +6667,7 @@ snapshots: '@borewit/text-codec@0.1.1': {} - '@cloudflare/workers-types@4.20250816.0': {} + '@cloudflare/workers-types@4.20250905.0': {} '@colors/colors@1.6.0': {} @@ -6709,15 +6681,15 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 - '@design.estate/dees-catalog@1.10.10(@tiptap/pm@2.26.1)': + '@design.estate/dees-catalog@1.10.12(@tiptap/pm@2.26.1)': dependencies: '@design.estate/dees-domtools': 2.3.3 '@design.estate/dees-element': 2.1.2 '@design.estate/dees-wcctools': 1.1.1 - '@fortawesome/fontawesome-svg-core': 6.7.2 - '@fortawesome/free-brands-svg-icons': 6.7.2 - '@fortawesome/free-regular-svg-icons': 6.7.2 - '@fortawesome/free-solid-svg-icons': 6.7.2 + '@fortawesome/fontawesome-svg-core': 7.0.1 + '@fortawesome/free-brands-svg-icons': 7.0.1 + '@fortawesome/free-regular-svg-icons': 7.0.1 + '@fortawesome/free-solid-svg-icons': 7.0.1 '@push.rocks/smarti18n': 1.0.4 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartstring': 4.0.15 @@ -6729,10 +6701,10 @@ snapshots: '@tiptap/starter-kit': 2.26.1 '@tsclass/tsclass': 9.2.0 '@webcontainer/api': 1.2.0 - apexcharts: 4.7.0 + apexcharts: 5.3.4 highlight.js: 11.11.1 ibantools: 4.5.1 - lucide: 0.525.0 + lucide: 0.542.0 monaco-editor: 0.52.2 pdfjs-dist: 4.10.38 xterm: 5.3.0 @@ -6967,23 +6939,23 @@ snapshots: '@esbuild/win32-x64@0.25.9': optional: true - '@fortawesome/fontawesome-common-types@6.7.2': {} + '@fortawesome/fontawesome-common-types@7.0.1': {} - '@fortawesome/fontawesome-svg-core@6.7.2': + '@fortawesome/fontawesome-svg-core@7.0.1': dependencies: - '@fortawesome/fontawesome-common-types': 6.7.2 + '@fortawesome/fontawesome-common-types': 7.0.1 - '@fortawesome/free-brands-svg-icons@6.7.2': + '@fortawesome/free-brands-svg-icons@7.0.1': dependencies: - '@fortawesome/fontawesome-common-types': 6.7.2 + '@fortawesome/fontawesome-common-types': 7.0.1 - '@fortawesome/free-regular-svg-icons@6.7.2': + '@fortawesome/free-regular-svg-icons@7.0.1': dependencies: - '@fortawesome/fontawesome-common-types': 6.7.2 + '@fortawesome/fontawesome-common-types': 7.0.1 - '@fortawesome/free-solid-svg-icons@6.7.2': + '@fortawesome/free-solid-svg-icons@7.0.1': dependencies: - '@fortawesome/fontawesome-common-types': 6.7.2 + '@fortawesome/fontawesome-common-types': 7.0.1 '@gerrit0/mini-shiki@3.9.2': dependencies: @@ -6993,14 +6965,14 @@ snapshots: '@shikijs/types': 3.9.2 '@shikijs/vscode-textmate': 10.0.2 - '@git.zone/tsbuild@2.6.7': + '@git.zone/tsbuild@2.6.8': dependencies: '@git.zone/tspublish': 1.10.3 '@push.rocks/early': 4.0.4 '@push.rocks/smartcli': 4.0.11 '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartpromise': 4.2.3 typescript: 5.9.2 @@ -7014,7 +6986,7 @@ snapshots: '@push.rocks/smartcli': 4.0.11 '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartlog-destination-local': 9.0.2 '@push.rocks/smartpath': 5.1.0 '@push.rocks/smartpromise': 4.2.3 @@ -7041,7 +7013,7 @@ snapshots: '@push.rocks/smartfile': 11.2.7 '@push.rocks/smartgit': 3.2.1 '@push.rocks/smartinteract': 2.0.16 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartlog-destination-local': 9.0.2 '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartshell': 3.2.4 @@ -7064,10 +7036,10 @@ snapshots: '@push.rocks/smartcli': 4.0.11 '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartnpm': 2.0.6 '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartrequest': 4.2.2 + '@push.rocks/smartrequest': 4.3.1 '@push.rocks/smartshell': 3.3.0 transitivePeerDependencies: - aws-crt @@ -7079,9 +7051,9 @@ snapshots: '@push.rocks/smartshell': 3.0.6 tsx: 4.19.2 - '@git.zone/tstest@2.3.5(@aws-sdk/credential-providers@3.796.0)(socks@2.8.7)(typescript@5.9.2)': + '@git.zone/tstest@2.3.6(@aws-sdk/credential-providers@3.796.0)(socks@2.8.7)(typescript@5.9.2)': dependencies: - '@api.global/typedserver': 3.0.77 + '@api.global/typedserver': 3.0.79 '@git.zone/tsbundle': 2.5.1 '@git.zone/tsrun': 1.3.3 '@push.rocks/consolecolor': 2.0.3 @@ -7094,11 +7066,11 @@ snapshots: '@push.rocks/smartexpect': 2.5.0 '@push.rocks/smartfile': 11.2.7 '@push.rocks/smartjson': 5.0.20 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartmongo': 2.0.12(@aws-sdk/credential-providers@3.796.0)(socks@2.8.7) '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 4.2.2 + '@push.rocks/smartrequest': 4.3.1 '@push.rocks/smarts3': 2.2.6 '@push.rocks/smartshell': 3.3.0 '@push.rocks/smarttime': 4.1.1 @@ -7126,7 +7098,7 @@ snapshots: '@git.zone/tswatch@2.2.1': dependencies: - '@api.global/typedserver': 3.0.77 + '@api.global/typedserver': 3.0.79 '@git.zone/tsbundle': 2.5.1 '@git.zone/tsrun': 1.3.3 '@push.rocks/early': 4.0.4 @@ -7135,10 +7107,10 @@ snapshots: '@push.rocks/smartcli': 4.0.11 '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartlog-destination-local': 9.0.2 '@push.rocks/smartshell': 3.2.3 - '@push.rocks/taskbuffer': 3.1.7 + '@push.rocks/taskbuffer': 3.1.10 transitivePeerDependencies: - '@nuxt/kit' - '@swc/helpers' @@ -7589,48 +7561,48 @@ snapshots: dependencies: sparse-bitfield: 3.0.3 - '@napi-rs/canvas-android-arm64@0.1.77': + '@napi-rs/canvas-android-arm64@0.1.78': optional: true - '@napi-rs/canvas-darwin-arm64@0.1.77': + '@napi-rs/canvas-darwin-arm64@0.1.78': optional: true - '@napi-rs/canvas-darwin-x64@0.1.77': + '@napi-rs/canvas-darwin-x64@0.1.78': optional: true - '@napi-rs/canvas-linux-arm-gnueabihf@0.1.77': + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.78': optional: true - '@napi-rs/canvas-linux-arm64-gnu@0.1.77': + '@napi-rs/canvas-linux-arm64-gnu@0.1.78': optional: true - '@napi-rs/canvas-linux-arm64-musl@0.1.77': + '@napi-rs/canvas-linux-arm64-musl@0.1.78': optional: true - '@napi-rs/canvas-linux-riscv64-gnu@0.1.77': + '@napi-rs/canvas-linux-riscv64-gnu@0.1.78': optional: true - '@napi-rs/canvas-linux-x64-gnu@0.1.77': + '@napi-rs/canvas-linux-x64-gnu@0.1.78': optional: true - '@napi-rs/canvas-linux-x64-musl@0.1.77': + '@napi-rs/canvas-linux-x64-musl@0.1.78': optional: true - '@napi-rs/canvas-win32-x64-msvc@0.1.77': + '@napi-rs/canvas-win32-x64-msvc@0.1.78': optional: true - '@napi-rs/canvas@0.1.77': + '@napi-rs/canvas@0.1.78': optionalDependencies: - '@napi-rs/canvas-android-arm64': 0.1.77 - '@napi-rs/canvas-darwin-arm64': 0.1.77 - '@napi-rs/canvas-darwin-x64': 0.1.77 - '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.77 - '@napi-rs/canvas-linux-arm64-gnu': 0.1.77 - '@napi-rs/canvas-linux-arm64-musl': 0.1.77 - '@napi-rs/canvas-linux-riscv64-gnu': 0.1.77 - '@napi-rs/canvas-linux-x64-gnu': 0.1.77 - '@napi-rs/canvas-linux-x64-musl': 0.1.77 - '@napi-rs/canvas-win32-x64-msvc': 0.1.77 + '@napi-rs/canvas-android-arm64': 0.1.78 + '@napi-rs/canvas-darwin-arm64': 0.1.78 + '@napi-rs/canvas-darwin-x64': 0.1.78 + '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.78 + '@napi-rs/canvas-linux-arm64-gnu': 0.1.78 + '@napi-rs/canvas-linux-arm64-musl': 0.1.78 + '@napi-rs/canvas-linux-riscv64-gnu': 0.1.78 + '@napi-rs/canvas-linux-x64-gnu': 0.1.78 + '@napi-rs/canvas-linux-x64-musl': 0.1.78 + '@napi-rs/canvas-win32-x64-msvc': 0.1.78 optional: true '@napi-rs/wasm-runtime@1.0.3': @@ -7820,7 +7792,7 @@ snapshots: '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartstring': 4.0.15 '@push.rocks/smartunique': 3.0.9 - '@push.rocks/taskbuffer': 3.1.7 + '@push.rocks/taskbuffer': 3.1.10 '@tsclass/tsclass': 4.4.4 transitivePeerDependencies: - aws-crt @@ -7864,11 +7836,11 @@ snapshots: '@push.rocks/qenv': 6.1.3 '@push.rocks/smartfile': 11.2.7 '@push.rocks/smartjson': 5.0.20 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrx': 3.0.10 - '@push.rocks/taskbuffer': 3.1.7 + '@push.rocks/taskbuffer': 3.1.10 '@tsclass/tsclass': 9.2.0 '@push.rocks/projectinfo@5.0.2': @@ -7883,19 +7855,19 @@ snapshots: '@api.global/typedrequest': 3.1.10 '@configvault.io/interfaces': 1.0.17 '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartacme@8.0.0(@aws-sdk/credential-providers@3.796.0)(socks@2.8.7)': dependencies: - '@api.global/typedserver': 3.0.77 + '@api.global/typedserver': 3.0.79 '@apiclient.xyz/cloudflare': 6.4.1 '@push.rocks/lik': 6.2.2 '@push.rocks/smartdata': 5.16.4(@aws-sdk/credential-providers@3.796.0)(socks@2.8.7) '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartdns': 6.2.2 '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartnetwork': 4.1.2 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrequest': 2.1.0 @@ -7927,7 +7899,7 @@ snapshots: '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartpdf': 4.1.1(typescript@5.9.2) '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 4.2.2 + '@push.rocks/smartrequest': 4.3.1 '@push.rocks/webstream': 1.0.10 openai: 5.12.2(ws@8.18.3)(zod@3.25.76) transitivePeerDependencies: @@ -7940,30 +7912,13 @@ snapshots: - ws - zod - '@push.rocks/smartarchive@4.0.39': - dependencies: - '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartfile': 11.2.7 - '@push.rocks/smartpath': 5.1.0 - '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 2.1.0 - '@push.rocks/smartrx': 3.0.10 - '@push.rocks/smartstream': 3.2.5 - '@push.rocks/smartunique': 3.0.9 - '@push.rocks/smarturl': 3.1.0 - '@types/tar-stream': 3.1.3 - fflate: 0.8.2 - file-type: 19.6.0 - tar-stream: 3.1.7 - through: 2.3.8 - '@push.rocks/smartarchive@4.2.2': dependencies: '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartfile': 11.2.7 '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 4.2.2 + '@push.rocks/smartrequest': 4.3.1 '@push.rocks/smartrx': 3.0.10 '@push.rocks/smartstream': 3.2.5 '@push.rocks/smartunique': 3.0.9 @@ -8021,6 +7976,14 @@ snapshots: '@pushrocks/smartpromise': 3.1.10 '@pushrocks/smarttime': 4.0.1 + '@push.rocks/smartcache@1.0.18': + dependencies: + '@push.rocks/smartdelay': 3.0.5 + '@push.rocks/smarterror': 2.0.1 + '@push.rocks/smarthash': 3.2.3 + '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smarttime': 4.1.1 + '@push.rocks/smartchok@1.1.1': dependencies: '@push.rocks/lik': 6.2.2 @@ -8032,7 +7995,7 @@ snapshots: '@push.rocks/smartcli@4.0.11': dependencies: '@push.rocks/lik': 6.1.0 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartobject': 1.0.12 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrx': 3.0.10 @@ -8057,14 +8020,14 @@ snapshots: dependencies: '@push.rocks/lik': 6.2.2 '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartmongo': 2.0.12(@aws-sdk/credential-providers@3.796.0)(socks@2.8.7) '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrx': 3.0.10 '@push.rocks/smartstring': 4.0.15 '@push.rocks/smarttime': 4.1.1 '@push.rocks/smartunique': 3.0.9 - '@push.rocks/taskbuffer': 3.1.7 + '@push.rocks/taskbuffer': 3.1.10 '@tsclass/tsclass': 9.2.0 mongodb: 6.18.0(@aws-sdk/credential-providers@3.796.0)(socks@2.8.7) transitivePeerDependencies: @@ -8106,6 +8069,11 @@ snapshots: dependencies: '@push.rocks/smartpromise': 4.2.3 + '@push.rocks/smarterror@2.0.1': + dependencies: + clean-stack: 1.3.0 + make-error-cause: 2.3.0 + '@push.rocks/smartexit@1.0.23': dependencies: '@push.rocks/lik': 6.1.0 @@ -8156,7 +8124,7 @@ snapshots: '@push.rocks/smartmime': 2.0.4 '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 4.2.2 + '@push.rocks/smartrequest': 4.3.1 '@push.rocks/smartstream': 3.2.5 '@types/fs-extra': 11.0.4 '@types/js-yaml': 4.0.9 @@ -8212,7 +8180,7 @@ snapshots: '@push.rocks/smartfile': 11.2.7 '@push.rocks/smarthash': 3.2.3 '@push.rocks/smartpath': 6.0.0 - '@push.rocks/smartrequest': 4.2.2 + '@push.rocks/smartrequest': 4.3.1 jimp: 1.6.0 sharp: 0.34.3 transitivePeerDependencies: @@ -8254,7 +8222,7 @@ snapshots: '@api.global/typedrequest-interfaces': 2.0.2 '@tsclass/tsclass': 4.4.4 - '@push.rocks/smartlog@3.1.8': + '@push.rocks/smartlog@3.1.9': dependencies: '@api.global/typedrequest-interfaces': 3.0.19 '@push.rocks/consolecolor': 2.0.3 @@ -8317,16 +8285,6 @@ snapshots: - socks - supports-color - '@push.rocks/smartnetwork@3.0.2': - dependencies: - '@pushrocks/smartping': 1.0.8 - '@pushrocks/smartpromise': 3.1.10 - '@pushrocks/smartstring': 4.0.7 - '@types/default-gateway': 3.0.1 - isopen: 1.3.0 - public-ip: 6.0.2 - systeminformation: 5.24.3 - '@push.rocks/smartnetwork@4.1.2': dependencies: '@push.rocks/smartping': 1.0.8 @@ -8345,7 +8303,7 @@ snapshots: '@push.rocks/smartfile': 11.2.7 '@push.rocks/smartpath': 6.0.0 '@push.rocks/smartpromise': 4.2.3 - '@push.rocks/smartrequest': 4.2.2 + '@push.rocks/smartrequest': 4.3.1 '@push.rocks/smarttime': 4.1.1 '@push.rocks/smartversion': 3.0.5 package-json: 8.1.1 @@ -8358,7 +8316,7 @@ snapshots: '@design.estate/dees-element': 2.1.2 '@happy-dom/global-registrator': 15.11.7 '@push.rocks/smartpromise': 4.2.3 - fake-indexeddb: 6.1.0 + fake-indexeddb: 6.2.2 transitivePeerDependencies: - '@nuxt/kit' - react @@ -8451,7 +8409,7 @@ snapshots: agentkeepalive: 4.6.0 form-data: 4.0.4 - '@push.rocks/smartrequest@4.2.2': + '@push.rocks/smartrequest@4.3.1': dependencies: '@push.rocks/smartenv': 5.0.13 '@push.rocks/smartpath': 6.0.0 @@ -8521,7 +8479,7 @@ snapshots: '@push.rocks/smartsitemap@2.0.3': dependencies: - '@push.rocks/smartcache': 1.0.16 + '@push.rocks/smartcache': 1.0.18 '@push.rocks/smartfeed': 1.0.11 '@push.rocks/smartxml': 1.1.1 '@push.rocks/smartyaml': 2.0.5 @@ -8531,14 +8489,14 @@ snapshots: '@push.rocks/smartsocket@2.0.27': dependencies: '@api.global/typedrequest-interfaces': 3.0.19 - '@api.global/typedserver': 3.0.77 + '@api.global/typedserver': 3.0.79 '@push.rocks/isohash': 2.0.1 '@push.rocks/isounique': 1.0.5 '@push.rocks/lik': 6.1.0 '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartenv': 5.0.12 '@push.rocks/smartjson': 5.0.20 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrx': 3.0.10 '@push.rocks/smarttime': 4.0.8 @@ -8653,14 +8611,14 @@ snapshots: '@types/js-yaml': 3.12.10 js-yaml: 3.14.1 - '@push.rocks/taskbuffer@3.1.7': + '@push.rocks/taskbuffer@3.1.10': dependencies: - '@push.rocks/lik': 6.1.0 + '@push.rocks/lik': 6.2.2 '@push.rocks/smartdelay': 3.0.5 - '@push.rocks/smartlog': 3.1.8 + '@push.rocks/smartlog': 3.1.9 '@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartrx': 3.0.10 - '@push.rocks/smarttime': 4.0.8 + '@push.rocks/smarttime': 4.1.1 '@push.rocks/smartunique': 3.0.9 '@push.rocks/webjwt@1.0.9': @@ -8803,11 +8761,6 @@ snapshots: '@pushrocks/smartpath@5.0.5': {} - '@pushrocks/smartping@1.0.8': - dependencies: - '@types/ping': 0.4.4 - ping: 0.4.4 - '@pushrocks/smartpromise@3.1.10': {} '@pushrocks/smartpromise@4.0.2': {} @@ -9718,7 +9671,7 @@ snapshots: prosemirror-schema-basic: 1.2.4 prosemirror-schema-list: 1.5.1 prosemirror-state: 1.4.3 - prosemirror-tables: 1.7.1 + prosemirror-tables: 1.8.1 prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.40.1) prosemirror-transform: 1.10.4 prosemirror-view: 1.40.1 @@ -9810,8 +9763,6 @@ snapshots: dependencies: '@types/ms': 2.1.0 - '@types/default-gateway@3.0.1': {} - '@types/default-gateway@7.2.2': {} '@types/diff@8.0.0': @@ -9967,10 +9918,6 @@ snapshots: '@types/symbol-tree@3.2.5': {} - '@types/tar-stream@3.1.3': - dependencies: - '@types/node': 22.17.2 - '@types/tar-stream@3.1.4': dependencies: '@types/node': 22.17.2 @@ -10055,11 +10002,6 @@ snapshots: dependencies: humanize-ms: 1.2.1 - aggregate-error@4.0.1: - dependencies: - clean-stack: 4.2.0 - indent-string: 5.0.0 - ansi-256-colors@1.1.0: {} ansi-escapes@4.3.2: @@ -10084,7 +10026,7 @@ snapshots: any-base@1.1.0: {} - apexcharts@4.7.0: + apexcharts@5.3.4: dependencies: '@svgdotjs/svg.draggable.js': 3.0.6(@svgdotjs/svg.js@3.2.4) '@svgdotjs/svg.filter.js': 3.0.9 @@ -10186,7 +10128,7 @@ snapshots: iconv-lite: 0.6.3 on-finished: 2.4.1 qs: 6.14.0 - raw-body: 3.0.0 + raw-body: 3.0.1 type-is: 2.0.1 transitivePeerDependencies: - supports-color @@ -10329,10 +10271,6 @@ snapshots: clean-stack@1.3.0: {} - clean-stack@4.2.0: - dependencies: - escape-string-regexp: 5.0.0 - cli-width@4.1.0: {} cliui@8.0.1: @@ -10811,7 +10749,7 @@ snapshots: fake-indexeddb@5.0.2: {} - fake-indexeddb@6.1.0: {} + fake-indexeddb@6.2.2: {} fast-deep-equal@3.1.3: {} @@ -11250,6 +11188,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.0: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -11263,8 +11205,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - indent-string@5.0.0: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -11313,10 +11253,6 @@ snapshots: has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 - is-ip@4.0.0: - dependencies: - ip-regex: 5.0.0 - is-ip@5.0.1: dependencies: ip-regex: 5.0.0 @@ -11646,7 +11582,7 @@ snapshots: lru-cache@7.18.3: {} - lucide@0.525.0: {} + lucide@0.542.0: {} lunr@2.3.9: {} @@ -12332,6 +12268,8 @@ snapshots: path-to-regexp@8.2.0: {} + path-to-regexp@8.3.0: {} + pdf-lib@1.17.1: dependencies: '@pdf-lib/standard-fonts': 1.0.0 @@ -12343,7 +12281,7 @@ snapshots: pdfjs-dist@4.10.38: optionalDependencies: - '@napi-rs/canvas': 0.1.77 + '@napi-rs/canvas': 0.1.78 peek-readable@4.1.0: {} @@ -12470,7 +12408,7 @@ snapshots: prosemirror-transform: 1.10.4 prosemirror-view: 1.40.1 - prosemirror-tables@1.7.1: + prosemirror-tables@1.8.1: dependencies: prosemirror-keymap: 1.2.3 prosemirror-model: 1.25.3 @@ -12518,13 +12456,6 @@ snapshots: proxy-from-env@1.1.0: {} - public-ip@6.0.2: - dependencies: - aggregate-error: 4.0.1 - dns-socket: 4.2.2 - got: 12.6.1 - is-ip: 4.0.0 - public-ip@7.0.1: dependencies: dns-socket: 4.2.2 @@ -12597,11 +12528,11 @@ snapshots: range-parser@1.2.1: {} - raw-body@3.0.0: + raw-body@3.0.1: dependencies: bytes: 3.1.2 http-errors: 2.0.0 - iconv-lite: 0.6.3 + iconv-lite: 0.7.0 unpipe: 1.0.0 rc@1.2.8: @@ -12746,7 +12677,7 @@ snapshots: depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 - path-to-regexp: 8.2.0 + path-to-regexp: 8.3.0 transitivePeerDependencies: - supports-color @@ -13117,8 +13048,6 @@ snapshots: symbol-tree@3.2.4: {} - systeminformation@5.24.3: {} - systeminformation@5.27.7: {} tar-fs@3.1.0: diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index fe770c8..a5b1a43 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/cloudly', - version: '5.0.6', + version: '5.1.0', description: 'A comprehensive tool for managing containerized applications across multiple cloud providers using Docker Swarmkit, featuring web, CLI, and API interfaces.' } diff --git a/ts/manager.cluster/classes.clustermanager.ts b/ts/manager.cluster/classes.clustermanager.ts index 3448a01..1af029f 100644 --- a/ts/manager.cluster/classes.clustermanager.ts +++ b/ts/manager.cluster/classes.clustermanager.ts @@ -24,11 +24,13 @@ export class ClusterManager { this.typedrouter.addTypedHandler( new plugins.typedrequest.TypedHandler('createCluster', async (dataArg) => { // TODO: guards + const setupMode = dataArg.setupMode || 'manual'; // Default to manual if not specified const cluster = await this.createCluster({ id: plugins.smartunique.uniSimple('cluster'), data: { userId: null, // this is created by the createCluster method name: dataArg.clusterName, + setupMode: setupMode, acmeInfo: null, cloudlyUrl: `https://${this.cloudlyRef.config.data.publicUrl}:${this.cloudlyRef.config.data.publicPort}/`, servers: [], @@ -36,7 +38,12 @@ export class ClusterManager { }, }); console.log(await cluster.createSavableObject()); - this.cloudlyRef.serverManager.ensureServerInfrastructure(); + + // Only auto-provision servers if setupMode is 'hetzner' + if (setupMode === 'hetzner') { + this.cloudlyRef.serverManager.ensureServerInfrastructure(); + } + return { cluster: await cluster.createSavableObject(), }; diff --git a/ts/manager.server/classes.servermanager.ts b/ts/manager.server/classes.servermanager.ts index fe17659..331ae33 100644 --- a/ts/manager.server/classes.servermanager.ts +++ b/ts/manager.server/classes.servermanager.ts @@ -55,6 +55,12 @@ export class CloudlyServerManager { // get all clusters const allClusters = await this.cloudlyRef.clusterManager.getAllClusters(); for (const cluster of allClusters) { + // Skip clusters that are not set up for Hetzner auto-provisioning + if (cluster.data.setupMode !== 'hetzner') { + console.log(`Skipping server provisioning for cluster ${cluster.id} - setupMode is ${cluster.data.setupMode || 'manual'}`); + continue; + } + // get existing servers const servers = await this.getServersByCluster(cluster); diff --git a/ts_interfaces/data/cluster.ts b/ts_interfaces/data/cluster.ts index ddf773e..b59035e 100644 --- a/ts_interfaces/data/cluster.ts +++ b/ts_interfaces/data/cluster.ts @@ -18,6 +18,11 @@ export interface ICluster { */ cloudlyUrl?: string; + /** + * Cluster setup mode - manual by default, or auto-provision with cloud provider + */ + setupMode?: 'manual' | 'hetzner' | 'aws' | 'digitalocean'; + /** * what servers are expected to be part of the cluster */ diff --git a/ts_interfaces/requests/cluster.ts b/ts_interfaces/requests/cluster.ts index 357bf8e..9401777 100644 --- a/ts_interfaces/requests/cluster.ts +++ b/ts_interfaces/requests/cluster.ts @@ -41,6 +41,7 @@ export interface IRequest_CreateCluster extends plugins.typedrequestInterfaces.i request: { identity: userInterfaces.IIdentity; clusterName: string; + setupMode?: 'manual' | 'hetzner' | 'aws' | 'digitalocean'; }; response: { cluster: clusterInterfaces.ICluster; diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index fe770c8..a5b1a43 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/cloudly', - version: '5.0.6', + version: '5.1.0', description: 'A comprehensive tool for managing containerized applications across multiple cloud providers using Docker Swarmkit, featuring web, CLI, and API interfaces.' } diff --git a/ts_web/appstate.ts b/ts_web/appstate.ts index 19b2704..7f78734 100644 --- a/ts_web/appstate.ts +++ b/ts_web/appstate.ts @@ -245,6 +245,7 @@ export const addClusterAction = dataState.createAction( statePartArg, payloadArg: { clusterName: string; + setupMode?: 'manual' | 'hetzner' | 'aws' | 'digitalocean'; } ) => { let currentState = statePartArg.getState(); diff --git a/ts_web/elements/cloudly-dashboard.ts b/ts_web/elements/cloudly-dashboard.ts index 8f4d32f..e7007e1 100644 --- a/ts_web/elements/cloudly-dashboard.ts +++ b/ts_web/elements/cloudly-dashboard.ts @@ -76,66 +76,82 @@ export class CloudlyDashboard extends DeesElement { .viewTabs=${[ { name: 'Overview', + iconName: 'lucide:LayoutDashboard', element: CloudlyViewOverview, }, { name: 'SecretGroups', + iconName: 'lucide:ShieldCheck', element: CloudlyViewSecretGroups, }, { name: 'SecretBundles', + iconName: 'lucide:LockKeyhole', element: CloudlyViewSecretBundles, }, { name: 'Clusters', + iconName: 'lucide:Network', element: CloudlyViewClusters, }, { name: 'ExternalRegistries', + iconName: 'lucide:Package', element: CloudlyViewExternalRegistries, }, { name: 'Images', + iconName: 'lucide:Image', element: CloudlyViewImages, }, { name: 'Services', + iconName: 'lucide:Layers', element: CloudlyViewServices, }, { name: 'Testing & Building', + iconName: 'lucide:HardHat', element: CloudlyViewServices, }, { name: 'Deployments', + iconName: 'lucide:Rocket', element: CloudlyViewDeployments, }, { name: 'DNS', + iconName: 'lucide:Globe', element: CloudlyViewDns, }, { name: 'Mails', + iconName: 'lucide:Mail', element: CloudlyViewMails, }, { name: 'Logs', + iconName: 'lucide:FileText', element: CloudlyViewLogs, }, { name: 's3', + iconName: 'lucide:Cloud', element: CloudlyViewS3, }, { name: 'DBs', + iconName: 'lucide:Database', element: CloudlyViewDbs, }, { name: 'Backups', + iconName: 'lucide:Save', element: CloudlyViewBackups, }, { name: 'Fleet', + iconName: 'lucide:Truck', element: CloudlyViewBackups, } ] as plugins.deesCatalog.IView[]} diff --git a/ts_web/elements/cloudly-view-clusters.ts b/ts_web/elements/cloudly-view-clusters.ts index 15d230b..9d40f51 100644 --- a/ts_web/elements/cloudly-view-clusters.ts +++ b/ts_web/elements/cloudly-view-clusters.ts @@ -68,6 +68,18 @@ export class CloudlyViewClusters extends DeesElement { .description=${'a descriptive name for the cluster'} .value=${''} > + `, menuOptions: [ @@ -76,6 +88,7 @@ export class CloudlyViewClusters extends DeesElement { action: async (modalArg) => { const data: { clusterName: string; + setupMode: 'manual' | 'hetzner' | 'aws' | 'digitalocean'; } = (await modalArg.shadowRoot .querySelector('dees-form') .collectFormData()) as any; diff --git a/ts_web/elements/cloudly-view-overview.ts b/ts_web/elements/cloudly-view-overview.ts index 350dd4a..e5f2c84 100644 --- a/ts_web/elements/cloudly-view-overview.ts +++ b/ts_web/elements/cloudly-view-overview.ts @@ -1,4 +1,3 @@ -import * as plugins from '../plugins.js'; import * as shared from '../elements/shared/index.js'; import { @@ -34,34 +33,124 @@ export class CloudlyViewOverview extends DeesElement { cssManager.defaultStyles, shared.viewHostCss, css` - .clusterGrid { - display: grid; - grid-template-columns: ${cssManager.cssGridColumns(3, 8)}; - grid-gap: 16px; - margin-bottom: 40px; + dees-statsgrid { + margin-top: 24px; } `, ]; public render() { + // Calculate total servers across all clusters + const totalServers = this.data.clusters?.reduce((sum, cluster) => + sum + (cluster.data.servers?.length || 0), 0) || 0; + + // Create tiles for the stats grid + const statsTiles = [ + { + id: 'clusters', + title: 'Total Clusters', + value: this.data.clusters?.length || 0, + type: 'number' as const, + iconName: 'lucide:Network', + description: 'Active clusters' + }, + { + id: 'servers', + title: 'Total Servers', + value: totalServers, + type: 'number' as const, + iconName: 'lucide:Server', + description: 'Connected servers' + }, + { + id: 'services', + title: 'Services', + value: this.data.services?.length || 0, + type: 'number' as const, + iconName: 'lucide:Layers', + description: 'Deployed services' + }, + { + id: 'deployments', + title: 'Deployments', + value: this.data.deployments?.length || 0, + type: 'number' as const, + iconName: 'lucide:Rocket', + description: 'Active deployments' + }, + { + id: 'secretGroups', + title: 'Secret Groups', + value: this.data.secretGroups?.length || 0, + type: 'number' as const, + iconName: 'lucide:ShieldCheck', + description: 'Configured secret groups' + }, + { + id: 'secretBundles', + title: 'Secret Bundles', + value: this.data.secretBundles?.length || 0, + type: 'number' as const, + iconName: 'lucide:LockKeyhole', + description: 'Available secret bundles' + }, + { + id: 'images', + title: 'Images', + value: this.data.images?.length || 0, + type: 'number' as const, + iconName: 'lucide:Image', + description: 'Container images' + }, + { + id: 'dns', + title: 'DNS Zones', + value: this.data.dns?.length || 0, + type: 'number' as const, + iconName: 'lucide:Globe', + description: 'Managed DNS zones' + }, + { + id: 'databases', + title: 'Databases', + value: this.data.dbs?.length || 0, + type: 'number' as const, + iconName: 'lucide:Database', + description: 'Database instances' + }, + { + id: 'backups', + title: 'Backups', + value: this.data.backups?.length || 0, + type: 'number' as const, + iconName: 'lucide:Save', + description: 'Available backups' + }, + { + id: 'mails', + title: 'Mail Domains', + value: this.data.mails?.length || 0, + type: 'number' as const, + iconName: 'lucide:Mail', + description: 'Mail configurations' + }, + { + id: 's3', + title: 'S3 Buckets', + value: this.data.s3?.length || 0, + type: 'number' as const, + iconName: 'lucide:Cloud', + description: 'Storage buckets' + } + ]; + return html` Overview - ${this.data.clusters.length === 0 ? html` - You need to create at least one cluster to see an overview. - `: html``} - ${this.data.clusters.map( - (clusterArg) => html` - -
- - - - - - -
- ` - )} + `; } }