docker-client-mx 1.45.0 → 1.47.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 (110) hide show
  1. package/dist/docker-desktop-mx/browser/{chunk-COdMLD3H.js → chunk--8mGUJAn.js} +1 -1
  2. package/dist/docker-desktop-mx/browser/chunk-5_sGKQni.js +1 -0
  3. package/dist/docker-desktop-mx/browser/{chunk-Dy_g3RHY.js → chunk-B-o5hXOb.js} +1 -1
  4. package/dist/docker-desktop-mx/browser/{chunk-CHa6bNlc.js → chunk-B-wG1P-32.js} +4 -4
  5. package/dist/docker-desktop-mx/browser/chunk-B2EShQtx.js +6 -0
  6. package/dist/docker-desktop-mx/browser/{chunk-B13W1gEu.js → chunk-BYVhZ88_.js} +1 -1
  7. package/dist/docker-desktop-mx/browser/{chunk-Bd5-MqqR.js → chunk-B_y5IYob2.js} +2 -2
  8. package/dist/docker-desktop-mx/browser/chunk-BdM_u7-N.js +1 -0
  9. package/dist/docker-desktop-mx/browser/chunk-BkMeriAO2.js +1 -0
  10. package/dist/docker-desktop-mx/browser/chunk-BzctO2pl.js +1 -0
  11. package/dist/docker-desktop-mx/browser/{chunk-BZwYBA7Z.js → chunk-C0zZrY7Q.js} +1 -1
  12. package/dist/docker-desktop-mx/browser/chunk-CAFP1xPu.js +1 -0
  13. package/dist/docker-desktop-mx/browser/chunk-CI4m0buS.js +1 -0
  14. package/dist/docker-desktop-mx/browser/chunk-CQWK0K-u.js +1 -0
  15. package/dist/docker-desktop-mx/browser/chunk-Ci_V0cow.js +1 -0
  16. package/dist/docker-desktop-mx/browser/chunk-CsXiAvQZ.js +1 -0
  17. package/dist/docker-desktop-mx/browser/chunk-Cva1WgC9.js +1 -0
  18. package/dist/docker-desktop-mx/browser/chunk-CyIYmLAx2.js +1 -0
  19. package/dist/docker-desktop-mx/browser/chunk-D9wKjS-4.js +4 -0
  20. package/dist/docker-desktop-mx/browser/chunk-DDXVa5ug.js +1 -0
  21. package/dist/docker-desktop-mx/browser/chunk-DGowKW_R2.js +3 -0
  22. package/dist/docker-desktop-mx/browser/chunk-DJ_YTqcg.js +1 -0
  23. package/dist/docker-desktop-mx/browser/chunk-DLduIDn8.js +1 -0
  24. package/dist/docker-desktop-mx/browser/chunk-DM-ZJf6i2.js +1 -0
  25. package/dist/docker-desktop-mx/browser/{chunk-eVHlLrxe.js → chunk-DRSLMQv0.js} +2 -2
  26. package/dist/docker-desktop-mx/browser/chunk-DUEEE1of.js +1 -0
  27. package/dist/docker-desktop-mx/browser/chunk-DVNubhu5.js +1 -0
  28. package/dist/docker-desktop-mx/browser/chunk-DaLHmamd.js +1 -0
  29. package/dist/docker-desktop-mx/browser/chunk-DgQfvcw6.js +1 -0
  30. package/dist/docker-desktop-mx/browser/chunk-DhhlIffD.js +1 -0
  31. package/dist/docker-desktop-mx/browser/chunk-DnoDi7LZ.js +1 -0
  32. package/dist/docker-desktop-mx/browser/chunk-DpQe-4PA.js +1 -0
  33. package/dist/docker-desktop-mx/browser/chunk-Dx6pB9SS.js +1 -0
  34. package/dist/docker-desktop-mx/browser/{chunk-B3n-2UOi.js → chunk-F6eWZMl2.js} +1 -1
  35. package/dist/docker-desktop-mx/browser/{chunk-Bcx5WMyJ.js → chunk-KPCWgafs.js} +1 -1
  36. package/dist/docker-desktop-mx/browser/chunk-MHnhOupE2.js +1 -0
  37. package/dist/docker-desktop-mx/browser/{chunk-_wm6hEEA.js → chunk-N02t_L0r.js} +1 -1
  38. package/dist/docker-desktop-mx/browser/chunk-RW2CuHOJ.js +1 -0
  39. package/dist/docker-desktop-mx/browser/chunk-TwB2JZ5F2.js +1 -0
  40. package/dist/docker-desktop-mx/browser/chunk-YcHxGDGY.js +1 -0
  41. package/dist/docker-desktop-mx/browser/{chunk-BUtOgCv_.js → chunk-_SDm3Kr6.js} +1 -1
  42. package/dist/docker-desktop-mx/browser/chunk-aZvSgdSQ.js +1 -0
  43. package/dist/docker-desktop-mx/browser/chunk-t2gYzsd3.js +1 -0
  44. package/dist/docker-desktop-mx/browser/chunk-x4B-Z7Ml.js +1 -0
  45. package/dist/docker-desktop-mx/browser/index.html +2 -2
  46. package/dist/docker-desktop-mx/browser/main-H3S3O6WP.js +1 -0
  47. package/dist/docker-desktop-mx/browser/styles-GSAQVAJP.css +1 -0
  48. package/dist-electron/attention.js +14 -1
  49. package/dist-electron/attention.js.map +1 -1
  50. package/dist-electron/channels.js +18 -0
  51. package/dist-electron/channels.js.map +1 -1
  52. package/dist-electron/container-adjust.js +138 -10
  53. package/dist-electron/container-adjust.js.map +1 -1
  54. package/dist-electron/file-ops.js +315 -0
  55. package/dist-electron/file-ops.js.map +1 -0
  56. package/dist-electron/files.js +19 -10
  57. package/dist-electron/files.js.map +1 -1
  58. package/dist-electron/ipc.js +113 -5
  59. package/dist-electron/ipc.js.map +1 -1
  60. package/dist-electron/main.js +93 -3
  61. package/dist-electron/main.js.map +1 -1
  62. package/dist-electron/memory-watch.js +87 -0
  63. package/dist-electron/memory-watch.js.map +1 -0
  64. package/dist-electron/preload.js +40 -4
  65. package/dist-electron/preload.js.map +1 -1
  66. package/dist-electron/settings.js +32 -1
  67. package/dist-electron/settings.js.map +1 -1
  68. package/dist-electron/stats.js +25 -0
  69. package/dist-electron/stats.js.map +1 -1
  70. package/dist-electron/volume-files.js +1 -0
  71. package/dist-electron/volume-files.js.map +1 -1
  72. package/dist-electron/volume-restore.js +40 -0
  73. package/dist-electron/volume-restore.js.map +1 -0
  74. package/dist-electron/volume-schedules.js +343 -0
  75. package/dist-electron/volume-schedules.js.map +1 -0
  76. package/package.json +1 -1
  77. package/dist/docker-desktop-mx/browser/chunk-Af1e1d8G.js +0 -1
  78. package/dist/docker-desktop-mx/browser/chunk-B2NHI2Ew.js +0 -1
  79. package/dist/docker-desktop-mx/browser/chunk-BIIdmzaV2.js +0 -1
  80. package/dist/docker-desktop-mx/browser/chunk-BJACElSf2.js +0 -1
  81. package/dist/docker-desktop-mx/browser/chunk-BPNQPsl2.js +0 -1
  82. package/dist/docker-desktop-mx/browser/chunk-BxKOYZan.js +0 -1
  83. package/dist/docker-desktop-mx/browser/chunk-BxU6JdzU.js +0 -1
  84. package/dist/docker-desktop-mx/browser/chunk-C3u9Hm0s.js +0 -1
  85. package/dist/docker-desktop-mx/browser/chunk-CGft6wQH2.js +0 -6
  86. package/dist/docker-desktop-mx/browser/chunk-COBWzwhz.js +0 -1
  87. package/dist/docker-desktop-mx/browser/chunk-CXpIB_qc.js +0 -1
  88. package/dist/docker-desktop-mx/browser/chunk-ClGJowQ7.js +0 -1
  89. package/dist/docker-desktop-mx/browser/chunk-Clfbc1-d.js +0 -1
  90. package/dist/docker-desktop-mx/browser/chunk-CoprhnOm.js +0 -1
  91. package/dist/docker-desktop-mx/browser/chunk-CsQ_euXP.js +0 -1
  92. package/dist/docker-desktop-mx/browser/chunk-D3bHzook.js +0 -3
  93. package/dist/docker-desktop-mx/browser/chunk-DEXem6rk.js +0 -1
  94. package/dist/docker-desktop-mx/browser/chunk-DPn8Rpg4.js +0 -1
  95. package/dist/docker-desktop-mx/browser/chunk-DVXm8E_S.js +0 -1
  96. package/dist/docker-desktop-mx/browser/chunk-DX-Zo-hw.js +0 -1
  97. package/dist/docker-desktop-mx/browser/chunk-DZ-f89Uu.js +0 -1
  98. package/dist/docker-desktop-mx/browser/chunk-DZXhuKXm.js +0 -1
  99. package/dist/docker-desktop-mx/browser/chunk-DctinxSO.js +0 -1
  100. package/dist/docker-desktop-mx/browser/chunk-DeXGJ-vD2.js +0 -1
  101. package/dist/docker-desktop-mx/browser/chunk-EFAsN7J4.js +0 -1
  102. package/dist/docker-desktop-mx/browser/chunk-FqKVK_Os2.js +0 -1
  103. package/dist/docker-desktop-mx/browser/chunk-IMRsZUv82.js +0 -1
  104. package/dist/docker-desktop-mx/browser/chunk-U7tL4XEw2.js +0 -1
  105. package/dist/docker-desktop-mx/browser/chunk-YQkNtrRq.js +0 -1
  106. package/dist/docker-desktop-mx/browser/chunk-jpKpwesj.js +0 -1
  107. package/dist/docker-desktop-mx/browser/chunk-m112xmv9.js +0 -1
  108. package/dist/docker-desktop-mx/browser/chunk-u0OAgv4f.js +0 -4
  109. package/dist/docker-desktop-mx/browser/main-INZSNGJM.js +0 -1
  110. package/dist/docker-desktop-mx/browser/styles-BGYQU5CU.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"channels.js","sourceRoot":"","sources":["../electron/channels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../electron/channels.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toHealth = toHealth;
4
+ exports.toHealthPlan = toHealthPlan;
5
+ exports.toMounts = toMounts;
6
+ exports.dockerHostPath = dockerHostPath;
3
7
  exports.toAdjustPlan = toAdjustPlan;
4
8
  exports.ownAliases = ownAliases;
5
9
  exports.toAdjustedOptions = toAdjustedOptions;
6
10
  exports.readAdjustPlan = readAdjustPlan;
11
+ exports.missingFolder = missingFolder;
7
12
  exports.adjustContainer = adjustContainer;
13
+ const node_fs_1 = require("node:fs");
8
14
  const containers_1 = require("./containers");
9
15
  const docker_client_1 = require("./docker-client");
10
16
  const i18n_1 = require("./i18n");
11
17
  const port_conflicts_1 = require("./port-conflicts");
12
18
  /**
13
- * Een losse container aanpassen (fase 80): de omgevingsvariabelen, de poorten en de restart policy.
19
+ * Een losse container aanpassen (fase 80): de omgevingsvariabelen, de poorten en de restart policy;
20
+ * sinds fase 90 ook de koppelingen en de healthcheck.
14
21
  * Docker kan die niet veranderen op een bestaande container, dus: opnieuw maken onder dezelfde naam.
15
22
  *
16
23
  * In deze volgorde, zodat er op elk moment een weg terug is:
@@ -29,11 +36,82 @@ const port_conflicts_1 = require("./port-conflicts");
29
36
  */
30
37
  const COMPOSE_LABEL = /^com\.docker\.compose\./;
31
38
  const RESTART_POLICIES = ['no', 'always', 'unless-stopped', 'on-failure'];
39
+ const SECOND_NS = 1_000_000_000;
40
+ /** Docker's eigen standaard als er niets is opgegeven: elke 30 s, drie keer mag mislukken. */
41
+ const DEFAULT_INTERVAL_S = 30;
42
+ const DEFAULT_RETRIES = 3;
43
+ /** Een healthcheck om te lezen; `CMD` wordt één regel, zoals je hem in een compose-bestand zou zetten. */
44
+ function toHealth(check) {
45
+ const test = check?.Test ?? [];
46
+ if (test.length === 0 || test[0] === 'NONE') {
47
+ return null;
48
+ }
49
+ const command = test[0] === 'CMD-SHELL' ? (test[1] ?? '') : test[0] === 'CMD' ? test.slice(1).join(' ') : test.join(' ');
50
+ return {
51
+ command,
52
+ intervalSeconds: check?.Interval ? Math.round(check.Interval / SECOND_NS) : DEFAULT_INTERVAL_S,
53
+ retries: check?.Retries ?? DEFAULT_RETRIES,
54
+ };
55
+ }
56
+ /** Wat er nu van de healthcheck is, naast die van de image. */
57
+ function toHealthPlan(own, image) {
58
+ const disabled = own?.Test?.[0] === 'NONE';
59
+ const imageHealth = toHealth(image);
60
+ return {
61
+ current: disabled ? null : toHealth(own),
62
+ disabled,
63
+ image: imageHealth,
64
+ // Docker kopieert de check van de image niet in de container; staat er niets, dan geldt die van de image.
65
+ fromImage: !disabled && imageHealth !== null && (own?.Test === undefined || own.Test === null || JSON.stringify(own.Test) === JSON.stringify(image?.Test)),
66
+ };
67
+ }
68
+ /** De koppelingen van nu, zonder tmpfs. */
69
+ function toMounts(raw) {
70
+ const named = new Set((raw.HostConfig?.Binds ?? []).map((bind) => bind.split(':')[0]));
71
+ return (raw.Mounts ?? []).flatMap((mount) => {
72
+ const target = mount.Destination ?? '';
73
+ const readOnly = mount.RW === false;
74
+ if (mount.Type === 'volume' && mount.Name !== undefined) {
75
+ return [{ kind: 'volume', source: mount.Name, target, readOnly, ...(named.has(mount.Name) ? {} : { anonymous: true }) }];
76
+ }
77
+ return mount.Type === 'bind' && mount.Source !== undefined ? [{ kind: 'bind', source: mount.Source, target, readOnly }] : [];
78
+ });
79
+ }
80
+ /**
81
+ * Een map op Windows als pad voor Docker. Onder WSL draait Docker in Linux en is `C:\data`
82
+ * `/mnt/c/data`; Docker Desktop vertaalt een Windows-pad zelf.
83
+ */
84
+ function dockerHostPath(source, desktop) {
85
+ const windows = /^([A-Za-z]):[\\/](.*)$/.exec(source);
86
+ if (windows === null || desktop) {
87
+ return source;
88
+ }
89
+ const rest = (windows[2] ?? '').replace(/\\/g, '/').replace(/\/+$/, '');
90
+ return `/mnt/${(windows[1] ?? '').toLowerCase()}${rest === '' ? '' : `/${rest}`}`;
91
+ }
92
+ /** De healthcheck van de nieuwe versie; `undefined` laat Docker die van de image nemen. */
93
+ function adjustedHealthcheck(current, choice) {
94
+ switch (choice.mode) {
95
+ case 'keep':
96
+ return current;
97
+ case 'none':
98
+ return { Test: ['NONE'] };
99
+ case 'image':
100
+ return undefined;
101
+ case 'custom':
102
+ return {
103
+ ...(current ?? {}),
104
+ Test: ['CMD-SHELL', choice.command],
105
+ Interval: Math.round(choice.intervalSeconds * SECOND_NS),
106
+ Retries: choice.retries,
107
+ };
108
+ }
109
+ }
32
110
  function bareName(name) {
33
111
  return (name ?? '').replace(/^\//, '');
34
112
  }
35
- /** Wat de dialoog nodig heeft: de variabelen zoals ze nu zijn, de poorten en de restart policy. */
36
- function toAdjustPlan(raw) {
113
+ /** Wat de dialoog nodig heeft: de variabelen zoals ze nu zijn, de poorten, de restart policy, de koppelingen en de healthcheck. */
114
+ function toAdjustPlan(raw, imageHealthcheck = null) {
37
115
  const bindings = raw.HostConfig?.PortBindings;
38
116
  const ports = Object.entries(bindings ?? {})
39
117
  .map(([key, list]) => {
@@ -48,6 +126,8 @@ function toAdjustPlan(raw) {
48
126
  ports,
49
127
  restart: policy,
50
128
  compose: Object.keys(raw.Config?.Labels ?? {}).some((label) => COMPOSE_LABEL.test(label)),
129
+ mounts: toMounts(raw),
130
+ health: toHealthPlan(raw.Config?.Healthcheck, imageHealthcheck),
51
131
  };
52
132
  }
53
133
  /** De aliassen die je zelf gaf; Docker zet er zelf de korte id en de naam bij, en die komen vanzelf terug. */
@@ -55,8 +135,12 @@ function ownAliases(aliases, raw) {
55
135
  const automatic = new Set([bareName(raw.Name), (raw.Id ?? '').slice(0, 12)]);
56
136
  return (aliases ?? []).filter((alias) => !automatic.has(alias));
57
137
  }
58
- /** De create-body van de nieuwe versie: alles van het origineel, met de aangepaste drie, en de anonieme volumes erbij. */
59
- function toAdjustedOptions(raw, options) {
138
+ /**
139
+ * De create-body van de nieuwe versie: alles van het origineel, met wat aangepast is. Zonder eigen
140
+ * koppelingen de oude, met de anonieme volumes erbij; met eigen koppelingen precies die, als Binds,
141
+ * en uit `Mounts` alleen wat geen volume of map is.
142
+ */
143
+ function toAdjustedOptions(raw, options, desktop = false) {
60
144
  // De hostnaam laat Docker weer zelf kiezen, net als bij een nieuwe container.
61
145
  const config = { ...(raw.Config ?? {}) };
62
146
  delete config.Hostname;
@@ -75,6 +159,22 @@ function toAdjustedOptions(raw, options) {
75
159
  .map((mount) => `${mount.Name ?? ''}:${mount.Destination ?? ''}`);
76
160
  const primary = host.NetworkMode ?? '';
77
161
  const aliases = ownAliases(raw.NetworkSettings?.Networks?.[primary]?.Aliases, raw);
162
+ const binds = options.mounts === undefined
163
+ ? [...(host.Binds ?? []), ...anonymous]
164
+ : options.mounts.map((mount) => {
165
+ const source = mount.kind === 'bind' ? dockerHostPath(mount.source, desktop) : mount.source;
166
+ return mount.readOnly ? `${source}:${mount.target}:ro` : `${source}:${mount.target}`;
167
+ });
168
+ const otherMounts = (host.Mounts ?? []).filter((mount) => mount.Type !== 'volume' && mount.Type !== 'bind');
169
+ if (options.health !== undefined) {
170
+ const health = adjustedHealthcheck(config.Healthcheck, options.health);
171
+ if (health === undefined) {
172
+ delete config.Healthcheck;
173
+ }
174
+ else {
175
+ config.Healthcheck = health;
176
+ }
177
+ }
78
178
  return {
79
179
  ...config,
80
180
  name: bareName(raw.Name),
@@ -83,7 +183,8 @@ function toAdjustedOptions(raw, options) {
83
183
  HostConfig: {
84
184
  ...host,
85
185
  PortBindings: bindings,
86
- Binds: [...(host.Binds ?? []), ...anonymous],
186
+ Binds: binds,
187
+ ...(options.mounts === undefined ? {} : { Mounts: otherMounts }),
87
188
  RestartPolicy: { Name: options.restart, MaximumRetryCount: options.restart === 'on-failure' ? (host.RestartPolicy?.MaximumRetryCount ?? 0) : 0 },
88
189
  },
89
190
  ...(aliases.length > 0 ? { NetworkingConfig: { EndpointsConfig: { [primary]: { Aliases: aliases } } } } : {}),
@@ -92,13 +193,20 @@ function toAdjustedOptions(raw, options) {
92
193
  /** Wat de dialoog "Aanpassen" nodig heeft, uit inspect. */
93
194
  async function readAdjustPlan(id) {
94
195
  try {
95
- const raw = (await (0, docker_client_1.getConnection)().docker.getContainer(id).inspect());
96
- return { ok: true, plan: toAdjustPlan(raw) };
196
+ const { docker } = (0, docker_client_1.getConnection)();
197
+ const raw = (await docker.getContainer(id).inspect());
198
+ // De check van de image, om te zien wat er overschreven wordt; niet kunnen lezen is geen reden om te stoppen.
199
+ const image = raw.Image === undefined ? null : await docker.getImage(raw.Image).inspect().catch(() => null);
200
+ return { ok: true, plan: toAdjustPlan(raw, (image?.Config?.Healthcheck) ?? null) };
97
201
  }
98
202
  catch (err) {
99
203
  return { ok: false, problem: (0, docker_client_1.readableError)(err, (0, docker_client_1.getConnection)().endpoint).message };
100
204
  }
101
205
  }
206
+ async function isDockerDesktop() {
207
+ const info = (await (0, docker_client_1.getConnection)().docker.info().catch(() => null));
208
+ return info?.OperatingSystem?.includes('Docker Desktop') === true;
209
+ }
102
210
  /** Een vrije naam voor het origineel zolang het aanpassen loopt: `naam-oud`, of `naam-oud-2`. */
103
211
  function parkedName(name, taken) {
104
212
  let candidate = `${name}-oud`;
@@ -107,8 +215,16 @@ function parkedName(name, taken) {
107
215
  }
108
216
  return candidate;
109
217
  }
218
+ /**
219
+ * De eerste map op Windows die er niet is, of `null`. Docker maakt een map die ontbreekt stilletjes
220
+ * aan, onder WSL als lege map onder /mnt; een tikfout gaf dan een container die een lege map ziet.
221
+ * Een pad op de machine van Docker zelf (`/srv/data`) is hiervandaan niet na te kijken.
222
+ */
223
+ function missingFolder(mounts, exists) {
224
+ return mounts.find((mount) => mount.kind === 'bind' && /^[A-Za-z]:[\\/]/.test(mount.source) && !exists(mount.source))?.source ?? null;
225
+ }
110
226
  /** Maakt de container opnieuw met de aangepaste instellingen; zie de uitleg bovenaan. */
111
- async function adjustContainer(id, options) {
227
+ async function adjustContainer(id, options, exists = node_fs_1.existsSync) {
112
228
  const { docker } = (0, docker_client_1.getConnection)();
113
229
  let raw;
114
230
  try {
@@ -129,6 +245,16 @@ async function adjustContainer(id, options) {
129
245
  es: 'Es un contenedor de compose; cámbialo en el archivo compose.',
130
246
  }) };
131
247
  }
248
+ const missing = missingFolder(options.mounts ?? [], exists);
249
+ if (missing !== null) {
250
+ return { ok: false, problem: (0, i18n_1.t)({
251
+ en: `The folder ${missing} does not exist on this computer.`,
252
+ nl: `De map ${missing} bestaat niet op deze computer.`,
253
+ de: `Der Ordner ${missing} existiert auf diesem Computer nicht.`,
254
+ fr: `Le dossier ${missing} n’existe pas sur cet ordinateur.`,
255
+ es: `La carpeta ${missing} no existe en este ordenador.`,
256
+ }) };
257
+ }
132
258
  const name = bareName(raw.Name);
133
259
  const wasRunning = raw.State?.Running === true;
134
260
  let renamed = false;
@@ -140,7 +266,9 @@ async function adjustContainer(id, options) {
140
266
  const taken = new Set((await (0, containers_1.listContainers)()).map((container) => container.name));
141
267
  await original.rename({ name: parkedName(name, taken) });
142
268
  renamed = true;
143
- const body = toAdjustedOptions(raw, options);
269
+ // Docker Desktop vertaalt een Windows-pad zelf; Docker in WSL wil /mnt/c (fase 90).
270
+ const desktop = options.mounts?.some((mount) => mount.kind === 'bind') === true ? await isDockerDesktop() : false;
271
+ const body = toAdjustedOptions(raw, options, desktop);
144
272
  created = await docker.createContainer(body);
145
273
  const primary = raw.HostConfig?.NetworkMode ?? '';
146
274
  for (const [network, settings] of Object.entries(raw.NetworkSettings?.Networks ?? {})) {
@@ -1 +1 @@
1
- {"version":3,"file":"container-adjust.js","sourceRoot":"","sources":["../electron/container-adjust.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-adjust.js","sourceRoot":"","sources":["../electron/container-adjust.ts"],"names":[],"mappings":"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"}
@@ -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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"}