docker-client-mx 1.42.0 → 1.43.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 (92) hide show
  1. package/dist/docker-desktop-mx/browser/chunk-75uKIulV.js +1 -0
  2. package/dist/docker-desktop-mx/browser/chunk-B-8njY4y.js +1 -0
  3. package/dist/docker-desktop-mx/browser/chunk-B1xjyPnV.js +1 -0
  4. package/dist/docker-desktop-mx/browser/{chunk-DsuW5Ksa2.js → chunk-BE5ctn7s.js} +1 -1
  5. package/dist/docker-desktop-mx/browser/chunk-BNz89YmT2.js +1 -0
  6. package/dist/docker-desktop-mx/browser/{chunk-CT1ZUgmS.js → chunk-BYBsnx9-2.js} +1 -1
  7. package/dist/docker-desktop-mx/browser/chunk-BpQVP_gf.js +1 -0
  8. package/dist/docker-desktop-mx/browser/{chunk-CSrKHPxR.js → chunk-BsTDUJ3m.js} +1 -1
  9. package/dist/docker-desktop-mx/browser/{chunk-Ba_z6LGV.js → chunk-Bxte2YBm.js} +1 -1
  10. package/dist/docker-desktop-mx/browser/{chunk-CWusqRG0.js → chunk-C7c_wFw-.js} +1 -1
  11. package/dist/docker-desktop-mx/browser/chunk-CUSsr_nJ.js +1 -0
  12. package/dist/docker-desktop-mx/browser/{chunk-wa_VZZFY.js → chunk-CaR7Z77S2.js} +1 -1
  13. package/dist/docker-desktop-mx/browser/chunk-Cau4mGeC.js +1 -0
  14. package/dist/docker-desktop-mx/browser/{chunk-D0xC_xVf.js → chunk-CjAbzLl3.js} +1 -1
  15. package/dist/docker-desktop-mx/browser/{chunk-C22Z7vgK.js → chunk-CjySsWe4.js} +1 -1
  16. package/dist/docker-desktop-mx/browser/chunk-CpIMiI_l.js +4 -0
  17. package/dist/docker-desktop-mx/browser/chunk-CpNGhf9S.js +1 -0
  18. package/dist/docker-desktop-mx/browser/{chunk-V7ftX_10.js → chunk-CphQt55R.js} +1 -1
  19. package/dist/docker-desktop-mx/browser/{chunk-DvoPI4MU.js → chunk-Cpz4zP5G.js} +1 -1
  20. package/dist/docker-desktop-mx/browser/{chunk-Zom3ankA.js → chunk-Cx-uRg2m.js} +1 -1
  21. package/dist/docker-desktop-mx/browser/{chunk-CI9I9Npi.js → chunk-D2SM5E9h.js} +2 -2
  22. package/dist/docker-desktop-mx/browser/{chunk-DZjRtM2K.js → chunk-D5njuWRz.js} +1 -1
  23. package/dist/docker-desktop-mx/browser/{chunk-DLeqF0uQ.js → chunk-D86K3m6W.js} +1 -1
  24. package/dist/docker-desktop-mx/browser/chunk-DCYTwazU.js +1 -0
  25. package/dist/docker-desktop-mx/browser/chunk-DGnxa3ti2.js +1 -0
  26. package/dist/docker-desktop-mx/browser/{chunk-3VyqMz_T.js → chunk-DLpC_2HL.js} +2 -2
  27. package/dist/docker-desktop-mx/browser/{chunk-Zcfhi-RM.js → chunk-DNfiG-TG.js} +1 -1
  28. package/dist/docker-desktop-mx/browser/chunk-DS3iAefP.js +1 -0
  29. package/dist/docker-desktop-mx/browser/chunk-DdTfHpyK.js +1 -0
  30. package/dist/docker-desktop-mx/browser/{chunk-Cbit44lz.js → chunk-DnY7-enP.js} +1 -1
  31. package/dist/docker-desktop-mx/browser/{chunk-CRNeTD5E.js → chunk-Q3Ig-PJ6.js} +1 -1
  32. package/dist/docker-desktop-mx/browser/{chunk-KUYJNmP22.js → chunk-VC5gaeEq.js} +1 -1
  33. package/dist/docker-desktop-mx/browser/chunk-gHmeiJFn.js +1 -0
  34. package/dist/docker-desktop-mx/browser/{chunk-Ckq_aT3A.js → chunk-hJqozYgS.js} +1 -1
  35. package/dist/docker-desktop-mx/browser/{chunk-D-7d5O7f.js → chunk-hXmaVpBu2.js} +1 -1
  36. package/dist/docker-desktop-mx/browser/chunk-iWbUoQd52.js +6 -0
  37. package/dist/docker-desktop-mx/browser/chunk-k-zsJmvX.js +1 -0
  38. package/dist/docker-desktop-mx/browser/{chunk-CMrtklQ1.js → chunk-qxDOm16k.js} +2 -2
  39. package/dist/docker-desktop-mx/browser/chunk-sxrgZH0E.js +3 -0
  40. package/dist/docker-desktop-mx/browser/{chunk-ep62jwHG.js → chunk-vPeKxmUB.js} +1 -1
  41. package/dist/docker-desktop-mx/browser/{chunk-Bx2_SrZM.js → chunk-xmDwFpQl.js} +1 -1
  42. package/dist/docker-desktop-mx/browser/chunk-yYm_2q6C.js +1 -0
  43. package/dist/docker-desktop-mx/browser/index.html +2 -2
  44. package/dist/docker-desktop-mx/browser/main-UUO74KHR.js +1 -0
  45. package/dist/docker-desktop-mx/browser/styles-IM2TO7ZD.css +1 -0
  46. package/dist-electron/channels.js +9 -0
  47. package/dist-electron/channels.js.map +1 -1
  48. package/dist-electron/compose-known.js +135 -0
  49. package/dist-electron/compose-known.js.map +1 -0
  50. package/dist-electron/compose.js +4 -1
  51. package/dist-electron/compose.js.map +1 -1
  52. package/dist-electron/container-duplicate.js +196 -0
  53. package/dist-electron/container-duplicate.js.map +1 -0
  54. package/dist-electron/containers.js +15 -0
  55. package/dist-electron/containers.js.map +1 -1
  56. package/dist-electron/docker-client.js +1 -0
  57. package/dist-electron/docker-client.js.map +1 -1
  58. package/dist-electron/image-build.js +173 -0
  59. package/dist-electron/image-build.js.map +1 -0
  60. package/dist-electron/image-search.js +58 -0
  61. package/dist-electron/image-search.js.map +1 -0
  62. package/dist-electron/ipc.js +40 -2
  63. package/dist-electron/ipc.js.map +1 -1
  64. package/dist-electron/known-projects.js +129 -0
  65. package/dist-electron/known-projects.js.map +1 -0
  66. package/dist-electron/main.js +15 -0
  67. package/dist-electron/main.js.map +1 -1
  68. package/dist-electron/preload.js +18 -0
  69. package/dist-electron/preload.js.map +1 -1
  70. package/dist-electron/processes.js +77 -0
  71. package/dist-electron/processes.js.map +1 -0
  72. package/package.json +1 -1
  73. package/dist/docker-desktop-mx/browser/chunk-BW20bBdg.js +0 -1
  74. package/dist/docker-desktop-mx/browser/chunk-BdOOWVGY.js +0 -4
  75. package/dist/docker-desktop-mx/browser/chunk-BgNCBUvw2.js +0 -1
  76. package/dist/docker-desktop-mx/browser/chunk-BoN9ZlqT.js +0 -1
  77. package/dist/docker-desktop-mx/browser/chunk-BsAqguck2.js +0 -3
  78. package/dist/docker-desktop-mx/browser/chunk-C-yEXU2P.js +0 -6
  79. package/dist/docker-desktop-mx/browser/chunk-C1Wg9uje.js +0 -1
  80. package/dist/docker-desktop-mx/browser/chunk-C6u6rXYb2.js +0 -1
  81. package/dist/docker-desktop-mx/browser/chunk-CC84vXik.js +0 -1
  82. package/dist/docker-desktop-mx/browser/chunk-Cc4_zCxe2.js +0 -1
  83. package/dist/docker-desktop-mx/browser/chunk-CrBxmi_g.js +0 -1
  84. package/dist/docker-desktop-mx/browser/chunk-D29s9m84.js +0 -1
  85. package/dist/docker-desktop-mx/browser/chunk-DKpHNjiv.js +0 -1
  86. package/dist/docker-desktop-mx/browser/chunk-DzG5R5Kk.js +0 -1
  87. package/dist/docker-desktop-mx/browser/chunk-QaMufr3I.js +0 -1
  88. package/dist/docker-desktop-mx/browser/chunk-cYufOe8J.js +0 -1
  89. package/dist/docker-desktop-mx/browser/chunk-eG8Su12W.js +0 -1
  90. package/dist/docker-desktop-mx/browser/chunk-iwVkNYYA.js +0 -1
  91. package/dist/docker-desktop-mx/browser/main-DECBD64Q.js +0 -1
  92. package/dist/docker-desktop-mx/browser/styles-5TXFXUUF.css +0 -1
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.suggestDuplicateName = suggestDuplicateName;
4
+ exports.toPlan = toPlan;
5
+ exports.toDuplicateOptions = toDuplicateOptions;
6
+ exports.extraNetworks = extraNetworks;
7
+ exports.readDuplicatePlan = readDuplicatePlan;
8
+ exports.copiedVolumeName = copiedVolumeName;
9
+ exports.duplicateContainer = duplicateContainer;
10
+ const container_rename_1 = require("./container-rename");
11
+ const containers_1 = require("./containers");
12
+ const docker_client_1 = require("./docker-client");
13
+ const i18n_1 = require("./i18n");
14
+ const port_conflicts_1 = require("./port-conflicts");
15
+ const volume_copy_1 = require("./volume-copy");
16
+ /**
17
+ * Een container dupliceren (fase 75): dezelfde instellingen onder een nieuwe naam, om iets naast
18
+ * elkaar te proberen.
19
+ *
20
+ * Uit inspect, via de Engine API, zoals "Container starten" van een image. Alles gaat mee
21
+ * (omgeving, commando, restart policy, grenzen, mounts, netwerken), behalve:
22
+ *
23
+ * - de naam en de hostnaam, want die zijn van het origineel;
24
+ * - de poorten, die je opnieuw kiest: dezelfde poort twee keer kan niet;
25
+ * - de labels van compose. Met die labels erop ziet compose de kopie als een tweede exemplaar van
26
+ * zijn service, en telt hem mee of ruimt hem op bij `up` en `down`;
27
+ * - de aliassen op een netwerk. Met dezelfde alias verdeelt de DNS van Docker het verkeer voor die
28
+ * naam over het origineel en de kopie, en dat is zelden wat je wilt.
29
+ *
30
+ * Een benoemd volume delen twee containers dan. Voor een database is dat vragen om moeilijkheden,
31
+ * dus per volume kies je: delen, of eerst een kopie maken (fase 65) en die gebruiken.
32
+ */
33
+ const COMPOSE_LABEL = /^com\.docker\.compose\./;
34
+ function bareName(name) {
35
+ return (name ?? '').replace(/^\//, '');
36
+ }
37
+ /** `web` wordt `web-2`, `web-2` wordt `web-3`, tot er een vrije is. */
38
+ function suggestDuplicateName(name, taken) {
39
+ const match = /^(.*?)-(\d+)$/.exec(name);
40
+ const base = match === null ? name : match[1];
41
+ let counter = match === null ? 2 : Number(match[2]) + 1;
42
+ while (taken.has(`${base}-${String(counter)}`)) {
43
+ counter += 1;
44
+ }
45
+ return `${base}-${String(counter)}`;
46
+ }
47
+ /** Wat de dialoog nodig heeft: de voorgestelde naam, de poorten, de benoemde volumes en of het compose is. */
48
+ function toPlan(raw, taken) {
49
+ const name = bareName(raw.Name);
50
+ const bindings = raw.HostConfig?.PortBindings;
51
+ const ports = Object.entries(bindings ?? {})
52
+ .map(([key, list]) => {
53
+ const [port, protocol] = key.split('/');
54
+ return { containerPort: Number(port), protocol: protocol === 'udp' ? 'udp' : 'tcp', hostPort: list?.[0]?.HostPort ? Number(list[0].HostPort) : null };
55
+ })
56
+ .sort((a, b) => a.containerPort - b.containerPort);
57
+ const volumes = (raw.Mounts ?? [])
58
+ .filter((mount) => mount.Type === 'volume' && mount.Name !== undefined && mount.Name !== '')
59
+ .map((mount) => ({ name: mount.Name ?? '', target: mount.Destination ?? '' }));
60
+ const labels = raw.Config?.Labels ?? {};
61
+ return { name, suggestion: suggestDuplicateName(name, taken), ports, volumes, compose: Object.keys(labels).some((label) => COMPOSE_LABEL.test(label)) };
62
+ }
63
+ /**
64
+ * De create-body van de kopie. Apart en geëxporteerd, want hier zit wat je makkelijk verkeerd doet:
65
+ * wat mee moet, wat niet, en hoe een volume in `Binds` en in `Mounts` verwisseld wordt.
66
+ */
67
+ function toDuplicateOptions(raw, options, renamed) {
68
+ // De hostnaam is die van het origineel; zonder kiest Docker er een voor de kopie.
69
+ const { Labels: labels, ...rest } = raw.Config ?? {};
70
+ const config = { ...rest };
71
+ delete config.Hostname;
72
+ const host = raw.HostConfig ?? {};
73
+ const exposed = { ...(config.ExposedPorts ?? {}) };
74
+ const bindings = {};
75
+ for (const port of options.ports) {
76
+ const key = `${String(port.containerPort)}/${port.protocol}`;
77
+ exposed[key] = {};
78
+ bindings[key] = [{ HostPort: port.hostPort === null ? '' : String(port.hostPort) }];
79
+ }
80
+ const swap = (source) => (source === undefined ? source : (renamed.get(source) ?? source));
81
+ const binds = (host.Binds ?? []).map((bind) => {
82
+ const colon = bind.indexOf(':');
83
+ return colon === -1 ? bind : `${swap(bind.slice(0, colon)) ?? ''}${bind.slice(colon)}`;
84
+ });
85
+ const mounts = (host.Mounts ?? []).map((mount) => (mount.Type === 'volume' ? { ...mount, Source: swap(mount.Source) } : mount));
86
+ return {
87
+ ...config,
88
+ name: options.name,
89
+ Labels: Object.fromEntries(Object.entries(labels ?? {}).filter(([label]) => !COMPOSE_LABEL.test(label))),
90
+ ExposedPorts: exposed,
91
+ HostConfig: { ...host, PortBindings: bindings, Binds: binds, Mounts: mounts },
92
+ };
93
+ }
94
+ /** De netwerken naast het eerste; die komen er na het aanmaken bij, zonder aliassen. */
95
+ function extraNetworks(raw) {
96
+ const primary = raw.HostConfig?.NetworkMode ?? '';
97
+ return Object.keys(raw.NetworkSettings?.Networks ?? {}).filter((network) => network !== primary);
98
+ }
99
+ async function takenNames() {
100
+ return new Set((await (0, containers_1.listContainers)()).map((container) => container.name));
101
+ }
102
+ /** Wat de dialoog "Dupliceren" nodig heeft, uit inspect. */
103
+ async function readDuplicatePlan(id) {
104
+ try {
105
+ const raw = (await (0, docker_client_1.getConnection)().docker.getContainer(id).inspect());
106
+ return { ok: true, plan: toPlan(raw, await takenNames()) };
107
+ }
108
+ catch (err) {
109
+ return { ok: false, problem: (0, docker_client_1.readableError)(err, (0, docker_client_1.getConnection)().endpoint).message };
110
+ }
111
+ }
112
+ /** De naam van de kopie van een volume: het volume met de nieuwe containernaam erachter. */
113
+ function copiedVolumeName(volume, container) {
114
+ return `${volume}-${container}`;
115
+ }
116
+ /** Maakt de kopie, met eventueel eerst kopieën van volumes, en start hem. Mislukt iets, dan gaat alles weer weg. */
117
+ async function duplicateContainer(id, options) {
118
+ const name = options.name.trim();
119
+ if (!(0, container_rename_1.isContainerName)(name)) {
120
+ return {
121
+ ok: false,
122
+ problem: (0, i18n_1.t)({
123
+ en: 'A container name has at least two characters: a letter or digit, followed by letters, digits, _ . or -.',
124
+ nl: 'Een containernaam heeft minstens twee tekens: een letter of cijfer, gevolgd door letters, cijfers, _ . of -.',
125
+ de: 'Ein Containername hat mindestens zwei Zeichen: einen Buchstaben oder eine Ziffer, gefolgt von Buchstaben, Ziffern, _ . oder -.',
126
+ fr: 'Un nom de conteneur a au moins deux caractères : une lettre ou un chiffre, suivi de lettres, chiffres, _ . ou -.',
127
+ es: 'Un nombre de contenedor tiene al menos dos caracteres: una letra o cifra, seguida de letras, cifras, _ . o -.',
128
+ }),
129
+ };
130
+ }
131
+ const { docker } = (0, docker_client_1.getConnection)();
132
+ const copied = [];
133
+ let created = null;
134
+ try {
135
+ if ((await takenNames()).has(name)) {
136
+ return {
137
+ ok: false,
138
+ problem: (0, i18n_1.t)({
139
+ en: `There already is a container named ${name}.`,
140
+ nl: `Er is al een container ${name}.`,
141
+ de: `Es gibt bereits einen Container ${name}.`,
142
+ fr: `Un conteneur ${name} existe déjà.`,
143
+ es: `Ya existe un contenedor ${name}.`,
144
+ }),
145
+ };
146
+ }
147
+ const raw = (await docker.getContainer(id).inspect());
148
+ const renamed = new Map();
149
+ for (const volume of options.copyVolumes) {
150
+ const target = copiedVolumeName(volume, name);
151
+ const result = await (0, volume_copy_1.copyVolume)(volume, target);
152
+ if (!result.ok) {
153
+ await cleanUp(null, copied);
154
+ return result;
155
+ }
156
+ copied.push(target);
157
+ renamed.set(volume, target);
158
+ }
159
+ created = await docker.createContainer(toDuplicateOptions(raw, { ...options, name }, renamed));
160
+ for (const network of extraNetworks(raw)) {
161
+ await docker.getNetwork(network).connect({ Container: created.id });
162
+ }
163
+ await created.start();
164
+ return { ok: true, id: created.id };
165
+ }
166
+ catch (err) {
167
+ await cleanUp(created, copied);
168
+ const problem = (0, docker_client_1.readableError)(err, (0, docker_client_1.getConnection)().endpoint).message;
169
+ // Bij een bezette poort zeggen wie hem heeft, in plaats van Docker's regel over "external connectivity".
170
+ return {
171
+ ok: false,
172
+ problem: await (0, port_conflicts_1.explainPortConflict)(problem, containers_1.listContainers, {
173
+ raw: err instanceof Error ? err.message : String(err),
174
+ lead: () => (0, i18n_1.t)({
175
+ en: `${name} could not start: one of its ports is taken.`,
176
+ nl: `${name} kon niet starten: een van zijn poorten is bezet.`,
177
+ de: `${name} konnte nicht starten: einer seiner Ports ist belegt.`,
178
+ fr: `${name} n’a pas pu démarrer : l’un de ses ports est pris.`,
179
+ es: `${name} no pudo iniciarse: uno de sus puertos está ocupado.`,
180
+ }),
181
+ }),
182
+ };
183
+ }
184
+ }
185
+ /** Een half gemaakte kopie ziet eruit als een kopie; dan liever geen. */
186
+ async function cleanUp(container, volumes) {
187
+ const { docker } = (0, docker_client_1.getConnection)();
188
+ await container?.remove({ force: true }).catch(() => undefined);
189
+ for (const volume of volumes) {
190
+ await docker
191
+ .getVolume(volume)
192
+ .remove()
193
+ .catch(() => undefined);
194
+ }
195
+ }
196
+ //# sourceMappingURL=container-duplicate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-duplicate.js","sourceRoot":"","sources":["../electron/container-duplicate.ts"],"names":[],"mappings":";;AA2CA,oDAWC;AAGD,wBAiBC;AAMD,gDAqCC;AAGD,sCAKC;AAQD,8CASC;AAGD,4CAGC;AAGD,gDAkFC;AAvOD,yDAAqD;AACrD,6CAA8C;AAC9C,mDAA+D;AAC/D,iCAA2B;AAC3B,qDAAuD;AACvD,+CAA2C;AAE3C;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAUhD,SAAS,QAAQ,CAAC,IAAwB;IAExC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,uEAAuE;AACvE,SAAgB,oBAAoB,CAAC,IAAY,EAAE,KAA0B;IAE3E,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAExD,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,CAAC;IACf,CAAC;IAED,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,8GAA8G;AAC9G,SAAgB,MAAM,CAAC,GAAwB,EAAE,KAA0B;IAEzE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,YAA0E,CAAC;IAC5G,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACnB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAE,KAAe,CAAC,CAAC,CAAE,KAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9K,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;SAC3F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;IAExC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AAC1J,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAChC,GAAwB,EACxB,OAAyB,EACzB,OAAoC;IAGpC,kFAAkF;IAClF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAE3B,OAAO,MAAM,CAAC,QAAQ,CAAC;IACvB,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IAClC,MAAM,OAAO,GAA0C,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;IAC1F,MAAM,QAAQ,GAA2C,EAAE,CAAC;IAE5D,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAClB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAA0B,EAAsB,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;IACnI,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEhC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IACzF,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhI,OAAO;QACL,GAAG,MAAM;QACT,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxG,YAAY,EAAE,OAAO;QACrB,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;KAC1C,CAAC;AACxC,CAAC;AAED,wFAAwF;AACxF,SAAgB,aAAa,CAAC,GAAwB;IAEpD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC;IAElD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;AACnG,CAAC;AAED,KAAK,UAAU,UAAU;IAEvB,OAAO,IAAI,GAAG,CAAC,CAAC,MAAM,IAAA,2BAAc,GAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,4DAA4D;AACrD,KAAK,UAAU,iBAAiB,CAAC,EAAU;IAEhD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,IAAA,6BAAa,GAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAmC,CAAC;QAExG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,UAAU,EAAE,CAAC,EAAE,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAA,6BAAa,EAAC,GAAG,EAAE,IAAA,6BAAa,GAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IACtF,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,SAAgB,gBAAgB,CAAC,MAAc,EAAE,SAAiB;IAEhE,OAAO,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;AAClC,CAAC;AAED,oHAAoH;AAC7G,KAAK,UAAU,kBAAkB,CAAC,EAAU,EAAE,OAAyB;IAE5E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEjC,IAAI,CAAC,IAAA,kCAAe,EAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAA,QAAC,EAAC;gBACT,EAAE,EAAE,yGAAyG;gBAC7G,EAAE,EAAE,8GAA8G;gBAClH,EAAE,EAAE,gIAAgI;gBACpI,EAAE,EAAE,kHAAkH;gBACtH,EAAE,EAAE,+GAA+G;aACpH,CAAC;SACH,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,6BAAa,GAAE,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,GAA+B,IAAI,CAAC;IAE/C,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,IAAA,QAAC,EAAC;oBACT,EAAE,EAAE,sCAAsC,IAAI,GAAG;oBACjD,EAAE,EAAE,0BAA0B,IAAI,GAAG;oBACrC,EAAE,EAAE,mCAAmC,IAAI,GAAG;oBAC9C,EAAE,EAAE,gBAAgB,IAAI,eAAe;oBACvC,EAAE,EAAE,2BAA2B,IAAI,GAAG;iBACvC,CAAC;aACH,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAmC,CAAC;QACxF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE1C,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAU,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEhD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAE5B,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,kBAAkB,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QAE/F,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAEtB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,GAAG,EAAE,IAAA,6BAAa,GAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;QAErE,yGAAyG;QACzG,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,MAAM,IAAA,oCAAmB,EAAC,OAAO,EAAE,2BAAc,EAAE;gBAC1D,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACrD,IAAI,EAAE,GAAG,EAAE,CACT,IAAA,QAAC,EAAC;oBACA,EAAE,EAAE,GAAG,IAAI,8CAA8C;oBACzD,EAAE,EAAE,GAAG,IAAI,mDAAmD;oBAC9D,EAAE,EAAE,GAAG,IAAI,uDAAuD;oBAClE,EAAE,EAAE,GAAG,IAAI,oDAAoD;oBAC/D,EAAE,EAAE,GAAG,IAAI,sDAAsD;iBAClE,CAAC;aACL,CAAC;SACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,KAAK,UAAU,OAAO,CAAC,SAAqC,EAAE,OAA0B;IAEtF,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,6BAAa,GAAE,CAAC;IAEnC,MAAM,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAEhE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM;aACT,SAAS,CAAC,MAAM,CAAC;aACjB,MAAM,EAAE;aACR,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -4,6 +4,7 @@ exports.parseExitCode = parseExitCode;
4
4
  exports.toContainerSummary = toContainerSummary;
5
5
  exports.listContainers = listContainers;
6
6
  exports.inspectContainer = inspectContainer;
7
+ exports.alreadyStopped = alreadyStopped;
7
8
  exports.runContainerAction = runContainerAction;
8
9
  exports.pruneContainers = pruneContainers;
9
10
  const compose_1 = require("./compose");
@@ -107,8 +108,19 @@ function run(container, action) {
107
108
  case 'remove':
108
109
  // force: ook een draaiende container. De bevestiging in de UI zegt dat er gestopt wordt.
109
110
  return container.remove({ force: true });
111
+ case 'kill':
112
+ return container.kill();
110
113
  }
111
114
  }
