@start9labs/start-sdk 0.4.0-beta.45 → 0.4.0-beta.47
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 +6 -1
- package/base/lib/actions/input/inputSpecTypes.js.map +1 -1
- package/base/lib/exver/exver.d.ts +5 -5
- package/base/lib/exver/exver.js +42 -73
- package/base/lib/exver/exver.js.map +1 -1
- package/base/lib/exver/index.js +2 -2
- package/base/lib/exver/index.js.map +1 -1
- package/base/lib/osBindings/AddPackageSignerParams.d.ts +7 -0
- package/base/lib/osBindings/AddPackageSignerParams.js +3 -0
- package/base/lib/osBindings/AddPackageSignerParams.js.map +1 -0
- package/base/lib/osBindings/GetServiceManifestParams.d.ts +6 -0
- package/base/lib/osBindings/GetServiceManifestParams.js +3 -0
- package/base/lib/osBindings/GetServiceManifestParams.js.map +1 -0
- package/base/lib/osBindings/NamedHealthCheckResult.d.ts +3 -0
- package/base/lib/osBindings/PackageInfo.d.ts +3 -1
- package/base/lib/osBindings/RemovePackageSignerParams.d.ts +6 -0
- package/base/lib/osBindings/RemovePackageSignerParams.js +3 -0
- package/base/lib/osBindings/RemovePackageSignerParams.js.map +1 -0
- package/base/lib/osBindings/SetHealth.d.ts +3 -0
- package/base/lib/osBindings/index.d.ts +3 -1
- package/base/lib/types/ManifestTypes.d.ts +15 -4
- package/base/lib/util/GetSystemSmtp.d.ts +1 -1
- package/base/lib/util/GetSystemSmtp.js +1 -0
- package/base/lib/util/GetSystemSmtp.js.map +1 -1
- package/base/lib/util/deepEqual.d.ts +1 -1
- package/base/lib/util/deepEqual.js +2 -2
- package/base/lib/util/deepEqual.js.map +1 -1
- package/base/lib/util/getServiceInterface.d.ts +18 -10
- package/base/lib/util/getServiceInterface.js +37 -21
- package/base/lib/util/getServiceInterface.js.map +1 -1
- package/base/lib/util/getServiceInterfaces.d.ts +16 -8
- package/base/lib/util/getServiceInterfaces.js +29 -16
- package/base/lib/util/getServiceInterfaces.js.map +1 -1
- package/base/lib/util/index.d.ts +1 -1
- package/base/lib/util/index.js +2 -1
- package/base/lib/util/index.js.map +1 -1
- package/base/lib/util/ip.d.ts +8 -6
- package/base/lib/util/ip.js +44 -5
- package/base/lib/util/ip.js.map +1 -1
- package/package/lib/StartSdk.d.ts +16 -15
- package/package/lib/StartSdk.js +11 -8
- package/package/lib/StartSdk.js.map +1 -1
- package/package/lib/backup/Backups.js +2 -2
- package/package/lib/backup/Backups.js.map +1 -1
- package/package/lib/mainFn/Daemons.js +1 -1
- package/package/lib/mainFn/Daemons.js.map +1 -1
- package/package/lib/mainFn/HealthDaemon.d.ts +0 -1
- package/package/lib/mainFn/HealthDaemon.js +21 -22
- package/package/lib/mainFn/HealthDaemon.js.map +1 -1
- package/package/lib/test/output.sdk.d.ts +46 -10
- package/package/lib/util/GetServiceManifest.d.ts +36 -0
- package/package/lib/util/GetServiceManifest.js +113 -0
- package/package/lib/util/GetServiceManifest.js.map +1 -0
- package/package/lib/util/GetSslCertificate.d.ts +1 -1
- package/package/lib/util/GetSslCertificate.js +1 -0
- package/package/lib/util/GetSslCertificate.js.map +1 -1
- package/package/lib/util/SubContainer.d.ts +31 -1
- package/package/lib/util/SubContainer.js +29 -0
- package/package/lib/util/SubContainer.js.map +1 -1
- package/package/lib/util/Volume.d.ts +48 -0
- package/package/lib/util/Volume.js +91 -0
- package/package/lib/util/Volume.js.map +1 -0
- package/package/lib/util/fileHelper.d.ts +3 -2
- package/package/lib/util/fileHelper.js +10 -34
- package/package/lib/util/fileHelper.js.map +1 -1
- package/package/lib/util/index.d.ts +2 -0
- package/package/lib/util/index.js +6 -1
- package/package/lib/util/index.js.map +1 -1
- package/package/package.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Daemons.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/Daemons.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,yCAAqC;AACrC,uDAAwC;AAExC,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,yDAAuD;AAA9C,sHAAA,iBAAiB,OAAA;AAC1B,iDAA2D;AAC3D,qCAAiC;AACjC,2DAAuD;
|
|
1
|
+
{"version":3,"file":"Daemons.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/Daemons.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ class HealthDaemon {
|
|
|
24
24
|
this.id = id;
|
|
25
25
|
this.ready = ready;
|
|
26
26
|
this.effects = effects;
|
|
27
|
-
this._health = { result: "
|
|
27
|
+
this._health = { result: "waiting", message: null };
|
|
28
28
|
this.healthWatchers = [];
|
|
29
29
|
this.running = false;
|
|
30
30
|
this.resolvedReady = false;
|
|
@@ -58,18 +58,17 @@ class HealthDaemon {
|
|
|
58
58
|
if (newStatus) {
|
|
59
59
|
console.debug(`Launching ${this.id}...`);
|
|
60
60
|
this.setupHealthCheck();
|
|
61
|
-
|
|
61
|
+
this.daemon?.start();
|
|
62
62
|
this.started = performance.now();
|
|
63
63
|
}
|
|
64
64
|
else {
|
|
65
65
|
console.debug(`Stopping ${this.id}...`);
|
|
66
|
-
|
|
67
|
-
this.turnOffHealthCheck();
|
|
68
|
-
this.setHealth({ result: "starting", message: null });
|
|
66
|
+
this.daemon?.term();
|
|
67
|
+
await this.turnOffHealthCheck();
|
|
69
68
|
}
|
|
70
69
|
}
|
|
71
|
-
turnOffHealthCheck() {
|
|
72
|
-
this.healthCheckCleanup?.();
|
|
70
|
+
async turnOffHealthCheck() {
|
|
71
|
+
await this.healthCheckCleanup?.();
|
|
73
72
|
this.resolvedReady = false;
|
|
74
73
|
this.readyPromise = new Promise((resolve) => (this.resolveReady = () => {
|
|
75
74
|
resolve();
|
|
@@ -77,8 +76,7 @@ class HealthDaemon {
|
|
|
77
76
|
}));
|
|
78
77
|
}
|
|
79
78
|
async setupHealthCheck() {
|
|
80
|
-
|
|
81
|
-
daemon?.onExit((success) => {
|
|
79
|
+
this.daemon?.onExit((success) => {
|
|
82
80
|
if (success && this.ready === "EXIT_SUCCESS") {
|
|
83
81
|
this.setHealth({ result: "success", message: null });
|
|
84
82
|
}
|
|
@@ -88,7 +86,7 @@ class HealthDaemon {
|
|
|
88
86
|
message: `${this.id} daemon crashed`,
|
|
89
87
|
});
|
|
90
88
|
}
|
|
91
|
-
else if (!daemon
|
|
89
|
+
else if (!this.daemon?.isOneshot()) {
|
|
92
90
|
this.setHealth({
|
|
93
91
|
result: "failure",
|
|
94
92
|
message: `${this.id} daemon exited`,
|
|
@@ -103,6 +101,7 @@ class HealthDaemon {
|
|
|
103
101
|
lastResult: this._health.result,
|
|
104
102
|
}));
|
|
105
103
|
const { promise: status, resolve: setStatus } = oncePromise();
|
|
104
|
+
const { promise: exited, resolve: setExited } = oncePromise();
|
|
106
105
|
new Promise(async () => {
|
|
107
106
|
if (this.ready === "EXIT_SUCCESS")
|
|
108
107
|
return;
|
|
@@ -115,9 +114,11 @@ class HealthDaemon {
|
|
|
115
114
|
});
|
|
116
115
|
await this.setHealth(response);
|
|
117
116
|
}
|
|
117
|
+
setExited(null);
|
|
118
118
|
}).catch((err) => console.error(`Daemon ${this.id} failed: ${err}`));
|
|
119
|
-
this.healthCheckCleanup = () => {
|
|
119
|
+
this.healthCheckCleanup = async () => {
|
|
120
120
|
setStatus({ done: true });
|
|
121
|
+
await exited;
|
|
121
122
|
this.healthCheckCleanup = null;
|
|
122
123
|
return null;
|
|
123
124
|
};
|
|
@@ -161,22 +162,20 @@ class HealthDaemon {
|
|
|
161
162
|
const healths = this.dependencies.map((d) => ({
|
|
162
163
|
health: d.running && d._health,
|
|
163
164
|
id: d.id,
|
|
165
|
+
display: typeof d.ready === "object" ? d.ready.display : null,
|
|
164
166
|
}));
|
|
165
167
|
const waitingOn = healths.filter((h) => !h.health || h.health.result !== "success");
|
|
166
168
|
if (waitingOn.length)
|
|
167
169
|
console.debug(`daemon ${this.id} waiting on ${waitingOn.map((w) => w.id)}`);
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
name: this.ready.display,
|
|
176
|
-
result: "starting",
|
|
177
|
-
});
|
|
170
|
+
if (waitingOn.length) {
|
|
171
|
+
const waitingOnNames = waitingOn.flatMap((w) => w.display ? [w.display] : []);
|
|
172
|
+
const message = waitingOnNames.length ? waitingOnNames.join(", ") : null;
|
|
173
|
+
await this.setHealth({ result: "waiting", message });
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
await this.setHealth({ result: "starting", message: null });
|
|
178
177
|
}
|
|
179
|
-
await this.
|
|
178
|
+
await this.changeRunning(!waitingOn.length);
|
|
180
179
|
}
|
|
181
180
|
}
|
|
182
181
|
exports.HealthDaemon = HealthDaemon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HealthDaemon.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/HealthDaemon.ts"],"names":[],"mappings":";;;AACA,8DAA0D;
|
|
1
|
+
{"version":3,"file":"HealthDaemon.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/HealthDaemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,15 +14,10 @@ export declare const sdk: {
|
|
|
14
14
|
};
|
|
15
15
|
checkDependencies: <DependencyId extends "remote-test" = "remote-test">(effects: import("../types").Effects, packageIds?: DependencyId[] | undefined) => Promise<import("../../../base/lib/dependencies/dependencies").CheckDependencies<DependencyId>>;
|
|
16
16
|
serviceInterface: {
|
|
17
|
-
getOwn:
|
|
18
|
-
get:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}) => import("../util").GetServiceInterface;
|
|
22
|
-
getAllOwn: <E extends import("../types").Effects>(effects: E) => import("../../../base/lib/util/getServiceInterfaces").GetServiceInterfaces;
|
|
23
|
-
getAll: <E extends import("../types").Effects>(effects: E, opts: {
|
|
24
|
-
packageId: import("../types").PackageId;
|
|
25
|
-
}) => import("../../../base/lib/util/getServiceInterfaces").GetServiceInterfaces;
|
|
17
|
+
getOwn: typeof import("../../../base/lib/util/getServiceInterface").getOwnServiceInterface;
|
|
18
|
+
get: typeof import("../util").getServiceInterface;
|
|
19
|
+
getAllOwn: typeof import("../../../base/lib/util/getServiceInterfaces").getOwnServiceInterfaces;
|
|
20
|
+
getAll: typeof import("../util").getServiceInterfaces;
|
|
26
21
|
};
|
|
27
22
|
getContainerIp: (effects: import("../types").Effects, options?: Omit<Parameters<import("../types").Effects["getContainerIp"]>[0], "callback">) => {
|
|
28
23
|
const: () => Promise<string>;
|
|
@@ -96,7 +91,8 @@ export declare const sdk: {
|
|
|
96
91
|
masked: boolean;
|
|
97
92
|
}) => import("../../../base/lib/interfaces/ServiceInterfaceBuilder").ServiceInterfaceBuilder;
|
|
98
93
|
getSystemSmtp: <E extends import("../types").Effects>(effects: E) => import("../util").GetSystemSmtp;
|
|
99
|
-
|
|
94
|
+
getSslCertificate: <E extends import("../types").Effects>(effects: E, hostnames: string[], algorithm?: import("../types").Algorithm) => import("../util").GetSslCertificate;
|
|
95
|
+
getServiceManifest: typeof import("../util").getServiceManifest;
|
|
100
96
|
healthCheck: {
|
|
101
97
|
checkPortListening: typeof import("../health/checkFns").checkPortListening;
|
|
102
98
|
checkWebUrl: (effects: import("../types").Effects, url: string, { timeout, successMessage, errorMessage, }?: {
|
|
@@ -706,4 +702,44 @@ export declare const sdk: {
|
|
|
706
702
|
};
|
|
707
703
|
};
|
|
708
704
|
};
|
|
705
|
+
volumes: import("../util").Volumes<{
|
|
706
|
+
id: "testOutput";
|
|
707
|
+
title: string;
|
|
708
|
+
license: string;
|
|
709
|
+
wrapperRepo: string;
|
|
710
|
+
upstreamRepo: string;
|
|
711
|
+
supportSite: string;
|
|
712
|
+
marketingSite: string;
|
|
713
|
+
donationUrl: null;
|
|
714
|
+
docsUrl: string;
|
|
715
|
+
description: {
|
|
716
|
+
short: string;
|
|
717
|
+
long: string;
|
|
718
|
+
};
|
|
719
|
+
images: {
|
|
720
|
+
main: {
|
|
721
|
+
source: {
|
|
722
|
+
dockerTag: string;
|
|
723
|
+
};
|
|
724
|
+
arch: ["aarch64", "x86_64"];
|
|
725
|
+
emulateMissingAs: "aarch64";
|
|
726
|
+
};
|
|
727
|
+
};
|
|
728
|
+
volumes: never[];
|
|
729
|
+
alerts: {
|
|
730
|
+
install: null;
|
|
731
|
+
update: null;
|
|
732
|
+
uninstall: null;
|
|
733
|
+
restore: null;
|
|
734
|
+
start: null;
|
|
735
|
+
stop: null;
|
|
736
|
+
};
|
|
737
|
+
dependencies: {
|
|
738
|
+
"remote-test": {
|
|
739
|
+
description: string;
|
|
740
|
+
optional: false;
|
|
741
|
+
s9pk: string;
|
|
742
|
+
};
|
|
743
|
+
};
|
|
744
|
+
}>;
|
|
709
745
|
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Effects } from "../../../base/lib/Effects";
|
|
2
|
+
import { Manifest, PackageId } from "../../../base/lib/osBindings";
|
|
3
|
+
export declare class GetServiceManifest<Mapped = Manifest> {
|
|
4
|
+
readonly effects: Effects;
|
|
5
|
+
readonly packageId: PackageId;
|
|
6
|
+
readonly map: (manifest: Manifest | null) => Mapped;
|
|
7
|
+
readonly eq: (a: Mapped, b: Mapped) => boolean;
|
|
8
|
+
constructor(effects: Effects, packageId: PackageId, map: (manifest: Manifest | null) => Mapped, eq: (a: Mapped, b: Mapped) => boolean);
|
|
9
|
+
/**
|
|
10
|
+
* Returns the manifest of a service. Reruns the context from which it has been called if the underlying value changes
|
|
11
|
+
*/
|
|
12
|
+
const(): Promise<Mapped>;
|
|
13
|
+
/**
|
|
14
|
+
* Returns the manifest of a service. Does nothing if it changes
|
|
15
|
+
*/
|
|
16
|
+
once(): Promise<Mapped>;
|
|
17
|
+
private watchGen;
|
|
18
|
+
/**
|
|
19
|
+
* Watches the manifest of a service. Returns an async iterator that yields whenever the value changes
|
|
20
|
+
*/
|
|
21
|
+
watch(abort?: AbortSignal): AsyncGenerator<Mapped, never, unknown>;
|
|
22
|
+
/**
|
|
23
|
+
* Watches the manifest of a service. Takes a custom callback function to run whenever it changes
|
|
24
|
+
*/
|
|
25
|
+
onChange(callback: (value: Mapped | null, error?: Error) => {
|
|
26
|
+
cancel: boolean;
|
|
27
|
+
} | Promise<{
|
|
28
|
+
cancel: boolean;
|
|
29
|
+
}>): void;
|
|
30
|
+
/**
|
|
31
|
+
* Watches the manifest of a service. Returns when the predicate is true
|
|
32
|
+
*/
|
|
33
|
+
waitFor(pred: (value: Mapped) => boolean): Promise<Mapped>;
|
|
34
|
+
}
|
|
35
|
+
export declare function getServiceManifest(effects: Effects, packageId: PackageId): GetServiceManifest<Manifest>;
|
|
36
|
+
export declare function getServiceManifest<Mapped>(effects: Effects, packageId: PackageId, map: (manifest: Manifest | null) => Mapped, eq?: (a: Mapped, b: Mapped) => boolean): GetServiceManifest<Mapped>;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetServiceManifest = void 0;
|
|
4
|
+
exports.getServiceManifest = getServiceManifest;
|
|
5
|
+
const Drop_1 = require("../../../base/lib/util/Drop");
|
|
6
|
+
const deepEqual_1 = require("../../../base/lib/util/deepEqual");
|
|
7
|
+
class GetServiceManifest {
|
|
8
|
+
constructor(effects, packageId, map, eq) {
|
|
9
|
+
this.effects = effects;
|
|
10
|
+
this.packageId = packageId;
|
|
11
|
+
this.map = map;
|
|
12
|
+
this.eq = eq;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns the manifest of a service. Reruns the context from which it has been called if the underlying value changes
|
|
16
|
+
*/
|
|
17
|
+
async const() {
|
|
18
|
+
let abort = new AbortController();
|
|
19
|
+
const watch = this.watch(abort.signal);
|
|
20
|
+
const res = await watch.next();
|
|
21
|
+
if (this.effects.constRetry) {
|
|
22
|
+
watch.next().then(() => {
|
|
23
|
+
abort.abort();
|
|
24
|
+
this.effects.constRetry && this.effects.constRetry();
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return res.value;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns the manifest of a service. Does nothing if it changes
|
|
31
|
+
*/
|
|
32
|
+
async once() {
|
|
33
|
+
const manifest = await this.effects.getServiceManifest({
|
|
34
|
+
packageId: this.packageId,
|
|
35
|
+
});
|
|
36
|
+
return this.map(manifest);
|
|
37
|
+
}
|
|
38
|
+
async *watchGen(abort) {
|
|
39
|
+
let prev = null;
|
|
40
|
+
const resolveCell = { resolve: () => { } };
|
|
41
|
+
this.effects.onLeaveContext(() => {
|
|
42
|
+
resolveCell.resolve();
|
|
43
|
+
});
|
|
44
|
+
abort?.addEventListener("abort", () => resolveCell.resolve());
|
|
45
|
+
while (this.effects.isInContext && !abort?.aborted) {
|
|
46
|
+
let callback = () => { };
|
|
47
|
+
const waitForNext = new Promise((resolve) => {
|
|
48
|
+
callback = resolve;
|
|
49
|
+
resolveCell.resolve = resolve;
|
|
50
|
+
});
|
|
51
|
+
const next = this.map(await this.effects.getServiceManifest({
|
|
52
|
+
packageId: this.packageId,
|
|
53
|
+
callback: () => callback(),
|
|
54
|
+
}));
|
|
55
|
+
if (!prev || !this.eq(prev.value, next)) {
|
|
56
|
+
prev = { value: next };
|
|
57
|
+
yield next;
|
|
58
|
+
}
|
|
59
|
+
await waitForNext;
|
|
60
|
+
}
|
|
61
|
+
return new Promise((_, rej) => rej(new Error("aborted")));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Watches the manifest of a service. Returns an async iterator that yields whenever the value changes
|
|
65
|
+
*/
|
|
66
|
+
watch(abort) {
|
|
67
|
+
const ctrl = new AbortController();
|
|
68
|
+
abort?.addEventListener("abort", () => ctrl.abort());
|
|
69
|
+
return Drop_1.DropGenerator.of(this.watchGen(ctrl.signal), () => ctrl.abort());
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Watches the manifest of a service. Takes a custom callback function to run whenever it changes
|
|
73
|
+
*/
|
|
74
|
+
onChange(callback) {
|
|
75
|
+
;
|
|
76
|
+
(async () => {
|
|
77
|
+
const ctrl = new AbortController();
|
|
78
|
+
for await (const value of this.watch(ctrl.signal)) {
|
|
79
|
+
try {
|
|
80
|
+
const res = await callback(value);
|
|
81
|
+
if (res.cancel) {
|
|
82
|
+
ctrl.abort();
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
console.error("callback function threw an error @ GetServiceManifest.onChange", e);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
})()
|
|
91
|
+
.catch((e) => callback(null, e))
|
|
92
|
+
.catch((e) => console.error("callback function threw an error @ GetServiceManifest.onChange", e));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Watches the manifest of a service. Returns when the predicate is true
|
|
96
|
+
*/
|
|
97
|
+
waitFor(pred) {
|
|
98
|
+
const ctrl = new AbortController();
|
|
99
|
+
return Drop_1.DropPromise.of(Promise.resolve().then(async () => {
|
|
100
|
+
for await (const next of this.watchGen(ctrl.signal)) {
|
|
101
|
+
if (pred(next)) {
|
|
102
|
+
return next;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
throw new Error("context left before predicate passed");
|
|
106
|
+
}), () => ctrl.abort());
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.GetServiceManifest = GetServiceManifest;
|
|
110
|
+
function getServiceManifest(effects, packageId, map, eq) {
|
|
111
|
+
return new GetServiceManifest(effects, packageId, map ?? ((a) => a), eq ?? ((a, b) => (0, deepEqual_1.deepEqual)(a, b)));
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=GetServiceManifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetServiceManifest.js","sourceRoot":"","sources":["../../../../package/lib/util/GetServiceManifest.ts"],"names":[],"mappings":";;;AA2IA,gDAYC;AArJD,sDAAwE;AACxE,gEAA4D;AAE5D,MAAa,kBAAkB;IAC7B,YACW,OAAgB,EAChB,SAAoB,EACpB,GAA0C,EAC1C,EAAqC;QAHrC,YAAO,GAAP,OAAO,CAAS;QAChB,cAAS,GAAT,SAAS,CAAW;QACpB,QAAG,GAAH,GAAG,CAAuC;QAC1C,OAAE,GAAF,EAAE,CAAmC;IAC7C,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,KAAK,GAAG,IAAI,eAAe,EAAE,CAAA;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACtC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrB,KAAK,CAAC,KAAK,EAAE,CAAA;gBACb,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAA;YACtD,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAA;IAClB,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YACrD,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3B,CAAC;IAEO,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAmB;QACzC,IAAI,IAAI,GAAG,IAAgC,CAAA;QAC3C,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,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YACnD,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,IAAI,GAAG,IAAI,CAAC,GAAG,CACnB,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACpC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;aAC3B,CAAC,CACH,CAAA;YACD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;gBACxC,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;gBACtB,MAAM,IAAI,CAAA;YACZ,CAAC;YACD,MAAM,WAAW,CAAA;QACnB,CAAC;QACD,OAAO,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAmB;QACvB,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;QAClC,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACpD,OAAO,oBAAa,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IACzE,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,QAGuD;QAEvD,CAAC;QAAA,CAAC,KAAK,IAAI,EAAE;YACX,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;YAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAA;oBACjC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBACf,IAAI,CAAC,KAAK,EAAE,CAAA;wBACZ,MAAK;oBACP,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CACX,gEAAgE,EAChE,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,gEAAgE,EAChE,CAAC,CACF,CACF,CAAA;IACL,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAgC;QACtC,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;QAClC,OAAO,kBAAW,CAAC,EAAE,CACnB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACf,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACzD,CAAC,CAAC,EACF,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CACnB,CAAA;IACH,CAAC;CACF;AA1HD,gDA0HC;AAYD,SAAgB,kBAAkB,CAChC,OAAgB,EAChB,SAAoB,EACpB,GAA2C,EAC3C,EAAsC;IAEtC,OAAO,IAAI,kBAAkB,CAC3B,OAAO,EACP,SAAS,EACT,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAW,CAAC,EAC3B,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAS,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAClC,CAAA;AACH,CAAC"}
|
|
@@ -17,7 +17,7 @@ export declare class GetSslCertificate {
|
|
|
17
17
|
/**
|
|
18
18
|
* Watches the SSL Certificate for the given hostnames if permitted. Returns an async iterator that yields whenever the value changes
|
|
19
19
|
*/
|
|
20
|
-
watch(abort?: AbortSignal): AsyncGenerator<[string, string, string],
|
|
20
|
+
watch(abort?: AbortSignal): AsyncGenerator<[string, string, string], never, unknown>;
|
|
21
21
|
/**
|
|
22
22
|
* Watches the SSL Certificate for the given hostnames if permitted. Takes a custom callback function to run whenever it changes
|
|
23
23
|
*/
|
|
@@ -47,6 +47,7 @@ class GetSslCertificate {
|
|
|
47
47
|
});
|
|
48
48
|
await waitForNext;
|
|
49
49
|
}
|
|
50
|
+
return new Promise((_, rej) => rej(new Error("aborted")));
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
52
53
|
* Watches the SSL Certificate for the given hostnames if permitted. Returns an async iterator that yields whenever the value changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetSslCertificate.js","sourceRoot":"","sources":["../../../../package/lib/util/GetSslCertificate.ts"],"names":[],"mappings":";;;AAEA,sDAAwE;AAExE,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;IAEO,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAmB;QACzC,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,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YACnD,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;
|
|
1
|
+
{"version":3,"file":"GetSslCertificate.js","sourceRoot":"","sources":["../../../../package/lib/util/GetSslCertificate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
|
+
import * as fs from "fs/promises";
|
|
1
2
|
import * as T from "../../../base/lib/types";
|
|
2
3
|
import * as cp from "child_process";
|
|
3
4
|
import { Buffer } from "node:buffer";
|
|
4
5
|
import { Drop } from "../../../base/lib/util/Drop";
|
|
5
6
|
import { Mounts } from "../mainFn/Mounts";
|
|
6
7
|
import { BackupEffects } from "../backup/Backups";
|
|
8
|
+
import { PathBase } from "./Volume";
|
|
7
9
|
export declare const execFile: typeof cp.execFile.__promisify__;
|
|
8
10
|
export type ExecOptions = {
|
|
9
11
|
input?: string | Buffer;
|
|
10
12
|
};
|
|
11
|
-
export interface SubContainer<Manifest extends T.SDKManifest, Effects extends T.Effects = T.Effects> extends Drop {
|
|
13
|
+
export interface SubContainer<Manifest extends T.SDKManifest, Effects extends T.Effects = T.Effects> extends Drop, PathBase {
|
|
12
14
|
readonly imageId: keyof Manifest["images"] & T.ImageId;
|
|
13
15
|
readonly rootfs: string;
|
|
14
16
|
readonly guid: T.Guid;
|
|
17
|
+
/**
|
|
18
|
+
* Get the absolute path to a file or directory within this subcontainer's rootfs
|
|
19
|
+
* @param path Path relative to the rootfs
|
|
20
|
+
*/
|
|
21
|
+
subpath(path: string): string;
|
|
15
22
|
mount(mounts: Effects extends BackupEffects ? Mounts<Manifest, {
|
|
16
23
|
subpath: string | null;
|
|
17
24
|
mountpoint: string;
|
|
@@ -48,6 +55,13 @@ export interface SubContainer<Manifest extends T.SDKManifest, Effects extends T.
|
|
|
48
55
|
}>;
|
|
49
56
|
launch(command: string[], options?: CommandOptions): Promise<cp.ChildProcessWithoutNullStreams>;
|
|
50
57
|
spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
|
|
58
|
+
/**
|
|
59
|
+
* @description Write a file to the subcontainer's filesystem
|
|
60
|
+
* @param path Path relative to the subcontainer rootfs (e.g. "/etc/config.json")
|
|
61
|
+
* @param data The data to write
|
|
62
|
+
* @param options Optional write options (same as node:fs/promises writeFile)
|
|
63
|
+
*/
|
|
64
|
+
writeFile(path: string, data: string | NodeJS.ArrayBufferView | Iterable<string | NodeJS.ArrayBufferView> | AsyncIterable<string | NodeJS.ArrayBufferView>, options?: Parameters<typeof fs.writeFile>[2]): Promise<void>;
|
|
51
65
|
rc(): SubContainerRc<Manifest, Effects>;
|
|
52
66
|
isOwned(): this is SubContainerOwned<Manifest, Effects>;
|
|
53
67
|
}
|
|
@@ -79,6 +93,7 @@ export declare class SubContainerOwned<Manifest extends T.SDKManifest, Effects e
|
|
|
79
93
|
subpath: string | null;
|
|
80
94
|
mountpoint: string;
|
|
81
95
|
}> : Mounts<Manifest, never>) | null, name: string, fn: (subContainer: SubContainer<Manifest, Effects>) => Promise<T>): Promise<T>;
|
|
96
|
+
subpath(path: string): string;
|
|
82
97
|
mount(mounts: Effects extends BackupEffects ? Mounts<Manifest, {
|
|
83
98
|
subpath: string | null;
|
|
84
99
|
mountpoint: string;
|
|
@@ -117,6 +132,13 @@ export declare class SubContainerOwned<Manifest extends T.SDKManifest, Effects e
|
|
|
117
132
|
}>;
|
|
118
133
|
launch(command: string[], options?: CommandOptions): Promise<cp.ChildProcessWithoutNullStreams>;
|
|
119
134
|
spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
|
|
135
|
+
/**
|
|
136
|
+
* @description Write a file to the subcontainer's filesystem
|
|
137
|
+
* @param path Path relative to the subcontainer rootfs (e.g. "/etc/config.json")
|
|
138
|
+
* @param data The data to write
|
|
139
|
+
* @param options Optional write options (same as node:fs/promises writeFile)
|
|
140
|
+
*/
|
|
141
|
+
writeFile(path: string, data: string | NodeJS.ArrayBufferView | Iterable<string | NodeJS.ArrayBufferView> | AsyncIterable<string | NodeJS.ArrayBufferView>, options?: Parameters<typeof fs.writeFile>[2]): Promise<void>;
|
|
120
142
|
rc(): SubContainerRc<Manifest, Effects>;
|
|
121
143
|
isOwned(): this is SubContainerOwned<Manifest, Effects>;
|
|
122
144
|
}
|
|
@@ -125,6 +147,7 @@ export declare class SubContainerRc<Manifest extends T.SDKManifest, Effects exte
|
|
|
125
147
|
get imageId(): keyof Manifest["images"] & string;
|
|
126
148
|
get rootfs(): string;
|
|
127
149
|
get guid(): string;
|
|
150
|
+
subpath(path: string): string;
|
|
128
151
|
private destroyed;
|
|
129
152
|
private destroying;
|
|
130
153
|
constructor(subcontainer: SubContainerOwned<Manifest, Effects>);
|
|
@@ -179,6 +202,13 @@ export declare class SubContainerRc<Manifest extends T.SDKManifest, Effects exte
|
|
|
179
202
|
}>;
|
|
180
203
|
launch(command: string[], options?: CommandOptions): Promise<cp.ChildProcessWithoutNullStreams>;
|
|
181
204
|
spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
|
|
205
|
+
/**
|
|
206
|
+
* @description Write a file to the subcontainer's filesystem
|
|
207
|
+
* @param path Path relative to the subcontainer rootfs (e.g. "/etc/config.json")
|
|
208
|
+
* @param data The data to write
|
|
209
|
+
* @param options Optional write options (same as node:fs/promises writeFile)
|
|
210
|
+
*/
|
|
211
|
+
writeFile(path: string, data: string | NodeJS.ArrayBufferView | Iterable<string | NodeJS.ArrayBufferView> | AsyncIterable<string | NodeJS.ArrayBufferView>, options?: Parameters<typeof fs.writeFile>[2]): Promise<void>;
|
|
182
212
|
rc(): SubContainerRc<Manifest, Effects>;
|
|
183
213
|
isOwned(): this is SubContainerOwned<Manifest, Effects>;
|
|
184
214
|
}
|
|
@@ -152,6 +152,11 @@ class SubContainerOwned extends Drop_1.Drop {
|
|
|
152
152
|
await subContainer.destroy();
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
|
+
subpath(path) {
|
|
156
|
+
return path.startsWith("/")
|
|
157
|
+
? `${this.rootfs}${path}`
|
|
158
|
+
: `${this.rootfs}/${path}`;
|
|
159
|
+
}
|
|
155
160
|
async mount(mounts) {
|
|
156
161
|
for (let mount of mounts.build()) {
|
|
157
162
|
let { options, mountpoint } = mount;
|
|
@@ -422,6 +427,18 @@ class SubContainerOwned extends Drop_1.Drop {
|
|
|
422
427
|
...command,
|
|
423
428
|
], options);
|
|
424
429
|
}
|
|
430
|
+
/**
|
|
431
|
+
* @description Write a file to the subcontainer's filesystem
|
|
432
|
+
* @param path Path relative to the subcontainer rootfs (e.g. "/etc/config.json")
|
|
433
|
+
* @param data The data to write
|
|
434
|
+
* @param options Optional write options (same as node:fs/promises writeFile)
|
|
435
|
+
*/
|
|
436
|
+
async writeFile(path, data, options) {
|
|
437
|
+
const fullPath = this.subpath(path);
|
|
438
|
+
const dir = fullPath.replace(/\/[^/]*\/?$/, "");
|
|
439
|
+
await fs.mkdir(dir, { recursive: true });
|
|
440
|
+
return fs.writeFile(fullPath, data, options);
|
|
441
|
+
}
|
|
425
442
|
rc() {
|
|
426
443
|
return new SubContainerRc(this);
|
|
427
444
|
}
|
|
@@ -440,6 +457,9 @@ class SubContainerRc extends Drop_1.Drop {
|
|
|
440
457
|
get guid() {
|
|
441
458
|
return this.subcontainer.guid;
|
|
442
459
|
}
|
|
460
|
+
subpath(path) {
|
|
461
|
+
return this.subcontainer.subpath(path);
|
|
462
|
+
}
|
|
443
463
|
constructor(subcontainer) {
|
|
444
464
|
subcontainer.rcs++;
|
|
445
465
|
super();
|
|
@@ -511,6 +531,15 @@ class SubContainerRc extends Drop_1.Drop {
|
|
|
511
531
|
async spawn(command, options = { stdio: "inherit" }) {
|
|
512
532
|
return this.subcontainer.spawn(command, options);
|
|
513
533
|
}
|
|
534
|
+
/**
|
|
535
|
+
* @description Write a file to the subcontainer's filesystem
|
|
536
|
+
* @param path Path relative to the subcontainer rootfs (e.g. "/etc/config.json")
|
|
537
|
+
* @param data The data to write
|
|
538
|
+
* @param options Optional write options (same as node:fs/promises writeFile)
|
|
539
|
+
*/
|
|
540
|
+
async writeFile(path, data, options) {
|
|
541
|
+
return this.subcontainer.writeFile(path, data, options);
|
|
542
|
+
}
|
|
514
543
|
rc() {
|
|
515
544
|
return this.subcontainer.rc();
|
|
516
545
|
}
|