update
This commit is contained in:
		| @@ -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
									
									
									
								
							
							
						
						
									
										317
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							| @@ -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: {} | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										86
									
								
								summary-acme-simplification.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								summary-acme-simplification.md
									
									
									
									
									
										Normal 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! | ||||||
							
								
								
									
										65
									
								
								test/test.certificate-simple.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								test/test.certificate-simple.ts
									
									
									
									
									
										Normal 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(); | ||||||
| @@ -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(); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
		Reference in New Issue
	
	Block a user