@start9labs/start-sdk 0.4.0-beta.1 → 0.4.0-beta.10
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.
- package/base/lib/Effects.d.ts +3 -0
- package/base/lib/actions/setupActions.js +7 -7
- package/base/lib/actions/setupActions.js.map +1 -1
- package/base/lib/dependencies/dependencies.js +4 -2
- package/base/lib/dependencies/dependencies.js.map +1 -1
- package/base/lib/dependencies/setupDependencies.js +5 -7
- package/base/lib/dependencies/setupDependencies.js.map +1 -1
- package/base/lib/interfaces/setupInterfaces.js +7 -9
- package/base/lib/interfaces/setupInterfaces.js.map +1 -1
- package/base/lib/osBindings/index.d.ts +16 -16
- package/base/lib/util/GetSystemSmtp.js +7 -2
- package/base/lib/util/GetSystemSmtp.js.map +1 -1
- package/base/lib/util/getServiceInterface.d.ts +10 -0
- package/base/lib/util/getServiceInterface.js +41 -1
- package/base/lib/util/getServiceInterface.js.map +1 -1
- package/base/lib/util/getServiceInterfaces.js +6 -1
- package/base/lib/util/getServiceInterfaces.js.map +1 -1
- package/package/lib/StartSdk.d.ts +21 -19
- package/package/lib/StartSdk.js +26 -14
- package/package/lib/StartSdk.js.map +1 -1
- package/package/lib/backup/Backups.d.ts +12 -2
- package/package/lib/backup/Backups.js +51 -3
- package/package/lib/backup/Backups.js.map +1 -1
- package/package/lib/backup/setupBackups.js +2 -2
- package/package/lib/backup/setupBackups.js.map +1 -1
- package/package/lib/health/checkFns/runHealthScript.d.ts +2 -1
- package/package/lib/health/checkFns/runHealthScript.js +1 -1
- package/package/lib/health/checkFns/runHealthScript.js.map +1 -1
- package/package/lib/mainFn/CommandController.d.ts +8 -14
- package/package/lib/mainFn/CommandController.js +33 -48
- package/package/lib/mainFn/CommandController.js.map +1 -1
- package/package/lib/mainFn/Daemon.d.ts +5 -13
- package/package/lib/mainFn/Daemon.js +9 -5
- package/package/lib/mainFn/Daemon.js.map +1 -1
- package/package/lib/mainFn/Daemons.d.ts +6 -25
- package/package/lib/mainFn/Daemons.js +1 -3
- package/package/lib/mainFn/Daemons.js.map +1 -1
- package/package/lib/mainFn/HealthDaemon.d.ts +4 -3
- package/package/lib/mainFn/HealthDaemon.js +11 -0
- package/package/lib/mainFn/HealthDaemon.js.map +1 -1
- package/package/lib/mainFn/Mounts.d.ts +13 -5
- package/package/lib/mainFn/Mounts.js +35 -22
- package/package/lib/mainFn/Mounts.js.map +1 -1
- package/package/lib/store/getStore.js +7 -2
- package/package/lib/store/getStore.js.map +1 -1
- package/package/lib/test/output.sdk.d.ts +128 -58
- package/package/lib/util/Drop.d.ts +1 -0
- package/package/lib/util/Drop.js +17 -4
- package/package/lib/util/Drop.js.map +1 -1
- package/package/lib/util/GetSslCertificate.js +7 -2
- package/package/lib/util/GetSslCertificate.js.map +1 -1
- package/package/lib/util/SubContainer.d.ts +62 -13
- package/package/lib/util/SubContainer.js +115 -81
- package/package/lib/util/SubContainer.js.map +1 -1
- package/package/lib/util/fileHelper.d.ts +5 -2
- package/package/lib/util/fileHelper.js +20 -7
- package/package/lib/util/fileHelper.js.map +1 -1
- package/package.json +10 -10
- package/base/lib/osBindings/NetworkInterfaceSetPublicParams.d.ts +0 -4
- package/base/lib/osBindings/NetworkInterfaceSetPublicParams.js +0 -4
- package/base/lib/osBindings/NetworkInterfaceSetPublicParams.js.map +0 -1
- package/base/lib/osBindings/UnsetPublicParams.d.ts +0 -3
- package/base/lib/osBindings/UnsetPublicParams.js +0 -4
- package/base/lib/osBindings/UnsetPublicParams.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drop.js","sourceRoot":"","sources":["../../../../package/lib/util/Drop.ts"],"names":[],"mappings":";;;AAAA,MAAsB,IAAI;
|
|
1
|
+
{"version":3,"file":"Drop.js","sourceRoot":"","sources":["../../../../package/lib/util/Drop.ts"],"names":[],"mappings":";;;AAAA,MAAsB,IAAI;IASxB;QACE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAEnD,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACrB,GAAG,CAAC,MAAW,EAAE,IAAI,EAAE,KAAK;gBAC1B,IAAI,IAAI,KAAK,KAAK;oBAAE,OAAO,KAAK,CAAA;gBAChC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CACnB;gBAAC,IAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;gBAC5B,OAAO,IAAI,CAAA;YACb,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IACS,QAAQ,KAAI,CAAC;IACb,IAAI;QACZ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5E,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3B,CAAC;;AApCH,oBAqCC;AApCgB,SAAI,GAA2B,EAAE,CAAA;AACjC,aAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,EAAU,EAAE,EAAE;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1B,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,EAAE,CAAA;AACvB,CAAC,CAAC,CAAA;AACa,UAAK,GAAW,CAAC,CAAA"}
|
|
@@ -31,10 +31,15 @@ class GetSslCertificate {
|
|
|
31
31
|
* Watches the SSL Certificate for the given hostnames if permitted. Returns an async iterator that yields whenever the value changes
|
|
32
32
|
*/
|
|
33
33
|
async *watch() {
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
const resolveCell = { resolve: () => { } };
|
|
35
|
+
this.effects.onLeaveContext(() => {
|
|
36
|
+
resolveCell.resolve();
|
|
37
|
+
});
|
|
38
|
+
while (this.effects.isInContext) {
|
|
39
|
+
let callback = () => { };
|
|
36
40
|
const waitForNext = new Promise((resolve) => {
|
|
37
41
|
callback = resolve;
|
|
42
|
+
resolveCell.resolve = resolve;
|
|
38
43
|
});
|
|
39
44
|
yield await this.effects.getSslCertificate({
|
|
40
45
|
hostnames: this.hostnames,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetSslCertificate.js","sourceRoot":"","sources":["../../../../package/lib/util/GetSslCertificate.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IAC5B,YACW,OAAgB,EAChB,SAAmB,EACnB,SAAuB;QAFvB,YAAO,GAAP,OAAO,CAAS;QAChB,cAAS,GAAT,SAAS,CAAU;QACnB,cAAS,GAAT,SAAS,CAAc;IAC/B,CAAC;IAEJ;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EACN,IAAI,CAAC,OAAO,CAAC,UAAU;gBACvB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;SAC/D,CAAC,CAAA;IACJ,CAAC;IACD;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,KAAK;QACV,OAAO,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"GetSslCertificate.js","sourceRoot":"","sources":["../../../../package/lib/util/GetSslCertificate.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IAC5B,YACW,OAAgB,EAChB,SAAmB,EACnB,SAAuB;QAFvB,YAAO,GAAP,OAAO,CAAS;QAChB,cAAS,GAAT,SAAS,CAAU;QACnB,cAAS,GAAT,SAAS,CAAc;IAC/B,CAAC;IAEJ;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EACN,IAAI,CAAC,OAAO,CAAC,UAAU;gBACvB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;SAC/D,CAAC,CAAA;IACJ,CAAC;IACD;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,KAAK;QACV,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;QACzC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;YAC/B,WAAW,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,QAAQ,GAAe,GAAG,EAAE,GAAE,CAAC,CAAA;YACnC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAChD,QAAQ,GAAG,OAAO,CAAA;gBAClB,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;YAC/B,CAAC,CAAC,CAAA;YACF,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBACzC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;aAC3B,CAAC,CAAA;YACF,MAAM,WAAW,CAAA;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,QAGyB;QAEzB,CAAC;QAAA,CAAC,KAAK,IAAI,EAAE;YACX,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CACX,+DAA+D,EAC/D,CAAC,CACF,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC/B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACX,OAAO,CAAC,KAAK,CACX,+DAA+D,EAC/D,CAAC,CACF,CACF,CAAA;IACL,CAAC;CACF;AAjFD,8CAiFC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as T from "../../../base/lib/types";
|
|
2
2
|
import * as cp from "child_process";
|
|
3
3
|
import { Buffer } from "node:buffer";
|
|
4
|
+
import { Drop } from "./Drop";
|
|
5
|
+
import { Mounts } from "../mainFn/Mounts";
|
|
6
|
+
import { BackupEffects } from "../backup/Backups";
|
|
4
7
|
export declare const execFile: typeof cp.execFile.__promisify__;
|
|
5
8
|
type ExecResults = {
|
|
6
9
|
exitCode: number | null;
|
|
@@ -20,6 +23,10 @@ export type ExecOptions = {
|
|
|
20
23
|
export interface ExecSpawnable {
|
|
21
24
|
get destroy(): undefined | (() => Promise<null>);
|
|
22
25
|
exec(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<ExecResults>;
|
|
26
|
+
execFail(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
|
|
27
|
+
stdout: string | Buffer;
|
|
28
|
+
stderr: string | Buffer;
|
|
29
|
+
}>;
|
|
23
30
|
spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
|
|
24
31
|
}
|
|
25
32
|
/**
|
|
@@ -28,37 +35,66 @@ export interface ExecSpawnable {
|
|
|
28
35
|
* Implements:
|
|
29
36
|
* @see {@link ExecSpawnable}
|
|
30
37
|
*/
|
|
31
|
-
export declare class SubContainer implements ExecSpawnable {
|
|
32
|
-
readonly effects:
|
|
38
|
+
export declare class SubContainer<Manifest extends T.SDKManifest, Effects extends T.Effects = T.Effects> extends Drop implements ExecSpawnable {
|
|
39
|
+
readonly effects: Effects;
|
|
33
40
|
readonly imageId: T.ImageId;
|
|
34
41
|
readonly rootfs: string;
|
|
35
42
|
readonly guid: T.Guid;
|
|
36
|
-
private
|
|
37
|
-
private static registry;
|
|
43
|
+
private destroyed;
|
|
38
44
|
private leader;
|
|
39
45
|
private leaderExited;
|
|
40
46
|
private waitProc;
|
|
41
47
|
private constructor();
|
|
42
|
-
static of(effects:
|
|
43
|
-
imageId: T.ImageId;
|
|
48
|
+
static of<Manifest extends T.SDKManifest, Effects extends T.Effects>(effects: Effects, image: {
|
|
49
|
+
imageId: keyof Manifest["images"] & T.ImageId;
|
|
44
50
|
sharedRun?: boolean;
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
}, mounts: (Effects extends BackupEffects ? Mounts<Manifest, {
|
|
52
|
+
subpath: string | null;
|
|
53
|
+
mountpoint: string;
|
|
54
|
+
}> : Mounts<Manifest, never>) | null, name: string): Promise<SubContainer<T.SDKManifest, Effects>>;
|
|
55
|
+
static withTemp<Manifest extends T.SDKManifest, T, Effects extends T.Effects>(effects: Effects, image: {
|
|
56
|
+
imageId: keyof Manifest["images"] & T.ImageId;
|
|
48
57
|
sharedRun?: boolean;
|
|
49
|
-
}, mounts: {
|
|
50
|
-
|
|
58
|
+
}, mounts: (Effects extends BackupEffects ? Mounts<Manifest, {
|
|
59
|
+
subpath: string | null;
|
|
60
|
+
mountpoint: string;
|
|
61
|
+
}> : Mounts<Manifest, never>) | null, name: string, fn: (subContainer: SubContainer<Manifest, Effects>) => Promise<T>): Promise<T>;
|
|
62
|
+
mount(mounts: Effects extends BackupEffects ? Mounts<Manifest, {
|
|
63
|
+
subpath: string | null;
|
|
51
64
|
mountpoint: string;
|
|
52
|
-
}
|
|
53
|
-
mount(options: MountOptions, path: string): Promise<SubContainer>;
|
|
65
|
+
}> : Mounts<Manifest, never>): Promise<SubContainer<Manifest, Effects>>;
|
|
54
66
|
private killLeader;
|
|
55
67
|
get destroy(): () => Promise<null>;
|
|
68
|
+
onDrop(): void;
|
|
69
|
+
/**
|
|
70
|
+
* @description run a command inside this subcontainer
|
|
71
|
+
* DOES NOT THROW ON NONZERO EXIT CODE (see execFail)
|
|
72
|
+
* @param commands an array representing the command and args to execute
|
|
73
|
+
* @param options
|
|
74
|
+
* @param timeoutMs how long to wait before killing the command in ms
|
|
75
|
+
* @returns
|
|
76
|
+
*/
|
|
56
77
|
exec(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
|
|
78
|
+
throw: () => {
|
|
79
|
+
stdout: string | Buffer;
|
|
80
|
+
stderr: string | Buffer;
|
|
81
|
+
};
|
|
57
82
|
exitCode: number | null;
|
|
58
83
|
exitSignal: NodeJS.Signals | null;
|
|
59
84
|
stdout: string | Buffer;
|
|
60
85
|
stderr: string | Buffer;
|
|
61
86
|
}>;
|
|
87
|
+
/**
|
|
88
|
+
* @description run a command inside this subcontainer, throwing on non-zero exit status
|
|
89
|
+
* @param commands an array representing the command and args to execute
|
|
90
|
+
* @param options
|
|
91
|
+
* @param timeoutMs how long to wait before killing the command in ms
|
|
92
|
+
* @returns
|
|
93
|
+
*/
|
|
94
|
+
execFail(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
|
|
95
|
+
stdout: string | Buffer;
|
|
96
|
+
stderr: string | Buffer;
|
|
97
|
+
}>;
|
|
62
98
|
launch(command: string[], options?: CommandOptions): Promise<cp.ChildProcessWithoutNullStreams>;
|
|
63
99
|
spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
|
|
64
100
|
}
|
|
@@ -72,13 +108,26 @@ export declare class SubContainerHandle implements ExecSpawnable {
|
|
|
72
108
|
constructor(subContainer: ExecSpawnable);
|
|
73
109
|
get destroy(): undefined;
|
|
74
110
|
exec(command: string[], options?: CommandOptions, timeoutMs?: number | null): Promise<ExecResults>;
|
|
111
|
+
execFail(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
|
|
112
|
+
stdout: string | Buffer;
|
|
113
|
+
stderr: string | Buffer;
|
|
114
|
+
}>;
|
|
75
115
|
spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
|
|
76
116
|
}
|
|
77
117
|
export type CommandOptions = {
|
|
118
|
+
/**
|
|
119
|
+
* Environment variables to set for this command
|
|
120
|
+
*/
|
|
78
121
|
env?: {
|
|
79
122
|
[variable: string]: string;
|
|
80
123
|
};
|
|
124
|
+
/**
|
|
125
|
+
* the working directory to run this command in
|
|
126
|
+
*/
|
|
81
127
|
cwd?: string;
|
|
128
|
+
/**
|
|
129
|
+
* the user to run this command as
|
|
130
|
+
*/
|
|
82
131
|
user?: string;
|
|
83
132
|
};
|
|
84
133
|
export type StdioOptions = {
|
|
@@ -32,7 +32,6 @@ 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
36
|
exports.ExitError = exports.SubContainerHandle = exports.SubContainer = exports.execFile = void 0;
|
|
38
37
|
const fs = __importStar(require("fs/promises"));
|
|
@@ -40,6 +39,7 @@ 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;
|
|
@@ -49,15 +49,15 @@ const TIMES_TO_WAIT_FOR_PROC = 100;
|
|
|
49
49
|
* Implements:
|
|
50
50
|
* @see {@link ExecSpawnable}
|
|
51
51
|
*/
|
|
52
|
-
class SubContainer {
|
|
52
|
+
class SubContainer extends Drop_1.Drop {
|
|
53
53
|
constructor(effects, imageId, rootfs, guid) {
|
|
54
|
+
super();
|
|
54
55
|
this.effects = effects;
|
|
55
56
|
this.imageId = imageId;
|
|
56
57
|
this.rootfs = rootfs;
|
|
57
58
|
this.guid = guid;
|
|
59
|
+
this.destroyed = false;
|
|
58
60
|
this.leaderExited = false;
|
|
59
|
-
if (!_a.finalizationEffects.effects)
|
|
60
|
-
_a.finalizationEffects.effects = effects;
|
|
61
61
|
this.leaderExited = false;
|
|
62
62
|
this.leader = cp.spawn("start-cli", ["subcontainer", "launch", rootfs], {
|
|
63
63
|
killSignal: "SIGKILL",
|
|
@@ -75,90 +75,98 @@ class SubContainer {
|
|
|
75
75
|
imageId: this.imageId,
|
|
76
76
|
rootfs: this.rootfs,
|
|
77
77
|
});
|
|
78
|
-
reject(new Error(`Failed to start subcontainer ${this.imageId}`));
|
|
78
|
+
return reject(new Error(`Failed to start subcontainer ${this.imageId}`));
|
|
79
79
|
}
|
|
80
80
|
await wait(1);
|
|
81
81
|
}
|
|
82
82
|
resolve(null);
|
|
83
83
|
}));
|
|
84
84
|
}
|
|
85
|
-
static async of(effects, image, name) {
|
|
85
|
+
static async of(effects, image, mounts, name) {
|
|
86
86
|
const { imageId, sharedRun } = image;
|
|
87
87
|
const [rootfs, guid] = await effects.subcontainer.createFs({
|
|
88
88
|
imageId,
|
|
89
89
|
name,
|
|
90
90
|
});
|
|
91
|
-
const res = new
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
91
|
+
const res = new SubContainer(effects, imageId, rootfs, guid);
|
|
92
|
+
try {
|
|
93
|
+
if (mounts) {
|
|
94
|
+
await res.mount(mounts);
|
|
95
|
+
}
|
|
96
|
+
const shared = ["dev", "sys"];
|
|
97
|
+
if (!!sharedRun) {
|
|
98
|
+
shared.push("run");
|
|
99
|
+
}
|
|
100
|
+
await fs.mkdir(`${rootfs}/etc`, { recursive: true });
|
|
101
|
+
await fs.copyFile("/etc/resolv.conf", `${rootfs}/etc/resolv.conf`);
|
|
102
|
+
for (const dirPart of shared) {
|
|
103
|
+
const from = `/${dirPart}`;
|
|
104
|
+
const to = `${rootfs}/${dirPart}`;
|
|
105
|
+
await fs.mkdir(from, { recursive: true });
|
|
106
|
+
await fs.mkdir(to, { recursive: true });
|
|
107
|
+
await (0, exports.execFile)("mount", ["--rbind", from, to]);
|
|
108
|
+
}
|
|
109
|
+
return res;
|
|
96
110
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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]);
|
|
111
|
+
catch (e) {
|
|
112
|
+
await res.destroy();
|
|
113
|
+
throw e;
|
|
105
114
|
}
|
|
106
|
-
return res;
|
|
107
115
|
}
|
|
108
|
-
static async
|
|
109
|
-
const subContainer = await
|
|
116
|
+
static async withTemp(effects, image, mounts, name, fn) {
|
|
117
|
+
const subContainer = await SubContainer.of(effects, image, mounts, name);
|
|
110
118
|
try {
|
|
111
|
-
for (let mount of mounts) {
|
|
112
|
-
await subContainer.mount(mount.options, mount.mountpoint);
|
|
113
|
-
}
|
|
114
119
|
return await fn(subContainer);
|
|
115
120
|
}
|
|
116
121
|
finally {
|
|
117
122
|
await subContainer.destroy();
|
|
118
123
|
}
|
|
119
124
|
}
|
|
120
|
-
async mount(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
125
|
+
async mount(mounts) {
|
|
126
|
+
for (let mount of mounts.build()) {
|
|
127
|
+
let { options, mountpoint } = mount;
|
|
128
|
+
const path = mountpoint.startsWith("/")
|
|
129
|
+
? `${this.rootfs}${mountpoint}`
|
|
130
|
+
: `${this.rootfs}/${mountpoint}`;
|
|
131
|
+
if (options.type === "volume") {
|
|
132
|
+
const subpath = options.subpath
|
|
133
|
+
? options.subpath.startsWith("/")
|
|
134
|
+
? options.subpath
|
|
135
|
+
: `/${options.subpath}`
|
|
136
|
+
: "/";
|
|
137
|
+
const from = `/media/startos/volumes/${options.id}${subpath}`;
|
|
138
|
+
await fs.mkdir(from, { recursive: true });
|
|
139
|
+
await fs.mkdir(path, { recursive: true });
|
|
140
|
+
await (0, exports.execFile)("mount", ["--bind", from, path]);
|
|
141
|
+
}
|
|
142
|
+
else if (options.type === "assets") {
|
|
143
|
+
const subpath = options.subpath
|
|
144
|
+
? options.subpath.startsWith("/")
|
|
145
|
+
? options.subpath
|
|
146
|
+
: `/${options.subpath}`
|
|
147
|
+
: "/";
|
|
148
|
+
const from = `/media/startos/assets/${subpath}`;
|
|
149
|
+
await fs.mkdir(from, { recursive: true });
|
|
150
|
+
await fs.mkdir(path, { recursive: true });
|
|
151
|
+
await (0, exports.execFile)("mount", ["--bind", from, path]);
|
|
152
|
+
}
|
|
153
|
+
else if (options.type === "pointer") {
|
|
154
|
+
await this.effects.mount({ location: path, target: options });
|
|
155
|
+
}
|
|
156
|
+
else if (options.type === "backup") {
|
|
157
|
+
const subpath = options.subpath
|
|
158
|
+
? options.subpath.startsWith("/")
|
|
159
|
+
? options.subpath
|
|
160
|
+
: `/${options.subpath}`
|
|
161
|
+
: "/";
|
|
162
|
+
const from = `/media/startos/backup${subpath}`;
|
|
163
|
+
await fs.mkdir(from, { recursive: true });
|
|
164
|
+
await fs.mkdir(path, { recursive: true });
|
|
165
|
+
await (0, exports.execFile)("mount", ["--bind", from, path]);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
throw new Error(`unknown type ${options.type}`);
|
|
169
|
+
}
|
|
162
170
|
}
|
|
163
171
|
return this;
|
|
164
172
|
}
|
|
@@ -184,13 +192,27 @@ class SubContainer {
|
|
|
184
192
|
}
|
|
185
193
|
get destroy() {
|
|
186
194
|
return async () => {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
195
|
+
if (!this.destroyed) {
|
|
196
|
+
const guid = this.guid;
|
|
197
|
+
await this.killLeader();
|
|
198
|
+
await this.effects.subcontainer.destroyFs({ guid });
|
|
199
|
+
this.destroyed = true;
|
|
200
|
+
}
|
|
191
201
|
return null;
|
|
192
202
|
};
|
|
193
203
|
}
|
|
204
|
+
onDrop() {
|
|
205
|
+
console.log(`Cleaning up dangling subcontainer ${this.guid}`);
|
|
206
|
+
this.destroy();
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* @description run a command inside this subcontainer
|
|
210
|
+
* DOES NOT THROW ON NONZERO EXIT CODE (see execFail)
|
|
211
|
+
* @param commands an array representing the command and args to execute
|
|
212
|
+
* @param options
|
|
213
|
+
* @param timeoutMs how long to wait before killing the command in ms
|
|
214
|
+
* @returns
|
|
215
|
+
*/
|
|
194
216
|
async exec(command, options, timeoutMs = 30000) {
|
|
195
217
|
await this.waitProc();
|
|
196
218
|
const imageMeta = await fs
|
|
@@ -266,15 +288,33 @@ class SubContainer {
|
|
|
266
288
|
child.stderr.on("data", appendData(stderr));
|
|
267
289
|
child.on("exit", (code, signal) => {
|
|
268
290
|
clearTimeout(killTimeout);
|
|
269
|
-
|
|
291
|
+
const result = {
|
|
270
292
|
exitCode: code,
|
|
271
293
|
exitSignal: signal,
|
|
272
294
|
stdout: stdout.data,
|
|
273
295
|
stderr: stderr.data,
|
|
296
|
+
};
|
|
297
|
+
resolve({
|
|
298
|
+
throw: () => !code && !signal
|
|
299
|
+
? { stdout: stdout.data, stderr: stderr.data }
|
|
300
|
+
: (() => {
|
|
301
|
+
throw new ExitError(command[0], result);
|
|
302
|
+
})(),
|
|
303
|
+
...result,
|
|
274
304
|
});
|
|
275
305
|
});
|
|
276
306
|
});
|
|
277
307
|
}
|
|
308
|
+
/**
|
|
309
|
+
* @description run a command inside this subcontainer, throwing on non-zero exit status
|
|
310
|
+
* @param commands an array representing the command and args to execute
|
|
311
|
+
* @param options
|
|
312
|
+
* @param timeoutMs how long to wait before killing the command in ms
|
|
313
|
+
* @returns
|
|
314
|
+
*/
|
|
315
|
+
async execFail(command, options, timeoutMs = 30000) {
|
|
316
|
+
return this.exec(command, options, timeoutMs).then((res) => res.throw());
|
|
317
|
+
}
|
|
278
318
|
async launch(command, options) {
|
|
279
319
|
await this.waitProc();
|
|
280
320
|
const imageMeta = await fs
|
|
@@ -343,15 +383,6 @@ class SubContainer {
|
|
|
343
383
|
}
|
|
344
384
|
}
|
|
345
385
|
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));
|
|
353
|
-
}
|
|
354
|
-
});
|
|
355
386
|
/**
|
|
356
387
|
* Take an subcontainer but remove the ability to add the mounts and the destroy function.
|
|
357
388
|
* Lets other functions, like health checks, to not destroy the parents.
|
|
@@ -367,6 +398,9 @@ class SubContainerHandle {
|
|
|
367
398
|
exec(command, options, timeoutMs) {
|
|
368
399
|
return this.subContainer.exec(command, options, timeoutMs);
|
|
369
400
|
}
|
|
401
|
+
execFail(command, options, timeoutMs) {
|
|
402
|
+
return this.subContainer.execFail(command, options, timeoutMs);
|
|
403
|
+
}
|
|
370
404
|
spawn(command, options = { stdio: "inherit" }) {
|
|
371
405
|
return this.subContainer.spawn(command, options);
|
|
372
406
|
}
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAiC;AAEjC,kDAAmC;AACnC,+BAAgC;AAChC,6CAAoC;AACpC,sDAAkD;AAClD,iCAA6B;AAIhB,QAAA,QAAQ,GAAG,IAAA,gBAAS,EAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;AAC9C,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,KAAK,CAAA;AAazB,MAAM,sBAAsB,GAAG,GAAG,CAAA;AAyBlC;;;;;GAKG;AACH,MAAa,YAIX,SAAQ,WAAI;IAQZ,YACW,OAAgB,EAChB,OAAkB,EAClB,MAAc,EACd,IAAY;QAErB,KAAK,EAAE,CAAA;QALE,YAAO,GAAP,OAAO,CAAS;QAChB,YAAO,GAAP,OAAO,CAAW;QAClB,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QATf,cAAS,GAAG,KAAK,CAAA;QAGjB,iBAAY,GAAY,KAAK,CAAA;QASnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;YACtE,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAC1B,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,GAAG,IAAA,WAAI,EAClB,GAAG,EAAE,CACH,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,OACE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EACjE,CAAC;gBACD,IAAI,KAAK,EAAE,GAAG,sBAAsB,EAAE,CAAC;oBACrC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE;wBAC5C,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;qBACpB,CAAC,CAAA;oBACF,OAAO,MAAM,CACX,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,OAAO,EAAE,CAAC,CAC1D,CAAA;gBACH,CAAC;gBACD,MAAM,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAC,CACL,CAAA;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,EAAE,CACb,OAAgB,EAChB,KAGC,EACD,MAUQ,EACR,IAAY;QAEZ,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;QACpC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC;YACzD,OAAO;YACP,IAAI;SACL,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAE5D,IAAI,CAAC;YACH,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC;YAED,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACpD,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,MAAM,kBAAkB,CAAC,CAAA;YAElE,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAA;gBAC1B,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,OAAO,EAAE,CAAA;gBACjC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACzC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACvC,MAAM,IAAA,gBAAQ,EAAC,OAAO,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YAChD,CAAC;YAED,OAAO,GAAG,CAAA;QACZ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;YACnB,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAKnB,OAAgB,EAChB,KAGC,EACD,MAUQ,EACR,IAAY,EACZ,EAAiE;QAEjE,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACxE,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,YAAY,CAAC,CAAA;QAC/B,CAAC;gBAAS,CAAC;YACT,MAAM,YAAY,CAAC,OAAO,EAAE,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAQ2B;QAE3B,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACjC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;YACnC,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;gBACrC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE;gBAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE,CAAA;YAClC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;oBAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;wBAC/B,CAAC,CAAC,OAAO,CAAC,OAAO;wBACjB,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;oBACzB,CAAC,CAAC,GAAG,CAAA;gBACP,MAAM,IAAI,GAAG,0BAA0B,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,CAAA;gBAE7D,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACzC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACzC,MAAM,IAAA,gBAAQ,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YACjD,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;oBAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;wBAC/B,CAAC,CAAC,OAAO,CAAC,OAAO;wBACjB,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;oBACzB,CAAC,CAAC,GAAG,CAAA;gBACP,MAAM,IAAI,GAAG,yBAAyB,OAAO,EAAE,CAAA;gBAE/C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACzC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACzC,MAAM,IAAA,gBAAQ,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YACjD,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YAC/D,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;oBAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;wBAC/B,CAAC,CAAC,OAAO,CAAC,OAAO;wBACjB,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;oBACzB,CAAC,CAAC,GAAG,CAAA;gBACP,MAAM,IAAI,GAAG,wBAAwB,OAAO,EAAE,CAAA;gBAE9C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACzC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACzC,MAAM,IAAA,gBAAQ,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YACjD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,gBAAiB,OAAe,CAAC,IAAI,EAAE,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAM;QACR,CAAC;QACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAA;gBAClE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBAC1B,YAAY,CAAC,OAAO,CAAC,CAAA;oBACrB,OAAO,CAAC,IAAI,CAAC,CAAA;gBACf,CAAC,CAAC,CAAA;gBACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,CAAC,CAAC,CAAA;YACX,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO;QACT,OAAO,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;gBACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;gBACvB,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;gBACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACvB,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CACR,OAAiB,EACjB,OAAsC,EACtC,YAA2B,KAAK;QAQhC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACrB,MAAM,SAAS,GAAoB,MAAM,EAAE;aACxC,QAAQ,CAAC,yBAAyB,IAAI,CAAC,OAAO,OAAO,EAAE;YACtD,QAAQ,EAAE,MAAM;SACjB,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,IAAI,KAAK,GAAa,EAAE,CAAA;QACxB,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,MAAM,CAAA;QACnC,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YACnB,OAAO,OAAO,CAAC,IAAI,CAAA;QACrB,CAAC;QACD,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,GAAG,CAAA;QACtC,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAA;YACrB,OAAO,OAAO,CAAC,GAAG,CAAA;QACpB,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CACpB,WAAW,EACX;YACE,cAAc;YACd,MAAM;YACN,+BAA+B,IAAI,CAAC,OAAO,MAAM;YACjD,UAAU,IAAI,EAAE;YAChB,aAAa,OAAO,EAAE;YACtB,GAAG,KAAK;YACR,IAAI,CAAC,MAAM;YACX,GAAG,OAAO;SACX,EACD,OAAO,IAAI,EAAE,CACd,CAAA;QACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC;oBACH,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;oBACzC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;wBACrC,IAAI,CAAC,EAAE,CAAC;4BACN,MAAM,CAAC,CAAC,CAAC,CAAA;wBACX,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,CAAA;wBACf,CAAC;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC;oBACH,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC1B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAY,EAAE,CAAA;QACrC,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAY,EAAE,CAAA;QACrC,MAAM,UAAU,GACd,CAAC,QAA0B,EAAE,EAAE,CAAC,CAAC,KAA4B,EAAE,EAAE;YAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,oBAAM,EAAE,CAAC;gBACzD,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAA;YACnC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;YACnD,CAAC;QACH,CAAC,CAAA;QACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACzB,IAAI,WAAuC,CAAA;YAC3C,IAAI,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACpC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;YAClE,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3C,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3C,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAChC,YAAY,CAAC,WAAW,CAAC,CAAA;gBACzB,MAAM,MAAM,GAAG;oBACb,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,MAAM;oBAClB,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,MAAM,EAAE,MAAM,CAAC,IAAI;iBACpB,CAAA;gBACD,OAAO,CAAC;oBACN,KAAK,EAAE,GAAG,EAAE,CACV,CAAC,IAAI,IAAI,CAAC,MAAM;wBACd,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;wBAC9C,CAAC,CAAC,CAAC,GAAG,EAAE;4BACJ,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;wBACzC,CAAC,CAAC,EAAE;oBACV,GAAG,MAAM;iBACV,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CACZ,OAAiB,EACjB,OAAsC,EACtC,YAA2B,KAAK;QAKhC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,KAAK,CAAC,MAAM,CACV,OAAiB,EACjB,OAAwB;QAExB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACrB,MAAM,SAAS,GAAoB,MAAM,EAAE;aACxC,QAAQ,CAAC,yBAAyB,IAAI,CAAC,OAAO,OAAO,EAAE;YACtD,QAAQ,EAAE,MAAM;SACjB,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,IAAI,KAAK,GAAa,EAAE,CAAA;QACxB,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,MAAM,CAAA;QACnC,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YACnB,OAAO,OAAO,CAAC,IAAI,CAAA;QACrB,CAAC;QACD,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,GAAG,CAAA;QACtC,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAA;YACrB,OAAO,OAAO,CAAC,GAAG,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CACpB,WAAW,EACX;YACE,cAAc;YACd,QAAQ;YACR,+BAA+B,IAAI,CAAC,OAAO,MAAM;YACjD,UAAU,IAAI,EAAE;YAChB,aAAa,OAAO,EAAE;YACtB,GAAG,KAAK;YACR,IAAI,CAAC,MAAM;YACX,GAAG,OAAO;SACX,EACD,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CACjC,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAC1B,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,MAA2C,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,KAAK,CACT,OAAiB,EACjB,UAAyC,EAAE,KAAK,EAAE,SAAS,EAAE;QAE7D,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACrB,MAAM,SAAS,GAAoB,MAAM,EAAE;aACxC,QAAQ,CAAC,yBAAyB,IAAI,CAAC,OAAO,OAAO,EAAE;YACtD,QAAQ,EAAE,MAAM;SACjB,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,IAAI,KAAK,GAAa,EAAE,CAAA;QACxB,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,MAAM,CAAA;QACnC,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YACnB,OAAO,OAAO,CAAC,IAAI,CAAA;QACrB,CAAC;QACD,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,GAAG,CAAA;QACtC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAA;YACrB,OAAO,OAAO,CAAC,GAAG,CAAA;QACpB,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CACb,WAAW,EACX;YACE,cAAc;YACd,MAAM;YACN,+BAA+B,IAAI,CAAC,OAAO,MAAM;YACjD,UAAU,IAAI,EAAE;YAChB,aAAa,OAAO,EAAE;YACtB,GAAG,KAAK;YACR,IAAI,CAAC,MAAM;YACX,GAAG,OAAO;SACX,EACD,OAAO,CACR,CAAA;IACH,CAAC;CACF;AA3bD,oCA2bC;AAED;;;;GAIG;AACH,MAAa,kBAAkB;IAC7B,YAAoB,YAA2B;QAA3B,iBAAY,GAAZ,YAAY,CAAe;IAAG,CAAC;IACnD,IAAI,OAAO;QACT,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,CACF,OAAiB,EACjB,OAAwB,EACxB,SAAyB;QAEzB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IAC5D,CAAC;IAED,QAAQ,CACN,OAAiB,EACjB,OAAsC,EACtC,SAAyB;QAEzB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CACH,OAAiB,EACjB,UAAyC,EAAE,KAAK,EAAE,SAAS,EAAE;QAE7D,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;CACF;AA5BD,gDA4BC;AAmDD,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED,MAAa,SAAU,SAAQ,KAAK;IAClC,YACW,OAAe,EACf,MAKR;QAED,IAAI,OAAe,CAAA;QACnB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,GAAG,GAAG,OAAO,0BAA0B,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,CAAA;QACnF,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC7B,OAAO,GAAG,GAAG,OAAO,2BAA2B,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,CAAA;QACtF,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,GAAG,OAAO,eAAe,MAAM,CAAC,MAAM,EAAE,CAAA;QACpD,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,CAAA;QAhBL,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAKd;IAWH,CAAC;CACF;AApBD,8BAoBC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as matches from "ts-matches";
|
|
2
|
+
import * as INI from "ini";
|
|
2
3
|
import * as T from "../../../base/lib/types";
|
|
3
4
|
/**
|
|
4
5
|
* @description Use this class to read/write an underlying configuration file belonging to the upstream service.
|
|
@@ -64,8 +65,8 @@ export declare class FileHelper<A> {
|
|
|
64
65
|
get read(): {
|
|
65
66
|
once: () => Promise<A | null>;
|
|
66
67
|
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;
|
|
68
|
+
watch: (effects: T.Effects) => AsyncGenerator<Awaited<A> | null, null, unknown>;
|
|
69
|
+
onChange: (effects: T.Effects, callback: (value: A | null, error?: Error) => void | Promise<void>) => void;
|
|
69
70
|
};
|
|
70
71
|
/**
|
|
71
72
|
* Accepts full structured data and overwrites the existing file on disk if it exists.
|
|
@@ -98,5 +99,7 @@ export declare class FileHelper<A> {
|
|
|
98
99
|
* Create a File Helper for a .yaml file
|
|
99
100
|
*/
|
|
100
101
|
static yaml<A extends Record<string, unknown>>(path: string, shape: matches.Validator<unknown, A>): FileHelper<A>;
|
|
102
|
+
static ini<A extends Record<string, unknown>>(path: string, shape: matches.Validator<unknown, A>, options?: INI.EncodeOptions & INI.DecodeOptions): FileHelper<A>;
|
|
103
|
+
static env<A extends Record<string, string>>(path: string, shape: matches.Validator<unknown, A>): FileHelper<A>;
|
|
101
104
|
}
|
|
102
105
|
export default FileHelper;
|
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.FileHelper = void 0;
|
|
37
37
|
const YAML = __importStar(require("yaml"));
|
|
38
38
|
const TOML = __importStar(require("@iarna/toml"));
|
|
39
|
+
const INI = __importStar(require("ini"));
|
|
39
40
|
const fs = __importStar(require("node:fs/promises"));
|
|
40
41
|
const util_1 = require("../../../base/lib/util");
|
|
41
42
|
const previousPath = /(.+?)\/([^/]*)$/;
|
|
@@ -168,7 +169,7 @@ class FileHelper {
|
|
|
168
169
|
return this.validate(data);
|
|
169
170
|
}
|
|
170
171
|
async readConst(effects) {
|
|
171
|
-
const watch = this.readWatch();
|
|
172
|
+
const watch = this.readWatch(effects);
|
|
172
173
|
const res = await watch.next();
|
|
173
174
|
if (effects.constRetry) {
|
|
174
175
|
if (!this.consts.includes(effects.constRetry))
|
|
@@ -180,9 +181,9 @@ class FileHelper {
|
|
|
180
181
|
}
|
|
181
182
|
return res.value;
|
|
182
183
|
}
|
|
183
|
-
async *readWatch() {
|
|
184
|
+
async *readWatch(effects) {
|
|
184
185
|
let res;
|
|
185
|
-
while (
|
|
186
|
+
while (effects.isInContext) {
|
|
186
187
|
if (await exists(this.path)) {
|
|
187
188
|
const ctrl = new AbortController();
|
|
188
189
|
const watch = fs.watch(this.path, {
|
|
@@ -208,10 +209,10 @@ class FileHelper {
|
|
|
208
209
|
}
|
|
209
210
|
return null;
|
|
210
211
|
}
|
|
211
|
-
readOnChange(callback) {
|
|
212
|
+
readOnChange(effects, callback) {
|
|
212
213
|
;
|
|
213
214
|
(async () => {
|
|
214
|
-
for await (const value of this.readWatch()) {
|
|
215
|
+
for await (const value of this.readWatch(effects)) {
|
|
215
216
|
try {
|
|
216
217
|
await callback(value);
|
|
217
218
|
}
|
|
@@ -227,8 +228,8 @@ class FileHelper {
|
|
|
227
228
|
return {
|
|
228
229
|
once: () => this.readOnce(),
|
|
229
230
|
const: (effects) => this.readConst(effects),
|
|
230
|
-
watch: () => this.readWatch(),
|
|
231
|
-
onChange: (callback) => this.readOnChange(callback),
|
|
231
|
+
watch: (effects) => this.readWatch(effects),
|
|
232
|
+
onChange: (effects, callback) => this.readOnChange(effects, callback),
|
|
232
233
|
};
|
|
233
234
|
}
|
|
234
235
|
/**
|
|
@@ -297,6 +298,18 @@ class FileHelper {
|
|
|
297
298
|
static yaml(path, shape) {
|
|
298
299
|
return new FileHelper(path, (inData) => YAML.stringify(inData, null, 2), (inString) => YAML.parse(inString), (data) => shape.unsafeCast(data));
|
|
299
300
|
}
|
|
301
|
+
static ini(path, shape, options) {
|
|
302
|
+
return new FileHelper(path, (inData) => INI.stringify(inData, options), (inString) => INI.parse(inString, options), (data) => shape.unsafeCast(data));
|
|
303
|
+
}
|
|
304
|
+
static env(path, shape) {
|
|
305
|
+
return new FileHelper(path, (inData) => Object.entries(inData)
|
|
306
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
307
|
+
.join("\n"), (inString) => Object.fromEntries(inString
|
|
308
|
+
.split("\n")
|
|
309
|
+
.map((line) => line.trim())
|
|
310
|
+
.filter((line) => !line.startsWith("#") && line.includes("="))
|
|
311
|
+
.map((line) => line.split("=", 2))), (data) => shape.unsafeCast(data));
|
|
312
|
+
}
|
|
300
313
|
}
|
|
301
314
|
exports.FileHelper = FileHelper;
|
|
302
315
|
exports.default = FileHelper;
|