This commit is contained in:
Philipp Kunz 2025-05-18 15:51:09 +00:00
parent 01b4a79e1a
commit 538d22f81b
5 changed files with 289 additions and 249 deletions

View File

@ -17,14 +17,14 @@
"devDependencies": { "devDependencies": {
"@git.zone/tsbuild": "^2.5.1", "@git.zone/tsbuild": "^2.5.1",
"@git.zone/tsrun": "^1.2.44", "@git.zone/tsrun": "^1.2.44",
"@git.zone/tstest": "^1.2.0", "@git.zone/tstest": "^1.9.0",
"@push.rocks/tapbundle": "^6.0.3", "@push.rocks/tapbundle": "^6.0.3",
"@types/node": "^22.15.18", "@types/node": "^22.15.18",
"typescript": "^5.8.3" "typescript": "^5.8.3"
}, },
"dependencies": { "dependencies": {
"@push.rocks/lik": "^6.2.2", "@push.rocks/lik": "^6.2.2",
"@push.rocks/smartacme": "^7.3.3", "@push.rocks/smartacme": "^7.3.4",
"@push.rocks/smartcrypto": "^2.0.4", "@push.rocks/smartcrypto": "^2.0.4",
"@push.rocks/smartdelay": "^3.0.5", "@push.rocks/smartdelay": "^3.0.5",
"@push.rocks/smartfile": "^11.2.0", "@push.rocks/smartfile": "^11.2.0",

317
pnpm-lock.yaml generated
View File

@ -12,8 +12,8 @@ importers:
specifier: ^6.2.2 specifier: ^6.2.2
version: 6.2.2 version: 6.2.2
'@push.rocks/smartacme': '@push.rocks/smartacme':
specifier: ^7.3.3 specifier: ^7.3.4
version: 7.3.3(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4) version: 7.3.4(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4)
'@push.rocks/smartcrypto': '@push.rocks/smartcrypto':
specifier: ^2.0.4 specifier: ^2.0.4
version: 2.0.4 version: 2.0.4
@ -64,8 +64,8 @@ importers:
specifier: ^1.2.44 specifier: ^1.2.44
version: 1.3.3 version: 1.3.3
'@git.zone/tstest': '@git.zone/tstest':
specifier: ^1.2.0 specifier: ^1.9.0
version: 1.2.0(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4)(typescript@5.8.3) version: 1.9.0(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4)(typescript@5.8.3)
'@push.rocks/tapbundle': '@push.rocks/tapbundle':
specifier: ^6.0.3 specifier: ^6.0.3
version: 6.0.3(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4) version: 6.0.3(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4)
@ -87,9 +87,6 @@ packages:
'@api.global/typedrequest@3.1.10': '@api.global/typedrequest@3.1.10':
resolution: {integrity: sha512-EiCp44XVcMjBvEs4oM1nMUaeY4ySU0Pzt3+mDwVG5DNP6EV87Nwancbr2jKScvaFNel9eeDgGtgEnFBKjOnApA==} resolution: {integrity: sha512-EiCp44XVcMjBvEs4oM1nMUaeY4ySU0Pzt3+mDwVG5DNP6EV87Nwancbr2jKScvaFNel9eeDgGtgEnFBKjOnApA==}
'@api.global/typedserver@3.0.68':
resolution: {integrity: sha512-7o6fkz60ed8q2lmEe44hsu/6kNqG4j5WVgWwmY+a1MmSOUtuu5+VTYYNyc8KrSgtbRBzx4+2A2N31l4wDjcy3w==}
'@api.global/typedserver@3.0.74': '@api.global/typedserver@3.0.74':
resolution: {integrity: sha512-lrXaCPaVZLihlF9w39pEqTw2kiHFCheRKTZuK07S7gTGyfdXKPmccVR/EK4ox58E1gjh9A2K8yY8ZWGcjuSJkw==} resolution: {integrity: sha512-lrXaCPaVZLihlF9w39pEqTw2kiHFCheRKTZuK07S7gTGyfdXKPmccVR/EK4ox58E1gjh9A2K8yY8ZWGcjuSJkw==}
@ -362,15 +359,12 @@ packages:
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
'@babel/runtime@7.23.4': '@babel/runtime@7.27.0':
resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
'@cloudflare/workers-types@4.20250303.0': '@cloudflare/workers-types@4.20250517.0':
resolution: {integrity: sha512-O7F7nRT4bbmwHf3gkRBLfJ7R6vHIJ/oZzWdby6obOiw2yavUfp/AIwS7aO2POu5Cv8+h3TXS3oHs3kKCZLraUA==} resolution: {integrity: sha512-DYttpORVcvKGXI+zQDHBO6r0pDsAc8fkmJg0x1PK7+t0ijfc6nMVnUF/IVJIllScOWWHHCBknCbCmV0eGq2njA==}
'@cloudflare/workers-types@4.20250515.0':
resolution: {integrity: sha512-KoHFMH04gOXp3KEI+wrFIU+3ZfoSXnwqZTpybNQjalHoN3pWjtWBb/030cCRAZ639YX+DAHAxNF7AvEYGz1oaA==}
'@colors/colors@1.6.0': '@colors/colors@1.6.0':
resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
@ -388,8 +382,8 @@ packages:
'@design.estate/dees-domtools@2.3.2': '@design.estate/dees-domtools@2.3.2':
resolution: {integrity: sha512-RfXR2t67M9kaCoF6CBkKJtVdsdp6p1O7S1OaWjrs8V0S3277ch4bSYfO+8f+QYweXKkI6Tr2PKaq3PIlwFSC1g==} resolution: {integrity: sha512-RfXR2t67M9kaCoF6CBkKJtVdsdp6p1O7S1OaWjrs8V0S3277ch4bSYfO+8f+QYweXKkI6Tr2PKaq3PIlwFSC1g==}
'@design.estate/dees-element@2.0.39': '@design.estate/dees-element@2.0.42':
resolution: {integrity: sha512-AQdGU/+GmWmU5M5pDf+GWT7GU8UN073WZvtIkfqQZemxd35HYU1vpi629m8/PjKd5dIHAU7QN2mKb6IQ8anPgw==} resolution: {integrity: sha512-1PzHP6q/PtSiu4P0nCxjSeHtRHn62zoSouMy8JFW2h29FT/CSDVaTUAUqYqnvwE/U98aLNivWTmerZitDF7kBQ==}
'@esbuild/aix-ppc64@0.24.2': '@esbuild/aix-ppc64@0.24.2':
resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
@ -710,8 +704,8 @@ packages:
resolution: {integrity: sha512-DDzWunkxXLtXJTxBf4EioXLwhuqdA2VzdTmOzWrw4Z4Qnms/YM67q36yajwNohAajPYyRz5DayU0ikrceFXyVw==} resolution: {integrity: sha512-DDzWunkxXLtXJTxBf4EioXLwhuqdA2VzdTmOzWrw4Z4Qnms/YM67q36yajwNohAajPYyRz5DayU0ikrceFXyVw==}
hasBin: true hasBin: true
'@git.zone/tstest@1.2.0': '@git.zone/tstest@1.9.0':
resolution: {integrity: sha512-H4/7YKjJLzz0uIO88dB9EcP0r8j/CoDqAWlHVWK78tEHM8foV6EIIcu+zsadZuBWW5SnR77p62YoJFenRdTnGA==} resolution: {integrity: sha512-UENg0cuXJLhxOJCCVzCn7y3CEY8OMHvqQSuDazZxd5fj5tNXx6RJIYsAEMVoeJeDWQSXYgbt2JW8Yz85kre5MA==}
hasBin: true hasBin: true
'@hapi/bourne@3.0.0': '@hapi/bourne@3.0.0':
@ -886,8 +880,8 @@ packages:
'@push.rocks/qenv@6.1.0': '@push.rocks/qenv@6.1.0':
resolution: {integrity: sha512-1FUFMlSVwFSFg8LbqfkzJ2LLP4lMGApUtgOpsvrde6+AxBmB4gjoNgCUH7z3xXfDAtYqcrtSELXBNE0xVL1MqQ==} resolution: {integrity: sha512-1FUFMlSVwFSFg8LbqfkzJ2LLP4lMGApUtgOpsvrde6+AxBmB4gjoNgCUH7z3xXfDAtYqcrtSELXBNE0xVL1MqQ==}
'@push.rocks/smartacme@7.3.3': '@push.rocks/smartacme@7.3.4':
resolution: {integrity: sha512-48g9V4EpZI8B/YiPseIuB/balH22IMp/p26+DAE57jxvv1hh+PSV4I/UPWCPWP/z7OTtKF+EfEco9TEb5BF2Lw==} resolution: {integrity: sha512-kpXGrz0SeChLGYoXsqszsHnAyZ/8RMt0PhKSO8W+UaokHN/mZ0Nsro0XkMJhLuZyzYQ35SW+ccUblQliok/AoQ==}
'@push.rocks/smartarchive@3.0.8': '@push.rocks/smartarchive@3.0.8':
resolution: {integrity: sha512-1jPmR0b7hXmjYQoRiTlRXrIbZcdcFmSdGOfznufjcDpGPe86Km0d8TBnzqghTx4dTihzKC67IxAaz/DM3lvxpA==} resolution: {integrity: sha512-1jPmR0b7hXmjYQoRiTlRXrIbZcdcFmSdGOfznufjcDpGPe86Km0d8TBnzqghTx4dTihzKC67IxAaz/DM3lvxpA==}
@ -973,6 +967,9 @@ packages:
'@push.rocks/smartlog@3.0.9': '@push.rocks/smartlog@3.0.9':
resolution: {integrity: sha512-B/YIJrwXsbxPkAJly8+55yx3Eqm5bIaCZ/xD2oe6fD8Zp58VLF2P8hpoQZJOiSO+KI7wXVlTEFHsmt8fpRZIVA==} resolution: {integrity: sha512-B/YIJrwXsbxPkAJly8+55yx3Eqm5bIaCZ/xD2oe6fD8Zp58VLF2P8hpoQZJOiSO+KI7wXVlTEFHsmt8fpRZIVA==}
'@push.rocks/smartlog@3.1.2':
resolution: {integrity: sha512-krjWramvM8R+dY69KoBBsUtsMHKtw7eCdvcg/uYsU6e8gzOfGiQOuWeat39d6doPHbzGuxh6lSOWGUpUTTu6aw==}
'@push.rocks/smartmanifest@2.0.2': '@push.rocks/smartmanifest@2.0.2':
resolution: {integrity: sha512-QGc5C9vunjfUbYsPGz5bynV/mVmPHkrQDkWp8ZO8VJtK1GZe+njgbrNyxn2SUHR0IhSAbSXl1j4JvBqYf5eTVg==} resolution: {integrity: sha512-QGc5C9vunjfUbYsPGz5bynV/mVmPHkrQDkWp8ZO8VJtK1GZe+njgbrNyxn2SUHR0IhSAbSXl1j4JvBqYf5eTVg==}
@ -1045,8 +1042,8 @@ packages:
'@push.rocks/smartsitemap@2.0.3': '@push.rocks/smartsitemap@2.0.3':
resolution: {integrity: sha512-jIcms8V1b2mt3dS4PKNlLR1DRC8pCDWMRVbnyM/2+snZOJZonQRlQzAyX8No0EfLbfdrfnxv2IjPX13X29Re6g==} resolution: {integrity: sha512-jIcms8V1b2mt3dS4PKNlLR1DRC8pCDWMRVbnyM/2+snZOJZonQRlQzAyX8No0EfLbfdrfnxv2IjPX13X29Re6g==}
'@push.rocks/smartsocket@2.0.27': '@push.rocks/smartsocket@2.1.0':
resolution: {integrity: sha512-planM3EkBvx/+guLLWHLBNnNp4mcWDwp1k9G0It0ul7IhdaBQsSWzKSQJxym3Bx2dypgA2UIeT3/hRvSa5Nqdw==} resolution: {integrity: sha512-etOGyfiDFQz/1WJnD3jFL2N7ykujTjiudAz6qZTz82xE5oabKuKX+Cn8SdM9dOwzyWmBUKbUdll8QhovAXjn+g==}
'@push.rocks/smartspawn@3.0.3': '@push.rocks/smartspawn@3.0.3':
resolution: {integrity: sha512-DyrGPV69wwOiJgKkyruk5hS3UEGZ99xFAqBE9O2nM8VXCRLbbty3xt1Ug5Z092ZZmJYaaGMSnMw3ijyZJFCT0Q==} resolution: {integrity: sha512-DyrGPV69wwOiJgKkyruk5hS3UEGZ99xFAqBE9O2nM8VXCRLbbty3xt1Ug5Z092ZZmJYaaGMSnMw3ijyZJFCT0Q==}
@ -1626,14 +1623,11 @@ packages:
'@types/convert-source-map@2.0.3': '@types/convert-source-map@2.0.3':
resolution: {integrity: sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==} resolution: {integrity: sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==}
'@types/cookie@0.4.1':
resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
'@types/cookies@0.9.0': '@types/cookies@0.9.0':
resolution: {integrity: sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==} resolution: {integrity: sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==}
'@types/cors@2.8.17': '@types/cors@2.8.18':
resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} resolution: {integrity: sha512-nX3d0sxJW41CqQvfOzVG1NCTXfFDrDWIghCZncpHeWlVFd81zxB/DLhg7avFg6eHLCRX7ckBmoIIcqa++upvJA==}
'@types/debounce@1.2.4': '@types/debounce@1.2.4':
resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==} resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==}
@ -1656,20 +1650,14 @@ packages:
'@types/elliptic@6.4.18': '@types/elliptic@6.4.18':
resolution: {integrity: sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw==} resolution: {integrity: sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw==}
'@types/express-serve-static-core@4.19.6':
resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
'@types/express-serve-static-core@5.0.6': '@types/express-serve-static-core@5.0.6':
resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==}
'@types/express@4.17.21':
resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
'@types/express@5.0.0': '@types/express@5.0.0':
resolution: {integrity: sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==} resolution: {integrity: sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==}
'@types/express@5.0.1': '@types/express@5.0.2':
resolution: {integrity: sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ==} resolution: {integrity: sha512-BtjL3ZwbCQriyb0DGw+Rt12qAXPiBTPs815lsUvtt1Grk0vLRMZNMUZ741d5rjk+UQOxfDiBZ3dxpX00vSkK3g==}
'@types/fast-json-stable-stringify@2.1.2': '@types/fast-json-stable-stringify@2.1.2':
resolution: {integrity: sha512-vsxcbfLDdjytnCnHXtinE40Xl46Wr7l/VGRGt7ewJwCPMKEHOdEsTxXX8xwgoR7cbc+6dE8SB4jlMrOV2zAg7g==} resolution: {integrity: sha512-vsxcbfLDdjytnCnHXtinE40Xl46Wr7l/VGRGt7ewJwCPMKEHOdEsTxXX8xwgoR7cbc+6dE8SB4jlMrOV2zAg7g==}
@ -2051,8 +2039,8 @@ packages:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'} engines: {node: '>=8'}
broadcast-channel@7.0.0: broadcast-channel@7.1.0:
resolution: {integrity: sha512-a2tW0Ia1pajcPBOGUF2jXlDnvE9d5/dg6BG9h60OmRUcZVr/veUrU8vEQFwwQIhwG3KVzYwSk3v2nRRGFgQDXQ==} resolution: {integrity: sha512-InJljddsYWbEL8LBnopnCg+qMQp9KcowvYWOt4YWrjD5HmxzDYKdVbDS1w/ji5rFZdRD58V5UxJPtBdpEbEJYw==}
brorand@1.1.0: brorand@1.1.0:
resolution: {integrity: sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=} resolution: {integrity: sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=}
@ -2280,14 +2268,14 @@ packages:
cookie-signature@1.0.6: cookie-signature@1.0.6:
resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=}
cookie@0.4.2:
resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
engines: {node: '>= 0.6'}
cookie@0.7.1: cookie@0.7.1:
resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
engines: {node: '>= 0.6'} engines: {node: '>= 0.6'}
cookie@0.7.2:
resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
engines: {node: '>= 0.6'}
cookies@0.9.1: cookies@0.9.1:
resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
@ -2513,15 +2501,15 @@ packages:
end-of-stream@1.4.4: end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
engine.io-client@6.5.4: engine.io-client@6.6.3:
resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==} resolution: {integrity: sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==}
engine.io-parser@5.2.3: engine.io-parser@5.2.3:
resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
engine.io@6.5.4: engine.io@6.6.4:
resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==} resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==}
engines: {node: '>=10.2.0'} engines: {node: '>=10.2.0'}
entities@2.2.0: entities@2.2.0:
@ -2654,8 +2642,8 @@ packages:
resolution: {integrity: sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==} resolution: {integrity: sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
fake-indexeddb@6.0.0: fake-indexeddb@6.0.1:
resolution: {integrity: sha512-YEboHE5VfopUclOck7LncgIqskAqnv4q0EWbYCaxKKjAvO93c+TJIaBuGy8CBFdbg9nKdpN3AuPRwVBJ4k7NrQ==} resolution: {integrity: sha512-He2AjQGHe46svIFq5+L2Nx/eHDTI1oKgoevBP+TthnjymXiKkeJQ3+ITeWey99Y5+2OaPFbI1qEsx/5RsGtWnQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
fast-deep-equal@3.1.3: fast-deep-equal@3.1.3:
@ -3261,8 +3249,8 @@ packages:
kuler@2.0.0: kuler@2.0.0:
resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
lenis@1.2.3: lenis@1.3.3:
resolution: {integrity: sha512-H3VUn62jvQPfyxGW2F0STJPhP1VzX5r05KtiZ0uxHYD9xtbfTvj2eX/Km26+x13zlaKfHacEe1DTC3ouFrxw+g==} resolution: {integrity: sha512-DOopj/UKHS54E9l2g4BOpDUvsyvkd1zkv+ECtHxQ9Fto8ozzKSz7MccqT+KOyG0ABA/OHXZ7l9INx0peUoQ8rQ==}
peerDependencies: peerDependencies:
'@nuxt/kit': '>=3.0.0' '@nuxt/kit': '>=3.0.0'
react: '>=17.0.0' react: '>=17.0.0'
@ -3975,8 +3963,8 @@ packages:
resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
property-information@7.0.0: property-information@7.1.0:
resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
proto-list@1.2.4: proto-list@1.2.4:
resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=}
@ -4267,16 +4255,16 @@ packages:
socket.io-adapter@2.5.5: socket.io-adapter@2.5.5:
resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==}
socket.io-client@4.7.5: socket.io-client@4.8.1:
resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} resolution: {integrity: sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
socket.io-parser@4.2.4: socket.io-parser@4.2.4:
resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
socket.io@4.7.5: socket.io@4.8.1:
resolution: {integrity: sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==} resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==}
engines: {node: '>=10.2.0'} engines: {node: '>=10.2.0'}
socks-proxy-agent@8.0.5: socks-proxy-agent@8.0.5:
@ -4693,18 +4681,6 @@ packages:
utf-8-validate: utf-8-validate:
optional: true optional: true
ws@8.11.0:
resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ^5.0.2
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
ws@8.17.1: ws@8.17.1:
resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
@ -4745,8 +4721,8 @@ packages:
resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
engines: {node: '>=4.0'} engines: {node: '>=4.0'}
xmlhttprequest-ssl@2.0.0: xmlhttprequest-ssl@2.1.2:
resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
xtend@4.0.2: xtend@4.0.2:
@ -4803,57 +4779,12 @@ snapshots:
'@push.rocks/webrequest': 3.0.37 '@push.rocks/webrequest': 3.0.37
'@push.rocks/webstream': 1.0.10 '@push.rocks/webstream': 1.0.10
'@api.global/typedserver@3.0.68':
dependencies:
'@api.global/typedrequest': 3.1.10
'@api.global/typedrequest-interfaces': 3.0.19
'@api.global/typedsocket': 3.0.1
'@cloudflare/workers-types': 4.20250303.0
'@design.estate/dees-comms': 1.0.27
'@push.rocks/lik': 6.2.2
'@push.rocks/smartchok': 1.0.34
'@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartenv': 5.0.12
'@push.rocks/smartfeed': 1.0.11
'@push.rocks/smartfile': 11.2.0
'@push.rocks/smartjson': 5.0.20
'@push.rocks/smartlog': 3.0.7
'@push.rocks/smartlog-destination-devtools': 1.0.12
'@push.rocks/smartlog-interfaces': 3.0.2
'@push.rocks/smartmanifest': 2.0.2
'@push.rocks/smartmatch': 2.0.0
'@push.rocks/smartmime': 2.0.4
'@push.rocks/smartntml': 2.0.8
'@push.rocks/smartopen': 2.0.0
'@push.rocks/smartpath': 5.0.18
'@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrequest': 2.1.0
'@push.rocks/smartrx': 3.0.7
'@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/webrequest': 3.0.37
'@push.rocks/webstore': 2.0.20
'@tsclass/tsclass': 4.4.4
'@types/express': 4.17.21
body-parser: 1.20.3
cors: 2.8.5
express: 4.21.2
express-force-ssl: 0.3.2
lit: 3.2.1
transitivePeerDependencies:
- '@nuxt/kit'
- react
- supports-color
- vue
'@api.global/typedserver@3.0.74': '@api.global/typedserver@3.0.74':
dependencies: dependencies:
'@api.global/typedrequest': 3.1.10 '@api.global/typedrequest': 3.1.10
'@api.global/typedrequest-interfaces': 3.0.19 '@api.global/typedrequest-interfaces': 3.0.19
'@api.global/typedsocket': 3.0.1 '@api.global/typedsocket': 3.0.1
'@cloudflare/workers-types': 4.20250515.0 '@cloudflare/workers-types': 4.20250517.0
'@design.estate/dees-comms': 1.0.27 '@design.estate/dees-comms': 1.0.27
'@push.rocks/lik': 6.2.2 '@push.rocks/lik': 6.2.2
'@push.rocks/smartchok': 1.0.34 '@push.rocks/smartchok': 1.0.34
@ -4862,7 +4793,7 @@ snapshots:
'@push.rocks/smartfeed': 1.0.11 '@push.rocks/smartfeed': 1.0.11
'@push.rocks/smartfile': 11.2.0 '@push.rocks/smartfile': 11.2.0
'@push.rocks/smartjson': 5.0.20 '@push.rocks/smartjson': 5.0.20
'@push.rocks/smartlog': 3.0.9 '@push.rocks/smartlog': 3.1.2
'@push.rocks/smartlog-destination-devtools': 1.0.12 '@push.rocks/smartlog-destination-devtools': 1.0.12
'@push.rocks/smartlog-interfaces': 3.0.2 '@push.rocks/smartlog-interfaces': 3.0.2
'@push.rocks/smartmanifest': 2.0.2 '@push.rocks/smartmanifest': 2.0.2
@ -4881,7 +4812,7 @@ snapshots:
'@push.rocks/webrequest': 3.0.37 '@push.rocks/webrequest': 3.0.37
'@push.rocks/webstore': 2.0.20 '@push.rocks/webstore': 2.0.20
'@tsclass/tsclass': 8.2.1 '@tsclass/tsclass': 8.2.1
'@types/express': 5.0.1 '@types/express': 5.0.2
body-parser: 1.20.3 body-parser: 1.20.3
cors: 2.8.5 cors: 2.8.5
express: 4.21.2 express: 4.21.2
@ -4901,8 +4832,8 @@ snapshots:
'@api.global/typedrequest-interfaces': 3.0.19 '@api.global/typedrequest-interfaces': 3.0.19
'@push.rocks/isohash': 2.0.1 '@push.rocks/isohash': 2.0.1
'@push.rocks/smartjson': 5.0.20 '@push.rocks/smartjson': 5.0.20
'@push.rocks/smartrx': 3.0.7 '@push.rocks/smartrx': 3.0.10
'@push.rocks/smartsocket': 2.0.27 '@push.rocks/smartsocket': 2.1.0
'@push.rocks/smartstring': 4.0.15 '@push.rocks/smartstring': 4.0.15
'@push.rocks/smarturl': 3.1.0 '@push.rocks/smarturl': 3.1.0
transitivePeerDependencies: transitivePeerDependencies:
@ -4916,7 +4847,7 @@ snapshots:
'@apiclient.xyz/cloudflare@6.4.1': '@apiclient.xyz/cloudflare@6.4.1':
dependencies: dependencies:
'@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartlog': 3.0.9 '@push.rocks/smartlog': 3.1.2
'@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrequest': 2.1.0 '@push.rocks/smartrequest': 2.1.0
'@push.rocks/smartstring': 4.0.15 '@push.rocks/smartstring': 4.0.15
@ -5766,13 +5697,11 @@ snapshots:
'@babel/helper-validator-identifier@7.27.1': {} '@babel/helper-validator-identifier@7.27.1': {}
'@babel/runtime@7.23.4': '@babel/runtime@7.27.0':
dependencies: dependencies:
regenerator-runtime: 0.14.1 regenerator-runtime: 0.14.1
'@cloudflare/workers-types@4.20250303.0': {} '@cloudflare/workers-types@4.20250517.0': {}
'@cloudflare/workers-types@4.20250515.0': {}
'@colors/colors@1.6.0': {} '@colors/colors@1.6.0': {}
@ -5791,7 +5720,7 @@ snapshots:
'@api.global/typedrequest': 3.1.10 '@api.global/typedrequest': 3.1.10
'@api.global/typedrequest-interfaces': 3.0.19 '@api.global/typedrequest-interfaces': 3.0.19
'@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartdelay': 3.0.5
broadcast-channel: 7.0.0 broadcast-channel: 7.1.0
'@design.estate/dees-domtools@2.3.2': '@design.estate/dees-domtools@2.3.2':
dependencies: dependencies:
@ -5803,15 +5732,15 @@ snapshots:
'@push.rocks/smartmarkdown': 3.0.3 '@push.rocks/smartmarkdown': 3.0.3
'@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrouter': 1.3.2 '@push.rocks/smartrouter': 1.3.2
'@push.rocks/smartrx': 3.0.7 '@push.rocks/smartrx': 3.0.10
'@push.rocks/smartstate': 2.0.19 '@push.rocks/smartstate': 2.0.19
'@push.rocks/smartstring': 4.0.15 '@push.rocks/smartstring': 4.0.15
'@push.rocks/smarturl': 3.1.0 '@push.rocks/smarturl': 3.1.0
'@push.rocks/webrequest': 3.0.37 '@push.rocks/webrequest': 3.0.37
'@push.rocks/websetup': 3.0.19 '@push.rocks/websetup': 3.0.19
'@push.rocks/webstore': 2.0.20 '@push.rocks/webstore': 2.0.20
lenis: 1.2.3 lenis: 1.3.3
lit: 3.2.1 lit: 3.3.0
sweet-scroll: 4.0.0 sweet-scroll: 4.0.0
transitivePeerDependencies: transitivePeerDependencies:
- '@nuxt/kit' - '@nuxt/kit'
@ -5819,12 +5748,12 @@ snapshots:
- supports-color - supports-color
- vue - vue
'@design.estate/dees-element@2.0.39': '@design.estate/dees-element@2.0.42':
dependencies: dependencies:
'@design.estate/dees-domtools': 2.3.2 '@design.estate/dees-domtools': 2.3.2
'@push.rocks/isounique': 1.0.5 '@push.rocks/isounique': 1.0.5
'@push.rocks/smartrx': 3.0.7 '@push.rocks/smartrx': 3.0.10
lit: 3.2.1 lit: 3.3.0
transitivePeerDependencies: transitivePeerDependencies:
- '@nuxt/kit' - '@nuxt/kit'
- react - react
@ -6005,7 +5934,7 @@ snapshots:
'@push.rocks/smartcli': 4.0.11 '@push.rocks/smartcli': 4.0.11
'@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartfile': 11.2.0 '@push.rocks/smartfile': 11.2.0
'@push.rocks/smartlog': 3.0.9 '@push.rocks/smartlog': 3.1.2
'@push.rocks/smartlog-destination-local': 9.0.2 '@push.rocks/smartlog-destination-local': 9.0.2
'@push.rocks/smartpath': 5.0.18 '@push.rocks/smartpath': 5.0.18
'@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartpromise': 4.2.3
@ -6036,19 +5965,28 @@ snapshots:
'@push.rocks/smartshell': 3.2.3 '@push.rocks/smartshell': 3.2.3
tsx: 4.19.3 tsx: 4.19.3
'@git.zone/tstest@1.2.0(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4)(typescript@5.8.3)': '@git.zone/tstest@1.9.0(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4)(typescript@5.8.3)':
dependencies: dependencies:
'@api.global/typedserver': 3.0.74 '@api.global/typedserver': 3.0.74
'@git.zone/tsbundle': 2.2.5 '@git.zone/tsbundle': 2.2.5
'@git.zone/tsrun': 1.3.3 '@git.zone/tsrun': 1.3.3
'@push.rocks/consolecolor': 2.0.2 '@push.rocks/consolecolor': 2.0.2
'@push.rocks/qenv': 6.1.0
'@push.rocks/smartbrowser': 2.0.8(typescript@5.8.3) '@push.rocks/smartbrowser': 2.0.8(typescript@5.8.3)
'@push.rocks/smartcrypto': 2.0.4
'@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartenv': 5.0.12
'@push.rocks/smartexpect': 2.4.2
'@push.rocks/smartfile': 11.2.0 '@push.rocks/smartfile': 11.2.0
'@push.rocks/smartlog': 3.0.9 '@push.rocks/smartjson': 5.0.20
'@push.rocks/smartlog': 3.1.2
'@push.rocks/smartmongo': 2.0.12(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4)
'@push.rocks/smartpath': 5.0.18
'@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrequest': 2.1.0
'@push.rocks/smarts3': 2.2.5
'@push.rocks/smartshell': 3.2.3 '@push.rocks/smartshell': 3.2.3
'@push.rocks/tapbundle': 6.0.3(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4) '@push.rocks/smarttime': 4.1.1
'@types/ws': 8.18.1 '@types/ws': 8.18.1
figures: 6.1.0 figures: 6.1.0
ws: 8.18.2 ws: 8.18.2
@ -6385,7 +6323,7 @@ snapshots:
'@push.rocks/smartlog': 3.0.7 '@push.rocks/smartlog': 3.0.7
'@push.rocks/smartpath': 5.0.18 '@push.rocks/smartpath': 5.0.18
'@push.rocks/smartacme@7.3.3(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4)': '@push.rocks/smartacme@7.3.4(@aws-sdk/credential-providers@3.798.0)(socks@2.8.4)':
dependencies: dependencies:
'@api.global/typedserver': 3.0.74 '@api.global/typedserver': 3.0.74
'@apiclient.xyz/cloudflare': 6.4.1 '@apiclient.xyz/cloudflare': 6.4.1
@ -6394,7 +6332,7 @@ snapshots:
'@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartdns': 6.2.2 '@push.rocks/smartdns': 6.2.2
'@push.rocks/smartfile': 11.2.0 '@push.rocks/smartfile': 11.2.0
'@push.rocks/smartlog': 3.0.9 '@push.rocks/smartlog': 3.1.2
'@push.rocks/smartnetwork': 4.0.1 '@push.rocks/smartnetwork': 4.0.1
'@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrequest': 2.1.0 '@push.rocks/smartrequest': 2.1.0
@ -6407,8 +6345,6 @@ snapshots:
- '@aws-sdk/credential-providers' - '@aws-sdk/credential-providers'
- '@mongodb-js/zstd' - '@mongodb-js/zstd'
- '@nuxt/kit' - '@nuxt/kit'
- aws-crt
- bufferutil
- encoding - encoding
- gcp-metadata - gcp-metadata
- kerberos - kerberos
@ -6417,7 +6353,6 @@ snapshots:
- snappy - snappy
- socks - socks
- supports-color - supports-color
- utf-8-validate
- vue - vue
'@push.rocks/smartarchive@3.0.8': '@push.rocks/smartarchive@3.0.8':
@ -6482,7 +6417,7 @@ snapshots:
dependencies: dependencies:
'@push.rocks/lik': 6.2.2 '@push.rocks/lik': 6.2.2
'@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrx': 3.0.7 '@push.rocks/smartrx': 3.0.10
'@tempfix/watcher': 2.3.0 '@tempfix/watcher': 2.3.0
'@push.rocks/smartcli@4.0.11': '@push.rocks/smartcli@4.0.11':
@ -6670,6 +6605,19 @@ snapshots:
'@tsclass/tsclass': 9.2.0 '@tsclass/tsclass': 9.2.0
ora: 8.2.0 ora: 8.2.0
'@push.rocks/smartlog@3.1.2':
dependencies:
'@api.global/typedrequest-interfaces': 3.0.19
'@push.rocks/consolecolor': 2.0.2
'@push.rocks/isounique': 1.0.5
'@push.rocks/smartclickhouse': 2.0.17
'@push.rocks/smartfile': 11.2.0
'@push.rocks/smarthash': 3.0.4
'@push.rocks/smartpromise': 4.2.3
'@push.rocks/smarttime': 4.1.1
'@push.rocks/webrequest': 3.0.37
'@tsclass/tsclass': 9.2.0
'@push.rocks/smartmanifest@2.0.2': {} '@push.rocks/smartmanifest@2.0.2': {}
'@push.rocks/smartmarkdown@3.0.3': '@push.rocks/smartmarkdown@3.0.3':
@ -6757,10 +6705,10 @@ snapshots:
'@push.rocks/smartntml@2.0.8': '@push.rocks/smartntml@2.0.8':
dependencies: dependencies:
'@design.estate/dees-element': 2.0.39 '@design.estate/dees-element': 2.0.42
'@happy-dom/global-registrator': 15.11.7 '@happy-dom/global-registrator': 15.11.7
'@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartpromise': 4.2.3
fake-indexeddb: 6.0.0 fake-indexeddb: 6.0.1
transitivePeerDependencies: transitivePeerDependencies:
- '@nuxt/kit' - '@nuxt/kit'
- react - react
@ -6789,7 +6737,7 @@ snapshots:
'@push.rocks/smartpuppeteer': 2.0.5(typescript@5.8.3) '@push.rocks/smartpuppeteer': 2.0.5(typescript@5.8.3)
'@push.rocks/smartunique': 3.0.9 '@push.rocks/smartunique': 3.0.9
'@tsclass/tsclass': 4.4.4 '@tsclass/tsclass': 4.4.4
'@types/express': 5.0.1 '@types/express': 5.0.2
express: 4.21.2 express: 4.21.2
pdf-lib: 1.17.1 pdf-lib: 1.17.1
pdf2json: 3.1.5 pdf2json: 3.1.5
@ -6830,7 +6778,7 @@ snapshots:
'@push.rocks/smartrouter@1.3.2': '@push.rocks/smartrouter@1.3.2':
dependencies: dependencies:
'@push.rocks/lik': 6.2.2 '@push.rocks/lik': 6.2.2
'@push.rocks/smartrx': 3.0.7 '@push.rocks/smartrx': 3.0.10
path-to-regexp: 8.2.0 path-to-regexp: 8.2.0
'@push.rocks/smartrx@3.0.10': '@push.rocks/smartrx@3.0.10':
@ -6873,23 +6821,23 @@ snapshots:
'@push.rocks/webrequest': 3.0.37 '@push.rocks/webrequest': 3.0.37
'@tsclass/tsclass': 4.4.4 '@tsclass/tsclass': 4.4.4
'@push.rocks/smartsocket@2.0.27': '@push.rocks/smartsocket@2.1.0':
dependencies: dependencies:
'@api.global/typedrequest-interfaces': 3.0.19 '@api.global/typedrequest-interfaces': 3.0.19
'@api.global/typedserver': 3.0.68 '@api.global/typedserver': 3.0.74
'@push.rocks/isohash': 2.0.1 '@push.rocks/isohash': 2.0.1
'@push.rocks/isounique': 1.0.5 '@push.rocks/isounique': 1.0.5
'@push.rocks/lik': 6.2.2 '@push.rocks/lik': 6.2.2
'@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartenv': 5.0.12 '@push.rocks/smartenv': 5.0.12
'@push.rocks/smartjson': 5.0.20 '@push.rocks/smartjson': 5.0.20
'@push.rocks/smartlog': 3.0.7 '@push.rocks/smartlog': 3.1.2
'@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrx': 3.0.7 '@push.rocks/smartrx': 3.0.10
'@push.rocks/smarttime': 4.1.1 '@push.rocks/smarttime': 4.1.1
engine.io: 6.5.4 engine.io: 6.6.4
socket.io: 4.7.5 socket.io: 4.8.1
socket.io-client: 4.7.5 socket.io-client: 4.8.1
transitivePeerDependencies: transitivePeerDependencies:
- '@nuxt/kit' - '@nuxt/kit'
- bufferutil - bufferutil
@ -6913,7 +6861,7 @@ snapshots:
'@push.rocks/lik': 6.2.2 '@push.rocks/lik': 6.2.2
'@push.rocks/smartjson': 5.0.20 '@push.rocks/smartjson': 5.0.20
'@push.rocks/smartpromise': 4.2.3 '@push.rocks/smartpromise': 4.2.3
'@push.rocks/smartrx': 3.0.7 '@push.rocks/smartrx': 3.0.10
'@push.rocks/webstore': 2.0.20 '@push.rocks/webstore': 2.0.20
'@push.rocks/smartstream@2.0.8': '@push.rocks/smartstream@2.0.8':
@ -7877,8 +7825,6 @@ snapshots:
'@types/convert-source-map@2.0.3': {} '@types/convert-source-map@2.0.3': {}
'@types/cookie@0.4.1': {}
'@types/cookies@0.9.0': '@types/cookies@0.9.0':
dependencies: dependencies:
'@types/connect': 3.4.38 '@types/connect': 3.4.38
@ -7886,7 +7832,7 @@ snapshots:
'@types/keygrip': 1.0.6 '@types/keygrip': 1.0.6
'@types/node': 22.15.18 '@types/node': 22.15.18
'@types/cors@2.8.17': '@types/cors@2.8.18':
dependencies: dependencies:
'@types/node': 22.15.18 '@types/node': 22.15.18
@ -7910,13 +7856,6 @@ snapshots:
dependencies: dependencies:
'@types/bn.js': 5.1.6 '@types/bn.js': 5.1.6
'@types/express-serve-static-core@4.19.6':
dependencies:
'@types/node': 22.15.18
'@types/qs': 6.9.18
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
'@types/express-serve-static-core@5.0.6': '@types/express-serve-static-core@5.0.6':
dependencies: dependencies:
'@types/node': 22.15.18 '@types/node': 22.15.18
@ -7924,13 +7863,6 @@ snapshots:
'@types/range-parser': 1.2.7 '@types/range-parser': 1.2.7
'@types/send': 0.17.4 '@types/send': 0.17.4
'@types/express@4.17.21':
dependencies:
'@types/body-parser': 1.19.5
'@types/express-serve-static-core': 4.19.6
'@types/qs': 6.9.18
'@types/serve-static': 1.15.7
'@types/express@5.0.0': '@types/express@5.0.0':
dependencies: dependencies:
'@types/body-parser': 1.19.5 '@types/body-parser': 1.19.5
@ -7938,7 +7870,7 @@ snapshots:
'@types/qs': 6.9.18 '@types/qs': 6.9.18
'@types/serve-static': 1.15.7 '@types/serve-static': 1.15.7
'@types/express@5.0.1': '@types/express@5.0.2':
dependencies: dependencies:
'@types/body-parser': 1.19.5 '@types/body-parser': 1.19.5
'@types/express-serve-static-core': 5.0.6 '@types/express-serve-static-core': 5.0.6
@ -8396,9 +8328,9 @@ snapshots:
dependencies: dependencies:
fill-range: 7.1.1 fill-range: 7.1.1
broadcast-channel@7.0.0: broadcast-channel@7.1.0:
dependencies: dependencies:
'@babel/runtime': 7.23.4 '@babel/runtime': 7.27.0
oblivious-set: 1.4.0 oblivious-set: 1.4.0
p-queue: 6.6.2 p-queue: 6.6.2
unload: 2.4.1 unload: 2.4.1
@ -8631,10 +8563,10 @@ snapshots:
cookie-signature@1.0.6: {} cookie-signature@1.0.6: {}
cookie@0.4.2: {}
cookie@0.7.1: {} cookie@0.7.1: {}
cookie@0.7.2: {}
cookies@0.9.1: cookies@0.9.1:
dependencies: dependencies:
depd: 2.0.0 depd: 2.0.0
@ -8819,13 +8751,13 @@ snapshots:
dependencies: dependencies:
once: 1.4.0 once: 1.4.0
engine.io-client@6.5.4: engine.io-client@6.6.3:
dependencies: dependencies:
'@socket.io/component-emitter': 3.1.2 '@socket.io/component-emitter': 3.1.2
debug: 4.3.7 debug: 4.3.7
engine.io-parser: 5.2.3 engine.io-parser: 5.2.3
ws: 8.17.1 ws: 8.17.1
xmlhttprequest-ssl: 2.0.0 xmlhttprequest-ssl: 2.1.2
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
- supports-color - supports-color
@ -8833,18 +8765,17 @@ snapshots:
engine.io-parser@5.2.3: {} engine.io-parser@5.2.3: {}
engine.io@6.5.4: engine.io@6.6.4:
dependencies: dependencies:
'@types/cookie': 0.4.1 '@types/cors': 2.8.18
'@types/cors': 2.8.17
'@types/node': 22.15.18 '@types/node': 22.15.18
accepts: 1.3.8 accepts: 1.3.8
base64id: 2.0.0 base64id: 2.0.0
cookie: 0.4.2 cookie: 0.7.2
cors: 2.8.5 cors: 2.8.5
debug: 4.3.7 debug: 4.3.7
engine.io-parser: 5.2.3 engine.io-parser: 5.2.3
ws: 8.11.0 ws: 8.17.1
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
- supports-color - supports-color
@ -9043,7 +8974,7 @@ snapshots:
fake-indexeddb@5.0.2: {} fake-indexeddb@5.0.2: {}
fake-indexeddb@6.0.0: {} fake-indexeddb@6.0.1: {}
fast-deep-equal@3.1.3: {} fast-deep-equal@3.1.3: {}
@ -9377,7 +9308,7 @@ snapshots:
hast-util-whitespace: 3.0.0 hast-util-whitespace: 3.0.0
html-void-elements: 3.0.0 html-void-elements: 3.0.0
mdast-util-to-hast: 13.2.0 mdast-util-to-hast: 13.2.0
property-information: 7.0.0 property-information: 7.1.0
space-separated-tokens: 2.0.2 space-separated-tokens: 2.0.2
stringify-entities: 4.0.4 stringify-entities: 4.0.4
zwitch: 2.0.4 zwitch: 2.0.4
@ -9759,7 +9690,7 @@ snapshots:
kuler@2.0.0: {} kuler@2.0.0: {}
lenis@1.2.3: {} lenis@1.3.3: {}
lines-and-columns@1.2.4: {} lines-and-columns@1.2.4: {}
@ -10219,7 +10150,7 @@ snapshots:
micromark@4.0.2: micromark@4.0.2:
dependencies: dependencies:
'@types/debug': 4.1.12 '@types/debug': 4.1.12
debug: 4.4.0 debug: 4.4.1
decode-named-character-reference: 1.1.0 decode-named-character-reference: 1.1.0
devlop: 1.1.0 devlop: 1.1.0
micromark-core-commonmark: 2.0.3 micromark-core-commonmark: 2.0.3
@ -10618,7 +10549,7 @@ snapshots:
progress@2.0.3: {} progress@2.0.3: {}
property-information@7.0.0: {} property-information@7.1.0: {}
proto-list@1.2.4: {} proto-list@1.2.4: {}
@ -11008,11 +10939,11 @@ snapshots:
- supports-color - supports-color
- utf-8-validate - utf-8-validate
socket.io-client@4.7.5: socket.io-client@4.8.1:
dependencies: dependencies:
'@socket.io/component-emitter': 3.1.2 '@socket.io/component-emitter': 3.1.2
debug: 4.3.7 debug: 4.3.7
engine.io-client: 6.5.4 engine.io-client: 6.6.3
socket.io-parser: 4.2.4 socket.io-parser: 4.2.4
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
@ -11026,13 +10957,13 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
socket.io@4.7.5: socket.io@4.8.1:
dependencies: dependencies:
accepts: 1.3.8 accepts: 1.3.8
base64id: 2.0.0 base64id: 2.0.0
cors: 2.8.5 cors: 2.8.5
debug: 4.3.7 debug: 4.3.7
engine.io: 6.5.4 engine.io: 6.6.4
socket.io-adapter: 2.5.5 socket.io-adapter: 2.5.5
socket.io-parser: 4.2.4 socket.io-parser: 4.2.4
transitivePeerDependencies: transitivePeerDependencies:
@ -11454,8 +11385,6 @@ snapshots:
ws@7.5.10: {} ws@7.5.10: {}
ws@8.11.0: {}
ws@8.17.1: {} ws@8.17.1: {}
ws@8.18.2: {} ws@8.18.2: {}
@ -11478,7 +11407,7 @@ snapshots:
xmlbuilder@11.0.1: {} xmlbuilder@11.0.1: {}
xmlhttprequest-ssl@2.0.0: {} xmlhttprequest-ssl@2.1.2: {}
xtend@4.0.2: {} xtend@4.0.2: {}

