docker-client-mx 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +233 -0
  3. package/bin/docker-client-mx.js +42 -0
  4. package/build/icons/icon-1024.png +0 -0
  5. package/build/icons/icon-128.png +0 -0
  6. package/build/icons/icon-16.png +0 -0
  7. package/build/icons/icon-256.png +0 -0
  8. package/build/icons/icon-32.png +0 -0
  9. package/build/icons/icon-48.png +0 -0
  10. package/build/icons/icon-512.png +0 -0
  11. package/build/icons/icon-64.png +0 -0
  12. package/build/icons/icon.ico +0 -0
  13. package/build/icons/icon.iconset/icon_128x128.png +0 -0
  14. package/build/icons/icon.iconset/icon_128x128@2x.png +0 -0
  15. package/build/icons/icon.iconset/icon_16x16.png +0 -0
  16. package/build/icons/icon.iconset/icon_16x16@2x.png +0 -0
  17. package/build/icons/icon.iconset/icon_256x256.png +0 -0
  18. package/build/icons/icon.iconset/icon_256x256@2x.png +0 -0
  19. package/build/icons/icon.iconset/icon_32x32.png +0 -0
  20. package/build/icons/icon.iconset/icon_32x32@2x.png +0 -0
  21. package/build/icons/icon.iconset/icon_512x512.png +0 -0
  22. package/build/icons/icon.iconset/icon_512x512@2x.png +0 -0
  23. package/build/icons/icon.png +0 -0
  24. package/dist/docker-desktop-mx/browser/chunk-64WWLMUP.js +39 -0
  25. package/dist/docker-desktop-mx/browser/chunk-N4VBBC4W.js +1 -0
  26. package/dist/docker-desktop-mx/browser/favicon.ico +0 -0
  27. package/dist/docker-desktop-mx/browser/index.html +14 -0
  28. package/dist/docker-desktop-mx/browser/main-CTIRTSOI.js +5 -0
  29. package/dist/docker-desktop-mx/browser/styles-JS3HDDI4.css +1 -0
  30. package/dist-electron/api.js +10 -0
  31. package/dist-electron/api.js.map +1 -0
  32. package/dist-electron/assistant-key.js +70 -0
  33. package/dist-electron/assistant-key.js.map +1 -0
  34. package/dist-electron/assistant-models.js +19 -0
  35. package/dist-electron/assistant-models.js.map +1 -0
  36. package/dist-electron/assistant-tools.js +335 -0
  37. package/dist-electron/assistant-tools.js.map +1 -0
  38. package/dist-electron/assistant.js +302 -0
  39. package/dist-electron/assistant.js.map +1 -0
  40. package/dist-electron/attention.js +75 -0
  41. package/dist-electron/attention.js.map +1 -0
  42. package/dist-electron/channels.js +113 -0
  43. package/dist-electron/channels.js.map +1 -0
  44. package/dist-electron/compose-files.js +104 -0
  45. package/dist-electron/compose-files.js.map +1 -0
  46. package/dist-electron/compose.js +271 -0
  47. package/dist-electron/compose.js.map +1 -0
  48. package/dist-electron/container-events.js +188 -0
  49. package/dist-electron/container-events.js.map +1 -0
  50. package/dist-electron/containers.js +165 -0
  51. package/dist-electron/containers.js.map +1 -0
  52. package/dist-electron/context-menu.js +56 -0
  53. package/dist-electron/context-menu.js.map +1 -0
  54. package/dist-electron/contexts.js +346 -0
  55. package/dist-electron/contexts.js.map +1 -0
  56. package/dist-electron/crash.js +129 -0
  57. package/dist-electron/crash.js.map +1 -0
  58. package/dist-electron/diagnosis.js +338 -0
  59. package/dist-electron/diagnosis.js.map +1 -0
  60. package/dist-electron/docker-client.js +284 -0
  61. package/dist-electron/docker-client.js.map +1 -0
  62. package/dist-electron/engine.js +145 -0
  63. package/dist-electron/engine.js.map +1 -0
  64. package/dist-electron/event-store.js +146 -0
  65. package/dist-electron/event-store.js.map +1 -0
  66. package/dist-electron/events.js +132 -0
  67. package/dist-electron/events.js.map +1 -0
  68. package/dist-electron/exec.js +138 -0
  69. package/dist-electron/exec.js.map +1 -0
  70. package/dist-electron/files.js +407 -0
  71. package/dist-electron/files.js.map +1 -0
  72. package/dist-electron/health.js +92 -0
  73. package/dist-electron/health.js.map +1 -0
  74. package/dist-electron/host-overview.js +50 -0
  75. package/dist-electron/host-overview.js.map +1 -0
  76. package/dist-electron/host-shell.js +196 -0
  77. package/dist-electron/host-shell.js.map +1 -0
  78. package/dist-electron/i18n.js +58 -0
  79. package/dist-electron/i18n.js.map +1 -0
  80. package/dist-electron/image-history.js +87 -0
  81. package/dist-electron/image-history.js.map +1 -0
  82. package/dist-electron/images.js +141 -0
  83. package/dist-electron/images.js.map +1 -0
  84. package/dist-electron/ipc.js +783 -0
  85. package/dist-electron/ipc.js.map +1 -0
  86. package/dist-electron/links.js +46 -0
  87. package/dist-electron/links.js.map +1 -0
  88. package/dist-electron/logs.js +153 -0
  89. package/dist-electron/logs.js.map +1 -0
  90. package/dist-electron/main.js +494 -0
  91. package/dist-electron/main.js.map +1 -0
  92. package/dist-electron/merged-logs.js +127 -0
  93. package/dist-electron/merged-logs.js.map +1 -0
  94. package/dist-electron/navigation.js +37 -0
  95. package/dist-electron/navigation.js.map +1 -0
  96. package/dist-electron/ndjson.js +30 -0
  97. package/dist-electron/ndjson.js.map +1 -0
  98. package/dist-electron/networks.js +507 -0
  99. package/dist-electron/networks.js.map +1 -0
  100. package/dist-electron/port-conflicts.js +106 -0
  101. package/dist-electron/port-conflicts.js.map +1 -0
  102. package/dist-electron/preload.js +257 -0
  103. package/dist-electron/preload.js.map +1 -0
  104. package/dist-electron/pull.js +220 -0
  105. package/dist-electron/pull.js.map +1 -0
  106. package/dist-electron/redact.js +129 -0
  107. package/dist-electron/redact.js.map +1 -0
  108. package/dist-electron/registry-auth.js +150 -0
  109. package/dist-electron/registry-auth.js.map +1 -0
  110. package/dist-electron/renew.js +162 -0
  111. package/dist-electron/renew.js.map +1 -0
  112. package/dist-electron/restart-policy.js +58 -0
  113. package/dist-electron/restart-policy.js.map +1 -0
  114. package/dist-electron/run-command.js +146 -0
  115. package/dist-electron/run-command.js.map +1 -0
  116. package/dist-electron/run.js +151 -0
  117. package/dist-electron/run.js.map +1 -0
  118. package/dist-electron/self-update.js +163 -0
  119. package/dist-electron/self-update.js.map +1 -0
  120. package/dist-electron/servers.js +108 -0
  121. package/dist-electron/servers.js.map +1 -0
  122. package/dist-electron/settings.js +146 -0
  123. package/dist-electron/settings.js.map +1 -0
  124. package/dist-electron/ssh.js +574 -0
  125. package/dist-electron/ssh.js.map +1 -0
  126. package/dist-electron/stats.js +209 -0
  127. package/dist-electron/stats.js.map +1 -0
  128. package/dist-electron/streams.js +63 -0
  129. package/dist-electron/streams.js.map +1 -0
  130. package/dist-electron/system.js +123 -0
  131. package/dist-electron/system.js.map +1 -0
  132. package/dist-electron/terminal-transcript.js +55 -0
  133. package/dist-electron/terminal-transcript.js.map +1 -0
  134. package/dist-electron/updates.js +136 -0
  135. package/dist-electron/updates.js.map +1 -0
  136. package/dist-electron/volume-backup.js +203 -0
  137. package/dist-electron/volume-backup.js.map +1 -0
  138. package/dist-electron/volume-files.js +124 -0
  139. package/dist-electron/volume-files.js.map +1 -0
  140. package/dist-electron/volumes.js +253 -0
  141. package/dist-electron/volumes.js.map +1 -0
  142. package/dist-electron/wiring-watch.js +93 -0
  143. package/dist-electron/wiring-watch.js.map +1 -0
  144. package/dist-electron/wiring.js +71 -0
  145. package/dist-electron/wiring.js.map +1 -0
  146. package/dist-electron/wsl.js +167 -0
  147. package/dist-electron/wsl.js.map +1 -0
  148. package/package.json +125 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.conflictPort = conflictPort;
