fix(imagemanager): prepare proper storage and retrieval of container images
This commit is contained in:
		
							
								
								
									
										10
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								package.json
									
									
									
									
									
								
							| @@ -26,14 +26,15 @@ | ||||
|     "@git.zone/tstest": "^1.0.90", | ||||
|     "@git.zone/tswatch": "^2.0.23", | ||||
|     "@push.rocks/tapbundle": "^5.0.23", | ||||
|     "@types/node": "^20.12.14" | ||||
|     "@types/node": "^20.13.0" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@api.global/typedrequest": "3.0.29", | ||||
|     "@api.global/typedrequest": "3.0.30", | ||||
|     "@api.global/typedserver": "^3.0.50", | ||||
|     "@api.global/typedsocket": "^3.0.1", | ||||
|     "@apiclient.xyz/cloudflare": "^6.0.1", | ||||
|     "@apiclient.xyz/digitalocean": "^1.0.5", | ||||
|     "@apiclient.xyz/docker": "^1.0.112", | ||||
|     "@apiclient.xyz/hetznercloud": "^1.0.18", | ||||
|     "@apiclient.xyz/slack": "^3.0.9", | ||||
|     "@design.estate/dees-catalog": "^1.0.289", | ||||
| @@ -50,7 +51,7 @@ | ||||
|     "@push.rocks/smartdata": "^5.2.4", | ||||
|     "@push.rocks/smartdelay": "^3.0.5", | ||||
|     "@push.rocks/smartexit": "^1.0.23", | ||||
|     "@push.rocks/smartfile": "^11.0.15", | ||||
|     "@push.rocks/smartfile": "^11.0.16", | ||||
|     "@push.rocks/smartguard": "^3.0.2", | ||||
|     "@push.rocks/smartjson": "^5.0.19", | ||||
|     "@push.rocks/smartjwt": "^2.0.4", | ||||
| @@ -61,11 +62,12 @@ | ||||
|     "@push.rocks/smartrequest": "^2.0.22", | ||||
|     "@push.rocks/smartrx": "^3.0.7", | ||||
|     "@push.rocks/smartssh": "^2.0.1", | ||||
|     "@push.rocks/smartstream": "^3.0.39", | ||||
|     "@push.rocks/smartstring": "^4.0.15", | ||||
|     "@push.rocks/smartunique": "^3.0.9", | ||||
|     "@push.rocks/taskbuffer": "^3.0.2", | ||||
|     "@push.rocks/webjwt": "^1.0.9", | ||||
|     "@serve.zone/interfaces": "^1.0.61", | ||||
|     "@serve.zone/interfaces": "^1.0.62", | ||||
|     "@tsclass/tsclass": "^4.0.54" | ||||
|   }, | ||||
|   "files": [ | ||||
|   | ||||
							
								
								
									
										179
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										179
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							| @@ -9,8 +9,8 @@ importers: | ||||
|   .: | ||||
|     dependencies: | ||||
|       '@api.global/typedrequest': | ||||
|         specifier: 3.0.29 | ||||
|         version: 3.0.29 | ||||
|         specifier: 3.0.30 | ||||
|         version: 3.0.30 | ||||
|       '@api.global/typedserver': | ||||
|         specifier: ^3.0.50 | ||||
|         version: 3.0.50 | ||||
| @@ -22,7 +22,10 @@ importers: | ||||
|         version: 6.0.3 | ||||
|       '@apiclient.xyz/digitalocean': | ||||
|         specifier: ^1.0.5 | ||||
|         version: 1.0.5(@types/node@20.12.14) | ||||
|         version: 1.0.5(@types/node@20.13.0) | ||||
|       '@apiclient.xyz/docker': | ||||
|         specifier: ^1.0.112 | ||||
|         version: 1.0.112 | ||||
|       '@apiclient.xyz/hetznercloud': | ||||
|         specifier: ^1.0.18 | ||||
|         version: 1.0.18 | ||||
| @@ -40,7 +43,7 @@ importers: | ||||
|         version: 2.0.34 | ||||
|       '@git.zone/tsrun': | ||||
|         specifier: ^1.2.37 | ||||
|         version: 1.2.46(@types/node@20.12.14) | ||||
|         version: 1.2.46(@types/node@20.13.0) | ||||
|       '@push.rocks/early': | ||||
|         specifier: ^4.0.3 | ||||
|         version: 4.0.4 | ||||
| @@ -72,7 +75,7 @@ importers: | ||||
|         specifier: ^1.0.23 | ||||
|         version: 1.0.23 | ||||
|       '@push.rocks/smartfile': | ||||
|         specifier: ^11.0.15 | ||||
|         specifier: ^11.0.16 | ||||
|         version: 11.0.16 | ||||
|       '@push.rocks/smartguard': | ||||
|         specifier: ^3.0.2 | ||||
| @@ -104,6 +107,9 @@ importers: | ||||
|       '@push.rocks/smartssh': | ||||
|         specifier: ^2.0.1 | ||||
|         version: 2.0.1 | ||||
|       '@push.rocks/smartstream': | ||||
|         specifier: ^3.0.39 | ||||
|         version: 3.0.39 | ||||
|       '@push.rocks/smartstring': | ||||
|         specifier: ^4.0.15 | ||||
|         version: 4.0.15 | ||||
| @@ -117,8 +123,8 @@ importers: | ||||
|         specifier: ^1.0.9 | ||||
|         version: 1.0.9 | ||||
|       '@serve.zone/interfaces': | ||||
|         specifier: ^1.0.61 | ||||
|         version: 1.0.61 | ||||
|         specifier: ^1.0.62 | ||||
|         version: 1.0.62 | ||||
|       '@tsclass/tsclass': | ||||
|         specifier: ^4.0.54 | ||||
|         version: 4.0.54 | ||||
| @@ -131,16 +137,16 @@ importers: | ||||
|         version: 2.0.15 | ||||
|       '@git.zone/tstest': | ||||
|         specifier: ^1.0.90 | ||||
|         version: 1.0.90(@types/node@20.12.14) | ||||
|         version: 1.0.90(@types/node@20.13.0) | ||||
|       '@git.zone/tswatch': | ||||
|         specifier: ^2.0.23 | ||||
|         version: 2.0.23(@types/node@20.12.14) | ||||
|         version: 2.0.23(@types/node@20.13.0) | ||||
|       '@push.rocks/tapbundle': | ||||
|         specifier: ^5.0.23 | ||||
|         version: 5.0.23 | ||||
|       '@types/node': | ||||
|         specifier: ^20.12.14 | ||||
|         version: 20.12.14 | ||||
|         specifier: ^20.13.0 | ||||
|         version: 20.13.0 | ||||
|  | ||||
| packages: | ||||
|  | ||||
| @@ -151,8 +157,8 @@ packages: | ||||
|   '@api.global/typedrequest-interfaces@3.0.19': | ||||
|     resolution: {integrity: sha512-uuHUXJeOy/inWSDrwD0Cwax2rovpxYllDhM2RWh+6mVpQuNmZ3uw6IVg6dA2G1rOe24Ebs+Y9SzEogo+jYN7vw==} | ||||
|  | ||||
|   '@api.global/typedrequest@3.0.29': | ||||
|     resolution: {integrity: sha512-ePTX6fbkWLFtaSvK8QU2nWcc3Z0ua9UTl47UFF3HY6dnom6yohIp4lwcCsgua/bVfxY4R1EeZgxhFbfSlA80vw==} | ||||
|   '@api.global/typedrequest@3.0.30': | ||||
|     resolution: {integrity: sha512-Pp3KVr8QHZ/44u2GE9r8JpWbs5yxA+CZLwxXXcrOBnmJ2Pkp+5PWtO7QZbqnshWAdMTJTYD+nXwlqO0XiPiWGg==} | ||||
|  | ||||
|   '@api.global/typedserver@3.0.50': | ||||
|     resolution: {integrity: sha512-WWZhLVcjqfJO3kq5RB/kYrss7hIiu3yBqBVA/o9cn7jwu3XHaC2DrT/HC7LrcKm1hndk0XbKMgBEb2orSaVl3g==} | ||||
| @@ -166,6 +172,9 @@ packages: | ||||
|   '@apiclient.xyz/digitalocean@1.0.5': | ||||
|     resolution: {integrity: sha512-zP9X8OnYL0zXlWwd1z9DQHat9xvVeFfxbMuO2yQu6GhZdkHZWQQYynUZDT5zkSCcuwPOe4cZF1Pvo7HP7fgj1Q==} | ||||
|  | ||||
|   '@apiclient.xyz/docker@1.0.112': | ||||
|     resolution: {integrity: sha512-7UXNlUShq669ABLrr90zOvxxnhO2x2qOqmJDVRg3iZPtVrviDSTCwoeeLU+KCstUFJL0+8CIdTpjcsWVvZ1bDg==} | ||||
|  | ||||
|   '@apiclient.xyz/hetznercloud@1.0.18': | ||||
|     resolution: {integrity: sha512-otKDqcidnBpSdu3WD/OnBKHLZWxRmauJr09neaFzexSgpUEfe0hlKH5ql9/ov3ZLrSd0QXEkO8raDMgPmKLdxQ==} | ||||
|  | ||||
| @@ -842,8 +851,8 @@ packages: | ||||
|   '@push.rocks/smartstream@2.0.8': | ||||
|     resolution: {integrity: sha512-GlF/9cCkvBHwKa3DK4DO5wjfSgqkj6gAS4TrY9uD5NMHu9RQv4WiNrElTYj7iCEpnZgUnLO3tzw1JA3NRIMnnA==} | ||||
|  | ||||
|   '@push.rocks/smartstream@3.0.38': | ||||
|     resolution: {integrity: sha512-Sk9esPURWXldS0ZvgClCtrEyvELjvFnbQgUAelwoXWMfM8pXuB9BX1tE+Z1iBkB9Xyw2p1d9jYelO6waSXg0BQ==} | ||||
|   '@push.rocks/smartstream@3.0.39': | ||||
|     resolution: {integrity: sha512-kdGVhapek8Om+KCu95VKfQptwhQxXRLcQ7xSeiPOltRxAIHSWbOkVOyf+EAqc6SJWPei3xswKfNuqg6qdTL+tA==} | ||||
|  | ||||
|   '@push.rocks/smartstring@4.0.15': | ||||
|     resolution: {integrity: sha512-NTNeOjWyg+aHtBTiQEyXamr7oTvYZ3wS1fudHo9ua7CLrykpK+i+RxFyJaLg1zB5x9xQF3NLEQecB14HPFX8Cg==} | ||||
| @@ -857,6 +866,9 @@ packages: | ||||
|   '@push.rocks/smarturl@3.0.7': | ||||
|     resolution: {integrity: sha512-nx4EWjQD9JeO7QVbOsxd1PFeDQYoSQOOOYCZ+r7QWXHLJG52iYzgvJDCQyX6p705HDkYMJWozW2ZzhR22qLKbw==} | ||||
|  | ||||
|   '@push.rocks/smartversion@3.0.5': | ||||
|     resolution: {integrity: sha512-8MZSo1yqyaKxKq0Q5N188l4un++9GFWVbhCAX5mXJwewZHn97ujffTeL+eOQYpWFTEpUhaq1QhL4NhqObBCt1Q==} | ||||
|  | ||||
|   '@push.rocks/smartxml@1.0.8': | ||||
|     resolution: {integrity: sha512-idrPsBj9t6oxkLZJZgWtyZK6PnQ5BVDbBErk0UfGanXgSWJc+ZEKNYjVqr850+Na3+y0CT6AQdug7pnaokygwg==} | ||||
|  | ||||
| @@ -1115,8 +1127,8 @@ packages: | ||||
|     resolution: {integrity: sha512-gvZ5QnZu14bPIWaFDOCyH6pfPgN/nQ0hF3EFhE74Ypfm5dCzq6OZEC9jeUTXDypfsvbSs3xAgj4XG83sVSUDAg==} | ||||
|     deprecated: This package has been deprecated in favour of the new package at @push.rocks/webstore | ||||
|  | ||||
|   '@serve.zone/interfaces@1.0.61': | ||||
|     resolution: {integrity: sha512-JNwoKMjfyVAdPwQdXfvy69z2CLxK9zADrsHiVziowNsFiCc2VDfBmTYlhvsqD19kqzgHbqpDSbXKZxcIFdvlXQ==} | ||||
|   '@serve.zone/interfaces@1.0.62': | ||||
|     resolution: {integrity: sha512-XtTKHqqVXqou89z71VgiNenb10Fo5WHKNG8M5LHKfDOsnAUz13UaSpG9wyA0MdK3IlRYu48MegYH4IrRKfmAsA==} | ||||
|  | ||||
|   '@sindresorhus/is@5.6.0': | ||||
|     resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} | ||||
| @@ -1463,8 +1475,8 @@ packages: | ||||
|   '@types/node-forge@1.3.11': | ||||
|     resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} | ||||
|  | ||||
|   '@types/node@20.12.14': | ||||
|     resolution: {integrity: sha512-scnD59RpYD91xngrQQLGkE+6UrHUPzeKZWhhjBSa3HSkwjbQc38+q3RoIVEwxQGRw3M+j5hpNAM+lgV3cVormg==} | ||||
|   '@types/node@20.13.0': | ||||
|     resolution: {integrity: sha512-FM6AOb3khNkNIXPnHFDYaHerSv8uN22C91z098AnGccVu+Pcdhi+pNUFDi0iLmPIsVE0JBD0KVS7mzUYt4nRzQ==} | ||||
|  | ||||
|   '@types/parse5@6.0.3': | ||||
|     resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} | ||||
| @@ -1484,6 +1496,9 @@ packages: | ||||
|   '@types/relateurl@0.2.33': | ||||
|     resolution: {integrity: sha512-bTQCKsVbIdzLqZhLkF5fcJQreE4y1ro4DIyVrlDNSCJRRwHhB8Z+4zXXa8jN6eDvc2HbRsEYgbvrnGvi54EpSw==} | ||||
|  | ||||
|   '@types/semver@7.5.8': | ||||
|     resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} | ||||
|  | ||||
|   '@types/send@0.17.4': | ||||
|     resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} | ||||
|  | ||||
| @@ -4235,7 +4250,7 @@ snapshots: | ||||
|  | ||||
|   '@api.global/typedrequest-interfaces@3.0.19': {} | ||||
|  | ||||
|   '@api.global/typedrequest@3.0.29': | ||||
|   '@api.global/typedrequest@3.0.30': | ||||
|     dependencies: | ||||
|       '@api.global/typedrequest-interfaces': 3.0.19 | ||||
|       '@push.rocks/isounique': 1.0.5 | ||||
| @@ -4249,7 +4264,7 @@ snapshots: | ||||
|  | ||||
|   '@api.global/typedserver@3.0.50': | ||||
|     dependencies: | ||||
|       '@api.global/typedrequest': 3.0.29 | ||||
|       '@api.global/typedrequest': 3.0.30 | ||||
|       '@api.global/typedrequest-interfaces': 3.0.19 | ||||
|       '@api.global/typedsocket': 3.0.1 | ||||
|       '@cloudflare/workers-types': 4.20240529.0 | ||||
| @@ -4274,7 +4289,7 @@ snapshots: | ||||
|       '@push.rocks/smartrequest': 2.0.22 | ||||
|       '@push.rocks/smartrx': 3.0.7 | ||||
|       '@push.rocks/smartsitemap': 2.0.3 | ||||
|       '@push.rocks/smartstream': 3.0.38 | ||||
|       '@push.rocks/smartstream': 3.0.39 | ||||
|       '@push.rocks/smarttime': 4.0.6 | ||||
|       '@push.rocks/taskbuffer': 3.1.7 | ||||
|       '@push.rocks/webrequest': 3.0.37 | ||||
| @@ -4294,7 +4309,7 @@ snapshots: | ||||
|  | ||||
|   '@api.global/typedsocket@3.0.1': | ||||
|     dependencies: | ||||
|       '@api.global/typedrequest': 3.0.29 | ||||
|       '@api.global/typedrequest': 3.0.30 | ||||
|       '@api.global/typedrequest-interfaces': 3.0.19 | ||||
|       '@push.rocks/isohash': 2.0.1 | ||||
|       '@push.rocks/smartjson': 5.0.20 | ||||
| @@ -4317,15 +4332,30 @@ snapshots: | ||||
|       '@pushrocks/smartstring': 4.0.7 | ||||
|       '@tsclass/tsclass': 4.0.54 | ||||
|  | ||||
|   '@apiclient.xyz/digitalocean@1.0.5(@types/node@20.12.14)': | ||||
|   '@apiclient.xyz/digitalocean@1.0.5(@types/node@20.13.0)': | ||||
|     dependencies: | ||||
|       '@git.zone/tsrun': 1.2.46(@types/node@20.12.14) | ||||
|       '@git.zone/tsrun': 1.2.46(@types/node@20.13.0) | ||||
|       '@push.rocks/smartrequest': 2.0.22 | ||||
|     transitivePeerDependencies: | ||||
|       - '@swc/core' | ||||
|       - '@swc/wasm' | ||||
|       - '@types/node' | ||||
|  | ||||
|   '@apiclient.xyz/docker@1.0.112': | ||||
|     dependencies: | ||||
|       '@push.rocks/lik': 6.0.15 | ||||
|       '@push.rocks/smartfile': 11.0.16 | ||||
|       '@push.rocks/smartjson': 5.0.20 | ||||
|       '@push.rocks/smartlog': 3.0.6 | ||||
|       '@push.rocks/smartnetwork': 3.0.2 | ||||
|       '@push.rocks/smartpath': 5.0.18 | ||||
|       '@push.rocks/smartpromise': 4.0.3 | ||||
|       '@push.rocks/smartrequest': 2.0.22 | ||||
|       '@push.rocks/smartstring': 4.0.15 | ||||
|       '@push.rocks/smartversion': 3.0.5 | ||||
|       '@tsclass/tsclass': 4.0.54 | ||||
|       rxjs: 7.8.1 | ||||
|  | ||||
|   '@apiclient.xyz/hetznercloud@1.0.18': | ||||
|     dependencies: | ||||
|       '@push.rocks/smartrequest': 2.0.22 | ||||
| @@ -5477,14 +5507,14 @@ snapshots: | ||||
|  | ||||
|   '@design.estate/dees-comms@1.0.27': | ||||
|     dependencies: | ||||
|       '@api.global/typedrequest': 3.0.29 | ||||
|       '@api.global/typedrequest': 3.0.30 | ||||
|       '@api.global/typedrequest-interfaces': 3.0.19 | ||||
|       '@push.rocks/smartdelay': 3.0.5 | ||||
|       broadcast-channel: 7.0.0 | ||||
|  | ||||
|   '@design.estate/dees-domtools@2.0.57': | ||||
|     dependencies: | ||||
|       '@api.global/typedrequest': 3.0.29 | ||||
|       '@api.global/typedrequest': 3.0.30 | ||||
|       '@design.estate/dees-comms': 1.0.27 | ||||
|       '@push.rocks/lik': 6.0.15 | ||||
|       '@push.rocks/smartdelay': 3.0.5 | ||||
| @@ -5651,22 +5681,22 @@ snapshots: | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|  | ||||
|   '@git.zone/tsrun@1.2.46(@types/node@20.12.14)': | ||||
|   '@git.zone/tsrun@1.2.46(@types/node@20.13.0)': | ||||
|     dependencies: | ||||
|       '@push.rocks/smartfile': 10.0.41 | ||||
|       '@push.rocks/smartshell': 3.0.5 | ||||
|       ts-node: 10.9.2(@types/node@20.12.14)(typescript@5.1.6) | ||||
|       ts-node: 10.9.2(@types/node@20.13.0)(typescript@5.1.6) | ||||
|       typescript: 5.1.6 | ||||
|     transitivePeerDependencies: | ||||
|       - '@swc/core' | ||||
|       - '@swc/wasm' | ||||
|       - '@types/node' | ||||
|  | ||||
|   '@git.zone/tstest@1.0.90(@types/node@20.12.14)': | ||||
|   '@git.zone/tstest@1.0.90(@types/node@20.13.0)': | ||||
|     dependencies: | ||||
|       '@api.global/typedserver': 3.0.50 | ||||
|       '@git.zone/tsbundle': 2.0.15 | ||||
|       '@git.zone/tsrun': 1.2.46(@types/node@20.12.14) | ||||
|       '@git.zone/tsrun': 1.2.46(@types/node@20.13.0) | ||||
|       '@push.rocks/consolecolor': 2.0.2 | ||||
|       '@push.rocks/smartbrowser': 2.0.6 | ||||
|       '@push.rocks/smartdelay': 3.0.5 | ||||
| @@ -5687,11 +5717,11 @@ snapshots: | ||||
|       - supports-color | ||||
|       - utf-8-validate | ||||
|  | ||||
|   '@git.zone/tswatch@2.0.23(@types/node@20.12.14)': | ||||
|   '@git.zone/tswatch@2.0.23(@types/node@20.13.0)': | ||||
|     dependencies: | ||||
|       '@api.global/typedserver': 3.0.50 | ||||
|       '@git.zone/tsbundle': 2.0.15 | ||||
|       '@git.zone/tsrun': 1.2.46(@types/node@20.12.14) | ||||
|       '@git.zone/tsrun': 1.2.46(@types/node@20.13.0) | ||||
|       '@push.rocks/early': 4.0.4 | ||||
|       '@push.rocks/lik': 6.0.15 | ||||
|       '@push.rocks/smartchok': 1.0.34 | ||||
| @@ -5705,8 +5735,10 @@ snapshots: | ||||
|       - '@swc/core' | ||||
|       - '@swc/wasm' | ||||
|       - '@types/node' | ||||
|       - bufferutil | ||||
|       - encoding | ||||
|       - supports-color | ||||
|       - utf-8-validate | ||||
|  | ||||
|   '@happy-dom/global-registrator@8.9.0': | ||||
|     dependencies: | ||||
| @@ -5884,7 +5916,7 @@ snapshots: | ||||
|  | ||||
|   '@push.rocks/qenv@6.0.5': | ||||
|     dependencies: | ||||
|       '@api.global/typedrequest': 3.0.29 | ||||
|       '@api.global/typedrequest': 3.0.30 | ||||
|       '@configvault.io/interfaces': 1.0.17 | ||||
|       '@push.rocks/smartfile': 11.0.16 | ||||
|       '@push.rocks/smartlog': 3.0.6 | ||||
| @@ -5936,7 +5968,7 @@ snapshots: | ||||
|       '@push.rocks/smartpath': 5.0.18 | ||||
|       '@push.rocks/smartpromise': 4.0.3 | ||||
|       '@push.rocks/smartrx': 3.0.7 | ||||
|       '@push.rocks/smartstream': 3.0.38 | ||||
|       '@push.rocks/smartstream': 3.0.39 | ||||
|       '@tsclass/tsclass': 4.0.54 | ||||
|       minio: 8.0.0 | ||||
|  | ||||
| @@ -6068,7 +6100,7 @@ snapshots: | ||||
|       '@push.rocks/smartpath': 5.0.18 | ||||
|       '@push.rocks/smartpromise': 4.0.3 | ||||
|       '@push.rocks/smartrequest': 2.0.22 | ||||
|       '@push.rocks/smartstream': 3.0.38 | ||||
|       '@push.rocks/smartstream': 3.0.39 | ||||
|       '@types/fs-extra': 11.0.4 | ||||
|       '@types/glob': 8.1.0 | ||||
|       '@types/js-yaml': 4.0.9 | ||||
| @@ -6345,12 +6377,12 @@ snapshots: | ||||
|       from2: 2.3.0 | ||||
|       through2: 4.0.2 | ||||
|  | ||||
|   '@push.rocks/smartstream@3.0.38': | ||||
|   '@push.rocks/smartstream@3.0.39': | ||||
|     dependencies: | ||||
|       '@push.rocks/lik': 6.0.15 | ||||
|       '@push.rocks/smartenv': 5.0.12 | ||||
|       '@push.rocks/smartpromise': 4.0.3 | ||||
|       '@push.rocks/smartrx': 3.0.7 | ||||
|       '@push.rocks/webstream': 1.0.10 | ||||
|  | ||||
|   '@push.rocks/smartstring@4.0.15': | ||||
|     dependencies: | ||||
| @@ -6381,6 +6413,11 @@ snapshots: | ||||
|  | ||||
|   '@push.rocks/smarturl@3.0.7': {} | ||||
|  | ||||
|   '@push.rocks/smartversion@3.0.5': | ||||
|     dependencies: | ||||
|       '@types/semver': 7.5.8 | ||||
|       semver: 7.6.2 | ||||
|  | ||||
|   '@push.rocks/smartxml@1.0.8': | ||||
|     dependencies: | ||||
|       fast-xml-parser: 4.4.0 | ||||
| @@ -6869,7 +6906,7 @@ snapshots: | ||||
|       fake-indexeddb: 4.0.2 | ||||
|       idb: 7.1.1 | ||||
|  | ||||
|   '@serve.zone/interfaces@1.0.61': | ||||
|   '@serve.zone/interfaces@1.0.62': | ||||
|     dependencies: | ||||
|       '@api.global/typedrequest-interfaces': 3.0.19 | ||||
|       '@push.rocks/smartlog-interfaces': 3.0.0 | ||||
| @@ -7200,14 +7237,14 @@ snapshots: | ||||
|  | ||||
|   '@types/accepts@1.3.7': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/babel__code-frame@7.0.6': {} | ||||
|  | ||||
|   '@types/body-parser@1.19.5': | ||||
|     dependencies: | ||||
|       '@types/connect': 3.4.38 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/buffer-json@2.0.3': {} | ||||
|  | ||||
| @@ -7223,12 +7260,12 @@ snapshots: | ||||
|  | ||||
|   '@types/clean-css@4.2.11': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|       source-map: 0.6.1 | ||||
|  | ||||
|   '@types/co-body@6.1.3': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|       '@types/qs': 6.9.15 | ||||
|  | ||||
|   '@types/compression@1.7.5': | ||||
| @@ -7237,7 +7274,7 @@ snapshots: | ||||
|  | ||||
|   '@types/connect@3.4.38': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/content-disposition@0.5.8': {} | ||||
|  | ||||
| @@ -7250,11 +7287,11 @@ snapshots: | ||||
|       '@types/connect': 3.4.38 | ||||
|       '@types/express': 4.17.21 | ||||
|       '@types/keygrip': 1.0.6 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/cors@2.8.17': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/debounce@1.2.4': {} | ||||
|  | ||||
| @@ -7266,7 +7303,7 @@ snapshots: | ||||
|  | ||||
|   '@types/express-serve-static-core@4.19.3': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|       '@types/qs': 6.9.15 | ||||
|       '@types/range-parser': 1.2.7 | ||||
|       '@types/send': 0.17.4 | ||||
| @@ -7284,30 +7321,30 @@ snapshots: | ||||
|  | ||||
|   '@types/finalhandler@1.2.3': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/from2@2.3.5': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/fs-extra@11.0.4': | ||||
|     dependencies: | ||||
|       '@types/jsonfile': 6.1.4 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/fs-extra@9.0.13': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/glob@7.2.0': | ||||
|     dependencies: | ||||
|       '@types/minimatch': 5.1.2 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/glob@8.1.0': | ||||
|     dependencies: | ||||
|       '@types/minimatch': 5.1.2 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/hast@3.0.4': | ||||
|     dependencies: | ||||
| @@ -7341,11 +7378,11 @@ snapshots: | ||||
|  | ||||
|   '@types/jsonfile@6.1.4': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/jsonwebtoken@9.0.6': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/keygrip@1.0.6': {} | ||||
|  | ||||
| @@ -7362,7 +7399,7 @@ snapshots: | ||||
|       '@types/http-errors': 2.0.4 | ||||
|       '@types/keygrip': 1.0.6 | ||||
|       '@types/koa-compose': 3.2.8 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/mdast@4.0.4': | ||||
|     dependencies: | ||||
| @@ -7380,9 +7417,9 @@ snapshots: | ||||
|  | ||||
|   '@types/node-forge@1.3.11': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/node@20.12.14': | ||||
|   '@types/node@20.13.0': | ||||
|     dependencies: | ||||
|       undici-types: 5.26.5 | ||||
|  | ||||
| @@ -7398,15 +7435,17 @@ snapshots: | ||||
|  | ||||
|   '@types/relateurl@0.2.33': {} | ||||
|  | ||||
|   '@types/semver@7.5.8': {} | ||||
|  | ||||
|   '@types/send@0.17.4': | ||||
|     dependencies: | ||||
|       '@types/mime': 1.3.5 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/serve-static@1.15.7': | ||||
|     dependencies: | ||||
|       '@types/http-errors': 2.0.4 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|       '@types/send': 0.17.4 | ||||
|  | ||||
|   '@types/shortid@0.0.29': {} | ||||
| @@ -7426,7 +7465,7 @@ snapshots: | ||||
|  | ||||
|   '@types/through2@2.0.41': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/trusted-types@2.0.7': {} | ||||
|  | ||||
| @@ -7450,7 +7489,7 @@ snapshots: | ||||
|  | ||||
|   '@types/whatwg-url@8.2.2': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|       '@types/webidl-conversions': 7.0.3 | ||||
|  | ||||
|   '@types/which@2.0.2': {} | ||||
| @@ -7459,15 +7498,15 @@ snapshots: | ||||
|  | ||||
|   '@types/ws@7.4.7': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/ws@8.5.10': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|  | ||||
|   '@types/yauzl@2.10.3': | ||||
|     dependencies: | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|     optional: true | ||||
|  | ||||
|   '@ungap/structured-clone@1.2.0': {} | ||||
| @@ -8105,7 +8144,7 @@ snapshots: | ||||
|     dependencies: | ||||
|       '@types/cookie': 0.4.1 | ||||
|       '@types/cors': 2.8.17 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|       accepts: 1.3.8 | ||||
|       base64id: 2.0.0 | ||||
|       cookie: 0.4.2 | ||||
| @@ -8122,7 +8161,7 @@ snapshots: | ||||
|     dependencies: | ||||
|       '@types/cookie': 0.4.1 | ||||
|       '@types/cors': 2.8.17 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|       accepts: 1.3.8 | ||||
|       base64id: 2.0.0 | ||||
|       cookie: 0.4.2 | ||||
| @@ -8139,7 +8178,7 @@ snapshots: | ||||
|     dependencies: | ||||
|       '@types/cookie': 0.4.1 | ||||
|       '@types/cors': 2.8.17 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|       accepts: 1.3.8 | ||||
|       base64id: 2.0.0 | ||||
|       cookie: 0.4.2 | ||||
| @@ -10294,14 +10333,14 @@ snapshots: | ||||
|  | ||||
|   trough@2.2.0: {} | ||||
|  | ||||
|   ts-node@10.9.2(@types/node@20.12.14)(typescript@5.1.6): | ||||
|   ts-node@10.9.2(@types/node@20.13.0)(typescript@5.1.6): | ||||
|     dependencies: | ||||
|       '@cspotcode/source-map-support': 0.8.1 | ||||
|       '@tsconfig/node10': 1.0.11 | ||||
|       '@tsconfig/node12': 1.0.11 | ||||
|       '@tsconfig/node14': 1.0.3 | ||||
|       '@tsconfig/node16': 1.0.4 | ||||
|       '@types/node': 20.12.14 | ||||
|       '@types/node': 20.13.0 | ||||
|       acorn: 8.11.3 | ||||
|       acorn-walk: 8.3.2 | ||||
|       arg: 4.1.3 | ||||
|   | ||||
| @@ -3,6 +3,6 @@ | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@serve.zone/cloudly', | ||||
|   version: '1.1.1', | ||||
|   version: '1.1.2', | ||||
|   description: 'A cloud manager leveraging Docker Swarmkit for multi-cloud operations including DigitalOcean, Hetzner Cloud, and Cloudflare, with integration support and robust configuration management system.' | ||||
| } | ||||
|   | ||||
| @@ -26,4 +26,12 @@ export class Image extends plugins.smartdata.SmartDataDbDoc<Image, plugins.serve | ||||
|   public data: plugins.servezoneInterfaces.data.IImage['data']; | ||||
|  | ||||
|   public async getVersions() {} | ||||
|  | ||||
|   /** | ||||
|    * returns a storage path | ||||
|    * note: this is relative to the storage method defined by the imageManager | ||||
|    */ | ||||
|   public async getStoragePath(versionStringArg: string) { | ||||
|     return `${this.data.name}:${versionStringArg}`.replace('/', '__') | ||||
|   } | ||||
| } | ||||
| @@ -7,6 +7,7 @@ export class ImageManager { | ||||
|   cloudlyRef: Cloudly; | ||||
|   public typedrouter = new plugins.typedrequest.TypedRouter(); | ||||
|   public smartbucketInstance: plugins.smartbucket.SmartBucket; | ||||
|   public imageDir: plugins.smartbucket.Directory; | ||||
|    | ||||
|   get db() { | ||||
|     return this.cloudlyRef.mongodbConnector.smartdataDb; | ||||
| @@ -83,11 +84,10 @@ export class ImageManager { | ||||
|         'pullImageVersion', | ||||
|         async (reqArg) => { | ||||
|           const image = await this.CImage.getInstance({ | ||||
|             data: { | ||||
|               name: reqArg.name, | ||||
|             }, | ||||
|               id: reqArg.imageId, | ||||
|           }); | ||||
|           const imageVersion = null; | ||||
|           const imageVersion = image.data.versions.find((version) => version.versionString === reqArg.versionString); | ||||
|           const readable = this.imageDir.fastGetStream(await image.getStoragePath(reqArg.versionString)); | ||||
|           const imageVirtualStream = new plugins.typedrequest.VirtualStream(); | ||||
|           return { | ||||
|             imageStream: imageVirtualStream, | ||||
| @@ -106,6 +106,10 @@ export class ImageManager { | ||||
|     ); | ||||
|     const bucket = await this.smartbucketInstance.getBucketByName('cloudly-test'); | ||||
|     await bucket.fastPut({ path: 'test/test.txt', contents: 'hello' }); | ||||
|  | ||||
|     this.imageDir = await bucket.getDirectoryFromPath({ | ||||
|       path: 'images', | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   public async createImage(nameArg: string) { | ||||
|   | ||||
| @@ -2,6 +2,8 @@ import * as plugins from './plugins.js'; | ||||
|  | ||||
| export type TClientType = 'coreflow' | 'cli' | 'serverconfig'; | ||||
|  | ||||
| import { Image } from './classes.image.js'; | ||||
|  | ||||
| export class CloudlyClient { | ||||
|   private cloudlyUrl: string; | ||||
|   private registerAs: string; | ||||
| @@ -55,15 +57,18 @@ export class CloudlyClient { | ||||
|       this.typedrouter, | ||||
|       this.cloudlyUrl | ||||
|     ); | ||||
|     console.log(`CloudlyCluent connected to cloudly at ${this.cloudlyUrl}. Remember to get an identity.`) | ||||
|   } | ||||
|  | ||||
|   public async stop() { | ||||
|     await this.typedsocketClient.stop(); | ||||
|   } | ||||
|  | ||||
|   public identity: plugins.servezoneInterfaces.data.IClusterIdentifier; | ||||
|   public async getIdentityByJumpCode( | ||||
|     jumpCodeArg: string, | ||||
|     tagConnection = false | ||||
|     tagConnection = false, | ||||
|     statefullIdentity = true | ||||
|   ): Promise<plugins.servezoneInterfaces.data.IClusterIdentifier> { | ||||
|     const identityRequest = | ||||
|       this.typedsocketClient.createTypedRequest<plugins.servezoneInterfaces.requests.identity.IRequest_Any_Cloudly_CoreflowManager_GetIdentityByJumpCode>( | ||||
| @@ -80,6 +85,10 @@ export class CloudlyClient { | ||||
|       this.typedsocketClient.addTag('identity', identity); | ||||
|     } | ||||
|  | ||||
|     if (statefullIdentity) { | ||||
|       this.identity = identity; | ||||
|     } | ||||
|  | ||||
|     return identity; | ||||
|   } | ||||
|  | ||||
| @@ -127,4 +136,9 @@ export class CloudlyClient { | ||||
|     }); | ||||
|     return typedResponse.certificate; | ||||
|   } | ||||
|  | ||||
|   // Images | ||||
|   public async getImages() { | ||||
|     return Image.getImages(this); | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1,7 +1,84 @@ | ||||
| import type { CloudlyClient } from './classes.cloudlyclient.js'; | ||||
| import * as plugins from './plugins.js'; | ||||
|  | ||||
| export class Image { | ||||
|   public getImages() { | ||||
|      | ||||
| export class Image implements plugins.servezoneInterfaces.data.IImage { | ||||
|   public static async getImages(cloudlyClientRef: CloudlyClient) { | ||||
|     const getAllImagesTR = cloudlyClientRef.typedsocketClient.createTypedRequest<plugins.servezoneInterfaces.requests.image.IRequest_GetAllImages>( | ||||
|       'getAllImages' | ||||
|     ); | ||||
|     const response = await getAllImagesTR.fire({ | ||||
|       jwt: cloudlyClientRef.identity.jwt, | ||||
|     }); | ||||
|     const resultImages: Image[] = []; | ||||
|     for (const image of response.images) { | ||||
|       const newImage = new Image(cloudlyClientRef); | ||||
|       Object.assign(newImage, image); | ||||
|       resultImages.push(newImage); | ||||
|     } | ||||
|     return resultImages; | ||||
|   } | ||||
| } | ||||
|  | ||||
|   // INSTANCE | ||||
|   cloudlyClientRef: CloudlyClient; | ||||
|  | ||||
|   id: plugins.servezoneInterfaces.data.IImage['id']; | ||||
|   data: plugins.servezoneInterfaces.data.IImage['data']; | ||||
|  | ||||
|   constructor(cloudlyClientRef: CloudlyClient) { | ||||
|     this.cloudlyClientRef = cloudlyClientRef; | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * updates the image data | ||||
|    */ | ||||
|   public async update() { | ||||
|     const getVersionsTR = this.cloudlyClientRef.typedsocketClient.createTypedRequest<plugins.servezoneInterfaces.requests.image.IRequest_GetImageMetadata>( | ||||
|       'getImageMetadata' | ||||
|     ); | ||||
|     const response = await getVersionsTR.fire({ | ||||
|       jwt: this.cloudlyClientRef.identity.jwt, | ||||
|       imageId: this.id, | ||||
|     }); | ||||
|     Object.assign(this, response.image); | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * pushes a new version of the image | ||||
|    * @param imageVersion  | ||||
|    * @param imageReadableArg  | ||||
|    */ | ||||
|   public async pushImageVersion(imageVersion: string, imageReadableArg: ReadableStream<Uint8Array>): Promise<void> { | ||||
|     const done = plugins.smartpromise.defer(); | ||||
|     const pullImageTR = this.cloudlyClientRef.typedsocketClient.createTypedRequest<plugins.servezoneInterfaces.requests.image.IRequest_PushImageVersion>( | ||||
|       'pushImageVersion' | ||||
|     ); | ||||
|     const virtualStream = new plugins.typedrequest.VirtualStream(); | ||||
|     const response = await pullImageTR.fire({ | ||||
|       jwt: this.cloudlyClientRef.identity.jwt, | ||||
|       imageId: this.id, | ||||
|       versionString: '', | ||||
|       imageStream: virtualStream, | ||||
|     }); | ||||
|     await virtualStream.readFromWebstream(imageReadableArg); | ||||
|     await done.promise; | ||||
|     await this.update(); | ||||
|   }; | ||||
|  | ||||
|   /** | ||||
|    * pulls a version of the image | ||||
|    */ | ||||
|   public async pullImageVersion(versionStringArg: string): Promise<ReadableStream<Uint8Array>> { | ||||
|     const pullImageTR = this.cloudlyClientRef.typedsocketClient.createTypedRequest<plugins.servezoneInterfaces.requests.image.IRequest_PullImageVersion>( | ||||
|       'pullImageVersion' | ||||
|     ); | ||||
|     const response = await pullImageTR.fire({ | ||||
|       jwt: this.cloudlyClientRef.identity.jwt, | ||||
|       imageId: this.id, | ||||
|       versionString: versionStringArg, | ||||
|     }); | ||||
|     const imageStream = response.imageStream; | ||||
|     const webduplexStream = new plugins.webstream.WebDuplexStream({}); | ||||
|     imageStream.writeToWebstream(webduplexStream.writable); | ||||
|     return webduplexStream.readable; | ||||
|   }; | ||||
| } | ||||
|   | ||||
| @@ -6,10 +6,14 @@ export { | ||||
| } | ||||
|  | ||||
| // @push.rocks scope | ||||
| import * as smartpromise from '@push.rocks/smartpromise'; | ||||
| import * as smartrx from '@push.rocks/smartrx'; | ||||
| import * as webstream from '@push.rocks/smartstream/web'; | ||||
|  | ||||
| export { | ||||
|   smartpromise, | ||||
|   smartrx, | ||||
|   webstream, | ||||
| } | ||||
|  | ||||
| // @api.global scope | ||||
|   | ||||
| @@ -3,6 +3,6 @@ | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@serve.zone/cloudly', | ||||
|   version: '1.1.1', | ||||
|   version: '1.1.2', | ||||
|   description: 'A cloud manager leveraging Docker Swarmkit for multi-cloud operations including DigitalOcean, Hetzner Cloud, and Cloudflare, with integration support and robust configuration management system.' | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user