@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.
- package/base/lib/Effects.d.ts +4 -22
- package/base/lib/actions/index.d.ts +5 -5
- package/base/lib/actions/index.js.map +1 -1
- package/base/lib/actions/input/builder/inputSpec.d.ts +10 -25
- package/base/lib/actions/input/builder/inputSpec.js +0 -17
- package/base/lib/actions/input/builder/inputSpec.js.map +1 -1
- package/base/lib/actions/input/builder/list.d.ts +8 -23
- package/base/lib/actions/input/builder/list.js +0 -17
- package/base/lib/actions/input/builder/list.js.map +1 -1
- package/base/lib/actions/input/builder/value.d.ts +318 -53
- package/base/lib/actions/input/builder/value.js +280 -17
- package/base/lib/actions/input/builder/value.js.map +1 -1
- package/base/lib/actions/input/builder/variants.d.ts +8 -23
- package/base/lib/actions/input/builder/variants.js +0 -17
- package/base/lib/actions/input/builder/variants.js.map +1 -1
- package/base/lib/actions/input/inputSpecConstants.d.ts +6 -6
- package/base/lib/actions/input/inputSpecConstants.js.map +1 -1
- package/base/lib/actions/setupActions.d.ts +10 -11
- package/base/lib/actions/setupActions.js +24 -11
- package/base/lib/actions/setupActions.js.map +1 -1
- package/base/lib/dependencies/setupDependencies.d.ts +1 -3
- package/base/lib/dependencies/setupDependencies.js +3 -12
- package/base/lib/dependencies/setupDependencies.js.map +1 -1
- package/base/lib/index.d.ts +1 -0
- package/base/lib/index.js +2 -1
- package/base/lib/index.js.map +1 -1
- package/base/lib/inits/index.d.ts +2 -0
- package/base/lib/inits/index.js +19 -0
- package/base/lib/inits/index.js.map +1 -0
- package/base/lib/inits/setupInit.d.ts +11 -0
- package/base/lib/inits/setupInit.js +69 -0
- package/base/lib/inits/setupInit.js.map +1 -0
- package/base/lib/inits/setupUninit.d.ts +7 -0
- package/base/lib/inits/setupUninit.js +14 -0
- package/base/lib/inits/setupUninit.js.map +1 -0
- package/base/lib/interfaces/setupInterfaces.d.ts +2 -4
- package/base/lib/interfaces/setupInterfaces.js +8 -19
- package/base/lib/interfaces/setupInterfaces.js.map +1 -1
- package/base/lib/osBindings/AddCategoryParams.d.ts +0 -2
- package/base/lib/osBindings/AddPackageToCategoryParams.d.ts +5 -0
- package/base/lib/osBindings/AddPackageToCategoryParams.js +3 -0
- package/base/lib/osBindings/AddPackageToCategoryParams.js.map +1 -0
- package/base/lib/osBindings/Category.d.ts +0 -2
- package/base/lib/osBindings/Category.js +1 -0
- package/base/lib/osBindings/Category.js.map +1 -1
- package/base/lib/osBindings/FileType.d.ts +1 -0
- package/base/lib/osBindings/{UnsetPublicParams.js → FileType.js} +1 -1
- package/base/lib/osBindings/FileType.js.map +1 -0
- package/base/lib/osBindings/GetOsVersionParams.d.ts +4 -3
- package/base/lib/osBindings/GetPackageParams.d.ts +1 -1
- package/base/lib/osBindings/MainStatus.d.ts +0 -2
- package/base/lib/osBindings/MountTarget.d.ts +2 -0
- package/base/lib/osBindings/PackageDataEntry.d.ts +1 -2
- package/base/lib/osBindings/RemoveAdminParams.d.ts +4 -0
- package/base/lib/osBindings/RemoveAdminParams.js +3 -0
- package/base/lib/osBindings/RemoveAdminParams.js.map +1 -0
- package/base/lib/osBindings/RemoveAssetParams.d.ts +4 -0
- package/base/lib/osBindings/{NetworkInterfaceSetPublicParams.js → RemoveAssetParams.js} +1 -1
- package/base/lib/osBindings/RemoveAssetParams.js.map +1 -0
- package/base/lib/osBindings/RemovePackageFromCategoryParams.d.ts +5 -0
- package/base/lib/osBindings/RemovePackageFromCategoryParams.js +3 -0
- package/base/lib/osBindings/RemovePackageFromCategoryParams.js.map +1 -0
- package/base/lib/osBindings/RemovePackageParams.d.ts +6 -0
- package/base/lib/osBindings/RemovePackageParams.js +3 -0
- package/base/lib/osBindings/RemovePackageParams.js.map +1 -0
- package/base/lib/osBindings/index.d.ts +6 -3
- package/base/lib/types.d.ts +20 -33
- package/base/lib/types.js +8 -0
- package/base/lib/types.js.map +1 -1
- 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/base/lib/util/index.d.ts +0 -1
- package/base/lib/util/index.js +1 -3
- package/base/lib/util/index.js.map +1 -1
- package/package/lib/StartSdk.d.ts +106 -546
- package/package/lib/StartSdk.js +81 -410
- package/package/lib/StartSdk.js.map +1 -1
- package/package/lib/backup/Backups.d.ts +15 -3
- package/package/lib/backup/Backups.js +47 -5
- package/package/lib/backup/Backups.js.map +1 -1
- package/package/lib/backup/setupBackups.d.ts +5 -2
- package/package/lib/backup/setupBackups.js +7 -5
- package/package/lib/backup/setupBackups.js.map +1 -1
- package/package/lib/health/HealthCheck.js +1 -1
- package/package/lib/health/HealthCheck.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/index.d.ts +0 -3
- package/package/lib/index.js +1 -8
- package/package/lib/index.js.map +1 -1
- package/package/lib/inits/index.d.ts +2 -3
- package/package/lib/inits/index.js +16 -3
- package/package/lib/inits/index.js.map +1 -1
- package/package/lib/inits/setupInit.d.ts +7 -13
- package/package/lib/inits/setupInit.js +22 -48
- package/package/lib/inits/setupInit.js.map +1 -1
- package/package/lib/inits/setupInstall.d.ts +10 -10
- package/package/lib/inits/setupInstall.js.map +1 -1
- package/package/lib/inits/setupUninit.d.ts +7 -0
- package/package/lib/inits/setupUninit.js +14 -0
- package/package/lib/inits/setupUninit.js.map +1 -0
- package/package/lib/inits/setupUninstall.d.ts +5 -5
- package/package/lib/inits/setupUninstall.js.map +1 -1
- package/package/lib/mainFn/CommandController.d.ts +4 -13
- package/package/lib/mainFn/CommandController.js +28 -49
- package/package/lib/mainFn/CommandController.js.map +1 -1
- package/package/lib/mainFn/Daemon.d.ts +13 -14
- package/package/lib/mainFn/Daemon.js +44 -12
- package/package/lib/mainFn/Daemon.js.map +1 -1
- package/package/lib/mainFn/Daemons.d.ts +34 -33
- package/package/lib/mainFn/Daemons.js +30 -10
- package/package/lib/mainFn/Daemons.js.map +1 -1
- package/package/lib/mainFn/HealthDaemon.d.ts +6 -6
- package/package/lib/mainFn/HealthDaemon.js +30 -14
- package/package/lib/mainFn/HealthDaemon.js.map +1 -1
- package/package/lib/mainFn/Mounts.d.ts +38 -43
- package/package/lib/mainFn/Mounts.js +19 -48
- package/package/lib/mainFn/Mounts.js.map +1 -1
- package/package/lib/mainFn/Oneshot.d.ts +21 -0
- package/package/lib/mainFn/Oneshot.js +31 -0
- package/package/lib/mainFn/Oneshot.js.map +1 -0
- package/package/lib/mainFn/index.d.ts +1 -1
- package/package/lib/store/getStore.js +7 -2
- package/package/lib/store/getStore.js.map +1 -1
- package/package/lib/test/inputSpecBuilder.test.js +0 -8
- package/package/lib/test/inputSpecBuilder.test.js.map +1 -1
- package/package/lib/test/output.d.ts +2 -38
- package/package/lib/test/output.sdk.d.ts +239 -887
- package/package/lib/test/output.sdk.js +0 -1
- package/package/lib/test/output.sdk.js.map +1 -1
- 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 +160 -44
- package/package/lib/util/SubContainer.js +215 -99
- package/package/lib/util/SubContainer.js.map +1 -1
- package/package/lib/util/fileHelper.d.ts +41 -15
- package/package/lib/util/fileHelper.js +72 -27
- package/package/lib/util/fileHelper.js.map +1 -1
- package/package/lib/version/VersionGraph.d.ts +20 -5
- package/package/lib/version/VersionGraph.js +85 -18
- package/package/lib/version/VersionGraph.js.map +1 -1
- package/package.json +10 -11
- package/base/lib/osBindings/NetworkInterfaceSetPublicParams.d.ts +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.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.sdk.js","sourceRoot":"","sources":["../../../../package/lib/test/output.sdk.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"output.sdk.js","sourceRoot":"","sources":["../../../../package/lib/test/output.sdk.ts"],"names":[],"mappings":";;;AAAA,0CAAsC;AACtC,6DAAyD;AAI5C,QAAA,GAAG,GAAG,mBAAQ,CAAC,EAAE,EAAE;KAC7B,YAAY,CACX,IAAA,6BAAa,EAAC;IACZ,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;KACT;IACD,UAAU,EAAE,EAAE;IACd,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,SAAS,EAAE,oBAAoB;aAChC;YACD,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC3B,gBAAgB,EAAE,SAAS;SAC5B;KACF;IACD,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,MAAM,EAAE;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;KACX;IACD,YAAY,EAAE;QACZ,aAAa,EAAE;YACb,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,sCAAsC;SAC7C;KACF;CACF,CAAC,CACH;KACA,KAAK,CAAC,IAAI,CAAC,CAAA"}
|
package/package/lib/util/Drop.js
CHANGED
|
@@ -5,9 +5,20 @@ class Drop {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.id = Drop.idCtr++;
|
|
7
7
|
this.ref = { id: this.id };
|
|
8
|
-
|
|
9
|
-
Drop.
|
|
8
|
+
const weak = this.weak();
|
|
9
|
+
Drop.weak[this.id] = weak;
|
|
10
|
+
Drop.registry.register(this.ref, this.id, this.ref);
|
|
11
|
+
return new Proxy(this, {
|
|
12
|
+
set(target, prop, value) {
|
|
13
|
+
if (prop === "ref")
|
|
14
|
+
return false;
|
|
15
|
+
target[prop] = value;
|
|
16
|
+
weak[prop] = value;
|
|
17
|
+
return true;
|
|
18
|
+
},
|
|
19
|
+
});
|
|
10
20
|
}
|
|
21
|
+
register() { }
|
|
11
22
|
weak() {
|
|
12
23
|
const weak = Object.assign(Object.create(Object.getPrototypeOf(this)), this);
|
|
13
24
|
weak.ref = new WeakRef(this.ref);
|
|
@@ -15,14 +26,16 @@ class Drop {
|
|
|
15
26
|
}
|
|
16
27
|
drop() {
|
|
17
28
|
this.onDrop();
|
|
18
|
-
Drop.registry.unregister(this);
|
|
29
|
+
Drop.registry.unregister(this.ref);
|
|
19
30
|
delete Drop.weak[this.id];
|
|
20
31
|
}
|
|
21
32
|
}
|
|
22
33
|
exports.Drop = Drop;
|
|
23
34
|
Drop.weak = {};
|
|
24
35
|
Drop.registry = new FinalizationRegistry((id) => {
|
|
25
|
-
Drop.weak[id]
|
|
36
|
+
const weak = Drop.weak[id];
|
|
37
|
+
if (weak)
|
|
38
|
+
weak.drop();
|
|
26
39
|
});
|
|
27
40
|
Drop.idCtr = 0;
|
|
28
41
|
//# sourceMappingURL=Drop.js.map
|
|
@@ -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,84 +1,197 @@
|
|
|
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
|
-
type ExecResults = {
|
|
6
|
-
exitCode: number | null;
|
|
7
|
-
exitSignal: NodeJS.Signals | null;
|
|
8
|
-
stdout: string | Buffer;
|
|
9
|
-
stderr: string | Buffer;
|
|
10
|
-
};
|
|
11
8
|
export type ExecOptions = {
|
|
12
9
|
input?: string | Buffer;
|
|
13
10
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
export interface SubContainer<Manifest extends T.SDKManifest, Effects extends T.Effects = T.Effects> extends Drop {
|
|
12
|
+
readonly imageId: keyof Manifest["images"] & T.ImageId;
|
|
13
|
+
readonly rootfs: string;
|
|
14
|
+
readonly guid: T.Guid;
|
|
15
|
+
mount(mounts: Effects extends BackupEffects ? Mounts<Manifest, {
|
|
16
|
+
subpath: string | null;
|
|
17
|
+
mountpoint: string;
|
|
18
|
+
}> : Mounts<Manifest, never>): Promise<this>;
|
|
19
|
+
destroy: () => Promise<null>;
|
|
20
|
+
/**
|
|
21
|
+
* @description run a command inside this subcontainer
|
|
22
|
+
* DOES NOT THROW ON NONZERO EXIT CODE (see execFail)
|
|
23
|
+
* @param commands an array representing the command and args to execute
|
|
24
|
+
* @param options
|
|
25
|
+
* @param timeoutMs how long to wait before killing the command in ms
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
exec(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
|
|
29
|
+
throw: () => {
|
|
30
|
+
stdout: string | Buffer;
|
|
31
|
+
stderr: string | Buffer;
|
|
32
|
+
};
|
|
33
|
+
exitCode: number | null;
|
|
34
|
+
exitSignal: NodeJS.Signals | null;
|
|
35
|
+
stdout: string | Buffer;
|
|
36
|
+
stderr: string | Buffer;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* @description run a command inside this subcontainer, throwing on non-zero exit status
|
|
40
|
+
* @param commands an array representing the command and args to execute
|
|
41
|
+
* @param options
|
|
42
|
+
* @param timeoutMs how long to wait before killing the command in ms
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
execFail(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
|
|
46
|
+
stdout: string | Buffer;
|
|
47
|
+
stderr: string | Buffer;
|
|
48
|
+
}>;
|
|
49
|
+
launch(command: string[], options?: CommandOptions): Promise<cp.ChildProcessWithoutNullStreams>;
|
|
23
50
|
spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
|
|
51
|
+
rc(): SubContainerRc<Manifest, Effects>;
|
|
24
52
|
}
|
|
25
53
|
/**
|
|
26
54
|
* Want to limit what we can do in a container, so we want to launch a container with a specific image and the mounts.
|
|
27
|
-
*
|
|
28
|
-
* Implements:
|
|
29
|
-
* @see {@link ExecSpawnable}
|
|
30
55
|
*/
|
|
31
|
-
export declare class
|
|
32
|
-
readonly effects:
|
|
33
|
-
readonly imageId: T.ImageId;
|
|
56
|
+
export declare class SubContainerOwned<Manifest extends T.SDKManifest, Effects extends T.Effects = T.Effects> extends Drop implements SubContainer<Manifest, Effects> {
|
|
57
|
+
readonly effects: Effects;
|
|
58
|
+
readonly imageId: keyof Manifest["images"] & T.ImageId;
|
|
34
59
|
readonly rootfs: string;
|
|
35
60
|
readonly guid: T.Guid;
|
|
36
|
-
private
|
|
37
|
-
|
|
61
|
+
private destroyed;
|
|
62
|
+
rcs: number;
|
|
38
63
|
private leader;
|
|
39
64
|
private leaderExited;
|
|
40
65
|
private waitProc;
|
|
41
66
|
private constructor();
|
|
42
|
-
static of(effects:
|
|
43
|
-
imageId: T.ImageId;
|
|
67
|
+
static of<Manifest extends T.SDKManifest, Effects extends T.Effects>(effects: Effects, image: {
|
|
68
|
+
imageId: keyof Manifest["images"] & T.ImageId;
|
|
44
69
|
sharedRun?: boolean;
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
|
|
70
|
+
}, mounts: (Effects extends BackupEffects ? Mounts<Manifest, {
|
|
71
|
+
subpath: string | null;
|
|
72
|
+
mountpoint: string;
|
|
73
|
+
}> : Mounts<Manifest, never>) | null, name: string): Promise<SubContainerOwned<Manifest, Effects>>;
|
|
74
|
+
static withTemp<Manifest extends T.SDKManifest, T, Effects extends T.Effects>(effects: Effects, image: {
|
|
75
|
+
imageId: keyof Manifest["images"] & T.ImageId;
|
|
48
76
|
sharedRun?: boolean;
|
|
49
|
-
}, mounts: {
|
|
50
|
-
|
|
77
|
+
}, mounts: (Effects extends BackupEffects ? Mounts<Manifest, {
|
|
78
|
+
subpath: string | null;
|
|
79
|
+
mountpoint: string;
|
|
80
|
+
}> : Mounts<Manifest, never>) | null, name: string, fn: (subContainer: SubContainer<Manifest, Effects>) => Promise<T>): Promise<T>;
|
|
81
|
+
mount(mounts: Effects extends BackupEffects ? Mounts<Manifest, {
|
|
82
|
+
subpath: string | null;
|
|
51
83
|
mountpoint: string;
|
|
52
|
-
}
|
|
53
|
-
mount(options: MountOptions, path: string): Promise<SubContainer>;
|
|
84
|
+
}> : Mounts<Manifest, never>): Promise<this>;
|
|
54
85
|
private killLeader;
|
|
55
86
|
get destroy(): () => Promise<null>;
|
|
87
|
+
onDrop(): void;
|
|
88
|
+
/**
|
|
89
|
+
* @description run a command inside this subcontainer
|
|
90
|
+
* DOES NOT THROW ON NONZERO EXIT CODE (see execFail)
|
|
91
|
+
* @param commands an array representing the command and args to execute
|
|
92
|
+
* @param options
|
|
93
|
+
* @param timeoutMs how long to wait before killing the command in ms
|
|
94
|
+
* @returns
|
|
95
|
+
*/
|
|
56
96
|
exec(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
|
|
97
|
+
throw: () => {
|
|
98
|
+
stdout: string | Buffer;
|
|
99
|
+
stderr: string | Buffer;
|
|
100
|
+
};
|
|
57
101
|
exitCode: number | null;
|
|
58
102
|
exitSignal: NodeJS.Signals | null;
|
|
59
103
|
stdout: string | Buffer;
|
|
60
104
|
stderr: string | Buffer;
|
|
61
105
|
}>;
|
|
106
|
+
/**
|
|
107
|
+
* @description run a command inside this subcontainer, throwing on non-zero exit status
|
|
108
|
+
* @param commands an array representing the command and args to execute
|
|
109
|
+
* @param options
|
|
110
|
+
* @param timeoutMs how long to wait before killing the command in ms
|
|
111
|
+
* @returns
|
|
112
|
+
*/
|
|
113
|
+
execFail(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
|
|
114
|
+
stdout: string | Buffer;
|
|
115
|
+
stderr: string | Buffer;
|
|
116
|
+
}>;
|
|
62
117
|
launch(command: string[], options?: CommandOptions): Promise<cp.ChildProcessWithoutNullStreams>;
|
|
63
118
|
spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
|
|
119
|
+
rc(): SubContainerRc<Manifest, Effects>;
|
|
64
120
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
121
|
+
export declare class SubContainerRc<Manifest extends T.SDKManifest, Effects extends T.Effects = T.Effects> extends Drop implements SubContainer<Manifest, Effects> {
|
|
122
|
+
private readonly subcontainer;
|
|
123
|
+
get imageId(): keyof Manifest["images"] & string;
|
|
124
|
+
get rootfs(): string;
|
|
125
|
+
get guid(): string;
|
|
126
|
+
private destroyed;
|
|
127
|
+
constructor(subcontainer: SubContainerOwned<Manifest, Effects>);
|
|
128
|
+
static of<Manifest extends T.SDKManifest, Effects extends T.Effects>(effects: Effects, image: {
|
|
129
|
+
imageId: keyof Manifest["images"] & T.ImageId;
|
|
130
|
+
sharedRun?: boolean;
|
|
131
|
+
}, mounts: (Effects extends BackupEffects ? Mounts<Manifest, {
|
|
132
|
+
subpath: string | null;
|
|
133
|
+
mountpoint: string;
|
|
134
|
+
}> : Mounts<Manifest, never>) | null, name: string): Promise<SubContainerRc<Manifest, Effects>>;
|
|
135
|
+
static withTemp<Manifest extends T.SDKManifest, T, Effects extends T.Effects>(effects: Effects, image: {
|
|
136
|
+
imageId: keyof Manifest["images"] & T.ImageId;
|
|
137
|
+
sharedRun?: boolean;
|
|
138
|
+
}, mounts: (Effects extends BackupEffects ? Mounts<Manifest, {
|
|
139
|
+
subpath: string | null;
|
|
140
|
+
mountpoint: string;
|
|
141
|
+
}> : Mounts<Manifest, never>) | null, name: string, fn: (subContainer: SubContainer<Manifest, Effects>) => Promise<T>): Promise<T>;
|
|
142
|
+
mount(mounts: Effects extends BackupEffects ? Mounts<Manifest, {
|
|
143
|
+
subpath: string | null;
|
|
144
|
+
mountpoint: string;
|
|
145
|
+
}> : Mounts<Manifest, never>): Promise<this>;
|
|
146
|
+
get destroy(): () => Promise<null>;
|
|
147
|
+
onDrop(): void;
|
|
148
|
+
/**
|
|
149
|
+
* @description run a command inside this subcontainer
|
|
150
|
+
* DOES NOT THROW ON NONZERO EXIT CODE (see execFail)
|
|
151
|
+
* @param commands an array representing the command and args to execute
|
|
152
|
+
* @param options
|
|
153
|
+
* @param timeoutMs how long to wait before killing the command in ms
|
|
154
|
+
* @returns
|
|
155
|
+
*/
|
|
156
|
+
exec(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
|
|
157
|
+
throw: () => {
|
|
158
|
+
stdout: string | Buffer;
|
|
159
|
+
stderr: string | Buffer;
|
|
160
|
+
};
|
|
161
|
+
exitCode: number | null;
|
|
162
|
+
exitSignal: NodeJS.Signals | null;
|
|
163
|
+
stdout: string | Buffer;
|
|
164
|
+
stderr: string | Buffer;
|
|
165
|
+
}>;
|
|
166
|
+
/**
|
|
167
|
+
* @description run a command inside this subcontainer, throwing on non-zero exit status
|
|
168
|
+
* @param commands an array representing the command and args to execute
|
|
169
|
+
* @param options
|
|
170
|
+
* @param timeoutMs how long to wait before killing the command in ms
|
|
171
|
+
* @returns
|
|
172
|
+
*/
|
|
173
|
+
execFail(command: string[], options?: CommandOptions & ExecOptions, timeoutMs?: number | null): Promise<{
|
|
174
|
+
stdout: string | Buffer;
|
|
175
|
+
stderr: string | Buffer;
|
|
176
|
+
}>;
|
|
177
|
+
launch(command: string[], options?: CommandOptions): Promise<cp.ChildProcessWithoutNullStreams>;
|
|
75
178
|
spawn(command: string[], options?: CommandOptions & StdioOptions): Promise<cp.ChildProcess>;
|
|
179
|
+
rc(): SubContainerRc<Manifest, Effects>;
|
|
76
180
|
}
|
|
77
181
|
export type CommandOptions = {
|
|
182
|
+
/**
|
|
183
|
+
* Environment variables to set for this command
|
|
184
|
+
*/
|
|
78
185
|
env?: {
|
|
79
186
|
[variable: string]: string;
|
|
80
187
|
};
|
|
188
|
+
/**
|
|
189
|
+
* the working directory to run this command in
|
|
190
|
+
*/
|
|
81
191
|
cwd?: string;
|
|
192
|
+
/**
|
|
193
|
+
* the user to run this command as
|
|
194
|
+
*/
|
|
82
195
|
user?: string;
|
|
83
196
|
};
|
|
84
197
|
export type StdioOptions = {
|
|
@@ -87,13 +200,15 @@ export type StdioOptions = {
|
|
|
87
200
|
export type MountOptions = MountOptionsVolume | MountOptionsAssets | MountOptionsPointer | MountOptionsBackup;
|
|
88
201
|
export type MountOptionsVolume = {
|
|
89
202
|
type: "volume";
|
|
90
|
-
|
|
203
|
+
volumeId: string;
|
|
91
204
|
subpath: string | null;
|
|
92
205
|
readonly: boolean;
|
|
206
|
+
filetype: "file" | "directory" | "infer";
|
|
93
207
|
};
|
|
94
208
|
export type MountOptionsAssets = {
|
|
95
209
|
type: "assets";
|
|
96
210
|
subpath: string | null;
|
|
211
|
+
filetype: "file" | "directory" | "infer";
|
|
97
212
|
};
|
|
98
213
|
export type MountOptionsPointer = {
|
|
99
214
|
type: "pointer";
|
|
@@ -101,10 +216,12 @@ export type MountOptionsPointer = {
|
|
|
101
216
|
volumeId: string;
|
|
102
217
|
subpath: string | null;
|
|
103
218
|
readonly: boolean;
|
|
219
|
+
filetype: "file" | "directory" | "infer";
|
|
104
220
|
};
|
|
105
221
|
export type MountOptionsBackup = {
|
|
106
222
|
type: "backup";
|
|
107
223
|
subpath: string | null;
|
|
224
|
+
filetype: "file" | "directory" | "infer";
|
|
108
225
|
};
|
|
109
226
|
export declare class ExitError extends Error {
|
|
110
227
|
readonly command: string;
|
|
@@ -121,4 +238,3 @@ export declare class ExitError extends Error {
|
|
|
121
238
|
stderr: string | Buffer;
|
|
122
239
|
});
|
|
123
240
|
}
|
|
124
|
-
export {};
|