@start9labs/start-sdk 0.4.0-beta.2 → 0.4.0-beta.21

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 (155) hide show
  1. package/base/lib/Effects.d.ts +4 -22
  2. package/base/lib/actions/index.d.ts +5 -5
  3. package/base/lib/actions/index.js.map +1 -1
  4. package/base/lib/actions/input/builder/inputSpec.d.ts +10 -25
  5. package/base/lib/actions/input/builder/inputSpec.js +0 -17
  6. package/base/lib/actions/input/builder/inputSpec.js.map +1 -1
  7. package/base/lib/actions/input/builder/list.d.ts +8 -23
  8. package/base/lib/actions/input/builder/list.js +0 -17
  9. package/base/lib/actions/input/builder/list.js.map +1 -1
  10. package/base/lib/actions/input/builder/value.d.ts +318 -53
  11. package/base/lib/actions/input/builder/value.js +280 -17
  12. package/base/lib/actions/input/builder/value.js.map +1 -1
  13. package/base/lib/actions/input/builder/variants.d.ts +8 -23
  14. package/base/lib/actions/input/builder/variants.js +0 -17
  15. package/base/lib/actions/input/builder/variants.js.map +1 -1
  16. package/base/lib/actions/input/inputSpecConstants.d.ts +6 -6
  17. package/base/lib/actions/input/inputSpecConstants.js.map +1 -1
  18. package/base/lib/actions/setupActions.d.ts +10 -11
  19. package/base/lib/actions/setupActions.js +24 -11
  20. package/base/lib/actions/setupActions.js.map +1 -1
  21. package/base/lib/dependencies/setupDependencies.d.ts +1 -3
  22. package/base/lib/dependencies/setupDependencies.js +3 -12
  23. package/base/lib/dependencies/setupDependencies.js.map +1 -1
  24. package/base/lib/index.d.ts +1 -0
  25. package/base/lib/index.js +2 -1
  26. package/base/lib/index.js.map +1 -1
  27. package/base/lib/inits/index.d.ts +2 -0
  28. package/base/lib/inits/index.js +19 -0
  29. package/base/lib/inits/index.js.map +1 -0
  30. package/base/lib/inits/setupInit.d.ts +11 -0
  31. package/base/lib/inits/setupInit.js +69 -0
  32. package/base/lib/inits/setupInit.js.map +1 -0
  33. package/base/lib/inits/setupUninit.d.ts +7 -0
  34. package/base/lib/inits/setupUninit.js +14 -0
  35. package/base/lib/inits/setupUninit.js.map +1 -0
  36. package/base/lib/interfaces/setupInterfaces.d.ts +2 -4
  37. package/base/lib/interfaces/setupInterfaces.js +8 -19
  38. package/base/lib/interfaces/setupInterfaces.js.map +1 -1
  39. package/base/lib/osBindings/AddCategoryParams.d.ts +0 -2
  40. package/base/lib/osBindings/AddPackageToCategoryParams.d.ts +5 -0
  41. package/base/lib/osBindings/AddPackageToCategoryParams.js +3 -0
  42. package/base/lib/osBindings/AddPackageToCategoryParams.js.map +1 -0
  43. package/base/lib/osBindings/Category.d.ts +0 -2
  44. package/base/lib/osBindings/Category.js +1 -0
  45. package/base/lib/osBindings/Category.js.map +1 -1
  46. package/base/lib/osBindings/FileType.d.ts +1 -0
  47. package/base/lib/osBindings/{UnsetPublicParams.js → FileType.js} +1 -1
  48. package/base/lib/osBindings/FileType.js.map +1 -0
  49. package/base/lib/osBindings/GetOsVersionParams.d.ts +4 -3
  50. package/base/lib/osBindings/GetPackageParams.d.ts +1 -1
  51. package/base/lib/osBindings/MainStatus.d.ts +0 -2
  52. package/base/lib/osBindings/MountTarget.d.ts +2 -0
  53. package/base/lib/osBindings/PackageDataEntry.d.ts +1 -2
  54. package/base/lib/osBindings/RemoveAdminParams.d.ts +4 -0
  55. package/base/lib/osBindings/RemoveAdminParams.js +3 -0
  56. package/base/lib/osBindings/RemoveAdminParams.js.map +1 -0
  57. package/base/lib/osBindings/RemoveAssetParams.d.ts +4 -0
  58. package/base/lib/osBindings/{NetworkInterfaceSetPublicParams.js → RemoveAssetParams.js} +1 -1
  59. package/base/lib/osBindings/RemoveAssetParams.js.map +1 -0
  60. package/base/lib/osBindings/RemovePackageFromCategoryParams.d.ts +5 -0
  61. package/base/lib/osBindings/RemovePackageFromCategoryParams.js +3 -0
  62. package/base/lib/osBindings/RemovePackageFromCategoryParams.js.map +1 -0
  63. package/base/lib/osBindings/RemovePackageParams.d.ts +6 -0
  64. package/base/lib/osBindings/RemovePackageParams.js +3 -0
  65. package/base/lib/osBindings/RemovePackageParams.js.map +1 -0
  66. package/base/lib/osBindings/index.d.ts +6 -3
  67. package/base/lib/types.d.ts +20 -33
  68. package/base/lib/types.js +8 -0
  69. package/base/lib/types.js.map +1 -1
  70. package/base/lib/util/GetSystemSmtp.js +7 -2
  71. package/base/lib/util/GetSystemSmtp.js.map +1 -1
  72. package/base/lib/util/getServiceInterface.d.ts +10 -0
  73. package/base/lib/util/getServiceInterface.js +41 -1
  74. package/base/lib/util/getServiceInterface.js.map +1 -1
  75. package/base/lib/util/getServiceInterfaces.js +6 -1
  76. package/base/lib/util/getServiceInterfaces.js.map +1 -1
  77. package/base/lib/util/index.d.ts +0 -1
  78. package/base/lib/util/index.js +1 -3
  79. package/base/lib/util/index.js.map +1 -1
  80. package/package/lib/StartSdk.d.ts +106 -546
  81. package/package/lib/StartSdk.js +81 -410
  82. package/package/lib/StartSdk.js.map +1 -1
  83. package/package/lib/backup/Backups.d.ts +15 -3
  84. package/package/lib/backup/Backups.js +47 -5
  85. package/package/lib/backup/Backups.js.map +1 -1
  86. package/package/lib/backup/setupBackups.d.ts +5 -2
  87. package/package/lib/backup/setupBackups.js +7 -5
  88. package/package/lib/backup/setupBackups.js.map +1 -1
  89. package/package/lib/health/HealthCheck.js +1 -1
  90. package/package/lib/health/HealthCheck.js.map +1 -1
  91. package/package/lib/health/checkFns/runHealthScript.d.ts +2 -1
  92. package/package/lib/health/checkFns/runHealthScript.js +1 -1
  93. package/package/lib/health/checkFns/runHealthScript.js.map +1 -1
  94. package/package/lib/index.d.ts +0 -3
  95. package/package/lib/index.js +1 -8
  96. package/package/lib/index.js.map +1 -1
  97. package/package/lib/inits/index.d.ts +2 -3
  98. package/package/lib/inits/index.js +16 -3
  99. package/package/lib/inits/index.js.map +1 -1
  100. package/package/lib/inits/setupInit.d.ts +7 -13
  101. package/package/lib/inits/setupInit.js +22 -48
  102. package/package/lib/inits/setupInit.js.map +1 -1
  103. package/package/lib/inits/setupInstall.d.ts +10 -10
  104. package/package/lib/inits/setupInstall.js.map +1 -1
  105. package/package/lib/inits/setupUninit.d.ts +7 -0
  106. package/package/lib/inits/setupUninit.js +14 -0
  107. package/package/lib/inits/setupUninit.js.map +1 -0
  108. package/package/lib/inits/setupUninstall.d.ts +5 -5
  109. package/package/lib/inits/setupUninstall.js.map +1 -1
  110. package/package/lib/mainFn/CommandController.d.ts +4 -13
  111. package/package/lib/mainFn/CommandController.js +28 -49
  112. package/package/lib/mainFn/CommandController.js.map +1 -1
  113. package/package/lib/mainFn/Daemon.d.ts +13 -14
  114. package/package/lib/mainFn/Daemon.js +44 -12
  115. package/package/lib/mainFn/Daemon.js.map +1 -1
  116. package/package/lib/mainFn/Daemons.d.ts +34 -33
  117. package/package/lib/mainFn/Daemons.js +30 -10
  118. package/package/lib/mainFn/Daemons.js.map +1 -1
  119. package/package/lib/mainFn/HealthDaemon.d.ts +6 -6
  120. package/package/lib/mainFn/HealthDaemon.js +30 -14
  121. package/package/lib/mainFn/HealthDaemon.js.map +1 -1
  122. package/package/lib/mainFn/Mounts.d.ts +38 -43
  123. package/package/lib/mainFn/Mounts.js +19 -48
  124. package/package/lib/mainFn/Mounts.js.map +1 -1
  125. package/package/lib/mainFn/Oneshot.d.ts +21 -0
  126. package/package/lib/mainFn/Oneshot.js +31 -0
  127. package/package/lib/mainFn/Oneshot.js.map +1 -0
  128. package/package/lib/mainFn/index.d.ts +1 -1
  129. package/package/lib/store/getStore.js +7 -2
  130. package/package/lib/store/getStore.js.map +1 -1
  131. package/package/lib/test/inputSpecBuilder.test.js +0 -8
  132. package/package/lib/test/inputSpecBuilder.test.js.map +1 -1
  133. package/package/lib/test/output.d.ts +2 -38
  134. package/package/lib/test/output.sdk.d.ts +239 -887
  135. package/package/lib/test/output.sdk.js +0 -1
  136. package/package/lib/test/output.sdk.js.map +1 -1
  137. package/package/lib/util/Drop.d.ts +1 -0
  138. package/package/lib/util/Drop.js +17 -4
  139. package/package/lib/util/Drop.js.map +1 -1
  140. package/package/lib/util/GetSslCertificate.js +7 -2
  141. package/package/lib/util/GetSslCertificate.js.map +1 -1
  142. package/package/lib/util/SubContainer.d.ts +160 -44
  143. package/package/lib/util/SubContainer.js +215 -99
  144. package/package/lib/util/SubContainer.js.map +1 -1
  145. package/package/lib/util/fileHelper.d.ts +41 -15
  146. package/package/lib/util/fileHelper.js +72 -27
  147. package/package/lib/util/fileHelper.js.map +1 -1
  148. package/package/lib/version/VersionGraph.d.ts +20 -5
  149. package/package/lib/version/VersionGraph.js +85 -18
  150. package/package/lib/version/VersionGraph.js.map +1 -1
  151. package/package.json +10 -11
  152. package/base/lib/osBindings/NetworkInterfaceSetPublicParams.d.ts +0 -4
  153. package/base/lib/osBindings/NetworkInterfaceSetPublicParams.js.map +0 -1
  154. package/base/lib/osBindings/UnsetPublicParams.d.ts +0 -3
  155. package/base/lib/osBindings/UnsetPublicParams.js.map +0 -1
