docker-client-mx 1.44.0 → 1.46.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 (108) hide show
  1. package/dist/docker-desktop-mx/browser/chunk-6Ee5XYkz.js +1 -0
  2. package/dist/docker-desktop-mx/browser/chunk-B-jCnQFP2.js +6 -0
  3. package/dist/docker-desktop-mx/browser/{chunk-Dp9UsDfH.js → chunk-B2FafzpV.js} +3 -3
  4. package/dist/docker-desktop-mx/browser/chunk-B6qORmpw.js +1 -0
  5. package/dist/docker-desktop-mx/browser/chunk-B7IRMMXz2.js +1 -0
  6. package/dist/docker-desktop-mx/browser/chunk-B7xNIuls.js +3 -0
  7. package/dist/docker-desktop-mx/browser/chunk-BFq6LhBl.js +1 -0
  8. package/dist/docker-desktop-mx/browser/{chunk-CGKsmblG.js → chunk-BHeMRkJW.js} +4 -4
  9. package/dist/docker-desktop-mx/browser/{chunk-7mU3uVaN.js → chunk-BNXdbUqv.js} +2 -2
  10. package/dist/docker-desktop-mx/browser/chunk-BSz2tiCV.js +1 -0
  11. package/dist/docker-desktop-mx/browser/chunk-BZygkakw2.js +1 -0
  12. package/dist/docker-desktop-mx/browser/chunk-Ba7ROPTT.js +1 -0
  13. package/dist/docker-desktop-mx/browser/chunk-BiQwXu_z.js +1 -0
  14. package/dist/docker-desktop-mx/browser/chunk-Bk32Rk5p.js +4 -0
  15. package/dist/docker-desktop-mx/browser/chunk-BsmS2zXP.js +1 -0
  16. package/dist/docker-desktop-mx/browser/chunk-ByAKccx1.js +1 -0
  17. package/dist/docker-desktop-mx/browser/chunk-C4OFwmD92.js +1 -0
  18. package/dist/docker-desktop-mx/browser/{chunk-BCYusaqm.js → chunk-C9w0bf2Y.js} +1 -1
  19. package/dist/docker-desktop-mx/browser/chunk-CI-MgoDd.js +1 -0
  20. package/dist/docker-desktop-mx/browser/chunk-CLii2-2s.js +1 -0
  21. package/dist/docker-desktop-mx/browser/chunk-CWjMCD8T.js +1 -0
  22. package/dist/docker-desktop-mx/browser/chunk-CaJx4ff8.js +1 -0
  23. package/dist/docker-desktop-mx/browser/{chunk-xPy8hpGV.js → chunk-CesW8OnI.js} +1 -1
  24. package/dist/docker-desktop-mx/browser/chunk-CgneC1Je.js +1 -0
  25. package/dist/docker-desktop-mx/browser/chunk-ChGlpKnY.js +1 -0
  26. package/dist/docker-desktop-mx/browser/chunk-CnivQPHU.js +1 -0
  27. package/dist/docker-desktop-mx/browser/chunk-CyNh8lBK2.js +1 -0
  28. package/dist/docker-desktop-mx/browser/chunk-D-daLnRf.js +1 -0
  29. package/dist/docker-desktop-mx/browser/chunk-D5pKQvyX.js +1 -0
  30. package/dist/docker-desktop-mx/browser/chunk-D8vF1ayp2.js +1 -0
  31. package/dist/docker-desktop-mx/browser/chunk-DFkgt4XH.js +1 -0
  32. package/dist/docker-desktop-mx/browser/chunk-DJfErblk.js +1 -0
  33. package/dist/docker-desktop-mx/browser/chunk-DKpHGsCy.js +1 -0
  34. package/dist/docker-desktop-mx/browser/chunk-DTYNCfd52.js +1 -0
  35. package/dist/docker-desktop-mx/browser/chunk-DWYNwk_L.js +1 -0
  36. package/dist/docker-desktop-mx/browser/chunk-Ds9UWi20.js +1 -0
  37. package/dist/docker-desktop-mx/browser/chunk-DwKe2pMP.js +1 -0
  38. package/dist/docker-desktop-mx/browser/chunk-FM5_LSb4.js +1 -0
  39. package/dist/docker-desktop-mx/browser/chunk-FuBWiPKf.js +1 -0
  40. package/dist/docker-desktop-mx/browser/chunk-bj_sMiGa.js +1 -0
  41. package/dist/docker-desktop-mx/browser/{chunk-DtbAIphi.js → chunk-dMo4BIG3.js} +1 -1
  42. package/dist/docker-desktop-mx/browser/chunk-gOjj4-4k.js +1 -0
  43. package/dist/docker-desktop-mx/browser/chunk-idasJ9ng.js +1 -0
  44. package/dist/docker-desktop-mx/browser/chunk-ux3iG9S52.js +1 -0
  45. package/dist/docker-desktop-mx/browser/index.html +2 -2
  46. package/dist/docker-desktop-mx/browser/main-DIJOTBZN.js +1 -0
  47. package/dist/docker-desktop-mx/browser/styles-3HWRDJL3.css +1 -0
  48. package/dist-electron/channels.js +19 -0
  49. package/dist-electron/channels.js.map +1 -1
  50. package/dist-electron/file-ops.js +315 -0
  51. package/dist-electron/file-ops.js.map +1 -0
  52. package/dist-electron/files.js +19 -10
  53. package/dist-electron/files.js.map +1 -1
  54. package/dist-electron/ipc.js +76 -10
  55. package/dist-electron/ipc.js.map +1 -1
  56. package/dist-electron/main.js +63 -2
  57. package/dist-electron/main.js.map +1 -1
  58. package/dist-electron/preload.js +41 -3
  59. package/dist-electron/preload.js.map +1 -1
  60. package/dist-electron/settings.js +24 -1
  61. package/dist-electron/settings.js.map +1 -1
  62. package/dist-electron/system.js +51 -1
  63. package/dist-electron/system.js.map +1 -1
  64. package/dist-electron/volume-file-edit.js +78 -0
  65. package/dist-electron/volume-file-edit.js.map +1 -0
  66. package/dist-electron/volume-files.js +9 -6
  67. package/dist-electron/volume-files.js.map +1 -1
  68. package/dist-electron/volume-schedules.js +285 -0
  69. package/dist-electron/volume-schedules.js.map +1 -0
  70. package/package.json +1 -1
  71. package/dist/docker-desktop-mx/browser/chunk-5u_BJ6JX.js +0 -1
  72. package/dist/docker-desktop-mx/browser/chunk-6988XP3w.js +0 -1
  73. package/dist/docker-desktop-mx/browser/chunk-B23Afk52.js +0 -1
  74. package/dist/docker-desktop-mx/browser/chunk-B7xGbGa9.js +0 -1
  75. package/dist/docker-desktop-mx/browser/chunk-B8Uu84pE.js +0 -1
  76. package/dist/docker-desktop-mx/browser/chunk-BEtYD0_3.js +0 -1
  77. package/dist/docker-desktop-mx/browser/chunk-BG-O4Nb_.js +0 -1
  78. package/dist/docker-desktop-mx/browser/chunk-BJsftgmt.js +0 -1
  79. package/dist/docker-desktop-mx/browser/chunk-Bho6QLGs.js +0 -1
  80. package/dist/docker-desktop-mx/browser/chunk-C1Nu6ZjD.js +0 -1
  81. package/dist/docker-desktop-mx/browser/chunk-C3hTwhog.js +0 -4
  82. package/dist/docker-desktop-mx/browser/chunk-C52HI2A-.js +0 -1
  83. package/dist/docker-desktop-mx/browser/chunk-CMi-ZnXy.js +0 -1
  84. package/dist/docker-desktop-mx/browser/chunk-CYFxPPxo2.js +0 -1
  85. package/dist/docker-desktop-mx/browser/chunk-Cl4e4J9q.js +0 -1
  86. package/dist/docker-desktop-mx/browser/chunk-Cr28jI1A.js +0 -1
  87. package/dist/docker-desktop-mx/browser/chunk-CzkAHty9.js +0 -1
  88. package/dist/docker-desktop-mx/browser/chunk-D1tQa5OM.js +0 -3
  89. package/dist/docker-desktop-mx/browser/chunk-D3PaEk7L.js +0 -1
  90. package/dist/docker-desktop-mx/browser/chunk-DApzx4cc2.js +0 -1
  91. package/dist/docker-desktop-mx/browser/chunk-DNiq9JXI.js +0 -1
  92. package/dist/docker-desktop-mx/browser/chunk-DSfTqCF0.js +0 -1
  93. package/dist/docker-desktop-mx/browser/chunk-DeEfJWMH2.js +0 -1
  94. package/dist/docker-desktop-mx/browser/chunk-DeROY6LN.js +0 -1
  95. package/dist/docker-desktop-mx/browser/chunk-DffEUxgS.js +0 -1
  96. package/dist/docker-desktop-mx/browser/chunk-Di7dDUYN2.js +0 -6
  97. package/dist/docker-desktop-mx/browser/chunk-DiB8MPYS.js +0 -1
  98. package/dist/docker-desktop-mx/browser/chunk-DtM-X5Eh.js +0 -1
  99. package/dist/docker-desktop-mx/browser/chunk-DtY6mcWb.js +0 -1
  100. package/dist/docker-desktop-mx/browser/chunk-DvJZmDzM2.js +0 -1
  101. package/dist/docker-desktop-mx/browser/chunk-Dy3d-reD.js +0 -1
  102. package/dist/docker-desktop-mx/browser/chunk-DzyPSjiy2.js +0 -1
  103. package/dist/docker-desktop-mx/browser/chunk-MyEYCSP-.js +0 -1
  104. package/dist/docker-desktop-mx/browser/chunk-bSfpBwIa.js +0 -1
  105. package/dist/docker-desktop-mx/browser/chunk-e16wEMMK.js +0 -1
  106. package/dist/docker-desktop-mx/browser/chunk-eoU2TjRt.js +0 -1
  107. package/dist/docker-desktop-mx/browser/main-WTPCDZAO.js +0 -1
  108. package/dist/docker-desktop-mx/browser/styles-2WH7TMRX.css +0 -1