View File

@ -0,0 +1,86 @@
# ACME/Certificate Simplification Summary
## What Was Done
We successfully implemented the ACME/Certificate simplification plan for SmartProxy:
### 1. Created New Certificate Management System
- **SmartCertManager** (`ts/proxies/smart-proxy/certificate-manager.ts`): A unified certificate manager that handles both ACME and static certificates
- **CertStore** (`ts/proxies/smart-proxy/cert-store.ts`): File-based certificate storage system
### 2. Updated Route Types
- Added `IRouteAcme` interface for ACME configuration
- Added `IStaticResponse` interface for static route responses
- Extended `IRouteTls` with comprehensive certificate options
- Added `handler` property to `IRouteAction` for static routes
### 3. Implemented Static Route Handler
- Added `handleStaticAction` method to route-connection-handler.ts
- Added support for 'static' route type in the action switch statement
- Implemented proper HTTP response formatting
### 4. Updated SmartProxy Integration
- Removed old CertProvisioner and Port80Handler dependencies
- Added `initializeCertificateManager` method
- Updated `start` and `stop` methods to use new certificate manager
- Added `provisionCertificate`, `renewCertificate`, and `getCertificateStatus` methods
### 5. Simplified NetworkProxyBridge
- Removed all certificate-related logic
- Simplified to only handle network proxy forwarding
- Updated to use port-based matching for network proxy routes
### 6. Cleaned Up HTTP Module
- Removed exports for port80 subdirectory
- Kept only router and redirect functionality
### 7. Created Tests
- Created simplified test for certificate functionality
- Test demonstrates static route handling and basic certificate configuration
## Key Improvements
1. **No Backward Compatibility**: Clean break from legacy implementations
2. **Direct SmartAcme Integration**: Uses @push.rocks/smartacme directly without custom wrappers
3. **Route-Based ACME Challenges**: No separate HTTP server needed
4. **Simplified Architecture**: Removed unnecessary abstraction layers
5. **Unified Configuration**: Certificate configuration is part of route definitions
## Configuration Example
```typescript
const proxy = new SmartProxy({
routes: [{
name: 'secure-site',
match: { ports: 443, domains: 'example.com' },
action: {
type: 'forward',
target: { host: 'backend', port: 8080 },
tls: {
mode: 'terminate',
certificate: 'auto',
acme: {
email: 'admin@example.com',
useProduction: true
}
}
}
}]
});
```
## Next Steps
1. Remove old certificate module and port80 directory
2. Update documentation with new configuration format
3. Test with real ACME certificates in staging environment
4. Add more comprehensive tests for renewal and edge cases
The implementation is complete and builds successfully!