@@ -32,32 +32,58 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
- var _a;
36
35
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.ExitError = exports.SubContainerHandle = exports.SubContainer = exports.execFile = void 0;
36
+ exports.ExitError = exports.SubContainerRc = exports.SubContainerOwned = exports.execFile = void 0;
38
37
  const fs = __importStar(require("fs/promises"));
39
38
  const cp = __importStar(require("child_process"));
40
39
  const util_1 = require("util");
41
40
  const node_buffer_1 = require("node:buffer");
42
41
  const once_1 = require("../../../base/lib/util/once");
42
+ const Drop_1 = require("./Drop");
43
43
  exports.execFile = (0, util_1.promisify)(cp.execFile);
44
44
  const False = () => false;
45
45
  const TIMES_TO_WAIT_FOR_PROC = 100;
46
+ async function prepBind(from, to, type) {
47
+ const fromMeta = from ? await fs.stat(from).catch((_) => null) : null;
48
+ const toMeta = await fs.stat(to).catch((_) => null);
49
+ if (type === "file" || (type === "infer" && from && fromMeta?.isFile())) {
50
+ if (toMeta && toMeta.isDirectory())
51
+ await fs.rmdir(to, { recursive: false });
52
+ if (from && !fromMeta) {
53
+ await fs.mkdir(from.replace(/\/[^\/]*\/?$/, ""), { recursive: true });
54
+ await fs.writeFile(from, "");
55
+ }
56
+ if (!toMeta) {
57
+ await fs.mkdir(to.replace(/\/[^\/]*\/?$/, ""), { recursive: true });
58
+ await fs.writeFile(to, "");
59
+ }
60
+ }
61
+ else {
62
+ if (toMeta && toMeta.isFile() && !toMeta.size)
63
+ await fs.rm(to);
64
+ if (from && !fromMeta)
65
+ await fs.mkdir(from, { recursive: true });
66
+ if (!toMeta)
67
+ await fs.mkdir(to, { recursive: true });
68
+ }
69
+ }
70
+ async function bind(from, to, type) {
71
+ await prepBind(from, to, type);
72
+ await (0, exports.execFile)("mount", ["--bind", from, to]);
73
+ }
46
74
  /**
47
75
  * Want to limit what we can do in a container, so we want to launch a container with a specific image and the mounts.
48
- *
49
- * Implements:
50
- * @see {@link ExecSpawnable}
51
76
  */