@@ -0,0 +1,315 @@
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.countInVolume = exports.makeDirInVolume = exports.removeInVolume = exports.renameInVolume = exports.countInContainer = exports.makeDirInContainer = exports.removeInContainer = exports.renameInContainer = void 0;
37
+ exports.nameProblem = nameProblem;
38
+ exports.describeOpProblem = describeOpProblem;
39
+ exports.demuxLogs = demuxLogs;
40
+ const path = __importStar(require("node:path"));
41
+ const docker_client_1 = require("./docker-client");
42
+ const files_1 = require("./files");
43
+ const host_shell_1 = require("./host-shell");
44
+ const i18n_1 = require("./i18n");
45
+ const volume_files_1 = require("./volume-files");
46
+ /**
47
+ * Bestanden opruimen (fase 86): een naam wijzigen, iets weggooien, een map erbij. In een container
48
+ * en in een volume, met dezelfde regels.
49
+ *
50
+ * In een container met `exec` (`mv`, `rm`, `mkdir`), met de paden als argumenten; alleen naam
51
+ * wijzigen gaat via `sh`, om eerst te kijken of de nieuwe naam er al is. Dat vraagt een draaiende
52
+ * container met die programma's. In een volume in een hulpcontainer die alleen die ene
53
+ * opdracht draait, met het volume beschrijfbaar, en daarna weg: de inkijk zelf blijft `:ro`.
54
+ */
55
+ /** Zo lang mag weggooien duren; een map met node_modules is nog ruim binnen de tijd. */
56
+ const REMOVE_TIMEOUT_MS = 120_000;
57
+ /** Afsluitcode van de hulpcontainer als het doel al bestaat; `mv` zelf zou het stil overschrijven. */
58
+ const EXISTS_CODE = 3;
59
+ const VOLUME_ROLE = 'volume-edit';
60
+ /** Of een nieuwe naam kan: niet leeg, geen schuine streep, geen `.` of `..`. `null` als het goed is. */
61
+ function nameProblem(name) {
62
+ if (name.trim() === '' || name === '.' || name === '..') {
63
+ return (0, i18n_1.t)({
64
+ en: 'Give a name.',
65
+ nl: 'Geef een naam.',
66
+ de: 'Geben Sie einen Namen an.',
67
+ fr: 'Indiquez un nom.',
68
+ es: 'Indica un nombre.',
69
+ });
70
+ }
71
+ if (name.includes('/') || name.includes('\0') || name.length > 255) {
72
+ return (0, i18n_1.t)({
73
+ en: 'A name has no / and is at most 255 characters.',
74
+ nl: 'Een naam heeft geen / en is hooguit 255 tekens.',
75
+ de: 'Ein Name enthält kein / und hat höchstens 255 Zeichen.',
76
+ fr: 'Un nom ne contient pas de / et fait au plus 255 caractères.',
77
+ es: 'Un nombre no lleva / y tiene como mucho 255 caracteres.',
78
+ });
79
+ }
80
+ return null;
81
+ }
82
+ /** Een fout van `mv`, `rm` of `mkdir` in gewone taal; `shown` is het pad zoals de gebruiker het ziet. */
83
+ function describeOpProblem(text, shown, inVolume) {
84
+ const lower = text.toLowerCase();
85
+ if (lower.includes('is not running')) {
86
+ return (0, i18n_1.t)({
87
+ en: 'Start the container to change its files.',
88
+ nl: 'Start de container om zijn bestanden te veranderen.',
89
+ de: 'Starten Sie den Container, um seine Dateien zu ändern.',
90
+ fr: 'Démarrez le conteneur pour modifier ses fichiers.',
91
+ es: 'Inicia el contenedor para cambiar sus archivos.',
92
+ });
93
+ }
94
+ if (lower.includes('executable file not found') || lower.includes('no such file or directory: unknown')) {
95
+ return (0, i18n_1.t)({
96
+ en: 'This container has no mv, rm or mkdir, for example because it is a distroless image. If the path is on a volume, it works from the volume.',
97
+ nl: 'Deze container heeft geen mv, rm of mkdir, bijvoorbeeld omdat het een distroless-image is. Staat het pad op een volume, dan kan het via dat volume.',
98
+ de: 'Dieser Container hat kein mv, rm oder mkdir, zum Beispiel weil es ein distroless-Image ist. Liegt der Pfad auf einem Volume, geht es über dieses Volume.',
99
+ fr: 'Ce conteneur n’a pas de mv, rm ou mkdir, par exemple parce que c’est une image distroless. Si le chemin est sur un volume, passez par ce volume.',
100
+ es: 'Este contenedor no tiene mv, rm ni mkdir, por ejemplo porque es una image distroless. Si la ruta está en un volume, se puede desde ese volume.',
101
+ });
102
+ }
103
+ if (lower.includes('file exists')) {
104
+ return exists(shown);
105
+ }
106
+ if (lower.includes('read-only file system')) {
107
+ return (0, i18n_1.t)({
108
+ en: `${shown} is on a read-only mount.`,
109
+ nl: `${shown} staat op een koppeling die alleen lezen is.`,
110
+ de: `${shown} liegt auf einer schreibgeschützten Einbindung.`,
111
+ fr: `${shown} est sur un montage en lecture seule.`,
112
+ es: `${shown} está en un montaje de solo lectura.`,
113
+ });
114
+ }
115
+ if (lower.includes('permission denied') || lower.includes('operation not permitted')) {
116
+ return inVolume
117
+ ? (0, i18n_1.t)({
118
+ en: `No permission to change ${shown}.`,
119
+ nl: `Geen rechten om ${shown} te veranderen.`,
120
+ de: `Keine Berechtigung, ${shown} zu ändern.`,
121
+ fr: `Pas le droit de modifier ${shown}.`,
122
+ es: `Sin permiso para cambiar ${shown}.`,
123
+ })
124
+ : (0, i18n_1.t)({
125
+ en: `No permission to change ${shown} for the user the container runs as.`,
126
+ nl: `Geen rechten om ${shown} te veranderen voor de gebruiker waarmee de container draait.`,
127
+ de: `Keine Berechtigung, ${shown} zu ändern, für den Benutzer, unter dem der Container läuft.`,
128
+ fr: `Pas le droit de modifier ${shown} pour l’utilisateur sous lequel tourne le conteneur.`,
129
+ es: `Sin permiso para cambiar ${shown} con el usuario con el que se ejecuta el contenedor.`,
130
+ });
131
+ }
132
+ if (lower.includes('no such file')) {
133
+ return (0, i18n_1.t)({
134
+ en: `${shown} does not exist (anymore).`,
135
+ nl: `${shown} bestaat niet (meer).`,
136
+ de: `${shown} existiert nicht (mehr).`,
137
+ fr: `${shown} n’existe pas (ou plus).`,
138
+ es: `${shown} no existe (ya).`,
139
+ });
140
+ }
141
+ return (0, i18n_1.t)({
142
+ en: `Could not change ${shown}: ${text.trim()}`,
143
+ nl: `Kon ${shown} niet veranderen: ${text.trim()}`,
144
+ de: `${shown} konnte nicht geändert werden: ${text.trim()}`,
145
+ fr: `Impossible de modifier ${shown} : ${text.trim()}`,
146
+ es: `No se ha podido cambiar ${shown}: ${text.trim()}`,
147
+ });
148
+ }
149
+ function exists(shown) {
150
+ return (0, i18n_1.t)({
151
+ en: `${shown} already exists.`,
152
+ nl: `${shown} bestaat al.`,
153
+ de: `${shown} existiert bereits.`,
154
+ fr: `${shown} existe déjà.`,
155
+ es: `${shown} ya existe.`,
156
+ });
157
+ }
158
+ function notTheRoot() {
159
+ return (0, i18n_1.t)({
160
+ en: 'Not the top folder itself.',
161
+ nl: 'Niet de bovenste map zelf.',
162
+ de: 'Nicht den obersten Ordner selbst.',
163
+ fr: 'Pas le dossier racine lui-même.',
164
+ es: 'No la carpeta raíz en sí.',
165
+ });
166
+ }
167
+ function containerPlace(id) {
168
+ return {
169
+ inVolume: false,
170
+ at: (shown) => shown,
171
+ run: (cmd, timeoutMs) => (0, files_1.runCommand)(id, cmd, timeoutMs),
172
+ read: (cmd) => (0, files_1.runCommand)(id, cmd),
173
+ };
174
+ }
175
+ /**
176
+ * De uitvoer van `logs` zonder tty: blokken met een kop van acht bytes, waarvan de eerste zegt of
177
+ * het stdout (1) of stderr (2) is en de laatste vier hoe lang het blok is.
178
+ */
179
+ function demuxLogs(buffer) {
180
+ const out = [];
181
+ const err = [];
182
+ let offset = 0;
183
+ while (offset + 8 <= buffer.length) {
184
+ const kind = buffer[offset];
185
+ const size = buffer.readUInt32BE(offset + 4);
186
+ const chunk = buffer.subarray(offset + 8, offset + 8 + size);
187
+ (kind === 2 ? err : out).push(chunk);
188
+ offset += 8 + size;
189
+ }
190
+ return { stdout: Buffer.concat(out).toString('utf8'), stderr: Buffer.concat(err).toString('utf8') };
191
+ }
192
+ /** Eén opdracht in een eigen hulpcontainer met het volume beschrijfbaar; daarna gaat die weg. */
193
+ async function runInVolume(volume, cmd) {
194
+ const { docker } = (0, docker_client_1.getConnection)();
195
+ await docker.getVolume(volume).inspect();
196
+ await (0, volume_files_1.ensureImage)();
197
+ const container = await docker.createContainer({
198
+ Image: host_shell_1.HELPER_IMAGE,
199
+ Cmd: [...cmd],
200
+ Labels: { [host_shell_1.HELPER_LABEL]: VOLUME_ROLE, [host_shell_1.OWNER_LABEL]: String(process.pid) },
201
+ HostConfig: { Binds: [`${volume}:/volume`], NetworkMode: 'none' },
202
+ });
203
+ try {
204
+ await container.start();
205
+ const waited = (await container.wait());
206
+ const logs = await container.logs({ stdout: true, stderr: true, follow: false });
207
+ return { ...demuxLogs(Buffer.isBuffer(logs) ? logs : Buffer.from(logs)), exitCode: waited.StatusCode ?? 0 };
208
+ }
209
+ finally {
210
+ await container.remove({ force: true }).catch(() => undefined);
211
+ }
212
+ }
213
+ function volumePlace(volume) {
214
+ return {
215
+ inVolume: true,
216
+ at: (shown) => (0, volume_files_1.mountedPath)(shown),
217
+ run: (cmd) => runInVolume(volume, cmd),
218
+ // Tellen kan in de alleen-lezen inkijk, die al draait.
219
+ read: async (cmd) => (0, files_1.runCommand)(await (0, volume_files_1.helperFor)(volume), cmd),
220
+ };
221
+ }
222
+ function failure(err, shown, place) {
223
+ return { ok: false, problem: describeOpProblem(err instanceof Error ? err.message : String(err), shown, place.inVolume) };
224
+ }
225
+ async function rename(place, requested, name) {
226
+ const problem = nameProblem(name);
227
+ const from = (0, files_1.normalizeContainerPath)(requested);
228
+ if (problem !== null) {
229
+ return { ok: false, problem };
230
+ }
231
+ if (from === '/') {
232
+ return { ok: false, problem: notTheRoot() };
233
+ }
234
+ const to = path.posix.join(path.posix.dirname(from), name);
235
+ if (to === from) {
236
+ return { ok: true };
237
+ }
238
+ try {
239
+ // In een shell, zodat het bestaan van het doel en het verplaatsen één opdracht zijn: `mv` zou
240
+ // een bestaand bestand stil overschrijven, en `mv -n` zegt niet dat hij niets deed.
241
+ const result = await place.run([
242
+ 'sh',
243
+ '-c',
244
+ `if [ -e "$2" ] || [ -L "$2" ]; then exit ${String(EXISTS_CODE)}; fi; exec mv -- "$1" "$2"`,
245
+ 'sh',
246
+ place.at(from),
247
+ place.at(to),
248
+ ]);
249
+ if (result.exitCode === EXISTS_CODE) {
250
+ return { ok: false, problem: exists(to) };
251
+ }
252
+ return result.exitCode === 0 ? { ok: true } : { ok: false, problem: describeOpProblem(result.stderr || result.stdout, from, place.inVolume) };
253
+ }
254
+ catch (err) {
255
+ return failure(err, from, place);
256
+ }
257
+ }
258
+ async function remove(place, requested) {
259
+ const target = (0, files_1.normalizeContainerPath)(requested);
260
+ if (target === '/') {
261
+ return { ok: false, problem: notTheRoot() };
262
+ }
263
+ try {
264
+ const result = await place.run(['rm', '-rf', '--', place.at(target)], REMOVE_TIMEOUT_MS);
265
+ return result.exitCode === 0 ? { ok: true } : { ok: false, problem: describeOpProblem(result.stderr || result.stdout, target, place.inVolume) };
266
+ }
267
+ catch (err) {
268
+ return failure(err, target, place);
269
+ }
270
+ }
271
+ async function makeDir(place, requestedDir, name) {
272
+ const problem = nameProblem(name);
273
+ if (problem !== null) {
274
+ return { ok: false, problem };
275
+ }
276
+ const target = path.posix.join((0, files_1.normalizeContainerPath)(requestedDir), name);
277
+ try {
278
+ const result = await place.run(['mkdir', '--', place.at(target)]);
279
+ return result.exitCode === 0 ? { ok: true } : { ok: false, problem: describeOpProblem(result.stderr || result.stdout, target, place.inVolume) };
280
+ }
281
+ catch (err) {
282
+ return failure(err, target, place);
283
+ }
284
+ }
285
+ /** Hoeveel er in een map zit, alles eronder meegeteld; voor de vraag voordat hij weggaat. */
286
+ async function count(place, requested) {
287
+ const target = (0, files_1.normalizeContainerPath)(requested);
288
+ try {
289
+ const result = await place.read(['find', place.at(target), '-mindepth', '1']);
290
+ if (result.exitCode !== 0 && result.stdout === '') {
291
+ return { ok: false, problem: describeOpProblem(result.stderr, target, place.inVolume) };
292
+ }
293
+ return { ok: true, count: result.stdout.split('\n').filter((line) => line !== '').length };
294
+ }
295
+ catch (err) {
296
+ return { ok: false, problem: describeOpProblem(err instanceof Error ? err.message : String(err), target, place.inVolume) };
297
+ }
298
+ }
299
+ const renameInContainer = (id, from, name) => rename(containerPlace(id), from, name);
300
+ exports.renameInContainer = renameInContainer;
301
+ const removeInContainer = (id, target) => remove(containerPlace(id), target);
302
+ exports.removeInContainer = removeInContainer;
303
+ const makeDirInContainer = (id, dir, name) => makeDir(containerPlace(id), dir, name);
304
+ exports.makeDirInContainer = makeDirInContainer;
305
+ const countInContainer = (id, target) => count(containerPlace(id), target);
306
+ exports.countInContainer = countInContainer;
307
+ const renameInVolume = (volume, from, name) => rename(volumePlace(volume), from, name);
308
+ exports.renameInVolume = renameInVolume;
309
+ const removeInVolume = (volume, target) => remove(volumePlace(volume), target);
310
+ exports.removeInVolume = removeInVolume;
311
+ const makeDirInVolume = (volume, dir, name) => makeDir(volumePlace(volume), dir, name);
312
+ exports.makeDirInVolume = makeDirInVolume;
313
+ const countInVolume = (volume, target) => count(volumePlace(volume), target);
314
+ exports.countInVolume = countInVolume;
315
+ //# sourceMappingURL=file-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-ops.js","sourceRoot":"","sources":["../electron/file-ops.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.normalizeContainerPath = normalizeContainerPath;
37
37
  exports.parseListing = parseListing;