View File

@ -0,0 +1,65 @@
import { SmartProxy } from '../ts/proxies/smart-proxy/index.js';
import { expect, tap } from '@push.rocks/tapbundle';
tap.test('should create SmartProxy with certificate routes', async () => {
const proxy = new SmartProxy({
routes: [{
name: 'test-route',
match: { ports: 8443, domains: 'test.example.com' },
action: {
type: 'forward',
target: { host: 'localhost', port: 8080 },
tls: {
mode: 'terminate',
certificate: 'auto',
acme: {
email: 'test@example.com',
useProduction: false
}
}
}
}]
});
expect(proxy).toBeDefined();
expect(proxy.settings.routes.length).toEqual(1);
});
tap.test('should handle static route type', async () => {
// Create a test route with static handler
const testResponse = {
status: 200,
headers: { 'Content-Type': 'text/plain' },
body: 'Hello from static route'
};
const proxy = new SmartProxy({
routes: [{
name: 'static-test',
match: { ports: 8080, path: '/test' },
action: {
type: 'static',
handler: async () => testResponse
}
}]
});
const route = proxy.settings.routes[0];
expect(route.action.type).toEqual('static');
expect(route.action.handler).toBeDefined();
// Test the handler
const result = await route.action.handler!({
port: 8080,
path: '/test',
clientIp: '127.0.0.1',
serverIp: '127.0.0.1',
isTls: false,
timestamp: Date.now(),
connectionId: 'test-123'
});
expect(result).toEqual(testResponse);
});
tap.start();