52
- class SubContainer {
77
+ class SubContainerOwned extends Drop_1.Drop {
53
78
  constructor(effects, imageId, rootfs, guid) {
79
+ super();
54
80
  this.effects = effects;
55
81
  this.imageId = imageId;
56
82
  this.rootfs = rootfs;
57
83
  this.guid = guid;
84
+ this.destroyed = false;
85
+ this.rcs = 0;
58
86
  this.leaderExited = false;
59
- if (!_a.finalizationEffects.effects)
60
- _a.finalizationEffects.effects = effects;
61
87
  this.leaderExited = false;
62
88
  this.leader = cp.spawn("start-cli", ["subcontainer", "launch", rootfs], {
63
89
  killSignal: "SIGKILL",
@@ -75,90 +101,93 @@ class SubContainer {
75
101
  imageId: this.imageId,
76
102
  rootfs: this.rootfs,
77
103
  });
78
- reject(new Error(`Failed to start subcontainer ${this.imageId}`));
104
+ return reject(new Error(`Failed to start subcontainer ${this.imageId}`));
79
105
  }
80
106
  await wait(1);
81
107
  }
82
108
  resolve(null);
83
109
  }));
84
110
  }
85
- static async of(effects, image, name) {
111
+ static async of(effects, image, mounts, name) {
86
112
  const { imageId, sharedRun } = image;
87
113
  const [rootfs, guid] = await effects.subcontainer.createFs({
88
114
  imageId,
89
115
  name,
90
116
  });
91
- const res = new _a(effects, imageId, rootfs, guid);
92
- _a.registry.register(res, guid, res);
93
- const shared = ["dev", "sys"];
94
- if (!!sharedRun) {
95
- shared.push("run");
117
+ const res = new SubContainerOwned(effects, imageId, rootfs, guid);
118
+ try {
119
+ if (mounts) {
120
+ await res.mount(mounts);
121
+ }
122
+ const shared = ["dev", "sys"];
123
+ if (!!sharedRun) {
124
+ shared.push("run");
125
+ }
126
+ await fs.mkdir(`${rootfs}/etc`, { recursive: true });
127
+ await fs.copyFile("/etc/resolv.conf", `${rootfs}/etc/resolv.conf`);
128
+ for (const dirPart of shared) {
129
+ const from = `/${dirPart}`;
130
+ const to = `${rootfs}/${dirPart}`;
131
+ await fs.mkdir(from, { recursive: true });
132
+ await fs.mkdir(to, { recursive: true });
133
+ await (0, exports.execFile)("mount", ["--rbind", from, to]);
134
+ }
135
+ return res;
96
136
  }
97
- await fs.mkdir(`${rootfs}/etc`, { recursive: true });
98
- await fs.copyFile("/etc/resolv.conf", `${rootfs}/etc/resolv.conf`);
99
- for (const dirPart of shared) {
100
- const from = `/${dirPart}`;
101
- const to = `${rootfs}/${dirPart}`;
102
- await fs.mkdir(from, { recursive: true });
103
- await fs.mkdir(to, { recursive: true });
104
- await (0, exports.execFile)("mount", ["--rbind", from, to]);
137
+ catch (e) {
138
+ await res.destroy();
139
+ throw e;
105
140
  }
106
- return res;
107
141
  }
108
- static async with(effects, image, mounts, name, fn) {
109
- const subContainer = await _a.of(effects, image, name);
142
+ static async withTemp(effects, image, mounts, name, fn) {
143
+ const subContainer = await SubContainerOwned.of(effects, image, mounts, name);
110
144
  try {
111
- for (let mount of mounts) {
112
- await subContainer.mount(mount.options, mount.mountpoint);
113
- }
114
145
  return await fn(subContainer);
115
146
  }
116
147
  finally {
117
148
  await subContainer.destroy();
118
149
  }
119
150
  }
120
- async mount(options, path) {
121
- path = path.startsWith("/")
122
- ? `${this.rootfs}${path}`
123
- : `${this.rootfs}/${path}`;
124
- if (options.type === "volume") {
125
- const subpath = options.subpath
126
- ? options.subpath.startsWith("/")
127
- ? options.subpath
128
- : `/${options.subpath}`
129
- : "/";
130
- const from = `/media/startos/volumes/${options.id}${subpath}`;
131
- await fs.mkdir(from, { recursive: true });
132
- await fs.mkdir(path, { recursive: true });
133
- await (0, exports.execFile)("mount", ["--bind", from, path]);
134
- }
135
- else if (options.type === "assets") {
136
- const subpath = options.subpath
137
- ? options.subpath.startsWith("/")
138
- ? options.subpath
139
- : `/${options.subpath}`
140
- : "/";
141
- const from = `/media/startos/assets/${subpath}`;
142
- await fs.mkdir(from, { recursive: true });
143
- await fs.mkdir(path, { recursive: true });
144
- await (0, exports.execFile)("mount", ["--bind", from, path]);
145
- }
146
- else if (options.type === "pointer") {
147
- await this.effects.mount({ location: path, target: options });
148
- }
149
- else if (options.type === "backup") {
150
- const subpath = options.subpath
151
- ? options.subpath.startsWith("/")
152
- ? options.subpath
153
- : `/${options.subpath}`
154
- : "/";
155
- const from = `/media/startos/backup${subpath}`;
156
- await fs.mkdir(from, { recursive: true });
157
- await fs.mkdir(path, { recursive: true });
158
- await (0, exports.execFile)("mount", ["--bind", from, path]);
159
- }
160
- else {
161
- throw new Error(`unknown type ${options.type}`);
151
+ async mount(mounts) {
152
+ for (let mount of mounts.build()) {
153
+ let { options, mountpoint } = mount;
154
+ const path = mountpoint.startsWith("/")
155
+ ? `${this.rootfs}${mountpoint}`
156
+ : `${this.rootfs}/${mountpoint}`;
157
+ if (options.type === "volume") {
158
+ const subpath = options.subpath
159
+ ? options.subpath.startsWith("/")
160
+ ? options.subpath
161
+ : `/${options.subpath}`
162
+ : "/";
163
+ const from = `/media/startos/volumes/${options.volumeId}${subpath}`;
164
+ await bind(from, path, mount.options.filetype);
165
+ }
166
+ else if (options.type === "assets") {
167
+ const subpath = options.subpath
168
+ ? options.subpath.startsWith("/")
169
+ ? options.subpath
170
+ : `/${options.subpath}`
171
+ : "/";
172
+ const from = `/media/startos/assets/${subpath}`;
173
+ await bind(from, path, mount.options.filetype);
174
+ }
175
+ else if (options.type === "pointer") {
176
+ await prepBind(null, path, options.filetype);
177
+ await this.effects.mount({ location: path, target: options });
178
+ }
179
+ else if (options.type === "backup") {
180
+ const subpath = options.subpath
181
+ ? options.subpath.startsWith("/")
182
+ ? options.subpath
183
+ : `/${options.subpath}`
184
+ : "/";
185
+ const from = `/media/startos/backup${subpath}`;
186
+ await bind(from, path, mount.options.filetype);
187
+ }
188
+ else {
189
+ throw new Error(`unknown type ${options.type}`);
190
+ }
162
191
  }
163
192
  return this;
164
193
  }
@@ -184,13 +213,27 @@ class SubContainer {
184
213
  }
185
214
  get destroy() {
186
215
  return async () => {
187
- const guid = this.guid;
188
- await this.killLeader();
189
- await this.effects.subcontainer.destroyFs({ guid });
190
- _a.registry.unregister(this);
216
+ if (!this.destroyed) {
217
+ const guid = this.guid;
218
+ await this.killLeader();
219
+ await this.effects.subcontainer.destroyFs({ guid });
220
+ this.destroyed = true;
221
+ }
191
222
  return null;
192
223
  };
193
224
  }
225
+ onDrop() {
226
+ console.log(`Cleaning up dangling subcontainer ${this.guid}`);
227
+ this.destroy();
228
+ }
229
+ /**
230
+ * @description run a command inside this subcontainer
231
+ * DOES NOT THROW ON NONZERO EXIT CODE (see execFail)
232
+ * @param commands an array representing the command and args to execute
233
+ * @param options
234
+ * @param timeoutMs how long to wait before killing the command in ms
235
+ * @returns
236
+ */
194
237
  async exec(command, options, timeoutMs = 30000) {
195
238
  await this.waitProc();
196
239
  const imageMeta = await fs
@@ -266,15 +309,33 @@ class SubContainer {
266
309
  child.stderr.on("data", appendData(stderr));
267
310
  child.on("exit", (code, signal) => {
268
311
  clearTimeout(killTimeout);
269
- resolve({
312
+ const result = {
270
313
  exitCode: code,
271
314
  exitSignal: signal,
272
315
  stdout: stdout.data,
273
316
  stderr: stderr.data,
317
+ };
318
+ resolve({
319
+ throw: () => !code && !signal
320
+ ? { stdout: stdout.data, stderr: stderr.data }
321
+ : (() => {
322
+ throw new ExitError(command[0], result);
323
+ })(),
324
+ ...result,
274
325
  });
275
326
  });
276
327
  });
277
328
  }
329
+ /**
330
+ * @description run a command inside this subcontainer, throwing on non-zero exit status
331
+ * @param commands an array representing the command and args to execute
332
+ * @param options
333
+ * @param timeoutMs how long to wait before killing the command in ms
334
+ * @returns
335
+ */
336
+ async execFail(command, options, timeoutMs = 30000) {
337
+ return this.exec(command, options, timeoutMs).then((res) => res.throw());
338
+ }
278
339
  async launch(command, options) {
279
340
  await this.waitProc();
280
341
  const imageMeta = await fs
@@ -341,37 +402,92 @@ class SubContainer {
341
402
  ...command,
342
403
  ], options);
343
404
  }
405
+ rc() {
406
+ return new SubContainerRc(this);
407
+ }
344
408
  }
345
- exports.SubContainer = SubContainer;
346
- _a = SubContainer;
347
- SubContainer.finalizationEffects = {};
348
- SubContainer.registry = new FinalizationRegistry((guid) => {
349
- if (_a.finalizationEffects.effects) {
350
- _a.finalizationEffects.effects.subcontainer
351
- .destroyFs({ guid })
352
- .catch((e) => console.error("failed to cleanup SubContainer", guid, e));
409
+ exports.SubContainerOwned = SubContainerOwned;
410
+ class SubContainerRc extends Drop_1.Drop {
411
+ get imageId() {
412
+ return this.subcontainer.imageId;
353
413
  }
354
- });
355
- /**
356
- * Take an subcontainer but remove the ability to add the mounts and the destroy function.
357
- * Lets other functions, like health checks, to not destroy the parents.
358
- *
359
- */
360
- class SubContainerHandle {
361
- constructor(subContainer) {
362
- this.subContainer = subContainer;
414
+ get rootfs() {
415
+ return this.subcontainer.rootfs;
416
+ }
417
+ get guid() {
418
+ return this.subcontainer.guid;
419
+ }
420
+ constructor(subcontainer) {
421
+ subcontainer.rcs++;
422
+ super();
423
+ this.subcontainer = subcontainer;
424
+ this.destroyed = false;
425
+ }
426
+ static async of(effects, image, mounts, name) {
427
+ return new SubContainerRc(await SubContainerOwned.of(effects, image, mounts, name));
428
+ }
429
+ static async withTemp(effects, image, mounts, name, fn) {
430
+ const subContainer = await SubContainerRc.of(effects, image, mounts, name);
431
+ try {
432
+ return await fn(subContainer);
433
+ }
434
+ finally {
435
+ await subContainer.destroy();
436
+ }
437
+ }
438
+ async mount(mounts) {
439
+ await this.subcontainer.mount(mounts);
440
+ return this;
363
441
  }
364
442
  get destroy() {
365
- return undefined;
443
+ return async () => {
444
+ if (!this.destroyed) {
445
+ const rcs = --this.subcontainer.rcs;
446
+ if (rcs <= 0) {
447
+ await this.subcontainer.destroy();
448
+ if (rcs < 0)
449
+ console.error(new Error("UNREACHABLE: rcs < 0").stack);
450
+ }
451
+ this.destroyed = true;
452
+ }
453
+ return null;
454
+ };
366
455
  }
367
- exec(command, options, timeoutMs) {
368
- return this.subContainer.exec(command, options, timeoutMs);
456
+ onDrop() {
457
+ this.destroy();
458
+ }
459
+ /**
460
+ * @description run a command inside this subcontainer
461
+ * DOES NOT THROW ON NONZERO EXIT CODE (see execFail)
462
+ * @param commands an array representing the command and args to execute
463
+ * @param options
464
+ * @param timeoutMs how long to wait before killing the command in ms
465
+ * @returns
466
+ */
467
+ async exec(command, options, timeoutMs = 30000) {
468
+ return this.subcontainer.exec(command, options, timeoutMs);
469
+ }
470
+ /**
471
+ * @description run a command inside this subcontainer, throwing on non-zero exit status
472
+ * @param commands an array representing the command and args to execute
473
+ * @param options
474
+ * @param timeoutMs how long to wait before killing the command in ms
475
+ * @returns
476
+ */
477
+ async execFail(command, options, timeoutMs = 30000) {
478
+ return this.subcontainer.execFail(command, options, timeoutMs);
479
+ }
480
+ async launch(command, options) {
481
+ return this.subcontainer.launch(command, options);
482
+ }
483
+ async spawn(command, options = { stdio: "inherit" }) {
484
+ return this.subcontainer.spawn(command, options);
369
485
  }
370
- spawn(command, options = { stdio: "inherit" }) {
371
- return this.subContainer.spawn(command, options);
486
+ rc() {
487
+ return this.subcontainer.rc();
372
488
  }
373
489
  }
374
- exports.SubContainerHandle = SubContainerHandle;
490
+ exports.SubContainerRc = SubContainerRc;
375
491
  function wait(time) {
376
492
  return new Promise((resolve) => setTimeout(resolve, time));
377
493
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SubContainer.js","sourceRoot":"","sources":["../../../../package/lib/util/SubContainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubContainer.js","sourceRoot":"","sources":["../../../../package/lib/util/SubContainer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,22 @@
1
1
  import * as matches from "ts-matches";
2
+ import * as TOML from "@iarna/toml";
3
+ import * as INI from "ini";
2
4
  import * as T from "../../../base/lib/types";
5
+ export type Transformers<Raw = unknown, Transformed = unknown> = {
6
+ onRead: (value: Raw) => Transformed;
7
+ onWrite: (value: Transformed) => Raw;
8
+ };
9
+ type ToPath = string | {
10
+ volumeId: T.VolumeId;
11
+ subpath: string;
12
+ };
13
+ type Validator<T, U> = matches.Validator<T, U> | matches.Validator<unknown, U>;
14
+ type ReadType<A> = {
15
+ once: () => Promise<A | null>;
16
+ const: (effects: T.Effects) => Promise<A | null>;
17
+ watch: (effects: T.Effects) => AsyncGenerator<A | null, null, unknown>;
18
+ onChange: (effects: T.Effects, callback: (value: A | null, error?: Error) => void | Promise<void>) => void;
19
+ };
3
20
  /**
4
21
  * @description Use this class to read/write an underlying configuration file belonging to the upstream service.
5
22
  *
@@ -61,42 +78,51 @@ export declare class FileHelper<A> {
61
78
  private readConst;
62
79
  private readWatch;
63
80
  private readOnChange;
64
- get read(): {
65
- once: () => Promise<A | null>;
66
- const: (effects: T.Effects) => Promise<A | null>;
67
- watch: () => AsyncGenerator<Awaited<A> | null, null, unknown>;
68
- onChange: (callback: (value: A | null, error?: Error) => void | Promise<void>) => void;
69
- };
81
+ read(): ReadType<A>;
82
+ read<B>(map: (value: A) => B, eq?: (left: B | null | undefined, right: B | null) => boolean): ReadType<B>;
70
83
  /**
71
84
  * Accepts full structured data and overwrites the existing file on disk if it exists.
72
85
  */
73
- write(effects: T.Effects, data: A): Promise<null>;
86
+ write(effects: T.Effects, data: T.AllowReadonly<A> | A): Promise<null>;
74
87
  /**
75
88
  * Accepts partial structured data and performs a merge with the existing file on disk.
76
89
  */
77
- merge(effects: T.Effects, data: T.DeepPartial<A>): Promise<null>;
90
+ merge(effects: T.Effects, data: T.AllowReadonly<T.DeepPartial<A>>): Promise<null>;
78
91
  /**
79
92
  * We wanted to be able to have a fileHelper, and just modify the path later in time.
80
93
  * Like one behavior of another dependency or something similar.
81
94
  */
82
- withPath(path: string): FileHelper<A>;
95
+ withPath(path: ToPath): FileHelper<A>;
83
96
  /**
84
97
  * Create a File Helper for an arbitrary file type.
85
98
  *
86
99
  * Provide custom functions for translating data to/from the file format.
87
100
  */
88
- static raw<A>(path: string, toFile: (dataIn: A) => string, fromFile: (rawData: string) => unknown, validate: (data: unknown) => A): FileHelper<A>;
101
+ static raw<A>(path: ToPath, toFile: (dataIn: A) => string, fromFile: (rawData: string) => unknown, validate: (data: unknown) => A): FileHelper<A>;
102
+ private static rawTransformed;
89
103
  /**
90
- * Create a File Helper for a .json file.
104
+ * Create a File Helper for a text file
91
105
  */
92
- static json<A>(path: string, shape: matches.Validator<unknown, A>): FileHelper<A>;
106
+ static string(path: ToPath): FileHelper<string>;
107
+ static string<A extends string>(path: ToPath, shape: Validator<string, A>): FileHelper<A>;
108
+ static string<A extends Transformed, Transformed = string>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<string, Transformed>): FileHelper<A>;
93
109
  /**
94
- * Create a File Helper for a .toml file
110
+ * Create a File Helper for a .json file.
95
111
  */
96
- static toml<A extends Record<string, unknown>>(path: string, shape: matches.Validator<unknown, A>): FileHelper<A>;
112
+ static json<A>(path: ToPath, shape: Validator<unknown, A>, transformers?: Transformers): FileHelper<A>;
97
113
  /**
98
114
  * Create a File Helper for a .yaml file
99
115
  */
100
- static yaml<A extends Record<string, unknown>>(path: string, shape: matches.Validator<unknown, A>): FileHelper<A>;
116
+ static yaml<A extends Record<string, unknown>>(path: ToPath, shape: Validator<Record<string, unknown>, A>): FileHelper<A>;
117
+ static yaml<A extends Transformed, Transformed = Record<string, unknown>>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<Record<string, unknown>, Transformed>): FileHelper<A>;
118
+ /**
119
+ * Create a File Helper for a .toml file
120
+ */
121
+ static toml<A extends TOML.JsonMap>(path: ToPath, shape: Validator<TOML.JsonMap, A>): FileHelper<A>;
122
+ static toml<A extends Transformed, Transformed = TOML.JsonMap>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<TOML.JsonMap, Transformed>): FileHelper<A>;
123
+ static ini<A extends Record<string, unknown>>(path: ToPath, shape: Validator<Record<string, unknown>, A>, options?: INI.EncodeOptions & INI.DecodeOptions): FileHelper<A>;
124
+ static ini<A extends Transformed, Transformed = Record<string, unknown>>(path: ToPath, shape: Validator<Transformed, A>, options: INI.EncodeOptions & INI.DecodeOptions, transformers: Transformers<Record<string, unknown>, Transformed>): FileHelper<A>;
125
+ static env<A extends Record<string, string>>(path: ToPath, shape: Validator<Record<string, string>, A>): FileHelper<A>;
126
+ static env<A extends Transformed, Transformed = Record<string, string>>(path: ToPath, shape: Validator<Transformed, A>, transformers: Transformers<Record<string, string>, Transformed>): FileHelper<A>;
101
127
  }
102
128
  export default FileHelper;