4
+ exports.portHolders = portHolders;
5
+ exports.describeHolders = describeHolders;
6
+ exports.explainPortConflict = explainPortConflict;
7
+ const i18n_1 = require("./i18n");
8
+ /**
9
+ * Wie er op een poort zit, als starten mislukt omdat hij bezet is.
10
+ *
11
+ * Docker zegt alleen dát de poort bezet is, niet door wie. Meestal is het een andere container,
12
+ * en dat weet de app: die staat in de lijst met zijn gepubliceerde poorten. Zo niet, dan is het
13
+ * iets buiten Docker, en ook dat is een antwoord — dan hoef je niet verder te zoeken in de lijst.
14
+ */
15
+ /**
16
+ * De vormen waarin Docker het zegt, van oud naar nieuw. De poort is steeds de eerste groep.
17
+ *
18
+ * - `Bind for 0.0.0.0:3306 failed: port is already allocated`
19
+ * - `failed to bind host port for 0.0.0.0:3306:172.18.0.4:3306/tcp: address already in use`
20
+ * - `failed to bind host port 0.0.0.0:80/tcp: address already in use` (Docker 29, bij compose)
21
+ * - `listen tcp4 0.0.0.0:80: bind: address already in use` (docker-proxy, en onder WSL)
22
+ */
23
+ const PATTERNS = [
24
+ /Bind for \S*?:(\d+) failed/i,
25
+ /bind host port (?:for )?\S*?:(\d+)[:/]/i,
26
+ /listen (?:tcp|udp)[46]? \S*?:(\d+): bind/i,
27
+ ];
28
+ /** Of de tekst over een bezette poort gaat. Zonder dit zou een poortnummer in een andere fout ook tellen. */
29
+ function isPortConflict(text) {
30
+ return /port is already allocated|address already in use|ports are not available/i.test(text);
31
+ }
32
+ /** De bezette hostpoort uit Docker's melding, of `null` als de melding daar niet over gaat. */
33
+ function conflictPort(text) {
34
+ if (!isPortConflict(text)) {
35
+ return null;
36
+ }
37
+ for (const pattern of PATTERNS) {
38
+ const match = pattern.exec(text);
39
+ if (match !== null) {
40
+ return Number(match[1]);
41
+ }
42
+ }
43
+ return null;
44
+ }
45
+ /** De draaiende containers die deze hostpoort publiceren. Een gestopte bindt niets. */
46
+ function portHolders(containers, port, except = null) {
47
+ return containers.filter((container) => container.state === 'running' &&
48
+ container.id !== except &&
49
+ container.ports.some((binding) => binding.hostPort === port));
50
+ }
51
+ /** De zin die erbij komt: wie het is, of dat het niets uit Docker is. */
52
+ function describeHolders(port, holders) {
53
+ const p = String(port);
54
+ if (holders.length === 0) {
55
+ const outside = (0, i18n_1.t)({
56
+ en: `No running container publishes port ${p}, so it is something outside Docker.`,
57
+ nl: `Geen draaiende container publiceert poort ${p}, dus het is iets buiten Docker.`,
58
+ de: `Kein laufender Container veröffentlicht Port ${p}, es ist also etwas außerhalb von Docker.`,
59
+ fr: `Aucun conteneur en cours ne publie le port ${p}, c’est donc quelque chose hors de Docker.`,
60
+ es: `Ningún contenedor en marcha publica el puerto ${p}, así que es algo fuera de Docker.`,
61
+ });
62
+ // Met Docker in WSL is dat vaak een webserver in de distro zelf, en die ziet Windows' netstat niet.
63
+ const where = (0, i18n_1.t)({
64
+ en: `With Docker in WSL, it is often a web server in that distro: sudo ss -ltnp 'sport = :${p}' there shows which. On Windows: netstat -ano | findstr :${p}.`,
65
+ nl: `Met Docker in WSL is het vaak een webserver in die distro: sudo ss -ltnp 'sport = :${p}' laat daar zien welke. Op Windows: netstat -ano | findstr :${p}.`,
66
+ de: `Mit Docker in WSL ist es oft ein Webserver in dieser Distro: sudo ss -ltnp 'sport = :${p}' zeigt dort, welcher. Unter Windows: netstat -ano | findstr :${p}.`,
67
+ fr: `Avec Docker dans WSL, c’est souvent un serveur web dans cette distro : sudo ss -ltnp 'sport = :${p}' y montre lequel. Sous Windows : netstat -ano | findstr :${p}.`,
68
+ es: `Con Docker en WSL, suele ser un servidor web en esa distro: sudo ss -ltnp 'sport = :${p}' muestra allí cuál. En Windows: netstat -ano | findstr :${p}.`,
69
+ });
70
+ return `${outside} ${where}`;
71
+ }
72
+ const names = holders.map((holder) => `'${holder.name}'`).join(', ');
73
+ return (0, i18n_1.t)({
74
+ en: `Port ${p} is taken by ${names}.`,
75
+ nl: `Poort ${p} is bezet door ${names}.`,
76
+ de: `Port ${p} ist belegt von ${names}.`,
77
+ fr: `Le port ${p} est pris par ${names}.`,
78
+ es: `El puerto ${p} lo ocupa ${names}.`,
79
+ });
80
+ }
81
+ /**
82
+ * Maakt van een bezette poort een korte melding: wat er mislukte, en wie de poort heeft. Docker's
83
+ * eigen tekst is dan een alinea met een endpoint-id erin, en het antwoord stond er niet eens in.
84
+ * Bij elke andere fout komt de melding ongewijzigd terug, en lukt het opzoeken niet, dan ook: de
85
+ * oorspronkelijke fout is dan nog steeds waar, alleen minder behulpzaam.
86
+ *
87
+ * `list` is de containerlijst; als parameter, zodat dit bestand `containers.ts` niet hoeft te
88
+ * importeren, dat het zelf gebruikt. `raw` is Docker's eigen tekst als die niet al in `problem`
89
+ * staat, zoals bij de run-dialoog. `lead` zegt wat er mislukte, met de lijst erbij voor een naam;
90
+ * zonder blijft `problem` staan en komt de uitleg erachter.
91
+ */
92
+ async function explainPortConflict(problem, list, options = {}) {
93
+ const port = conflictPort(options.raw ?? problem);
94
+ if (port === null) {
95
+ return problem;
96
+ }
97
+ try {
98
+ const containers = await list();
99
+ const holders = describeHolders(port, portHolders(containers, port, options.except ?? null));
100
+ return `${options.lead?.(containers) ?? problem} ${holders}`;
101
+ }
102
+ catch {
103
+ return problem;
104
+ }
105
+ }
106
+ //# sourceMappingURL=port-conflicts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port-conflicts.js","sourceRoot":"","sources":["../electron/port-conflicts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+
3
+ // electron/preload.ts
4
+ var import_electron = require("electron");
5
+
6
+ // electron/channels.ts
7
+ var CHANNELS = {
8
+ engineStatus: "engine:status",
9
+ engineStartWsl: "engine:startWsl",
10
+ engineStartWslDaemon: "engine:startWslDaemon",
11
+ containersList: "containers:list",
12
+ containersAction: "containers:action",
13
+ containersInspect: "containers:inspect",
14
+ containersHealth: "containers:health",
15
+ containersEvents: "containers:events",
16
+ containersWiring: "containers:wiring",
17
+ containersAttention: "containers:attention",
18
+ containersRunCommand: "containers:runCommand",
19
+ containersRestartPolicy: "containers:restartPolicy",
20
+ containersSetRestartPolicy: "containers:setRestartPolicy",
21
+ containersDiagnose: "containers:diagnose",
22
+ assistantStatus: "assistant:status",
23
+ assistantSetKey: "assistant:setKey",
24
+ assistantClearKey: "assistant:clearKey",
25
+ assistantStart: "assistant:start",
26
+ assistantAsk: "assistant:ask",
27
+ assistantClose: "assistant:close",
28
+ /** Van main naar renderer, met het gesprek-id erachter: `assistant:event:assistant-1`. */
29
+ assistantEvent: "assistant:event",
30
+ containersWatchStats: "containers:watchStats",
31
+ imagesList: "images:list",
32
+ imagesHistory: "images:history",
33
+ imagesRemove: "images:remove",
34
+ imagesPrune: "images:prune",
35
+ imagesRun: "images:run",
36
+ imagesPull: "images:pull",
37
+ imagesPullClose: "images:pullClose",
38
+ imagesCheckUpdates: "images:checkUpdates",
39
+ imagesStale: "images:stale",
40
+ imagesRenew: "images:renew",
41
+ /** Van main naar renderer, met het stream-id erachter: `images:pullProgress:pull-2`. */
42
+ imagesPullProgress: "images:pullProgress",
43
+ volumesList: "volumes:list",
44
+ volumesSizes: "volumes:sizes",
45
+ volumesCreate: "volumes:create",
46
+ volumesRemove: "volumes:remove",
47
+ volumesPrune: "volumes:prune",
48
+ volumesBrowse: "volumes:browse",
49
+ volumesCloseBrowser: "volumes:closeBrowser",
50
+ volumesBackup: "volumes:backup",
51
+ volumesRestore: "volumes:restore",
52
+ networksList: "networks:list",
53
+ networksCreate: "networks:create",
54
+ networksRemove: "networks:remove",
55
+ networksPrune: "networks:prune",
56
+ networksMembers: "networks:members",
57
+ networksOfContainer: "networks:of-container",
58
+ networksConnect: "networks:connect",
59
+ networksDisconnect: "networks:disconnect",
60
+ composeStatus: "compose:status",
61
+ composeUp: "compose:up",
62
+ composeDown: "compose:down",
63
+ composeRecreate: "compose:recreate",
64
+ composeFiles: "compose:files",
65
+ composeConfig: "compose:config",
66
+ systemDiskUsage: "system:diskUsage",
67
+ systemPrune: "system:prune",
68
+ contextsList: "contexts:list",
69
+ contextsUse: "contexts:use",
70
+ contextsCreate: "contexts:create",
71
+ contextsRemove: "contexts:remove",
72
+ contextsTest: "contexts:test",
73
+ contextsTrustHostKey: "contexts:trustHostKey",
74
+ execOpen: "exec:open",
75
+ execOpenHost: "exec:openHost",
76
+ execWrite: "exec:write",
77
+ execResize: "exec:resize",
78
+ execClose: "exec:close",
79
+ /** Van main naar renderer, met het stream-id erachter. */
80
+ execData: "exec:data",
81
+ execEnd: "exec:end",
82
+ logsOpen: "logs:open",
83
+ logsClose: "logs:close",
84
+ /** Van main naar renderer, met het stream-id erachter: `logs:lines:logs-3`. */
85
+ logsWatchAll: "logs:watchAll",
86
+ logsAllLines: "logs:allLines",
87
+ logsLines: "logs:lines",
88
+ /** Van main naar renderer: een bundel metingen, hooguit één per seconde. */
89
+ containersStats: "containers:stats",
90
+ /** Van main naar renderer: welke lijsten verouderd zijn. */
91
+ dockerEvents: "docker:events",
92
+ navigationTakePending: "navigation:takePending",
93
+ settingsGet: "settings:get",
94
+ settingsUpdate: "settings:update",
95
+ appQuit: "app:quit",
96
+ appUpdateGet: "appUpdate:get",
97
+ appUpdateCheck: "appUpdate:check",
98
+ appUpdateInstall: "appUpdate:install",
99
+ /** Van main naar renderer: de nieuwe stand van het bijwerken. */
100
+ appUpdateChanged: "appUpdate:changed",
101
+ filesList: "files:list",
102
+ filesChanges: "files:changes",
103
+ filesDownload: "files:download",
104
+ filesUpload: "files:upload",
105
+ filesChooseAndUpload: "files:chooseAndUpload",
106
+ /** Van main naar renderer: ga naar deze route. */
107
+ navigationNavigate: "navigation:navigate"
108
+ };
109
+
110
+ // electron/preload.ts
111
+ function subscribe(channel, listener) {
112
+ const handler = (_event, payload) => listener(payload);
113
+ import_electron.ipcRenderer.on(channel, handler);
114
+ return () => {
115
+ import_electron.ipcRenderer.off(channel, handler);
116
+ };
117
+ }
118
+ var api = {
119
+ platform: process.platform,
120
+ versions: {
121
+ chrome: process.versions.chrome,
122
+ electron: process.versions.electron,
123
+ node: process.versions.node
124
+ },
125
+ engine: {
126
+ status: () => import_electron.ipcRenderer.invoke(CHANNELS.engineStatus),
127
+ startWsl: (distro) => import_electron.ipcRenderer.invoke(CHANNELS.engineStartWsl, distro),
128
+ startWslDaemon: (distro) => import_electron.ipcRenderer.invoke(CHANNELS.engineStartWslDaemon, distro)
129
+ },
130
+ containers: {
131
+ list: () => import_electron.ipcRenderer.invoke(CHANNELS.containersList),
132
+ inspect: (id) => import_electron.ipcRenderer.invoke(CHANNELS.containersInspect, id),
133
+ health: (id) => import_electron.ipcRenderer.invoke(CHANNELS.containersHealth, id),
134
+ events: (name) => import_electron.ipcRenderer.invoke(CHANNELS.containersEvents, name),
135
+ wiring: (id) => import_electron.ipcRenderer.invoke(CHANNELS.containersWiring, id),
136
+ attention: () => import_electron.ipcRenderer.invoke(CHANNELS.containersAttention),
137
+ runCommand: (id) => import_electron.ipcRenderer.invoke(CHANNELS.containersRunCommand, id),
138
+ restartPolicy: (id) => import_electron.ipcRenderer.invoke(CHANNELS.containersRestartPolicy, id),
139
+ setRestartPolicy: (id, policy) => import_electron.ipcRenderer.invoke(CHANNELS.containersSetRestartPolicy, id, policy),
140
+ diagnose: (id) => import_electron.ipcRenderer.invoke(CHANNELS.containersDiagnose, id),
141
+ action: (action, id) => import_electron.ipcRenderer.invoke(CHANNELS.containersAction, action, id),
142
+ watchStats: (ids) => import_electron.ipcRenderer.invoke(CHANNELS.containersWatchStats, ids),
143
+ onStats: (listener) => subscribe(CHANNELS.containersStats, listener)
144
+ },
145
+ images: {
146
+ list: () => import_electron.ipcRenderer.invoke(CHANNELS.imagesList),
147
+ history: (reference) => import_electron.ipcRenderer.invoke(CHANNELS.imagesHistory, reference),
148
+ checkUpdates: () => import_electron.ipcRenderer.invoke(CHANNELS.imagesCheckUpdates),
149
+ staleContainers: (reference) => import_electron.ipcRenderer.invoke(CHANNELS.imagesStale, reference),
150
+ renew: (reference) => import_electron.ipcRenderer.invoke(CHANNELS.imagesRenew, reference),
151
+ remove: (reference, force) => import_electron.ipcRenderer.invoke(CHANNELS.imagesRemove, reference, force),
152
+ prune: (all) => import_electron.ipcRenderer.invoke(CHANNELS.imagesPrune, all),
153
+ run: (options) => import_electron.ipcRenderer.invoke(CHANNELS.imagesRun, options),
154
+ pull: (reference) => import_electron.ipcRenderer.invoke(CHANNELS.imagesPull, reference),
155
+ close: (streamId) => import_electron.ipcRenderer.invoke(CHANNELS.imagesPullClose, streamId),
156
+ onPullProgress: (streamId, listener) => subscribe(`${CHANNELS.imagesPullProgress}:${streamId}`, listener)
157
+ },
158
+ volumes: {
159
+ list: () => import_electron.ipcRenderer.invoke(CHANNELS.volumesList),
160
+ sizes: () => import_electron.ipcRenderer.invoke(CHANNELS.volumesSizes),
161
+ create: (volume) => import_electron.ipcRenderer.invoke(CHANNELS.volumesCreate, volume),
162
+ remove: (name, force) => import_electron.ipcRenderer.invoke(CHANNELS.volumesRemove, name, force),
163
+ prune: (all) => import_electron.ipcRenderer.invoke(CHANNELS.volumesPrune, all),
164
+ browse: (name, path) => import_electron.ipcRenderer.invoke(CHANNELS.volumesBrowse, name, path),
165
+ closeBrowser: () => import_electron.ipcRenderer.invoke(CHANNELS.volumesCloseBrowser),
166
+ backup: (name) => import_electron.ipcRenderer.invoke(CHANNELS.volumesBackup, name),
167
+ restore: (name) => import_electron.ipcRenderer.invoke(CHANNELS.volumesRestore, name)
168
+ },
169
+ networks: {
170
+ list: () => import_electron.ipcRenderer.invoke(CHANNELS.networksList),
171
+ create: (network) => import_electron.ipcRenderer.invoke(CHANNELS.networksCreate, network),
172
+ remove: (id) => import_electron.ipcRenderer.invoke(CHANNELS.networksRemove, id),
173
+ prune: () => import_electron.ipcRenderer.invoke(CHANNELS.networksPrune),
174
+ members: (name) => import_electron.ipcRenderer.invoke(CHANNELS.networksMembers, name),
175
+ ofContainer: (containerId) => import_electron.ipcRenderer.invoke(CHANNELS.networksOfContainer, containerId),
176
+ connect: (network, containerId, alias) => import_electron.ipcRenderer.invoke(CHANNELS.networksConnect, network, containerId, alias),
177
+ disconnect: (network, containerId) => import_electron.ipcRenderer.invoke(CHANNELS.networksDisconnect, network, containerId)
178
+ },
179
+ compose: {
180
+ status: () => import_electron.ipcRenderer.invoke(CHANNELS.composeStatus),
181
+ up: (projectName) => import_electron.ipcRenderer.invoke(CHANNELS.composeUp, projectName),
182
+ down: (projectName) => import_electron.ipcRenderer.invoke(CHANNELS.composeDown, projectName),
183
+ recreate: (projectName, service) => import_electron.ipcRenderer.invoke(CHANNELS.composeRecreate, projectName, service),
184
+ files: (projectName) => import_electron.ipcRenderer.invoke(CHANNELS.composeFiles, projectName),
185
+ config: (projectName) => import_electron.ipcRenderer.invoke(CHANNELS.composeConfig, projectName)
186
+ },
187
+ system: {
188
+ diskUsage: () => import_electron.ipcRenderer.invoke(CHANNELS.systemDiskUsage),
189
+ prune: (selection) => import_electron.ipcRenderer.invoke(CHANNELS.systemPrune, selection)
190
+ },
191
+ contexts: {
192
+ list: () => import_electron.ipcRenderer.invoke(CHANNELS.contextsList),
193
+ use: (name) => import_electron.ipcRenderer.invoke(CHANNELS.contextsUse, name),
194
+ create: (server) => import_electron.ipcRenderer.invoke(CHANNELS.contextsCreate, server),
195
+ remove: (name) => import_electron.ipcRenderer.invoke(CHANNELS.contextsRemove, name),
196
+ test: (target) => import_electron.ipcRenderer.invoke(CHANNELS.contextsTest, target),
197
+ trustHostKey: (name, fingerprint) => import_electron.ipcRenderer.invoke(CHANNELS.contextsTrustHostKey, name, fingerprint)
198
+ },
199
+ exec: {
200
+ open: (containerId, cols, rows) => import_electron.ipcRenderer.invoke(CHANNELS.execOpen, containerId, cols, rows),
201
+ openHost: (cols, rows) => import_electron.ipcRenderer.invoke(CHANNELS.execOpenHost, cols, rows),
202
+ write: (streamId, data) => import_electron.ipcRenderer.invoke(CHANNELS.execWrite, streamId, data),
203
+ resize: (streamId, cols, rows) => import_electron.ipcRenderer.invoke(CHANNELS.execResize, streamId, cols, rows),
204
+ close: (streamId) => import_electron.ipcRenderer.invoke(CHANNELS.execClose, streamId),
205
+ onData: (streamId, listener) => subscribe(`${CHANNELS.execData}:${streamId}`, listener),
206
+ onEnd: (streamId, listener) => subscribe(`${CHANNELS.execEnd}:${streamId}`, () => listener())
207
+ },
208
+ logs: {
209
+ open: (containerId, tail) => import_electron.ipcRenderer.invoke(CHANNELS.logsOpen, containerId, tail),
210
+ close: (streamId) => import_electron.ipcRenderer.invoke(CHANNELS.logsClose, streamId),
211
+ onLines: (streamId, listener) => subscribe(`${CHANNELS.logsLines}:${streamId}`, listener),
212
+ watchAll: (sources) => import_electron.ipcRenderer.invoke(CHANNELS.logsWatchAll, sources),
213
+ onAllLines: (listener) => subscribe(CHANNELS.logsAllLines, listener)
214
+ },
215
+ events: {
216
+ subscribe: (listener) => subscribe(CHANNELS.dockerEvents, listener)
217
+ },
218
+ files: {
219
+ list: (containerId, path) => import_electron.ipcRenderer.invoke(CHANNELS.filesList, containerId, path),
220
+ changes: (containerId) => import_electron.ipcRenderer.invoke(CHANNELS.filesChanges, containerId),
221
+ download: (containerId, path, kind) => import_electron.ipcRenderer.invoke(CHANNELS.filesDownload, containerId, path, kind),
222
+ upload: (containerId, dir, files) => import_electron.ipcRenderer.invoke(
223
+ CHANNELS.filesUpload,
224
+ containerId,
225
+ dir,
226
+ files.map((file) => import_electron.webUtils.getPathForFile(file)).filter((local) => local !== "")
227
+ ),
228
+ chooseAndUpload: (containerId, dir) => import_electron.ipcRenderer.invoke(CHANNELS.filesChooseAndUpload, containerId, dir)
229
+ },
230
+ settings: {
231
+ get: () => import_electron.ipcRenderer.invoke(CHANNELS.settingsGet),
232
+ update: (patch) => import_electron.ipcRenderer.invoke(CHANNELS.settingsUpdate, patch)
233
+ },
234
+ assistant: {
235
+ status: () => import_electron.ipcRenderer.invoke(CHANNELS.assistantStatus),
236
+ setKey: (key) => import_electron.ipcRenderer.invoke(CHANNELS.assistantSetKey, key),
237
+ clearKey: () => import_electron.ipcRenderer.invoke(CHANNELS.assistantClearKey),
238
+ start: (containerId) => import_electron.ipcRenderer.invoke(CHANNELS.assistantStart, containerId),
239
+ ask: (conversationId, question) => import_electron.ipcRenderer.invoke(CHANNELS.assistantAsk, conversationId, question),
240
+ close: (conversationId) => import_electron.ipcRenderer.invoke(CHANNELS.assistantClose, conversationId),
241
+ onEvent: (conversationId, listener) => subscribe(`${CHANNELS.assistantEvent}:${conversationId}`, listener)
242
+ },
243
+ app: {
244
+ quit: () => import_electron.ipcRenderer.invoke(CHANNELS.appQuit)
245
+ },
246
+ appUpdate: {
247
+ get: () => import_electron.ipcRenderer.invoke(CHANNELS.appUpdateGet),
248
+ check: () => import_electron.ipcRenderer.invoke(CHANNELS.appUpdateCheck),
249
+ install: () => import_electron.ipcRenderer.invoke(CHANNELS.appUpdateInstall),
250
+ onChange: (listener) => subscribe(CHANNELS.appUpdateChanged, listener)
251
+ },
252
+ navigation: {
253
+ takePending: () => import_electron.ipcRenderer.invoke(CHANNELS.navigationTakePending),
254
+ onNavigate: (listener) => subscribe(CHANNELS.navigationNavigate, listener)
255
+ }
256
+ };
257
+ import_electron.contextBridge.exposeInMainWorld("electron", api);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.js","sourceRoot":"","sources":["../electron/preload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPullTracker = createPullTracker;
4
+ exports.describePullProblem = describePullProblem;
5
+ exports.openPullStream = openPullStream;
6
+ const docker_client_1 = require("./docker-client");
7
+ const ndjson_1 = require("./ndjson");
8
+ const registry_auth_1 = require("./registry-auth");
9
+ const i18n_1 = require("./i18n");
10
+ /** Hoe vaak we de voortgang naar het venster sturen. Een pull levert tientallen berichten per seconde. */
11
+ const BATCH_MS = 150;
12
+ function asString(value) {
13
+ return typeof value === 'string' && value !== '' ? value : null;
14
+ }
15
+ function asNumber(value) {
16
+ return typeof value === 'number' && Number.isFinite(value) ? value : 0;
17
+ }
18
+ /**
19
+ * Houdt bij hoe ver een pull is.
20
+ *
21
+ * Docker stuurt per laag losse berichten — "Pulling fs layer", "Downloading" met een teller,
22
+ * "Extracting", "Pull complete" — door elkaar heen voor alle lagen tegelijk. Wij houden er
23
+ * één regel per laag van over, in de volgorde waarin de lagen zich meldden, zodat de lijst in
24
+ * de UI niet bij elke meting van plek verspringt.
25
+ *
26
+ * Berichten zonder `id` gaan over de pull als geheel ("Pulling from library/nginx",
27
+ * "Status: Downloaded newer image for …") en worden de algemene melding.
28
+ */
29
+ function createPullTracker(reference) {
30
+ const layers = new Map();
31
+ let message = (0, i18n_1.t)({ en: `Pulling ${reference}…`, nl: `Bezig met ophalen van ${reference}…`, de: `${reference} wird geholt…`, fr: `Téléchargement de ${reference}…`, es: `Descargando ${reference}…` });
32
+ let problem = null;
33
+ let done = false;
34
+ return {
35
+ apply: (event) => {
36
+ const raw = event;
37
+ if (raw === null) {
38
+ return;
39
+ }
40
+ const error = asString(raw.error) ?? asString(raw.errorDetail?.message);
41
+ if (error !== null) {
42
+ problem = error;
43
+ done = true;
44
+ return;
45
+ }
46
+ const status = asString(raw.status);
47
+ const id = asString(raw.id);
48
+ if (status === null) {
49
+ return;
50
+ }
51
+ if (id === null) {
52
+ message = status;
53
+ // Docker sluit af met "Status: …"; dat is het sein dat de pull klaar is.
54
+ if (status.startsWith('Status:')) {
55
+ done = true;
56
+ }
57
+ return;
58
+ }
59
+ const previous = layers.get(id);
60
+ layers.set(id, {
61
+ id,
62
+ status,
63
+ current: asNumber(raw.progressDetail?.current) || (previous?.current ?? 0),
64
+ total: asNumber(raw.progressDetail?.total) || (previous?.total ?? 0),
65
+ });
66
+ },
67
+ complete: () => {
68
+ done = true;
69
+ },
70
+ snapshot: () => ({ reference, layers: [...layers.values()], message, done, problem }),
71
+ };
72
+ }
73
+ async function openViaDocker(reference, auth) {
74
+ const { docker } = (0, docker_client_1.getConnection)();
75
+ // Met inloggegevens als die er zijn, anders anoniem. De daemon haalt de image op; de
76
+ // gegevens gaan alleen mee in de header van dit ene verzoek.
77
+ return (await docker.pull(reference, auth === null ? {} : { authconfig: auth }));
78
+ }
79
+ /** Hoe je in een melding zegt waar je moet inloggen: Docker Hub heeft geen adres nodig. */
80
+ function loginCommand(reference) {
81
+ const registry = (0, registry_auth_1.registryOf)(reference);
82
+ return registry === registry_auth_1.DOCKER_HUB ? 'docker login' : `docker login ${registry}`;
83
+ }
84
+ /**
85
+ * Vertaalt een mislukte pull naar iets leesbaars.
86
+ *
87
+ * De daemon verpakt van alles in een 500, dus de statuscode zegt hier weinig; wat ertoe doet
88
+ * staat in de tekst. Onbewerkt krijg je een regel van vier zinnen met `dial tcp` erin, en die
89
+ * leest als een fout van deze app terwijl er meestal iets met het netwerk of de naam aan de
90
+ * hand is.
91
+ */
92
+ function describePullProblem(err, reference, authenticated = false) {
93
+ const raw = err instanceof Error ? err.message : String(err);
94
+ const text = raw.toLowerCase();
95
+ if (text.includes('no such host') || text.includes('dial tcp') || text.includes('enotfound')) {
96
+ return (0, i18n_1.t)({
97
+ en: `The registry cannot be reached from this machine. Check your network connection, and whether Docker needs a proxy. (${reference})`,
98
+ nl: `De registry is niet bereikbaar vanaf deze machine. Controleer je netwerkverbinding, en of Docker een proxy nodig heeft. (${reference})`,
99
+ de: `Die Registry ist von diesem Rechner aus nicht erreichbar. Prüfen Sie die Netzwerkverbindung, und ob Docker einen Proxy braucht. (${reference})`,
100
+ fr: `Le registry est injoignable depuis cette machine. Vérifiez votre connexion réseau, et si Docker a besoin d’un proxy. (${reference})`,
101
+ es: `No se puede contactar con el registry desde esta máquina. Comprueba la conexión de red, y si Docker necesita un proxy. (${reference})`,
102
+ });
103
+ }
104
+ if (text.includes('manifest unknown') || text.includes('not found') || text.includes('manifest for')) {
105
+ return (0, i18n_1.t)({
106
+ en: `'${reference}' does not exist in the registry. Are the name and tag correct?`,
107
+ nl: `'${reference}' bestaat niet in de registry. Klopt de naam en de tag?`,
108
+ de: `'${reference}' gibt es nicht in der Registry. Stimmen Name und Tag?`,
109
+ fr: `'${reference}' n’existe pas dans le registry. Le nom et le tag sont-ils corrects ?`,
110
+ es: `'${reference}' no existe en el registry. ¿Son correctos el nombre y el tag?`,
111
+ });
112
+ }
113
+ // Met en zonder inloggegevens is het een ander verhaal: zonder is inloggen de oplossing, met
114
+ // zijn de gegevens verlopen of hoort dit account er niet bij.
115
+ if (text.includes('unauthorized') || text.includes('authentication required') || text.includes('denied')) {
116
+ const login = loginCommand(reference);
117
+ return authenticated
118
+ ? (0, i18n_1.t)({
119
+ en: `The registry rejected your credentials for '${reference}'. Log in again with '${login}', or check whether this account has access.`,
120
+ nl: `De registry weigerde je inloggegevens voor '${reference}'. Log opnieuw in met '${login}', of kijk of dit account toegang heeft.`,
121
+ de: `Die Registry hat Ihre Anmeldedaten für '${reference}' abgelehnt. Melden Sie sich erneut mit '${login}' an, oder prüfen Sie, ob dieses Konto Zugriff hat.`,
122
+ fr: `Le registry a rejeté vos identifiants pour '${reference}'. Reconnectez-vous avec '${login}', ou vérifiez que ce compte a bien accès.`,
123
+ es: `El registry ha rechazado tus credenciales para '${reference}'. Vuelve a iniciar sesión con '${login}', o comprueba si esta cuenta tiene acceso.`,
124
+ })
125
+ : (0, i18n_1.t)({
126
+ en: `No access to '${reference}'. If it is private, log in first with '${login}'; the app then uses those credentials automatically.`,
127
+ nl: `Geen toegang tot '${reference}'. Is hij privé, log dan eerst in met '${login}'; de app gebruikt die inloggegevens daarna vanzelf.`,
128
+ de: `Kein Zugriff auf '${reference}'. Ist es privat, melden Sie sich zuerst mit '${login}' an; die App benutzt diese Anmeldedaten danach von selbst.`,
129
+ fr: `Aucun accès à '${reference}'. S’il est privé, connectez-vous d’abord avec '${login}' ; l’application utilisera ensuite ces identifiants toute seule.`,
130
+ es: `Sin acceso a '${reference}'. Si es privado, inicia sesión primero con '${login}'; después la aplicación usa esas credenciales por su cuenta.`,
131
+ });
132
+ }
133
+ if (text.includes('timeout') || text.includes('timed out')) {
134
+ return (0, i18n_1.t)({
135
+ en: `Pulling '${reference}' took too long. The registry is not responding.`,
136
+ nl: `Het ophalen van '${reference}' duurde te lang. De registry reageert niet.`,
137
+ de: `Das Holen von '${reference}' hat zu lange gedauert. Die Registry antwortet nicht.`,
138
+ fr: `Le téléchargement de '${reference}' a pris trop de temps. Le registry ne répond pas.`,
139
+ es: `La descarga de '${reference}' ha tardado demasiado. El registry no responde.`,
140
+ });
141
+ }
142
+ return (0, i18n_1.t)({
143
+ en: `Pulling '${reference}' failed: ${raw}`,
144
+ nl: `Ophalen van '${reference}' mislukte: ${raw}`,
145
+ de: `Das Holen von '${reference}' ist fehlgeschlagen: ${raw}`,
146
+ fr: `Le téléchargement de '${reference}' a échoué : ${raw}`,
147
+ es: `La descarga de '${reference}' ha fallado: ${raw}`,
148
+ });
149
+ }
150
+ /**
151
+ * Haalt een image op en meldt de voortgang. Tweede gebruiker van hetzelfde stream-mechanisme
152
+ * als de logs: een id uit het register, brokjes over het kanaal van dat id, en sluiten als de
153
+ * renderer klaar is.
154
+ *
155
+ * Geeft een resultaat terug in plaats van te gooien, net als openExec. Een fout die door
156
+ * ipcMain heen gaat komt bij de renderer aan als "Error occurred in handler for …" met de
157
+ * stacktrace eraan vast, en dan is er van de melding niets bruikbaars over.
158
+ */
159
+ async function openPullStream(reference, onProgress, open = openViaDocker, lookup = registry_auth_1.credentialsFor) {
160
+ const auth = await lookup(reference);
161
+ let stream;
162
+ try {
163
+ stream = await open(reference, auth);
164
+ }
165
+ catch (err) {
166
+ return { ok: false, problem: describePullProblem(err, reference, auth !== null) };
167
+ }
168
+ const tracker = createPullTracker(reference);
169
+ let timer = null;
170
+ let dirty = false;
171
+ function flush() {
172
+ timer = null;
173
+ if (!dirty) {
174
+ return;
175
+ }
176
+ dirty = false;
177
+ onProgress(tracker.snapshot());
178
+ }
179
+ function schedule() {
180
+ dirty = true;
181
+ if (timer === null) {
182
+ timer = setTimeout(flush, BATCH_MS);
183
+ timer.unref();
184
+ }
185
+ }
186
+ function finish() {
187
+ tracker.complete();
188
+ dirty = true;
189
+ flush();
190
+ }
191
+ stream.on('data', (0, ndjson_1.ndjson)((event) => {
192
+ tracker.apply(event);
193
+ schedule();
194
+ }));
195
+ stream.on('end', finish);
196
+ stream.on('close', finish);
197
+ stream.on('error', () => {
198
+ tracker.apply({ error: (0, i18n_1.t)({
199
+ en: 'The connection to the registry was lost.',
200
+ nl: 'De verbinding met de registry viel weg.',
201
+ de: 'Die Verbindung zur Registry ist abgebrochen.',
202
+ fr: 'La connexion au registry a été perdue.',
203
+ es: 'Se ha perdido la conexión con el registry.',
204
+ }) });
205
+ dirty = true;
206
+ flush();
207
+ });
208
+ return {
209
+ ok: true,
210
+ stream: {
211
+ destroy: () => {
212
+ if (timer !== null) {
213
+ clearTimeout(timer);
214
+ }
215
+ stream.destroy();
216
+ },
217
+ },
218
+ };
219
+ }
220
+ //# sourceMappingURL=pull.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../electron/pull.ts"],"names":[],"mappings":"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"}