115
+ /**
116
+ * Een `kill` die aankomt als de container net uit zichzelf gestopt is, na een stop die toch nog
117
+ * lukte: dan is er bereikt wat je wilde, en dat is geen fout (fase 74).
118
+ */
119
+ function alreadyStopped(action, err) {
120
+ const status = err?.statusCode;
121
+ const message = err instanceof Error ? err.message : String(err);
122
+ return action === 'kill' && (status === 409 || /is not running/i.test(message));
123
+ }
112
124
  /** De eerste helft van de melding bij een bezette poort; de tweede zegt wie hem heeft. */
113
125
  function describePortBlocked(action, name) {
114
126
  return action === 'restart'
@@ -139,6 +151,9 @@ async function runContainerAction(action, id) {
139
151
  return { ok: true };
140
152
  }
141
153
  catch (err) {
154
+ if (alreadyStopped(action, err)) {
155
+ return { ok: true };
156
+ }
142
157
  // Bij een bezette poort zeggen wie hem heeft; deze container zelf telt dan niet mee.
143
158
  const problem = await (0, port_conflicts_1.explainPortConflict)((0, docker_client_1.describeActionProblem)(err, action, id), listContainers, {
144
159
  except: id,
@@ -1 +1 @@
1
- {"version":3,"file":"containers.js","sourceRoot":"","sources":["../electron/containers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../electron/containers.ts"],"names":[],"mappings":"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"}
@@ -245,6 +245,7 @@ const ACTION_LABELS = {
245
245
  pause: { en: 'pause', nl: 'pauzeren', de: 'pausieren', fr: 'mettre en pause', es: 'pausar' },
246
246
  unpause: { en: 'unpause', nl: 'hervatten', de: 'fortsetzen', fr: 'reprendre', es: 'reanudar' },
247
247
  remove: { en: 'remove', nl: 'verwijderen', de: 'entfernen', fr: 'supprimer', es: 'eliminar' },
248
+ kill: { en: 'stop immediately', nl: 'meteen stoppen', de: 'sofort stoppen', fr: 'arrêter immédiatement', es: 'detener de inmediato' },
248
249
  };
249
250
  /**
250
251
  * Vertaalt een mislukte handeling naar iets dat in een melding past. Overgenomen van
@@ -1 +1 @@
1
- {"version":3,"file":"docker-client.js","sourceRoot":"","sources":["../electron/docker-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker-client.js","sourceRoot":"","sources":["../electron/docker-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.isDockerfile = isDockerfile;
37
+ exports.dockerfilesIn = dockerfilesIn;
38
+ exports.suggestBuildName = suggestBuildName;
39
+ exports.chooseBuildFolder = chooseBuildFolder;
40
+ exports.buildArgs = buildArgs;
41
+ exports.buildImage = buildImage;
42
+ const node_child_process_1 = require("node:child_process");
43
+ const node_crypto_1 = require("node:crypto");
44
+ const node_fs_1 = require("node:fs");
45
+ const path = __importStar(require("node:path"));
46
+ const compose_1 = require("./compose");
47
+ const i18n_1 = require("./i18n");
48
+ const image_reference_1 = require("./image-reference");
49
+ /**
50
+ * Een image bouwen uit een map (fase 72): `docker build`, via de CLI zoals de build van een service
51
+ * (fase 61), zodat BuildKit, `.dockerignore` en de cache werken zoals je ze kent.
52
+ *
53
+ * De map kies je in de dialoog van Windows, en main onthoudt hem onder een token. De renderer krijgt
54
+ * dat token en de Dockerfiles in die map, en stuurt bij het bouwen het token en een naam uit die
55
+ * lijst terug: nooit een pad. Zo bouwt main alleen in een map die je zelf koos.
56
+ */
57
+ /** Een build mag lang duren; een half uur is ruim, en daarna is er iets mis. */
58
+ const BUILD_TIMEOUT_MS = 30 * 60 * 1000;
59
+ const chosen = new Map();
60
+ /** Wat als Dockerfile telt: `Dockerfile`, `Dockerfile.dev`, `api.Dockerfile`, `Containerfile`. */
61
+ function isDockerfile(name) {
62
+ return /^(dockerfile|containerfile)(\..+)?$/i.test(name) || /\.(dockerfile|containerfile)$/i.test(name);
63
+ }
64
+ /** De Dockerfiles in een map, met `Dockerfile` zelf voorop, daarna op naam. */
65
+ function dockerfilesIn(names) {
66
+ return names
67
+ .filter(isDockerfile)
68
+ .sort((a, b) => Number(/^dockerfile$/i.test(b)) - Number(/^dockerfile$/i.test(a)) || a.localeCompare(b));
69
+ }
70
+ /** Een voorgestelde naam uit de map: `C:\projects\Mijn App` wordt `mijn-app:latest`. */
71
+ function suggestBuildName(dir) {
72
+ const base = path.win32.basename(dir.replace(/[\\/]+$/, '')).toLowerCase().replace(/[^a-z0-9._-]+/g, '-').replace(/^[^a-z0-9]+|[^a-z0-9]+$/g, '');
73
+ return `${base || 'image'}:latest`;
74
+ }
75
+ /** Neemt de gekozen map op; `null` is annuleren. Een map zonder Dockerfile zegt dat meteen. */
76
+ function chooseBuildFolder(dir, list = listFiles) {
77
+ if (dir === null) {
78
+ return null;
79
+ }
80
+ const files = dockerfilesIn(list(dir));
81
+ const token = (0, node_crypto_1.randomUUID)();
82
+ chosen.set(token, { dir, files });
83
+ return { token, folder: dir, dockerfiles: files, suggestion: suggestBuildName(dir) };
84
+ }
85
+ function listFiles(dir) {
86
+ try {
87
+ return (0, node_fs_1.readdirSync)(dir).filter((name) => {
88
+ try {
89
+ return (0, node_fs_1.statSync)(path.join(dir, name)).isFile();
90
+ }
91
+ catch {
92
+ return false;
93
+ }
94
+ });
95
+ }
96
+ catch {
97
+ return [];
98
+ }
99
+ }
100
+ /** De argumenten voor `docker`: platte voortgang, zodat de stappen als gewone regels te lezen zijn. */
101
+ function buildArgs(dir, dockerfile, reference) {
102
+ const { repository, tag } = (0, image_reference_1.splitReference)(reference);
103
+ return ['build', '--progress', 'plain', '-t', `${repository}:${tag}`, '-f', path.join(dir, dockerfile), dir];
104
+ }
105
+ const runDocker = (args, cwd) => new Promise((resolve) => {
106
+ (0, node_child_process_1.execFile)('docker', [...args], { cwd, encoding: 'utf8', timeout: BUILD_TIMEOUT_MS, maxBuffer: 50 * 1024 * 1024, windowsHide: true }, (err, stdout, stderr) => {
107
+ // BuildKit schrijft de stappen naar stderr; allebei, in die volgorde, is wat je in een terminal ziet.
108
+ const output = [stderr, stdout].map((part) => part.trim()).filter((part) => part !== '').join('\n');
109
+ resolve({ ok: err === null, output, error: err === null ? '' : err.message });
110
+ });
111
+ });
112
+ /** Bouwt in de gekozen map, met een Dockerfile uit de lijst die main zelf maakte. */
113
+ async function buildImage(token, dockerfile, reference, run = runDocker) {
114
+ const folder = chosen.get(token);
115
+ if (folder === undefined || !folder.files.includes(dockerfile)) {
116
+ return {
117
+ ok: false,
118
+ problem: (0, i18n_1.t)({
119
+ en: 'Choose the folder again; the app only builds in a folder you picked.',
120
+ nl: 'Kies de map opnieuw; de app bouwt alleen in een map die je zelf koos.',
121
+ de: 'Wählen Sie den Ordner erneut; die App baut nur in einem Ordner, den Sie selbst gewählt haben.',
122
+ fr: 'Choisissez à nouveau le dossier ; l’application ne construit que dans un dossier que vous avez choisi.',
123
+ es: 'Elige la carpeta otra vez; la aplicación solo construye en una carpeta que elegiste tú.',
124
+ }),
125
+ output: '',
126
+ };
127
+ }
128
+ const wanted = reference.trim();
129
+ if (!(0, image_reference_1.isReference)(wanted)) {
130
+ return {
131
+ ok: false,
132
+ problem: (0, i18n_1.t)({
133
+ en: 'An image name is in lowercase, like my-app or registry.example.com/team/app, optionally followed by :tag.',
134
+ nl: 'Een imagenaam is in kleine letters, zoals mijn-app of registry.example.com/team/app, eventueel gevolgd door :tag.',
135
+ de: 'Ein Image-Name ist kleingeschrieben, etwa mein-app oder registry.example.com/team/app, optional gefolgt von :tag.',
136
+ fr: 'Un nom d’image est en minuscules, comme mon-app ou registry.example.com/equipe/app, suivi éventuellement de :tag.',
137
+ es: 'Un nombre de imagen va en minúsculas, como mi-app o registry.example.com/equipo/app, seguido opcionalmente de :tag.',
138
+ }),
139
+ output: '',
140
+ };
141
+ }
142
+ const status = await (0, compose_1.readComposeStatus)();
143
+ if (!status.cliAvailable) {
144
+ return {
145
+ ok: false,
146
+ problem: status.problem ?? (0, i18n_1.t)({
147
+ en: 'The docker CLI is not available.',
148
+ nl: 'De docker CLI is niet beschikbaar.',
149
+ de: 'Die docker-CLI ist nicht verfügbar.',
150
+ fr: 'La CLI docker n’est pas disponible.',
151
+ es: 'La CLI de docker no está disponible.',
152
+ }),
153
+ output: '',
154
+ };
155
+ }
156
+ const { repository, tag } = (0, image_reference_1.splitReference)(wanted);
157
+ const result = await run(buildArgs(folder.dir, dockerfile, wanted), folder.dir);
158
+ if (result.ok) {
159
+ return { ok: true, reference: `${repository}:${tag}`, output: result.output };
160
+ }
161
+ return {
162
+ ok: false,
163
+ problem: (0, i18n_1.t)({
164
+ en: `The build of ${repository}:${tag} failed; the output below says why.`,
165
+ nl: `De build van ${repository}:${tag} mislukte; de uitvoer hieronder zegt waarom.`,
166
+ de: `Der Build von ${repository}:${tag} ist fehlgeschlagen; die Ausgabe unten sagt, warum.`,
167
+ fr: `La construction de ${repository}:${tag} a échoué ; la sortie ci-dessous dit pourquoi.`,
168
+ es: `La construcción de ${repository}:${tag} ha fallado; la salida de abajo dice por qué.`,
169
+ }),
170
+ output: result.output === '' ? result.error : result.output,
171
+ };
172
+ }
173
+ //# sourceMappingURL=image-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-build.js","sourceRoot":"","sources":["../electron/image-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_HITS = void 0;
4
+ exports.searchTerm = searchTerm;
5
+ exports.toHits = toHits;
6
+ exports.searchImages = searchImages;
7
+ const docker_client_1 = require("./docker-client");
8
+ const image_reference_1 = require("./image-reference");
9
+ /**
10
+ * Zoeken in Docker Hub (fase 71), als hulp bij de naam in "Image ophalen".
11
+ *
12
+ * Via de daemon (`/images/search`), niet zelf naar hub.docker.com: dan gelden de proxy en de
13
+ * mirrors van de daemon, net als bij een pull. Die API kent alleen Docker Hub; een naam met een
14
+ * andere registry ervoor zoekt dus niet. Een fout is geen melding waard: dan geen treffers, en
15
+ * ophalen met een getypte naam werkt zoals altijd.
16
+ */
17
+ /** Meer is geen hulp bij de naam meer maar een catalogus. */
18
+ exports.MAX_HITS = 10;
19
+ /** Wat er van de zoekterm overblijft om te zoeken: zonder tag, en niets bij een andere registry. */
20
+ function searchTerm(input) {
21
+ const trimmed = input.trim();
22
+ if (trimmed.length < 2 || (0, image_reference_1.registryHost)(trimmed) !== null) {
23
+ return null;
24
+ }
25
+ // `nginx:1.27` zoekt op `nginx`; een tag kent de zoek-API niet.
26
+ const withoutTag = trimmed.replace(/[:@].*$/, '');
27
+ return withoutTag.length < 2 ? null : withoutTag;
28
+ }
29
+ /** De treffers zoals de daemon ze geeft, naar onze vorm; officiële images eerst, dan op sterren. */
30
+ function toHits(raw) {
31
+ if (!Array.isArray(raw)) {
32
+ return [];
33
+ }
34
+ return raw
35
+ .filter((hit) => typeof hit.name === 'string' && hit.name !== '')
36
+ .map((hit) => ({
37
+ name: hit.name,
38
+ description: typeof hit.description === 'string' ? hit.description : '',
39
+ stars: typeof hit.star_count === 'number' ? hit.star_count : 0,
40
+ official: hit.is_official === true,
41
+ }))
42
+ .sort((a, b) => Number(b.official) - Number(a.official) || b.stars - a.stars)
43
+ .slice(0, exports.MAX_HITS);
44
+ }
45
+ /** Zoekt in Docker Hub naar wat er getypt is; leeg als er niets te zoeken valt of niets terugkomt. */
46
+ async function searchImages(input) {
47
+ const term = searchTerm(input);
48
+ if (term === null) {
49
+ return [];
50
+ }
51
+ try {
52
+ return toHits(await (0, docker_client_1.getConnection)().docker.searchImages({ term, limit: exports.MAX_HITS }));
53
+ }
54
+ catch {
55
+ return [];
56
+ }
57
+ }
58
+ //# sourceMappingURL=image-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-search.js","sourceRoot":"","sources":["../electron/image-search.ts"],"names":[],"mappings":";;;AAiBA,gCAYC;AAUD,wBAgBC;AAGD,oCAaC;AAtED,mDAAgD;AAChD,uDAAiD;AAEjD;;;;;;;GAOG;AAEH,6DAA6D;AAChD,QAAA,QAAQ,GAAG,EAAE,CAAC;AAE3B,oGAAoG;AACpG,SAAgB,UAAU,CAAC,KAAa;IAEtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,8BAAY,EAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gEAAgE;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAElD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AACnD,CAAC;AASD,oGAAoG;AACpG,SAAgB,MAAM,CAAC,GAAY;IAEjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAQ,GAAgB;SACrB,MAAM,CAAC,CAAC,GAAG,EAAoC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;SAClG,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QACvE,KAAK,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9D,QAAQ,EAAE,GAAG,CAAC,WAAW,KAAK,IAAI;KACnC,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SAC5E,KAAK,CAAC,CAAC,EAAE,gBAAQ,CAAC,CAAC;AACxB,CAAC;AAED,sGAAsG;AAC/F,KAAK,UAAU,YAAY,CAAC,KAAa;IAE9C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAE/B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,IAAA,6BAAa,GAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAQ,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}