38
38
  exports.describeListProblem = describeListProblem;
39
+ exports.runCommand = runCommand;
39
40
  exports.withoutParents = withoutParents;
40
41
  exports.toChanges = toChanges;
41
42
  exports.listChanges = listChanges;
@@ -63,7 +64,7 @@ const i18n_1 = require("./i18n");
63
64
  */
64
65
  /** Zoveel symlinks volgen we bij een download; een kring houdt zo vanzelf op. */
65
66
  const MAX_LINK_HOPS = 8;
66
- /** Zo lang mag `ls` erover doen. Een map met tienduizenden bestanden is nog ruim binnen de tijd. */
67
+ /** Zo lang mag `ls` (of `rm`, `mv`) erover doen. Een map met tienduizenden bestanden is nog ruim binnen de tijd. */
67
68
  const LIST_TIMEOUT_MS = 10_000;
68
69
  /**
69
70
  * Maakt van een pad uit de renderer een net, absoluut POSIX-pad. `..` wordt opgelost, niet
@@ -140,11 +141,18 @@ function describeListProblem(text, dir) {
140
141
  });
141
142
  }
142
143
  /** Draait `ls` en geeft stdout, stderr en de afsluitcode terug. */
143
- async function runLs(id, dir) {
144
+ function runLs(id, dir) {
145
+ // `--` zodat een map die met een streepje begint geen optie wordt.
146
+ return runCommand(id, ['ls', '-1Ap', '--', dir]);
147
+ }
148
+ /**
149
+ * Draait één opdracht in een draaiende container, met argumenten en zonder shell, en geeft stdout,
150
+ * stderr en de afsluitcode terug. Ook voor opruimen in de tab Bestanden (fase 86).
151
+ */
152
+ async function runCommand(id, cmd, timeoutMs = LIST_TIMEOUT_MS) {
144
153
  const { docker } = (0, docker_client_1.getConnection)();
145
154
  const exec = await docker.getContainer(id).exec({
146
- // `--` zodat een map die met een streepje begint geen optie wordt.
147
- Cmd: ['ls', '-1Ap', '--', dir],
155
+ Cmd: [...cmd],
148
156
  AttachStdout: true,
149
157
  AttachStderr: true,
150
158
  });
@@ -160,14 +168,15 @@ async function runLs(id, dir) {
160
168
  await new Promise((resolve, reject) => {
161
169
  const timer = setTimeout(() => {
162
170
  stream.destroy();
171
+ const program = cmd[0] ?? '';
163
172
  reject(new Error((0, i18n_1.t)({
164
- en: 'ls did not respond in time.',
165
- nl: 'ls reageerde niet op tijd.',
166
- de: 'ls hat nicht rechtzeitig geantwortet.',
167
- fr: 'ls n’a pas répondu à temps.',
168
- es: 'ls no ha respondido a tiempo.',
173
+ en: `${program} did not respond in time.`,
174
+ nl: `${program} reageerde niet op tijd.`,
175
+ de: `${program} hat nicht rechtzeitig geantwortet.`,
176
+ fr: `${program} n’a pas répondu à temps.`,
177
+ es: `${program} no ha respondido a tiempo.`,
169
178
  })));
170
- }, LIST_TIMEOUT_MS);
179
+ }, timeoutMs);
171
180
  stream.on('end', () => {
172
181
  clearTimeout(timer);
173
182
  resolve();
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../electron/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../electron/files.ts"],"names":[],"mappings":"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"}
@@ -81,7 +81,9 @@ const container_events_1 = require("./container-events");
81
81
  const event_store_1 = require("./event-store");
82
82
  const events_1 = require("./events");
83
83
  const files_1 = require("./files");
84
+ const volume_file_edit_1 = require("./volume-file-edit");
84
85
  const volume_files_1 = require("./volume-files");
86
+ const file_ops_1 = require("./file-ops");
85
87
  const self_update_1 = require("./self-update");
86
88
  const settings_1 = require("./settings");
87
89
  const servers_1 = require("./servers");
@@ -102,6 +104,7 @@ const compose_drift_1 = require("./compose-drift");
102
104
  const compose_known_1 = require("./compose-known");
103
105
  const image_file_1 = require("./image-file");
104
106
  const volume_copy_1 = require("./volume-copy");
107
+ const volume_schedules_1 = require("./volume-schedules");
105
108
  const service_build_1 = require("./service-build");
106
109
  const run_1 = require("./run");
107
110
  const volumes_1 = require("./volumes");
@@ -155,6 +158,8 @@ const truthy = zod_1.z.boolean();
155
158
  // Een pad in de container. files.ts maakt het absoluut en net; hier alleen een grens.
156
159
  const containerPath = zod_1.z.string().min(1).max(4096);
157
160
  const fileKind = zod_1.z.enum(['dir', 'file']);
161
+ /** Eén naam in een map; main kijkt zelf nog of er geen / in zit. */
162
+ const fileName = zod_1.z.string().min(1).max(255);
158
163
  // Een sleutel van de Claude API is een regel van een paar honderd tekens; main kijkt de vorm na.
159
164
  const apiKey = zod_1.z.string().min(1).max(512);
160
165
  // Een vraag aan Claude. Ruim, maar geen heel logbestand: dat haalt Claude zelf op.
@@ -166,6 +171,7 @@ const settingsPatch = zod_1.z
166
171
  notifyCrash: zod_1.z.boolean().optional(),
167
172
  notifyUnhealthy: zod_1.z.boolean().optional(),
168
173
  notifyWiring: zod_1.z.boolean().optional(),
174
+ mutedContainers: zod_1.z.array(zod_1.z.string().min(1).max(256)).max(settings_1.MAX_MUTED).optional(),
169
175
  paletteShortcut: zod_1.z.boolean().optional(),
170
176
  autoUpdate: zod_1.z.boolean().optional(),
171
177
  autoPrune: zod_1.z.boolean().optional(),
@@ -180,6 +186,27 @@ const wslDistro = zod_1.z.string().min(1).max(64).regex(/^[\w.-]+$/);
180
186
  // Volumenamen, netwerk-id's en contextnamen komen uit onze eigen lijst; dit is een grens,
181
187
  // geen validatie van wat Docker toelaat.
182
188
  const resourceName = zod_1.z.string().min(1).max(256);
189
+ /** Een schema voor vanzelf een back-up (fase 85); de map moet een absoluut pad zijn. */
190
+ const scheduleInput = zod_1.z
191
+ .object({
192
+ volume: zod_1.z.string().min(1).max(256),
193
+ every: zod_1.z.enum(['day', 'week']),
194
+ folder: zod_1.z.string().min(1).max(1024).refine((folder) => path.isAbsolute(folder)),
195
+ keep: zod_1.z.number().int().min(1).max(volume_schedules_1.MAX_KEEP),
196
+ whenInUse: zod_1.z.enum(['skip', 'pause']),
197
+ })
198
+ .strict();
199
+ /** Te bewerken tekst: iets ruimer dan het maximum van het lezen, want bewerken mag het bestand iets groter maken. */
200
+ const editText = zod_1.z.string().max(2 * 1024 * 1024);
201
+ /** De versie van een gelezen bestand (sha256), om bij opslaan tegen te controleren. */
202
+ const editVersion = zod_1.z.string().regex(/^[0-9a-f]{64}$/);
203
+ /** Laat kiezen welke bestanden erin gaan; leeg als er niets gekozen is. */
204
+ async function chooseFilesToUpload(sender) {
205
+ const owner = electron_1.BrowserWindow.fromWebContents(sender);
206
+ const options = { properties: ['openFile', 'multiSelections'] };
207
+ const choice = owner === null ? await electron_1.dialog.showOpenDialog(options) : await electron_1.dialog.showOpenDialog(owner, options);
208
+ return choice.canceled ? [] : choice.filePaths;
209
+ }
183
210
  // Een extra naam in een netwerk. Docker laat hier hetzelfde toe als bij een containernaam.
184
211
  const networkAlias = zod_1.z
185
212
  .string()
@@ -760,6 +787,14 @@ function registerIpcHandlers() {
760
787
  handle(channels_1.CHANNELS.volumesPrune, (_event, all) => (0, volumes_1.pruneVolumes)(truthy.parse(all)));
761
788
  handle(channels_1.CHANNELS.volumesBrowse, (_event, name, dir) => (0, volume_files_1.listVolumeDirectory)(resourceName.parse(name), containerPath.parse(dir)));
762
789
  handle(channels_1.CHANNELS.volumesCloseBrowser, () => (0, volume_files_1.closeVolumeBrowser)());
790
+ handle(channels_1.CHANNELS.volumesReadText, (_event, name, file) => (0, volume_file_edit_1.readVolumeFile)(resourceName.parse(name), containerPath.parse(file)));
791
+ handle(channels_1.CHANNELS.volumesSaveText, (_event, name, file, text, version, force) => (0, volume_file_edit_1.saveVolumeFile)(resourceName.parse(name), containerPath.parse(file), editText.parse(text), editVersion.parse(version), truthy.parse(force)));
792
+ handle(channels_1.CHANNELS.volumesChooseAndUpload, async (event, name, dir) => {
793
+ const volume = resourceName.parse(name);
794
+ const target = containerPath.parse(dir);
795
+ const choice = await chooseFilesToUpload(event.sender);
796
+ return choice.length === 0 ? { ok: true, count: 0 } : (0, volume_file_edit_1.uploadToVolume)(volume, target, choice);
797
+ });
763
798
  handle(channels_1.CHANNELS.volumesBackup, (event, name) => (0, volume_backup_1.backupVolume)(resourceName.parse(name), async (suggestedName) => {
764
799
  const owner = electron_1.BrowserWindow.fromWebContents(event.sender);
765
800
  const options = { defaultPath: suggestedName, filters: [{ name: (0, i18n_1.t)({ en: 'Backup', nl: 'Back-up', de: 'Sicherung', fr: 'Sauvegarde', es: 'Copia de seguridad' }), extensions: ['tar'] }] };
@@ -781,6 +816,24 @@ function registerIpcHandlers() {
781
816
  });
782
817
  handle(channels_1.CHANNELS.volumesUsers, (_event, name) => (0, volume_copy_1.listVolumeUsers)(resourceName.parse(name)));
783
818
  handle(channels_1.CHANNELS.volumesCopy, (_event, source, target) => (0, volume_copy_1.copyVolume)(resourceName.parse(source), resourceName.parse(target)));
819
+ handle(channels_1.CHANNELS.volumesSchedules, () => (0, volume_schedules_1.volumeSchedules)()?.list() ?? []);
820
+ handle(channels_1.CHANNELS.volumesSetSchedule, (_event, raw) => {
821
+ const schedules = (0, volume_schedules_1.volumeSchedules)();
822
+ if (schedules === null) {
823
+ return [];
824
+ }
825
+ const result = schedules.set(scheduleInput.parse(raw));
826
+ // De eerste back-up meteen, als hij aan de beurt is; niet op het antwoord wachten.
827
+ void schedules.tick();
828
+ return result;
829
+ });
830
+ handle(channels_1.CHANNELS.volumesRemoveSchedule, (_event, name) => (0, volume_schedules_1.volumeSchedules)()?.remove(resourceName.parse(name)) ?? []);
831
+ handle(channels_1.CHANNELS.volumesChooseBackupFolder, async (event) => {
832
+ const owner = electron_1.BrowserWindow.fromWebContents(event.sender);
833
+ const options = { properties: ['openDirectory', 'createDirectory'] };
834
+ const choice = owner === null ? await electron_1.dialog.showOpenDialog(options) : await electron_1.dialog.showOpenDialog(owner, options);
835
+ return choice.canceled ? null : (choice.filePaths[0] ?? null);
836
+ });
784
837
  handle(channels_1.CHANNELS.volumesRestore, async (event, name) => {
785
838
  const volume = resourceName.parse(name);
786
839
  const owner = electron_1.BrowserWindow.fromWebContents(event.sender);
@@ -819,6 +872,7 @@ function registerIpcHandlers() {
819
872
  handle(channels_1.CHANNELS.composeBuildable, (_event, name) => (0, service_build_1.listBuildable)(resourceName.parse(name)));
820
873
  handle(channels_1.CHANNELS.composeRebuild, (_event, name, service) => (0, service_build_1.rebuildService)(resourceName.parse(name), resourceName.parse(service)));
821
874
  handle(channels_1.CHANNELS.systemDiskUsage, () => (0, system_1.readDiskUsage)());
875
+ handle(channels_1.CHANNELS.systemSpaceUsage, () => (0, system_1.readSpaceUsage)());
822
876
  handle(channels_1.CHANNELS.systemPrune, (_event, selection) => (0, system_1.pruneSystem)(pruneSelection.parse(selection)));
823
877
  handle(channels_1.CHANNELS.navigationTakePending, () => (0, navigation_1.takePendingRoute)());
824
878
  handle(channels_1.CHANNELS.assistantStatus, () => ({ configured: (0, assistant_key_1.hasApiKey)(), storageAvailable: (0, assistant_key_1.keyStoreAvailable)() }));
@@ -841,6 +895,7 @@ function registerIpcHandlers() {
841
895
  handle(channels_1.CHANNELS.assistantClose, (event, id) => assistant.close(event.sender.id, streamId.parse(id)));
842
896
  handle(channels_1.CHANNELS.settingsGet, () => (0, settings_1.readSettings)());
843
897
  handle(channels_1.CHANNELS.settingsUpdate, (_event, patch) => (0, settings_1.updateSettings)(settingsPatch.parse(patch)));
898
+ handle(channels_1.CHANNELS.settingsMuteContainer, (_event, name, muted) => (0, settings_1.muteContainer)(resourceName.parse(name), truthy.parse(muted)));
844
899
  handle(channels_1.CHANNELS.appUpdateGet, () => (0, self_update_1.readAppUpdate)());
845
900
  handle(channels_1.CHANNELS.appUpdateCheck, () => (0, self_update_1.checkForAppUpdate)());
846
901
  // Via before-quit in main.ts, net als Afsluiten in het systeemvak: dan ruimt die ook de
@@ -855,19 +910,30 @@ function registerIpcHandlers() {
855
910
  const choice = owner === null ? await electron_1.dialog.showSaveDialog(options) : await electron_1.dialog.showSaveDialog(owner, options);
856
911
  return choice.canceled || choice.filePath === undefined ? null : choice.filePath;
857
912
  }));
913
+ handle(channels_1.CHANNELS.filesRename, (_event, id, file, name) => (0, file_ops_1.renameInContainer)(containerId.parse(id), containerPath.parse(file), fileName.parse(name)));
914
+ handle(channels_1.CHANNELS.filesRemove, (_event, id, file) => (0, file_ops_1.removeInContainer)(containerId.parse(id), containerPath.parse(file)));
915
+ handle(channels_1.CHANNELS.filesMakeDir, (_event, id, dir, name) => (0, file_ops_1.makeDirInContainer)(containerId.parse(id), containerPath.parse(dir), fileName.parse(name)));
916
+ handle(channels_1.CHANNELS.filesCount, (_event, id, file) => (0, file_ops_1.countInContainer)(containerId.parse(id), containerPath.parse(file)));
917
+ handle(channels_1.CHANNELS.volumesRenamePath, (_event, volume, file, name) => (0, file_ops_1.renameInVolume)(resourceName.parse(volume), containerPath.parse(file), fileName.parse(name)));
918
+ handle(channels_1.CHANNELS.volumesRemovePath, (_event, volume, file) => (0, file_ops_1.removeInVolume)(resourceName.parse(volume), containerPath.parse(file)));
919
+ handle(channels_1.CHANNELS.volumesMakeDir, (_event, volume, dir, name) => (0, file_ops_1.makeDirInVolume)(resourceName.parse(volume), containerPath.parse(dir), fileName.parse(name)));
920
+ handle(channels_1.CHANNELS.volumesCountPath, (_event, volume, file) => (0, file_ops_1.countInVolume)(resourceName.parse(volume), containerPath.parse(file)));
921
+ // Uit de alleen-lezen inkijk, die het volume al heeft: getArchive werkt daar net als in een container.
922
+ handle(channels_1.CHANNELS.volumesDownload, async (event, volume, file, kind) => {
923
+ const helper = await (0, volume_files_1.helperFor)(resourceName.parse(volume));
924
+ return (0, files_1.downloadPath)(helper, (0, volume_files_1.mountedPath)(containerPath.parse(file)), fileKind.parse(kind), async (suggestedName) => {
925
+ const owner = electron_1.BrowserWindow.fromWebContents(event.sender);
926
+ const options = { defaultPath: suggestedName };
927
+ const choice = owner === null ? await electron_1.dialog.showSaveDialog(options) : await electron_1.dialog.showSaveDialog(owner, options);
928
+ return choice.canceled || choice.filePath === undefined ? null : choice.filePath;
929
+ });
930
+ });
858
931
  handle(channels_1.CHANNELS.filesUpload, (_event, id, dir, locals) => (0, files_1.uploadFiles)(containerId.parse(id), containerPath.parse(dir), localPaths.parse(locals)));
859
932
  handle(channels_1.CHANNELS.filesReadText, (_event, id, file) => (0, file_edit_1.readEditableFile)(containerId.parse(id), containerPath.parse(file)));
860
- handle(channels_1.CHANNELS.filesSaveText, (_event, id, file, text, version, force) => (0, file_edit_1.saveEditableFile)(containerId.parse(id), containerPath.parse(file),
861
- // Iets ruimer dan het maximum van het lezen: bewerken mag het bestand iets groter maken.
862
- zod_1.z.string().max(2 * 1024 * 1024).parse(text), zod_1.z.string().regex(/^[0-9a-f]{64}$/).parse(version), truthy.parse(force)));
933
+ handle(channels_1.CHANNELS.filesSaveText, (_event, id, file, text, version, force) => (0, file_edit_1.saveEditableFile)(containerId.parse(id), containerPath.parse(file), editText.parse(text), editVersion.parse(version), truthy.parse(force)));
863
934
  handle(channels_1.CHANNELS.filesChooseAndUpload, async (event, id, dir) => {
864
- const owner = electron_1.BrowserWindow.fromWebContents(event.sender);
865
- const options = { properties: ['openFile', 'multiSelections'] };
866
- const choice = owner === null ? await electron_1.dialog.showOpenDialog(options) : await electron_1.dialog.showOpenDialog(owner, options);
867
- if (choice.canceled) {
868
- return { ok: true, count: 0 };
869
- }
870
- return (0, files_1.uploadFiles)(containerId.parse(id), containerPath.parse(dir), choice.filePaths);
935
+ const choice = await chooseFilesToUpload(event.sender);
936
+ return choice.length === 0 ? { ok: true, count: 0 } : (0, files_1.uploadFiles)(containerId.parse(id), containerPath.parse(dir), choice);
871
937
  });
872
938
  handle(channels_1.CHANNELS.contextsList, () => (0, contexts_1.listContexts)(activeContext));
873
939
  handle(channels_1.CHANNELS.contextsUse, (_event, name) => useContext(resourceName.parse(name)));