View File

@ -69,16 +69,13 @@ export class SmartCertManager {
); );
if (hasAcmeRoutes && this.acmeOptions?.email) { if (hasAcmeRoutes && this.acmeOptions?.email) {
// Create SmartAcme instance with our challenge handler // Create SmartAcme instance with built-in MemoryCertManager
this.smartAcme = new plugins.smartacme.SmartAcme({ this.smartAcme = new plugins.smartacme.SmartAcme({
accountEmail: this.acmeOptions.email, accountEmail: this.acmeOptions.email,
environment: this.acmeOptions.useProduction ? 'production' : 'integration', environment: this.acmeOptions.useProduction ? 'production' : 'integration',
certManager: new InMemoryCertManager() certManager: new plugins.smartacme.certmanagers.MemoryCertManager()
}); });
// The challenge handler is now embedded in the SmartAcme config above
// SmartAcme will handle the challenge internally
await this.smartAcme.start(); await this.smartAcme.start();
} }
@ -163,13 +160,18 @@ export class SmartCertManager {
// Use smartacme to get certificate // Use smartacme to get certificate
const cert = await this.smartAcme.getCertificateForDomain(primaryDomain); const cert = await this.smartAcme.getCertificateForDomain(primaryDomain);
// smartacme returns a Cert object with these properties // SmartAcme's Cert object has these properties:
// - certPem: The certificate PEM string
// - privateKeyPem: The private key PEM string
// - csr: Certificate signing request
// - validUntil: Expiry date as Date object
// - domainName: The domain name
const certData: ICertificateData = { const certData: ICertificateData = {
cert: cert.publicKey, cert: cert.certPem,
key: cert.privateKey, key: cert.privateKeyPem,
ca: cert.publicKey, // Use same as cert for now ca: cert.certPem, // Use same as cert for now
expiryDate: new Date(Date.now() + 90 * 24 * 60 * 60 * 1000), // 90 days expiryDate: cert.validUntil,
issueDate: new Date() issueDate: new Date() // SmartAcme doesn't provide issue date
}; };
await this.certStore.saveCertificate(routeName, certData); await this.certStore.saveCertificate(routeName, certData);
@ -473,45 +475,3 @@ export class SmartCertManager {
} }
} }
/**
* Simple in-memory certificate manager for SmartAcme
* We only use this to satisfy SmartAcme's interface - actual storage is handled by CertStore
*/
class InMemoryCertManager implements plugins.smartacme.ICertManager {
private store = new Map<string, any>();
// Required methods from ICertManager interface
public async init(): Promise<void> {
// Initialization if needed
}
public async retrieveCertificate(domainName: string): Promise<plugins.smartacme.Cert | null> {
return this.store.get(domainName) || null;
}
public async storeCertificate(cert: plugins.smartacme.Cert): Promise<void> {
this.store.set(cert.domainName, cert);
}
public async deleteCertificate(domainName: string): Promise<void> {
this.store.delete(domainName);
}
public async getCertificates(): Promise<plugins.smartacme.Cert[]> {
return Array.from(this.store.values());
}
public async stop(): Promise<void> {
// Cleanup if needed
}
public async close(): Promise<void> {
// Required by interface
await this.stop();
}
public async wipe(): Promise<void> {
// Required by interface
this.store.clear();
}
}