refactor(DockerHost): Enhance request handling with fluent API and improved response parsing
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							| @@ -39,15 +39,15 @@ | ||||
|     "@push.rocks/smartfile": "^11.2.7", | ||||
|     "@push.rocks/smartjson": "^5.0.20", | ||||
|     "@push.rocks/smartlog": "^3.1.8", | ||||
|     "@push.rocks/smartnetwork": "^3.0.0", | ||||
|     "@push.rocks/smartpath": "^5.0.18", | ||||
|     "@push.rocks/smartnetwork": "^4.1.2", | ||||
|     "@push.rocks/smartpath": "^6.0.0", | ||||
|     "@push.rocks/smartpromise": "^4.2.3", | ||||
|     "@push.rocks/smartrequest": "^2.0.22", | ||||
|     "@push.rocks/smartrequest": "^4.3.0", | ||||
|     "@push.rocks/smartstream": "^3.2.5", | ||||
|     "@push.rocks/smartstring": "^4.0.15", | ||||
|     "@push.rocks/smartunique": "^3.0.9", | ||||
|     "@push.rocks/smartversion": "^3.0.5", | ||||
|     "@tsclass/tsclass": "^4.1.2", | ||||
|     "@tsclass/tsclass": "^9.2.0", | ||||
|     "rxjs": "^7.8.2" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|   | ||||
							
								
								
									
										172
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										172
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							| @@ -27,17 +27,17 @@ importers: | ||||
|         specifier: ^3.1.8 | ||||
|         version: 3.1.8 | ||||
|       '@push.rocks/smartnetwork': | ||||
|         specifier: ^3.0.0 | ||||
|         version: 3.0.2 | ||||
|         specifier: ^4.1.2 | ||||
|         version: 4.1.2 | ||||
|       '@push.rocks/smartpath': | ||||
|         specifier: ^5.0.18 | ||||
|         version: 5.0.18 | ||||
|         specifier: ^6.0.0 | ||||
|         version: 6.0.0 | ||||
|       '@push.rocks/smartpromise': | ||||
|         specifier: ^4.2.3 | ||||
|         version: 4.2.3 | ||||
|       '@push.rocks/smartrequest': | ||||
|         specifier: ^2.0.22 | ||||
|         version: 2.0.22 | ||||
|         specifier: ^4.3.0 | ||||
|         version: 4.3.0 | ||||
|       '@push.rocks/smartstream': | ||||
|         specifier: ^3.2.5 | ||||
|         version: 3.2.5 | ||||
| @@ -51,8 +51,8 @@ importers: | ||||
|         specifier: ^3.0.5 | ||||
|         version: 3.0.5 | ||||
|       '@tsclass/tsclass': | ||||
|         specifier: ^4.1.2 | ||||
|         version: 4.1.2 | ||||
|         specifier: ^9.2.0 | ||||
|         version: 9.2.0 | ||||
|       rxjs: | ||||
|         specifier: ^7.8.2 | ||||
|         version: 7.8.2 | ||||
| @@ -679,9 +679,6 @@ packages: | ||||
|   '@push.rocks/smartmongo@2.0.12': | ||||
|     resolution: {integrity: sha512-NglYiO14BikxnlvW6JF18FtopBtaWQEGAtPxHmmSCbyhU8Mi0aEFO7VgCasE9Kguba/wcR597qhcDEdcpBg1eQ==} | ||||
|  | ||||
|   '@push.rocks/smartnetwork@3.0.2': | ||||
|     resolution: {integrity: sha512-s6CNGzQ1n/d/6cOKXbxeW6/tO//dr1woLqI01g7XhqTriw0nsm2G2kWaZh2J0VOguGNWBgQVCIpR0LjdRNWb3g==} | ||||
|  | ||||
|   '@push.rocks/smartnetwork@4.1.2': | ||||
|     resolution: {integrity: sha512-TjucG72ooHgzAUpNu2LAv4iFoettmZq2aEWhhzIa7AKcOvt4yxsk3Vl73guhKRohTfhdRauPcH5OHISLUHJbYA==} | ||||
|  | ||||
| @@ -697,8 +694,8 @@ packages: | ||||
|   '@push.rocks/smartopen@2.0.0': | ||||
|     resolution: {integrity: sha512-eVT0GhtQ2drb95j/kktYst/Toh1zCwCqjTJFYtaYFUnnBnBUajPtBZDFnPQo01DN8JxoeCTo8jggq+PCvzcfww==} | ||||
|  | ||||
|   '@push.rocks/smartpath@5.0.18': | ||||
|     resolution: {integrity: sha512-kIyRTlOoeEth5b4Qp8KPUxNOGNdvhb2aD0hbHfF3oGTQ0xnDdgB1l03/4bIoapHG48OrTgh4uQ5tUorykgdOzw==} | ||||
|   '@push.rocks/smartpath@5.1.0': | ||||
|     resolution: {integrity: sha512-pJ4UGATHV/C6Dw5DU0D3MJaPMASlKAgeS+Hl9dkhD2ceYArn86Ky3Z/g7LNj40Oz6cUe77/AP1chztmJZISrpw==} | ||||
|  | ||||
|   '@push.rocks/smartpath@6.0.0': | ||||
|     resolution: {integrity: sha512-r94u1MbBaIOSy+517PZp2P7SuZPSe9LkwJ8l3dXQKHeIOri/zDxk/RQPiFM+j4N9301ztkRyhvRj7xgUDroOsg==} | ||||
| @@ -715,11 +712,11 @@ packages: | ||||
|   '@push.rocks/smartpuppeteer@2.0.5': | ||||
|     resolution: {integrity: sha512-yK/qSeWVHIGWRp3c8S5tfdGP6WCKllZC4DR8d8CQlEjszOSBmHtlTdyyqOMBZ/BA4kd+eU5f3A1r4K2tGYty1g==} | ||||
|  | ||||
|   '@push.rocks/smartrequest@2.0.22': | ||||
|     resolution: {integrity: sha512-EfgmdEsLtDJ8aNOLOh59ca1NMsiiFz54aoHRigQFQ0cuoUs6phxejIY2FdMoPFn68ubTpkztdL2P4L1/cRYyHg==} | ||||
|   '@push.rocks/smartrequest@2.1.0': | ||||
|     resolution: {integrity: sha512-3eHLTRInHA+u+W98TqJwgTES7rRimBAsJC4JxVNQC3UUezmblAhM5/TIQsEBQTsbjAY8SeQKy6NHzW6iTiaD8w==} | ||||
|  | ||||
|   '@push.rocks/smartrequest@4.2.2': | ||||
|     resolution: {integrity: sha512-OMtSyxvuOw04nRR/97yAF3XLe42QDyuwStQMo2bXrVvXgcriNyn0JFavl0IL5hY6Gb+dyCWgOAUwX7cVZ4DzZg==} | ||||
|   '@push.rocks/smartrequest@4.3.0': | ||||
|     resolution: {integrity: sha512-bFfPOoe1LmNC51/62pvbyO1wg0AzhZu+jU1FZ6/HVkA8tCYQCqSagEL/dfUDCFyOqOKmYJnY/01dsKqKG3Zu5g==} | ||||
|  | ||||
|   '@push.rocks/smartrouter@1.3.3': | ||||
|     resolution: {integrity: sha512-1+xZEnWlhzqLWAaJ1zFNhQ0zgbfCWQl1DBT72LygLxTs+P0K8AwJKgqo/IX6CT55kGCFnPAZIYSbVJlGsgrB0w==} | ||||
| @@ -757,9 +754,6 @@ packages: | ||||
|   '@push.rocks/smartunique@3.0.9': | ||||
|     resolution: {integrity: sha512-q6DYQgT7/dqdWi9HusvtWCjdsFzLFXY9LTtaZV6IYNJt6teZOonoygxTdNt9XLn6niBSbLYrHSKvJNTRH/uK+g==} | ||||
|  | ||||
|   '@push.rocks/smarturl@3.0.7': | ||||
|     resolution: {integrity: sha512-nx4EWjQD9JeO7QVbOsxd1PFeDQYoSQOOOYCZ+r7QWXHLJG52iYzgvJDCQyX6p705HDkYMJWozW2ZzhR22qLKbw==} | ||||
|  | ||||
|   '@push.rocks/smarturl@3.1.0': | ||||
|     resolution: {integrity: sha512-ij73Q4GERojdPSHxAvYKvspimcpAJC6GGQCWsC4b+1sAiOSByjfmkUHK8yiEEOPRU9AeGuyaIVqK6ZzKLEZ3vA==} | ||||
|  | ||||
| @@ -823,10 +817,6 @@ packages: | ||||
|     resolution: {integrity: sha512-PLvBNVeuY9BERNLq3PFDkhnHHc0RpilEGHd4aUI5XRFlZF++LETdLxPbxw+DHbvHlkUf/nep09f7rrL9Tqub1Q==} | ||||
|     deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartmatch | ||||
|  | ||||
|   '@pushrocks/smartping@1.0.8': | ||||
|     resolution: {integrity: sha512-VM2gfS1sTuycj/jHyDa0lDntkPe7/JT0b2kGsy265RkichAJZkoEp3fboRJH/WAdzM8T4Du64JYgZkc8v2HHQg==} | ||||
|     deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartping | ||||
|  | ||||
|   '@pushrocks/smartpromise@3.1.10': | ||||
|     resolution: {integrity: sha512-VeTurbZ1+ZMxBDJk1Y1LV8SN9xLI+oDXKVeCFw41FAGEKOUEqordqFpi6t+7Vhe/TXUZzCVpZ5bXxAxrGf8yTQ==} | ||||
|     deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartpromise | ||||
| @@ -1227,8 +1217,8 @@ packages: | ||||
|   '@tsclass/tsclass@3.0.48': | ||||
|     resolution: {integrity: sha512-hC65UvDlp9qvsl6OcIZXz0JNiWZ0gyzsTzbXpg215sGxopgbkOLCr6E0s4qCTnweYm95gt2AdY95uP7M7kExaQ==} | ||||
|  | ||||
|   '@tsclass/tsclass@4.1.2': | ||||
|     resolution: {integrity: sha512-uMg1IcTU1cP0McXYGwGffoU3asNQHle7bTN0tn6kVXzfNzSwQf4o8v+YQ4VRnUzo4ov6VKcPXqg5OLb2vz977g==} | ||||
|   '@tsclass/tsclass@4.4.4': | ||||
|     resolution: {integrity: sha512-YZOAF+u+r4u5rCev2uUd1KBTBdfyFdtDmcv4wuN+864lMccbdfRICR3SlJwCfYS1lbeV3QNLYGD30wjRXgvCJA==} | ||||
|  | ||||
|   '@tsclass/tsclass@9.2.0': | ||||
|     resolution: {integrity: sha512-A6ULEkQfYgOnCKQVQRt26O7PRzFo4PE2EoD25RAtnuFuVrNwGynYC20Vee2c8KAOyI7nQ/LaREki9KAX4AHOHQ==} | ||||
| @@ -1254,9 +1244,6 @@ packages: | ||||
|   '@types/debug@4.1.12': | ||||
|     resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} | ||||
|  | ||||
|   '@types/default-gateway@3.0.1': | ||||
|     resolution: {integrity: sha512-tpu0hp+AOIzwdAHyZPzLE5pCf9uT0pb+xZ76T4S7MrY2YTVq918Q7Q2VQ3KCVQqYxM7nxuCK/SL3X97jBEIeKQ==} | ||||
|  | ||||
|   '@types/default-gateway@7.2.2': | ||||
|     resolution: {integrity: sha512-35C93fYQlnLKLASkMPoxRvok4fENwB3By9clRLd2I/08n/XRl0pCdf7EB17K5oMMwZu8NBYA8i66jH5r/LYBKA==} | ||||
|  | ||||
| @@ -1403,10 +1390,6 @@ packages: | ||||
|     resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} | ||||
|     engines: {node: '>= 8.0.0'} | ||||
|  | ||||
|   aggregate-error@4.0.1: | ||||
|     resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} | ||||
|     engines: {node: '>=12'} | ||||
|  | ||||
|   ansi-256-colors@1.1.0: | ||||
|     resolution: {integrity: sha1-kQ3lDvzHwJ49gvL4er1rcAwYgYo=} | ||||
|     engines: {node: '>=0.10.0'} | ||||
| @@ -1609,10 +1592,6 @@ packages: | ||||
|     resolution: {integrity: sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=} | ||||
|     engines: {node: '>=4'} | ||||
|  | ||||
|   clean-stack@4.2.0: | ||||
|     resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} | ||||
|     engines: {node: '>=12'} | ||||
|  | ||||
|   cliui@8.0.1: | ||||
|     resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} | ||||
|     engines: {node: '>=12'} | ||||
| @@ -2063,10 +2042,6 @@ packages: | ||||
|     resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} | ||||
|     engines: {node: '>= 14.17'} | ||||
|  | ||||
|   form-data@4.0.0: | ||||
|     resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} | ||||
|     engines: {node: '>= 6'} | ||||
|  | ||||
|   form-data@4.0.4: | ||||
|     resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} | ||||
|     engines: {node: '>= 6'} | ||||
| @@ -2270,10 +2245,6 @@ packages: | ||||
|     resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} | ||||
|     engines: {node: '>=6'} | ||||
|  | ||||
|   indent-string@5.0.0: | ||||
|     resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} | ||||
|     engines: {node: '>=12'} | ||||
|  | ||||
|   inflight@1.0.6: | ||||
|     resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} | ||||
|  | ||||
| @@ -2314,10 +2285,6 @@ packages: | ||||
|     resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} | ||||
|     engines: {node: '>= 0.4'} | ||||
|  | ||||
|   is-ip@4.0.0: | ||||
|     resolution: {integrity: sha512-4B4XA2HEIm/PY+OSpeMBXr8pGWBYbXuHgjMAqrwbLO3CPTCAd9ArEJzBUKGZtk9viY6+aSfadGnWyjY3ydYZkw==} | ||||
|     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} | ||||
|  | ||||
|   is-ip@5.0.1: | ||||
|     resolution: {integrity: sha512-FCsGHdlrOnZQcp0+XT5a+pYowf33itBalCl+7ovNXC/7o5BhIpG14M3OrpPPdBSIQJCm+0M5+9mO7S9VVTTCFw==} | ||||
|     engines: {node: '>=14.16'} | ||||
| @@ -3023,10 +2990,6 @@ packages: | ||||
|   proxy-from-env@1.1.0: | ||||
|     resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} | ||||
|  | ||||
|   public-ip@6.0.2: | ||||
|     resolution: {integrity: sha512-+6bkjnf0yQ4+tZV0zJv1017DiIF7y6R4yg17Mrhhkc25L7dtQtXWHgSCrz9BbLL4OeTFbPK4EALXqJUrwCIWXw==} | ||||
|     engines: {node: '>=14.16'} | ||||
|  | ||||
|   public-ip@7.0.1: | ||||
|     resolution: {integrity: sha512-DdNcqcIbI0wEeCBcqX+bmZpUCvrDMJHXE553zgyG1MZ8S1a/iCCxmK9iTjjql+SpHSv4cZkmRv5/zGYW93AlCw==} | ||||
|     engines: {node: '>=18'} | ||||
| @@ -3369,12 +3332,6 @@ packages: | ||||
|   symbol-tree@3.2.4: | ||||
|     resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} | ||||
|  | ||||
|   systeminformation@5.22.8: | ||||
|     resolution: {integrity: sha512-F1iWQ+PSfOzvLMGh2UXASaWLDq5o+1h1db13Kddl6ojcQ47rsJhpMtRrmBXfTA5QJgutC4KV67YRmXLuroIxrA==} | ||||
|     engines: {node: '>=8.0.0'} | ||||
|     os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] | ||||
|     hasBin: true | ||||
|  | ||||
|   systeminformation@5.27.7: | ||||
|     resolution: {integrity: sha512-saaqOoVEEFaux4v0K8Q7caiauRwjXC4XbD2eH60dxHXbpKxQ8kH9Rf7Jh+nryKpOUSEFxtCdBlSUx0/lO6rwRg==} | ||||
|     engines: {node: '>=8.0.0'} | ||||
| @@ -3460,10 +3417,6 @@ packages: | ||||
|     resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} | ||||
|     engines: {node: '>=12.20'} | ||||
|  | ||||
|   type-fest@4.25.0: | ||||
|     resolution: {integrity: sha512-bRkIGlXsnGBRBQRAY56UXBm//9qH4bmJfFvq83gSz41N282df+fjy8ofcEgc1sM8geNt5cl6mC2g9Fht1cs8Aw==} | ||||
|     engines: {node: '>=16'} | ||||
|  | ||||
|   type-fest@4.41.0: | ||||
|     resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} | ||||
|     engines: {node: '>=16'} | ||||
| @@ -3713,7 +3666,7 @@ snapshots: | ||||
|       '@push.rocks/smartopen': 2.0.0 | ||||
|       '@push.rocks/smartpath': 6.0.0 | ||||
|       '@push.rocks/smartpromise': 4.2.3 | ||||
|       '@push.rocks/smartrequest': 4.2.2 | ||||
|       '@push.rocks/smartrequest': 4.3.0 | ||||
|       '@push.rocks/smartrx': 3.0.10 | ||||
|       '@push.rocks/smartsitemap': 2.0.3 | ||||
|       '@push.rocks/smartstream': 3.2.5 | ||||
| @@ -4410,7 +4363,7 @@ snapshots: | ||||
|       '@push.rocks/smartfile': 11.2.7 | ||||
|       '@push.rocks/smartlog': 3.1.8 | ||||
|       '@push.rocks/smartlog-destination-local': 9.0.2 | ||||
|       '@push.rocks/smartpath': 5.0.18 | ||||
|       '@push.rocks/smartpath': 5.1.0 | ||||
|       '@push.rocks/smartpromise': 4.2.3 | ||||
|       '@push.rocks/smartspawn': 3.0.3 | ||||
|       '@rspack/core': 1.4.11 | ||||
| @@ -4432,7 +4385,7 @@ snapshots: | ||||
|       '@push.rocks/smartlog': 3.1.8 | ||||
|       '@push.rocks/smartnpm': 2.0.6 | ||||
|       '@push.rocks/smartpath': 6.0.0 | ||||
|       '@push.rocks/smartrequest': 4.2.2 | ||||
|       '@push.rocks/smartrequest': 4.3.0 | ||||
|       '@push.rocks/smartshell': 3.3.0 | ||||
|     transitivePeerDependencies: | ||||
|       - aws-crt | ||||
| @@ -4463,7 +4416,7 @@ snapshots: | ||||
|       '@push.rocks/smartmongo': 2.0.12(socks@2.8.7) | ||||
|       '@push.rocks/smartpath': 6.0.0 | ||||
|       '@push.rocks/smartpromise': 4.2.3 | ||||
|       '@push.rocks/smartrequest': 4.2.2 | ||||
|       '@push.rocks/smartrequest': 4.3.0 | ||||
|       '@push.rocks/smarts3': 2.2.6 | ||||
|       '@push.rocks/smartshell': 3.3.0 | ||||
|       '@push.rocks/smarttime': 4.1.1 | ||||
| @@ -4643,12 +4596,12 @@ snapshots: | ||||
|       '@push.rocks/smartexit': 1.0.23 | ||||
|       '@push.rocks/smartfile': 11.2.7 | ||||
|       '@push.rocks/smartjson': 5.0.20 | ||||
|       '@push.rocks/smartpath': 5.0.18 | ||||
|       '@push.rocks/smartpath': 5.1.0 | ||||
|       '@push.rocks/smartpromise': 4.2.3 | ||||
|       '@push.rocks/smartstring': 4.0.15 | ||||
|       '@push.rocks/smartunique': 3.0.9 | ||||
|       '@push.rocks/taskbuffer': 3.1.7 | ||||
|       '@tsclass/tsclass': 4.1.2 | ||||
|       '@tsclass/tsclass': 4.4.4 | ||||
|     transitivePeerDependencies: | ||||
|       - aws-crt | ||||
|  | ||||
| @@ -4695,7 +4648,7 @@ snapshots: | ||||
|       '@push.rocks/smartfile': 11.2.7 | ||||
|       '@push.rocks/smartpath': 6.0.0 | ||||
|       '@push.rocks/smartpromise': 4.2.3 | ||||
|       '@push.rocks/smartrequest': 4.2.2 | ||||
|       '@push.rocks/smartrequest': 4.3.0 | ||||
|       '@push.rocks/smartrx': 3.0.10 | ||||
|       '@push.rocks/smartstream': 3.2.5 | ||||
|       '@push.rocks/smartunique': 3.0.9 | ||||
| @@ -4846,7 +4799,7 @@ snapshots: | ||||
|       '@push.rocks/smartmime': 2.0.4 | ||||
|       '@push.rocks/smartpath': 6.0.0 | ||||
|       '@push.rocks/smartpromise': 4.2.3 | ||||
|       '@push.rocks/smartrequest': 4.2.2 | ||||
|       '@push.rocks/smartrequest': 4.3.0 | ||||
|       '@push.rocks/smartstream': 3.2.5 | ||||
|       '@types/fs-extra': 11.0.4 | ||||
|       '@types/js-yaml': 4.0.9 | ||||
| @@ -4857,7 +4810,7 @@ snapshots: | ||||
|   '@push.rocks/smartguard@3.1.0': | ||||
|     dependencies: | ||||
|       '@push.rocks/smartpromise': 4.2.3 | ||||
|       '@push.rocks/smartrequest': 2.0.22 | ||||
|       '@push.rocks/smartrequest': 2.1.0 | ||||
|  | ||||
|   '@push.rocks/smarthash@3.2.3': | ||||
|     dependencies: | ||||
| @@ -4887,7 +4840,7 @@ snapshots: | ||||
|   '@push.rocks/smartlog-interfaces@3.0.2': | ||||
|     dependencies: | ||||
|       '@api.global/typedrequest-interfaces': 2.0.2 | ||||
|       '@tsclass/tsclass': 4.1.2 | ||||
|       '@tsclass/tsclass': 4.4.4 | ||||
|  | ||||
|   '@push.rocks/smartlog@3.1.8': | ||||
|     dependencies: | ||||
| @@ -4933,7 +4886,7 @@ snapshots: | ||||
|     dependencies: | ||||
|       '@push.rocks/mongodump': 1.1.0(socks@2.8.7) | ||||
|       '@push.rocks/smartdata': 5.16.4(socks@2.8.7) | ||||
|       '@push.rocks/smartpath': 5.0.18 | ||||
|       '@push.rocks/smartpath': 5.1.0 | ||||
|       '@push.rocks/smartpromise': 4.2.3 | ||||
|       mongodb-memory-server: 10.2.0(socks@2.8.7) | ||||
|     transitivePeerDependencies: | ||||
| @@ -4946,16 +4899,6 @@ snapshots: | ||||
|       - socks | ||||
|       - supports-color | ||||
|  | ||||
|   '@push.rocks/smartnetwork@3.0.2': | ||||
|     dependencies: | ||||
|       '@pushrocks/smartping': 1.0.8 | ||||
|       '@pushrocks/smartpromise': 3.1.10 | ||||
|       '@pushrocks/smartstring': 4.0.7 | ||||
|       '@types/default-gateway': 3.0.1 | ||||
|       isopen: 1.3.0 | ||||
|       public-ip: 6.0.2 | ||||
|       systeminformation: 5.22.8 | ||||
|  | ||||
|   '@push.rocks/smartnetwork@4.1.2': | ||||
|     dependencies: | ||||
|       '@push.rocks/smartping': 1.0.8 | ||||
| @@ -4974,7 +4917,7 @@ snapshots: | ||||
|       '@push.rocks/smartfile': 11.2.7 | ||||
|       '@push.rocks/smartpath': 6.0.0 | ||||
|       '@push.rocks/smartpromise': 4.2.3 | ||||
|       '@push.rocks/smartrequest': 4.2.2 | ||||
|       '@push.rocks/smartrequest': 4.3.0 | ||||
|       '@push.rocks/smarttime': 4.1.1 | ||||
|       '@push.rocks/smartversion': 3.0.5 | ||||
|       package-json: 8.1.1 | ||||
| @@ -5003,7 +4946,7 @@ snapshots: | ||||
|     dependencies: | ||||
|       open: 8.4.2 | ||||
|  | ||||
|   '@push.rocks/smartpath@5.0.18': {} | ||||
|   '@push.rocks/smartpath@5.1.0': {} | ||||
|  | ||||
|   '@push.rocks/smartpath@6.0.0': {} | ||||
|  | ||||
| @@ -5049,14 +4992,14 @@ snapshots: | ||||
|       - typescript | ||||
|       - utf-8-validate | ||||
|  | ||||
|   '@push.rocks/smartrequest@2.0.22': | ||||
|   '@push.rocks/smartrequest@2.1.0': | ||||
|     dependencies: | ||||
|       '@push.rocks/smartpromise': 4.2.3 | ||||
|       '@push.rocks/smarturl': 3.0.7 | ||||
|       '@push.rocks/smarturl': 3.1.0 | ||||
|       agentkeepalive: 4.5.0 | ||||
|       form-data: 4.0.0 | ||||
|       form-data: 4.0.4 | ||||
|  | ||||
|   '@push.rocks/smartrequest@4.2.2': | ||||
|   '@push.rocks/smartrequest@4.3.0': | ||||
|     dependencies: | ||||
|       '@push.rocks/smartenv': 5.0.13 | ||||
|       '@push.rocks/smartpath': 6.0.0 | ||||
| @@ -5104,7 +5047,7 @@ snapshots: | ||||
|       '@push.rocks/smartxml': 1.1.1 | ||||
|       '@push.rocks/smartyaml': 2.0.5 | ||||
|       '@push.rocks/webrequest': 3.0.37 | ||||
|       '@tsclass/tsclass': 4.1.2 | ||||
|       '@tsclass/tsclass': 4.4.4 | ||||
|  | ||||
|   '@push.rocks/smartsocket@2.1.0': | ||||
|     dependencies: | ||||
| @@ -5184,8 +5127,6 @@ snapshots: | ||||
|       nanoid: 4.0.2 | ||||
|       uuid: 9.0.1 | ||||
|  | ||||
|   '@push.rocks/smarturl@3.0.7': {} | ||||
|  | ||||
|   '@push.rocks/smarturl@3.1.0': {} | ||||
|  | ||||
|   '@push.rocks/smartversion@3.0.5': | ||||
| @@ -5225,7 +5166,7 @@ snapshots: | ||||
|     dependencies: | ||||
|       '@pushrocks/smartdelay': 3.0.1 | ||||
|       '@pushrocks/smartpromise': 4.0.2 | ||||
|       '@tsclass/tsclass': 4.1.2 | ||||
|       '@tsclass/tsclass': 4.4.4 | ||||
|  | ||||
|   '@push.rocks/webstore@2.0.20': | ||||
|     dependencies: | ||||
| @@ -5291,11 +5232,6 @@ snapshots: | ||||
|     dependencies: | ||||
|       matcher: 5.0.0 | ||||
|  | ||||
|   '@pushrocks/smartping@1.0.8': | ||||
|     dependencies: | ||||
|       '@types/ping': 0.4.4 | ||||
|       ping: 0.4.4 | ||||
|  | ||||
|   '@pushrocks/smartpromise@3.1.10': {} | ||||
|  | ||||
|   '@pushrocks/smartpromise@4.0.2': {} | ||||
| @@ -5791,9 +5727,9 @@ snapshots: | ||||
|     dependencies: | ||||
|       type-fest: 2.19.0 | ||||
|  | ||||
|   '@tsclass/tsclass@4.1.2': | ||||
|   '@tsclass/tsclass@4.4.4': | ||||
|     dependencies: | ||||
|       type-fest: 4.25.0 | ||||
|       type-fest: 4.41.0 | ||||
|  | ||||
|   '@tsclass/tsclass@9.2.0': | ||||
|     dependencies: | ||||
| @@ -5828,8 +5764,6 @@ snapshots: | ||||
|     dependencies: | ||||
|       '@types/ms': 2.1.0 | ||||
|  | ||||
|   '@types/default-gateway@3.0.1': {} | ||||
|  | ||||
|   '@types/default-gateway@7.2.2': {} | ||||
|  | ||||
|   '@types/express-serve-static-core@5.0.7': | ||||
| @@ -5982,11 +5916,6 @@ snapshots: | ||||
|     dependencies: | ||||
|       humanize-ms: 1.2.1 | ||||
|  | ||||
|   aggregate-error@4.0.1: | ||||
|     dependencies: | ||||
|       clean-stack: 4.2.0 | ||||
|       indent-string: 5.0.0 | ||||
|  | ||||
|   ansi-256-colors@1.1.0: {} | ||||
|  | ||||
|   ansi-regex@5.0.1: {} | ||||
| @@ -6183,10 +6112,6 @@ snapshots: | ||||
|  | ||||
|   clean-stack@1.3.0: {} | ||||
|  | ||||
|   clean-stack@4.2.0: | ||||
|     dependencies: | ||||
|       escape-string-regexp: 5.0.0 | ||||
|  | ||||
|   cliui@8.0.1: | ||||
|     dependencies: | ||||
|       string-width: 4.2.3 | ||||
| @@ -6658,12 +6583,6 @@ snapshots: | ||||
|  | ||||
|   form-data-encoder@2.1.4: {} | ||||
|  | ||||
|   form-data@4.0.0: | ||||
|     dependencies: | ||||
|       asynckit: 0.4.0 | ||||
|       combined-stream: 1.0.8 | ||||
|       mime-types: 2.1.35 | ||||
|  | ||||
|   form-data@4.0.4: | ||||
|     dependencies: | ||||
|       asynckit: 0.4.0 | ||||
| @@ -6931,8 +6850,6 @@ snapshots: | ||||
|       parent-module: 1.0.1 | ||||
|       resolve-from: 4.0.0 | ||||
|  | ||||
|   indent-string@5.0.0: {} | ||||
|  | ||||
|   inflight@1.0.6: | ||||
|     dependencies: | ||||
|       once: 1.4.0 | ||||
| @@ -6963,10 +6880,6 @@ snapshots: | ||||
|       has-tostringtag: 1.0.2 | ||||
|       safe-regex-test: 1.1.0 | ||||
|  | ||||
|   is-ip@4.0.0: | ||||
|     dependencies: | ||||
|       ip-regex: 5.0.0 | ||||
|  | ||||
|   is-ip@5.0.1: | ||||
|     dependencies: | ||||
|       ip-regex: 5.0.0 | ||||
| @@ -7830,13 +7743,6 @@ snapshots: | ||||
|  | ||||
|   proxy-from-env@1.1.0: {} | ||||
|  | ||||
|   public-ip@6.0.2: | ||||
|     dependencies: | ||||
|       aggregate-error: 4.0.1 | ||||
|       dns-socket: 4.2.2 | ||||
|       got: 12.6.1 | ||||
|       is-ip: 4.0.0 | ||||
|  | ||||
|   public-ip@7.0.1: | ||||
|     dependencies: | ||||
|       dns-socket: 4.2.2 | ||||
| @@ -8310,8 +8216,6 @@ snapshots: | ||||
|  | ||||
|   symbol-tree@3.2.4: {} | ||||
|  | ||||
|   systeminformation@5.22.8: {} | ||||
|  | ||||
|   systeminformation@5.27.7: {} | ||||
|  | ||||
|   tar-fs@3.1.0: | ||||
| @@ -8402,8 +8306,6 @@ snapshots: | ||||
|  | ||||
|   type-fest@2.19.0: {} | ||||
|  | ||||
|   type-fest@4.25.0: {} | ||||
|  | ||||
|   type-fest@4.41.0: {} | ||||
|  | ||||
|   type-is@1.6.18: | ||||
|   | ||||
| @@ -226,54 +226,143 @@ export class DockerHost { | ||||
|    */ | ||||
|   public async request(methodArg: string, routeArg: string, dataArg = {}) { | ||||
|     const requestUrl = `${this.socketPath}${routeArg}`; | ||||
|     const response = await plugins.smartrequest.request(requestUrl, { | ||||
|       method: methodArg, | ||||
|       headers: { | ||||
|         'Content-Type': 'application/json', | ||||
|         'X-Registry-Auth': this.registryToken, | ||||
|         Host: 'docker.sock', | ||||
|       }, | ||||
|       requestBody: dataArg, | ||||
|       keepAlive: false, | ||||
|     }); | ||||
|     if (response.statusCode !== 200) { | ||||
|       console.log(response.body); | ||||
|      | ||||
|     // Build the request using the fluent API | ||||
|     const smartRequest = plugins.smartrequest.SmartRequest.create() | ||||
|       .url(requestUrl) | ||||
|       .header('Content-Type', 'application/json') | ||||
|       .header('X-Registry-Auth', this.registryToken) | ||||
|       .header('Host', 'docker.sock') | ||||
|       .options({ keepAlive: false }); | ||||
|      | ||||
|     // Add body for methods that support it | ||||
|     if (dataArg && Object.keys(dataArg).length > 0) { | ||||
|       smartRequest.json(dataArg); | ||||
|     } | ||||
|     return response; | ||||
|      | ||||
|     // Execute the request based on method | ||||
|     let response; | ||||
|     switch (methodArg.toUpperCase()) { | ||||
|       case 'GET': | ||||
|         response = await smartRequest.get(); | ||||
|         break; | ||||
|       case 'POST': | ||||
|         response = await smartRequest.post(); | ||||
|         break; | ||||
|       case 'PUT': | ||||
|         response = await smartRequest.put(); | ||||
|         break; | ||||
|       case 'DELETE': | ||||
|         response = await smartRequest.delete(); | ||||
|         break; | ||||
|       default: | ||||
|         throw new Error(`Unsupported HTTP method: ${methodArg}`); | ||||
|     } | ||||
|      | ||||
|     // Parse the response body based on content type | ||||
|     let body; | ||||
|     const contentType = response.headers['content-type'] || ''; | ||||
|     if (contentType.includes('application/json')) { | ||||
|       body = await response.json(); | ||||
|     } else { | ||||
|       body = await response.text(); | ||||
|       // Try to parse as JSON if it looks like JSON | ||||
|       if (body && (body.startsWith('{') || body.startsWith('['))) { | ||||
|         try { | ||||
|           body = JSON.parse(body); | ||||
|         } catch { | ||||
|           // Keep as text if parsing fails | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|      | ||||
|     // Create a response object compatible with existing code | ||||
|     const legacyResponse = { | ||||
|       statusCode: response.status, | ||||
|       body: body, | ||||
|       headers: response.headers | ||||
|     }; | ||||
|      | ||||
|     if (response.status !== 200) { | ||||
|       console.log(body); | ||||
|     } | ||||
|      | ||||
|     return legacyResponse; | ||||
|   } | ||||
|  | ||||
|   public async requestStreaming(methodArg: string, routeArg: string, readStream?: plugins.smartstream.stream.Readable) { | ||||
|     const requestUrl = `${this.socketPath}${routeArg}`; | ||||
|     const response = await plugins.smartrequest.request( | ||||
|       requestUrl, | ||||
|       { | ||||
|         method: methodArg, | ||||
|         headers: { | ||||
|           'Content-Type': 'application/json', | ||||
|           'X-Registry-Auth': this.registryToken, | ||||
|           Host: 'docker.sock', | ||||
|         }, | ||||
|         requestBody: null, | ||||
|         keepAlive: false, | ||||
|       }, | ||||
|       true, | ||||
|       (readStream ? reqArg => { | ||||
|         let counter = 0; | ||||
|         const smartduplex = new plugins.smartstream.SmartDuplex({ | ||||
|           writeFunction: async (chunkArg) => { | ||||
|             if (counter % 1000 === 0) { | ||||
|               console.log(`posting chunk ${counter}`); | ||||
|             } | ||||
|             counter++; | ||||
|             return chunkArg; | ||||
|      | ||||
|     // Build the request using the fluent API | ||||
|     const smartRequest = plugins.smartrequest.SmartRequest.create() | ||||
|       .url(requestUrl) | ||||
|       .header('Content-Type', 'application/json') | ||||
|       .header('X-Registry-Auth', this.registryToken) | ||||
|       .header('Host', 'docker.sock') | ||||
|       .options({ keepAlive: false }); | ||||
|      | ||||
|     // If we have a readStream, use the new stream method with logging | ||||
|     if (readStream) { | ||||
|       let counter = 0; | ||||
|       const smartduplex = new plugins.smartstream.SmartDuplex({ | ||||
|         writeFunction: async (chunkArg) => { | ||||
|           if (counter % 1000 === 0) { | ||||
|             console.log(`posting chunk ${counter}`); | ||||
|           } | ||||
|         }); | ||||
|         readStream.pipe(smartduplex).pipe(reqArg); | ||||
|       } : null), | ||||
|     ); | ||||
|     console.log(response.statusCode); | ||||
|     console.log(response.body); | ||||
|     return response; | ||||
|           counter++; | ||||
|           return chunkArg; | ||||
|         } | ||||
|       }); | ||||
|        | ||||
|       // Pipe through the logging duplex stream | ||||
|       const loggedStream = readStream.pipe(smartduplex); | ||||
|        | ||||
|       // Use the new stream method to stream the data | ||||
|       smartRequest.stream(loggedStream, 'application/octet-stream'); | ||||
|     } | ||||
|      | ||||
|     // Execute the request based on method | ||||
|     let response; | ||||
|     switch (methodArg.toUpperCase()) { | ||||
|       case 'GET': | ||||
|         response = await smartRequest.get(); | ||||
|         break; | ||||
|       case 'POST': | ||||
|         response = await smartRequest.post(); | ||||
|         break; | ||||
|       case 'PUT': | ||||
|         response = await smartRequest.put(); | ||||
|         break; | ||||
|       case 'DELETE': | ||||
|         response = await smartRequest.delete(); | ||||
|         break; | ||||
|       default: | ||||
|         throw new Error(`Unsupported HTTP method: ${methodArg}`); | ||||
|     } | ||||
|      | ||||
|     console.log(response.status); | ||||
|      | ||||
|     // For streaming responses, get the Node.js stream | ||||
|     const nodeStream = response.streamNode(); | ||||
|      | ||||
|     if (!nodeStream) { | ||||
|       // If no stream is available, consume the body as text | ||||
|       const body = await response.text(); | ||||
|       console.log(body); | ||||
|        | ||||
|       // Return a compatible response object | ||||
|       return { | ||||
|         statusCode: response.status, | ||||
|         body: body, | ||||
|         headers: response.headers | ||||
|       }; | ||||
|     } | ||||
|      | ||||
|     // For streaming responses, return the stream with added properties | ||||
|     (nodeStream as any).statusCode = response.status; | ||||
|     (nodeStream as any).body = ''; // For compatibility | ||||
|      | ||||
|     return nodeStream; | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|   | ||||
		Reference in New Issue
	
	Block a user