@start9labs/start-sdk 0.4.0-beta.4 → 0.4.0-beta.40
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 -34
- package/base/lib/actions/index.d.ts +13 -14
- package/base/lib/actions/index.js +4 -4
- package/base/lib/actions/index.js.map +1 -1
- package/base/lib/actions/input/builder/inputSpec.d.ts +16 -26
- package/base/lib/actions/input/builder/inputSpec.js +9 -24
- package/base/lib/actions/input/builder/inputSpec.js.map +1 -1
- package/base/lib/actions/input/builder/list.d.ts +13 -24
- package/base/lib/actions/input/builder/list.js +19 -30
- package/base/lib/actions/input/builder/list.js.map +1 -1
- package/base/lib/actions/input/builder/value.d.ts +394 -64
- package/base/lib/actions/input/builder/value.js +542 -213
- package/base/lib/actions/input/builder/value.js.map +1 -1
- package/base/lib/actions/input/builder/variants.d.ts +27 -24
- package/base/lib/actions/input/builder/variants.js +25 -24
- package/base/lib/actions/input/builder/variants.js.map +1 -1
- package/base/lib/actions/input/inputSpecConstants.d.ts +25 -17
- package/base/lib/actions/input/inputSpecConstants.js +16 -12
- package/base/lib/actions/input/inputSpecConstants.js.map +1 -1
- package/base/lib/actions/input/inputSpecTypes.d.ts +0 -3
- package/base/lib/actions/input/inputSpecTypes.js.map +1 -1
- package/base/lib/actions/setupActions.d.ts +21 -15
- package/base/lib/actions/setupActions.js +42 -7
- package/base/lib/actions/setupActions.js.map +1 -1
- package/base/lib/dependencies/dependencies.d.ts +7 -3
- package/base/lib/dependencies/dependencies.js +34 -25
- package/base/lib/dependencies/dependencies.js.map +1 -1
- package/base/lib/dependencies/setupDependencies.d.ts +2 -4
- package/base/lib/dependencies/setupDependencies.js +3 -10
- package/base/lib/dependencies/setupDependencies.js.map +1 -1
- package/base/lib/exver/index.js +1 -1
- package/base/lib/exver/index.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 +9 -0
- package/base/lib/inits/setupInit.js +40 -0
- package/base/lib/inits/setupInit.js.map +1 -0
- package/base/lib/inits/setupUninit.d.ts +25 -0
- package/base/lib/inits/setupUninit.js +24 -0
- package/base/lib/inits/setupUninit.js.map +1 -0
- package/base/lib/interfaces/Host.js +18 -6
- package/base/lib/interfaces/Host.js.map +1 -1
- package/base/lib/interfaces/Origin.d.ts +2 -2
- package/base/lib/interfaces/Origin.js +3 -3
- package/base/lib/interfaces/Origin.js.map +1 -1
- package/base/lib/interfaces/ServiceInterfaceBuilder.d.ts +2 -2
- package/base/lib/interfaces/setupInterfaces.d.ts +2 -4
- package/base/lib/interfaces/setupInterfaces.js +8 -17
- package/base/lib/interfaces/setupInterfaces.js.map +1 -1
- package/base/lib/osBindings/ActionInput.d.ts +2 -0
- package/base/lib/osBindings/ActionInput.js +0 -1
- package/base/lib/osBindings/ActionInput.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/AddProxyParams.d.ts +5 -0
- package/base/lib/osBindings/AddProxyParams.js +4 -0
- package/base/lib/osBindings/AddProxyParams.js.map +1 -0
- package/base/lib/osBindings/AddTunnelParams.d.ts +5 -0
- package/base/lib/osBindings/AddTunnelParams.js +4 -0
- package/base/lib/osBindings/AddTunnelParams.js.map +1 -0
- package/base/lib/osBindings/AttachParams.d.ts +1 -0
- package/base/lib/osBindings/BindingGatewaySetEnabledParams.d.ts +6 -0
- package/base/lib/osBindings/BindingGatewaySetEnabledParams.js +3 -0
- package/base/lib/osBindings/BindingGatewaySetEnabledParams.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/CheckDependenciesResult.d.ts +3 -3
- package/base/lib/osBindings/ClearTasksParams.d.ts +5 -0
- package/base/lib/osBindings/ClearTasksParams.js +4 -0
- package/base/lib/osBindings/ClearTasksParams.js.map +1 -0
- package/base/lib/osBindings/CreateTaskParams.d.ts +15 -0
- package/base/lib/osBindings/CreateTaskParams.js +3 -0
- package/base/lib/osBindings/CreateTaskParams.js.map +1 -0
- package/base/lib/osBindings/DepInfo.d.ts +2 -3
- package/base/lib/osBindings/DnsSettings.d.ts +4 -0
- package/base/lib/osBindings/DnsSettings.js +4 -0
- package/base/lib/osBindings/DnsSettings.js.map +1 -0
- package/base/lib/osBindings/DomainConfig.d.ts +1 -0
- package/base/lib/osBindings/DomainSettings.d.ts +4 -0
- package/base/lib/osBindings/DomainSettings.js +3 -0
- package/base/lib/osBindings/DomainSettings.js.map +1 -0
- package/base/lib/osBindings/Domains.d.ts +7 -0
- package/base/lib/osBindings/Domains.js +3 -0
- package/base/lib/osBindings/Domains.js.map +1 -0
- package/base/lib/osBindings/EventId.d.ts +4 -0
- package/base/lib/osBindings/EventId.js +3 -0
- package/base/lib/osBindings/EventId.js.map +1 -0
- package/base/lib/osBindings/FileType.d.ts +1 -0
- package/base/lib/osBindings/FileType.js +4 -0
- package/base/lib/osBindings/FileType.js.map +1 -0
- package/base/lib/osBindings/ForgetGatewayParams.d.ts +4 -0
- package/base/lib/osBindings/ForgetGatewayParams.js +3 -0
- package/base/lib/osBindings/ForgetGatewayParams.js.map +1 -0
- package/base/lib/osBindings/ForgetInterfaceParams.d.ts +2 -1
- package/base/lib/osBindings/ForgetInterfaceParams.js +0 -1
- package/base/lib/osBindings/ForgetInterfaceParams.js.map +1 -1
- package/base/lib/osBindings/GatewayId.d.ts +1 -0
- package/base/lib/osBindings/GatewayId.js +4 -0
- package/base/lib/osBindings/GatewayId.js.map +1 -0
- package/base/lib/osBindings/GatewayInfo.d.ts +6 -0
- package/base/lib/osBindings/GatewayInfo.js +3 -0
- package/base/lib/osBindings/GatewayInfo.js.map +1 -0
- package/base/lib/osBindings/GetOsVersionParams.d.ts +3 -3
- package/base/lib/osBindings/GetPackageParams.d.ts +1 -1
- package/base/lib/osBindings/Host.d.ts +4 -3
- package/base/lib/osBindings/HostnameInfo.d.ts +2 -1
- package/base/lib/osBindings/IpHostname.d.ts +1 -2
- package/base/lib/osBindings/IpInfo.d.ts +2 -0
- package/base/lib/osBindings/LoginParams.d.ts +1 -2
- package/base/lib/osBindings/LoginParams.js +1 -0
- package/base/lib/osBindings/LoginParams.js.map +1 -1
- package/base/lib/osBindings/MainStatus.d.ts +0 -2
- package/base/lib/osBindings/Manifest.d.ts +3 -1
- package/base/lib/osBindings/Metadata.d.ts +5 -0
- package/base/lib/osBindings/Metadata.js +3 -0
- package/base/lib/osBindings/Metadata.js.map +1 -0
- package/base/lib/osBindings/MetadataSrc.d.ts +7 -0
- package/base/lib/osBindings/MetadataSrc.js +3 -0
- package/base/lib/osBindings/MetadataSrc.js.map +1 -0
- package/base/lib/osBindings/MountTarget.d.ts +2 -0
- package/base/lib/osBindings/NetInfo.d.ts +3 -1
- package/base/lib/osBindings/NetInfo.js +0 -1
- package/base/lib/osBindings/NetInfo.js.map +1 -1
- package/base/lib/osBindings/NetworkInfo.d.ts +5 -2
- package/base/lib/osBindings/NetworkInterfaceInfo.d.ts +3 -2
- package/base/lib/osBindings/NetworkInterfaceSetPublicParams.d.ts +2 -1
- package/base/lib/osBindings/NetworkInterfaceSetPublicParams.js +0 -1
- package/base/lib/osBindings/NetworkInterfaceSetPublicParams.js.map +1 -1
- package/base/lib/osBindings/PackageDataEntry.d.ts +5 -5
- package/base/lib/osBindings/PackageVersionInfo.d.ts +2 -0
- package/base/lib/osBindings/Progress.d.ts +2 -0
- package/base/lib/osBindings/Progress.js +0 -1
- package/base/lib/osBindings/Progress.js.map +1 -1
- package/base/lib/osBindings/ProgressUnits.d.ts +1 -0
- package/base/lib/osBindings/ProgressUnits.js +4 -0
- package/base/lib/osBindings/ProgressUnits.js.map +1 -0
- package/base/lib/osBindings/Proxies.d.ts +4 -0
- package/base/lib/osBindings/Proxies.js +3 -0
- package/base/lib/osBindings/Proxies.js.map +1 -0
- package/base/lib/osBindings/ProxyInfo.d.ts +4 -0
- package/base/lib/osBindings/ProxyInfo.js +4 -0
- package/base/lib/osBindings/ProxyInfo.js.map +1 -0
- package/base/lib/osBindings/PublicDomainConfig.d.ts +6 -0
- package/base/lib/osBindings/PublicDomainConfig.js +3 -0
- package/base/lib/osBindings/PublicDomainConfig.js.map +1 -0
- 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/RemoveAssetParams.js +4 -0
- 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/RemoveProxyParams.d.ts +3 -0
- package/base/lib/osBindings/RemoveProxyParams.js +4 -0
- package/base/lib/osBindings/RemoveProxyParams.js.map +1 -0
- package/base/lib/osBindings/RemoveTunnelParams.d.ts +4 -0
- package/base/lib/osBindings/RemoveTunnelParams.js +3 -0
- package/base/lib/osBindings/RemoveTunnelParams.js.map +1 -0
- package/base/lib/osBindings/RenameGatewayParams.d.ts +5 -0
- package/base/lib/osBindings/RenameGatewayParams.js +3 -0
- package/base/lib/osBindings/RenameGatewayParams.js.map +1 -0
- package/base/lib/osBindings/RenameInterfaceParams.d.ts +5 -0
- package/base/lib/osBindings/RenameInterfaceParams.js +3 -0
- package/base/lib/osBindings/RenameInterfaceParams.js.map +1 -0
- package/base/lib/osBindings/ServerInfo.d.ts +2 -1
- package/base/lib/osBindings/Sessions.d.ts +2 -5
- package/base/lib/osBindings/Sessions.js +0 -1
- package/base/lib/osBindings/Sessions.js.map +1 -1
- package/base/lib/osBindings/SetupExecuteParams.d.ts +1 -0
- package/base/lib/osBindings/Task.d.ts +13 -0
- package/base/lib/osBindings/Task.js +3 -0
- package/base/lib/osBindings/Task.js.map +1 -0
- package/base/lib/osBindings/TaskCondition.d.ts +1 -0
- package/base/lib/osBindings/TaskCondition.js +4 -0
- package/base/lib/osBindings/TaskCondition.js.map +1 -0
- package/base/lib/osBindings/TaskEntry.d.ts +5 -0
- package/base/lib/osBindings/TaskEntry.js +3 -0
- package/base/lib/osBindings/TaskEntry.js.map +1 -0
- package/base/lib/osBindings/TaskInput.d.ts +4 -0
- package/base/lib/osBindings/TaskInput.js +4 -0
- package/base/lib/osBindings/TaskInput.js.map +1 -0
- package/base/lib/osBindings/TaskSeverity.d.ts +1 -0
- package/base/lib/osBindings/TaskSeverity.js +4 -0
- package/base/lib/osBindings/TaskSeverity.js.map +1 -0
- package/base/lib/osBindings/TaskTrigger.d.ts +5 -0
- package/base/lib/osBindings/TaskTrigger.js +3 -0
- package/base/lib/osBindings/TaskTrigger.js.map +1 -0
- package/base/lib/osBindings/UnsetInboundParams.d.ts +2 -1
- package/base/lib/osBindings/UnsetInboundParams.js +0 -1
- package/base/lib/osBindings/UnsetInboundParams.js.map +1 -1
- package/base/lib/osBindings/UnsetPublicParams.d.ts +2 -1
- package/base/lib/osBindings/UnsetPublicParams.js +0 -1
- package/base/lib/osBindings/UnsetPublicParams.js.map +1 -1
- package/base/lib/osBindings/UpdatingState.d.ts +1 -0
- package/base/lib/osBindings/index.d.ts +30 -18
- package/base/lib/s9pk/index.d.ts +2 -3
- package/base/lib/s9pk/index.js +9 -15
- package/base/lib/s9pk/index.js.map +1 -1
- package/base/lib/types/ManifestTypes.d.ts +4 -0
- package/base/lib/types.d.ts +23 -34
- package/base/lib/types.js +13 -0
- package/base/lib/types.js.map +1 -1
- package/base/lib/util/Drop.d.ts +47 -0
- package/base/lib/util/Drop.js +130 -0
- package/base/lib/util/Drop.js.map +1 -0
- package/base/lib/util/GetSystemSmtp.d.ts +11 -2
- package/base/lib/util/GetSystemSmtp.js +33 -7
- package/base/lib/util/GetSystemSmtp.js.map +1 -1
- package/base/lib/util/deepMerge.js +6 -1
- package/base/lib/util/deepMerge.js.map +1 -1
- package/base/lib/util/getServiceInterface.d.ts +53 -5
- package/base/lib/util/getServiceInterface.js +54 -19
- package/base/lib/util/getServiceInterface.js.map +1 -1
- package/base/lib/util/getServiceInterfaces.d.ts +11 -2
- package/base/lib/util/getServiceInterfaces.js +33 -7
- package/base/lib/util/getServiceInterfaces.js.map +1 -1
- package/base/lib/util/graph.d.ts +1 -0
- package/base/lib/util/graph.js +12 -0
- package/base/lib/util/graph.js.map +1 -1
- package/base/lib/util/index.d.ts +1 -2
- package/base/lib/util/index.js +5 -8
- package/base/lib/util/index.js.map +1 -1
- package/base/lib/util/ip.d.ts +19 -0
- package/base/lib/util/ip.js +92 -0
- package/base/lib/util/ip.js.map +1 -0
- package/package/lib/StartSdk.d.ts +116 -572
- package/package/lib/StartSdk.js +111 -435
- package/package/lib/StartSdk.js.map +1 -1
- package/package/lib/backup/Backups.d.ts +9 -3
- package/package/lib/backup/Backups.js +38 -28
- 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.d.ts +0 -1
- package/package/lib/health/HealthCheck.js +1 -7
- package/package/lib/health/HealthCheck.js.map +1 -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 +6 -22
- package/package/lib/mainFn/CommandController.js +68 -41
- package/package/lib/mainFn/CommandController.js.map +1 -1
- package/package/lib/mainFn/Daemon.d.ts +15 -20
- package/package/lib/mainFn/Daemon.js +71 -17
- package/package/lib/mainFn/Daemon.js.map +1 -1
- package/package/lib/mainFn/Daemons.d.ts +76 -44
- package/package/lib/mainFn/Daemons.js +105 -29
- package/package/lib/mainFn/Daemons.js.map +1 -1
- package/package/lib/mainFn/HealthDaemon.d.ts +6 -5
- package/package/lib/mainFn/HealthDaemon.js +79 -38
- package/package/lib/mainFn/HealthDaemon.js.map +1 -1
- package/package/lib/mainFn/Mounts.d.ts +32 -45
- package/package/lib/mainFn/Mounts.js +13 -55
- package/package/lib/mainFn/Mounts.js.map +1 -1
- package/package/lib/mainFn/Oneshot.d.ts +12 -0
- package/package/lib/mainFn/Oneshot.js +23 -0
- package/package/lib/mainFn/Oneshot.js.map +1 -0
- package/package/lib/mainFn/index.d.ts +1 -1
- package/package/lib/manifest/setupManifest.js +3 -0
- package/package/lib/manifest/setupManifest.js.map +1 -1
- package/package/lib/test/host.test.js +1 -1
- package/package/lib/test/host.test.js.map +1 -1
- package/package/lib/test/inputSpecBuilder.test.js +153 -158
- package/package/lib/test/inputSpecBuilder.test.js.map +1 -1
- package/package/lib/test/output.d.ts +8 -37
- package/package/lib/test/output.js +41 -40
- package/package/lib/test/output.js.map +1 -1
- package/package/lib/test/output.sdk.d.ts +154 -949
- package/package/lib/test/output.sdk.js +1 -4
- package/package/lib/test/output.sdk.js.map +1 -1
- package/package/lib/test/output.test.js +12 -8
- package/package/lib/test/output.test.js.map +1 -1
- package/package/lib/util/Drop.d.ts +4 -2
- package/package/lib/util/Drop.js +29 -7
- package/package/lib/util/Drop.js.map +1 -1
- package/package/lib/util/GetSslCertificate.d.ts +11 -2
- package/package/lib/util/GetSslCertificate.js +33 -7
- package/package/lib/util/GetSslCertificate.js.map +1 -1
- package/package/lib/util/SubContainer.d.ts +131 -37
- package/package/lib/util/SubContainer.js +155 -42
- package/package/lib/util/SubContainer.js.map +1 -1
- package/package/lib/util/fileHelper.d.ts +50 -17
- package/package/lib/util/fileHelper.js +166 -52
- package/package/lib/util/fileHelper.js.map +1 -1
- package/package/lib/util/index.d.ts +1 -2
- package/package/lib/util/index.js +2 -4
- package/package/lib/util/index.js.map +1 -1
- package/package/lib/version/VersionGraph.d.ts +27 -5
- package/package/lib/version/VersionGraph.js +110 -24
- package/package/lib/version/VersionGraph.js.map +1 -1
- package/package/lib/version/VersionInfo.d.ts +8 -3
- package/package/lib/version/VersionInfo.js.map +1 -1
- package/package/package.json +63 -0
- package/package/scripts/oldSpecToBuilder.js +5 -4
- package/package/scripts/oldSpecToBuilder.js.map +1 -1
- package/package.json +7 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupInstall.js","sourceRoot":"","sources":["../../../../package/lib/inits/setupInstall.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"setupInstall.js","sourceRoot":"","sources":["../../../../package/lib/inits/setupInstall.ts"],"names":[],"mappings":";;;AA0BA,0CAIC;AAmBD,4CAIC;AAhDD,MAAa,OAAO;IAClB,YAA+B,EAAuB;QAAvB,OAAE,GAAF,EAAE,CAAqB;IAAG,CAAC;CAC3D;AAFD,0BAEC;AAED,MAAa,UAEX,SAAQ,OAAiB;IACzB,YAAoB,EAAuB;QACzC,KAAK,CAAC,EAAE,CAAC,CAAA;IACX,CAAC;IACD,MAAM,CAAC,EAAE,CAAiC,EAAuB;QAC/D,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,EAAgD;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF;AAfD,gCAeC;AAED,SAAgB,eAAe,CAC7B,EAAuB;IAEvB,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AAC1B,CAAC;AAED,MAAa,WAEX,SAAQ,OAAiB;IACzB,YAAoB,EAAuB;QACzC,KAAK,CAAC,EAAE,CAAC,CAAA;IACX,CAAC;IACD,MAAM,CAAC,EAAE,CAAiC,EAAuB;QAC/D,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAgD;QACzE,MAAM,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF;AAfD,kCAeC;AAED,SAAgB,gBAAgB,CAC9B,EAAuB;IAEvB,OAAO,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AAC3B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ExtendedVersion, VersionRange } from "../../../base/lib/exver";
|
|
2
|
+
import * as T from "../../../base/lib/types";
|
|
3
|
+
export type UninitFn = (effects: T.Effects, target: VersionRange | ExtendedVersion | null) => Promise<void | null | undefined>;
|
|
4
|
+
export interface UninitScript {
|
|
5
|
+
uninit(effects: T.Effects, target: VersionRange | ExtendedVersion | null): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export declare function setupUninit(...uninits: (UninitScript | UninitFn)[]): T.ExpectedExports.uninit;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupUninit = setupUninit;
|
|
4
|
+
function setupUninit(...uninits) {
|
|
5
|
+
return async (opts) => {
|
|
6
|
+
for (const uninit of uninits) {
|
|
7
|
+
if ("uninit" in uninit)
|
|
8
|
+
await uninit.uninit(opts.effects, opts.target);
|
|
9
|
+
else
|
|
10
|
+
await uninit(opts.effects, opts.target);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=setupUninit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupUninit.js","sourceRoot":"","sources":["../../../../package/lib/inits/setupUninit.ts"],"names":[],"mappings":";;AAeA,kCASC;AATD,SAAgB,WAAW,CACzB,GAAG,OAAoC;IAEvC,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;QACpB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,QAAQ,IAAI,MAAM;gBAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;;gBACjE,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as T from "../../../base/lib/types";
|
|
2
|
-
export type UninstallFn<Manifest extends T.SDKManifest
|
|
2
|
+
export type UninstallFn<Manifest extends T.SDKManifest> = (opts: {
|
|
3
3
|
effects: T.Effects;
|
|
4
4
|
}) => Promise<null | void | undefined>;
|
|
5
|
-
export declare class Uninstall<Manifest extends T.SDKManifest
|
|
6
|
-
readonly fn: UninstallFn<Manifest
|
|
5
|
+
export declare class Uninstall<Manifest extends T.SDKManifest> {
|
|
6
|
+
readonly fn: UninstallFn<Manifest>;
|
|
7
7
|
private constructor();
|
|
8
|
-
static of<Manifest extends T.SDKManifest
|
|
8
|
+
static of<Manifest extends T.SDKManifest>(fn: UninstallFn<Manifest>): Uninstall<Manifest>;
|
|
9
9
|
uninstall({ effects, nextVersion, }: Parameters<T.ExpectedExports.packageUninit>[0]): Promise<void>;
|
|
10
10
|
}
|
|
11
|
-
export declare function setupUninstall<Manifest extends T.SDKManifest
|
|
11
|
+
export declare function setupUninstall<Manifest extends T.SDKManifest>(fn: UninstallFn<Manifest>): Uninstall<Manifest>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupUninstall.js","sourceRoot":"","sources":["../../../../package/lib/inits/setupUninstall.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"setupUninstall.js","sourceRoot":"","sources":["../../../../package/lib/inits/setupUninstall.ts"],"names":[],"mappings":";;;AAsBA,wCAIC;AArBD,MAAa,SAAS;IACpB,YAA6B,EAAyB;QAAzB,OAAE,GAAF,EAAE,CAAuB;IAAG,CAAC;IAC1D,MAAM,CAAC,EAAE,CAAiC,EAAyB;QACjE,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EACd,OAAO,EACP,WAAW,GACoC;QAC/C,IAAI,CAAC,WAAW;YACd,MAAM,IAAI,CAAC,EAAE,CAAC;gBACZ,OAAO;aACR,CAAC,CAAA;IACN,CAAC;CACF;AAfD,8BAeC;AAED,SAAgB,cAAc,CAC5B,EAAyB;IAEzB,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -1,34 +1,18 @@
|
|
|
1
1
|
import * as T from "../../../base/lib/types";
|
|
2
|
-
import {
|
|
2
|
+
import { SubContainer } from "../util/SubContainer";
|
|
3
3
|
import { Drop } from "../util";
|
|
4
|
-
import {
|
|
5
|
-
export declare class CommandController<Manifest extends T.SDKManifest> extends Drop {
|
|
6
|
-
readonly runningAnswer: Promise<
|
|
4
|
+
import { DaemonCommandType } from "./Daemons";
|
|
5
|
+
export declare class CommandController<Manifest extends T.SDKManifest, C extends SubContainer<Manifest> | null> extends Drop {
|
|
6
|
+
readonly runningAnswer: Promise<null>;
|
|
7
7
|
private state;
|
|
8
8
|
private readonly subcontainer;
|
|
9
9
|
private process;
|
|
10
10
|
readonly sigtermTimeout: number;
|
|
11
11
|
private constructor();
|
|
12
|
-
static of<Manifest extends T.SDKManifest>(): (effects: T.Effects, subcontainer:
|
|
13
|
-
imageId: keyof Manifest["images"] & T.ImageId;
|
|
14
|
-
sharedRun?: boolean;
|
|
15
|
-
} | SubContainer<Manifest>, command: T.CommandType, options: {
|
|
16
|
-
subcontainerName?: string;
|
|
17
|
-
sigtermTimeout?: number;
|
|
18
|
-
mounts: Mounts<Manifest> | null;
|
|
19
|
-
runAsInit?: boolean;
|
|
20
|
-
env?: {
|
|
21
|
-
[variable: string]: string;
|
|
22
|
-
} | undefined;
|
|
23
|
-
cwd?: string | undefined;
|
|
24
|
-
user?: string | undefined;
|
|
25
|
-
onStdout?: (chunk: Buffer | string | any) => void;
|
|
26
|
-
onStderr?: (chunk: Buffer | string | any) => void;
|
|
27
|
-
}) => Promise<CommandController<Manifest>>;
|
|
28
|
-
get subContainerHandle(): SubContainerHandle;
|
|
12
|
+
static of<Manifest extends T.SDKManifest, C extends SubContainer<Manifest> | null>(): (effects: T.Effects, subcontainer: C, exec: DaemonCommandType<Manifest, C>) => Promise<CommandController<Manifest, C>>;
|
|
29
13
|
wait({ timeout }?: {
|
|
30
14
|
timeout?: number | undefined;
|
|
31
|
-
}): Promise<
|
|
15
|
+
}): Promise<void>;
|
|
32
16
|
term({ signal, timeout }?: {
|
|
33
17
|
signal?: NodeJS.Signals | undefined;
|
|
34
18
|
timeout?: number | undefined;
|
|
@@ -37,7 +37,6 @@ exports.CommandController = void 0;
|
|
|
37
37
|
const _1 = require(".");
|
|
38
38
|
const types_1 = require("../../../base/lib/types");
|
|
39
39
|
const T = __importStar(require("../../../base/lib/types"));
|
|
40
|
-
const SubContainer_1 = require("../util/SubContainer");
|
|
41
40
|
const util_1 = require("../util");
|
|
42
41
|
const fs = __importStar(require("node:fs/promises"));
|
|
43
42
|
class CommandController extends util_1.Drop {
|
|
@@ -50,42 +49,54 @@ class CommandController extends util_1.Drop {
|
|
|
50
49
|
this.sigtermTimeout = sigtermTimeout;
|
|
51
50
|
}
|
|
52
51
|
static of() {
|
|
53
|
-
return async (effects, subcontainer,
|
|
54
|
-
let commands;
|
|
55
|
-
if (command instanceof T.UseEntrypoint) {
|
|
56
|
-
const imageMeta = await fs
|
|
57
|
-
.readFile(`/media/startos/images/${subcontainer.imageId}.json`, {
|
|
58
|
-
encoding: "utf8",
|
|
59
|
-
})
|
|
60
|
-
.catch(() => "{}")
|
|
61
|
-
.then(JSON.parse);
|
|
62
|
-
commands = imageMeta.entrypoint ?? [];
|
|
63
|
-
commands.concat(...(command.overridCmd ?? imageMeta.cmd ?? []));
|
|
64
|
-
}
|
|
65
|
-
else
|
|
66
|
-
commands = (0, util_1.splitCommand)(command);
|
|
67
|
-
const subc = subcontainer instanceof SubContainer_1.SubContainer
|
|
68
|
-
? subcontainer
|
|
69
|
-
: await SubContainer_1.SubContainer.of(effects, subcontainer, null, options?.subcontainerName || commands.join(" "));
|
|
52
|
+
return async (effects, subcontainer, exec) => {
|
|
70
53
|
try {
|
|
71
|
-
if (
|
|
72
|
-
|
|
54
|
+
if ("fn" in exec) {
|
|
55
|
+
const abort = new AbortController();
|
|
56
|
+
const cell = {
|
|
57
|
+
ctrl: new CommandController(exec.fn(subcontainer, abort.signal).then(async (command) => {
|
|
58
|
+
if (subcontainer && command && !abort.signal.aborted) {
|
|
59
|
+
const newCtrl = (await CommandController.of()(effects, subcontainer, command)).leak();
|
|
60
|
+
Object.assign(cell.ctrl, newCtrl);
|
|
61
|
+
return await cell.ctrl.runningAnswer;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
cell.ctrl.state.exited = true;
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}), { exited: false }, subcontainer, abort, exec.sigtermTimeout),
|
|
68
|
+
};
|
|
69
|
+
return cell.ctrl;
|
|
70
|
+
}
|
|
71
|
+
let commands;
|
|
72
|
+
if (T.isUseEntrypoint(exec.command)) {
|
|
73
|
+
const imageMeta = await fs
|
|
74
|
+
.readFile(`/media/startos/images/${subcontainer.imageId}.json`, {
|
|
75
|
+
encoding: "utf8",
|
|
76
|
+
})
|
|
77
|
+
.catch(() => "{}")
|
|
78
|
+
.then(JSON.parse);
|
|
79
|
+
commands = imageMeta.entrypoint ?? [];
|
|
80
|
+
commands = commands.concat(...(exec.command.overridCmd ?? imageMeta.cmd ?? []));
|
|
81
|
+
}
|
|
82
|
+
else
|
|
83
|
+
commands = (0, util_1.splitCommand)(exec.command);
|
|
73
84
|
let childProcess;
|
|
74
|
-
if (
|
|
75
|
-
childProcess = await
|
|
76
|
-
env:
|
|
85
|
+
if (exec.runAsInit) {
|
|
86
|
+
childProcess = await subcontainer.launch(commands, {
|
|
87
|
+
env: exec.env,
|
|
77
88
|
});
|
|
78
89
|
}
|
|
79
90
|
else {
|
|
80
|
-
childProcess = await
|
|
81
|
-
env:
|
|
82
|
-
stdio:
|
|
91
|
+
childProcess = await subcontainer.spawn(commands, {
|
|
92
|
+
env: exec.env,
|
|
93
|
+
stdio: exec.onStdout || exec.onStderr ? "pipe" : "inherit",
|
|
83
94
|
});
|
|
84
95
|
}
|
|
85
|
-
if (
|
|
86
|
-
childProcess.stdout?.on("data",
|
|
87
|
-
if (
|
|
88
|
-
childProcess.stderr?.on("data",
|
|
96
|
+
if (exec.onStdout)
|
|
97
|
+
childProcess.stdout?.on("data", exec.onStdout);
|
|
98
|
+
if (exec.onStderr)
|
|
99
|
+
childProcess.stderr?.on("data", exec.onStderr);
|
|
89
100
|
const state = { exited: false };
|
|
90
101
|
const answer = new Promise((resolve, reject) => {
|
|
91
102
|
childProcess.on("exit", (code) => {
|
|
@@ -103,38 +114,48 @@ class CommandController extends util_1.Drop {
|
|
|
103
114
|
}
|
|
104
115
|
});
|
|
105
116
|
});
|
|
106
|
-
return new CommandController(answer, state,
|
|
117
|
+
return new CommandController(answer, state, subcontainer, childProcess, exec.sigtermTimeout);
|
|
107
118
|
}
|
|
108
119
|
catch (e) {
|
|
109
|
-
await
|
|
120
|
+
await subcontainer?.destroy();
|
|
110
121
|
throw e;
|
|
111
122
|
}
|
|
112
123
|
};
|
|
113
124
|
}
|
|
114
|
-
get subContainerHandle() {
|
|
115
|
-
return new SubContainer_1.SubContainerHandle(this.subcontainer);
|
|
116
|
-
}
|
|
117
125
|
async wait({ timeout = types_1.NO_TIMEOUT } = {}) {
|
|
118
126
|
if (timeout > 0)
|
|
119
127
|
setTimeout(() => {
|
|
120
128
|
this.term();
|
|
121
129
|
}, timeout);
|
|
122
130
|
try {
|
|
123
|
-
|
|
131
|
+
if (timeout > 0 && this.process instanceof AbortController)
|
|
132
|
+
await Promise.race([
|
|
133
|
+
this.runningAnswer,
|
|
134
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error("Timed out waiting for js command to exit")), timeout * 2)),
|
|
135
|
+
]);
|
|
136
|
+
else
|
|
137
|
+
await this.runningAnswer;
|
|
124
138
|
}
|
|
125
139
|
finally {
|
|
126
140
|
if (!this.state.exited) {
|
|
127
|
-
this.process
|
|
141
|
+
if (this.process instanceof AbortController)
|
|
142
|
+
this.process.abort();
|
|
143
|
+
else
|
|
144
|
+
this.process.kill("SIGKILL");
|
|
128
145
|
}
|
|
129
|
-
await this.subcontainer
|
|
146
|
+
await this.subcontainer?.destroy();
|
|
130
147
|
}
|
|
131
148
|
}
|
|
132
149
|
async term({ signal = types_1.SIGTERM, timeout = this.sigtermTimeout } = {}) {
|
|
133
150
|
try {
|
|
134
151
|
if (!this.state.exited) {
|
|
152
|
+
if (this.process instanceof AbortController)
|
|
153
|
+
return this.process.abort();
|
|
135
154
|
if (signal !== "SIGKILL") {
|
|
136
155
|
setTimeout(() => {
|
|
137
|
-
if (
|
|
156
|
+
if (this.process instanceof AbortController)
|
|
157
|
+
this.process.abort();
|
|
158
|
+
else
|
|
138
159
|
this.process.kill("SIGKILL");
|
|
139
160
|
}, timeout);
|
|
140
161
|
}
|
|
@@ -142,10 +163,16 @@ class CommandController extends util_1.Drop {
|
|
|
142
163
|
console.error(`failed to send signal ${signal} to pid ${this.process.pid}`);
|
|
143
164
|
}
|
|
144
165
|
}
|
|
145
|
-
|
|
166
|
+
if (this.process instanceof AbortController)
|
|
167
|
+
await Promise.race([
|
|
168
|
+
this.runningAnswer,
|
|
169
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error("Timed out waiting for js command to exit")), timeout * 2)),
|
|
170
|
+
]);
|
|
171
|
+
else
|
|
172
|
+
await this.runningAnswer;
|
|
146
173
|
}
|
|
147
174
|
finally {
|
|
148
|
-
await this.subcontainer
|
|
175
|
+
await this.subcontainer?.destroy();
|
|
149
176
|
}
|
|
150
177
|
}
|
|
151
178
|
onDrop() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandController.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/CommandController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAA2C;AAC3C,mDAA6D;AAE7D,2DAA4C;
|
|
1
|
+
{"version":3,"file":"CommandController.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/CommandController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,24 @@
|
|
|
1
1
|
import * as T from "../../../base/lib/types";
|
|
2
|
-
import {
|
|
2
|
+
import { Drop } from "../util";
|
|
3
|
+
import { SubContainer, SubContainerRc } from "../util/SubContainer";
|
|
3
4
|
import { CommandController } from "./CommandController";
|
|
4
|
-
import {
|
|
5
|
+
import { DaemonCommandType } from "./Daemons";
|
|
6
|
+
import { Oneshot } from "./Oneshot";
|
|
5
7
|
/**
|
|
6
8
|
* This is a wrapper around CommandController that has a state of off, where the command shouldn't be running
|
|
7
9
|
* and the others state of running, where it will keep a living running command
|
|
8
10
|
*/
|
|
9
|
-
export declare class Daemon<Manifest extends T.SDKManifest> {
|
|
11
|
+
export declare class Daemon<Manifest extends T.SDKManifest, C extends SubContainer<Manifest> | null = SubContainer<Manifest> | null> extends Drop {
|
|
12
|
+
private subcontainer;
|
|
10
13
|
private startCommand;
|
|
14
|
+
readonly oneshot: boolean;
|
|
11
15
|
private commandController;
|
|
12
16
|
private shouldBeRunning;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} | SubContainer<Manifest>, command: T.CommandType, options: {
|
|
19
|
-
subcontainerName?: string;
|
|
20
|
-
mounts: Mounts<Manifest> | null;
|
|
21
|
-
env?: {
|
|
22
|
-
[variable: string]: string;
|
|
23
|
-
} | undefined;
|
|
24
|
-
cwd?: string | undefined;
|
|
25
|
-
user?: string | undefined;
|
|
26
|
-
onStdout?: (chunk: Buffer | string | any) => void;
|
|
27
|
-
onStderr?: (chunk: Buffer | string | any) => void;
|
|
28
|
-
sigtermTimeout?: number;
|
|
29
|
-
}) => Promise<Daemon<Manifest>>;
|
|
17
|
+
protected exitedSuccess: boolean;
|
|
18
|
+
private onExitFns;
|
|
19
|
+
protected constructor(subcontainer: C, startCommand: () => Promise<CommandController<Manifest, C>>, oneshot?: boolean);
|
|
20
|
+
isOneshot(): this is Oneshot<Manifest>;
|
|
21
|
+
static of<Manifest extends T.SDKManifest>(): <C extends SubContainer<Manifest> | null>(effects: T.Effects, subcontainer: C, exec: DaemonCommandType<Manifest, C>) => Promise<Daemon<Manifest, SubContainer<Manifest, T.Effects> | null>>;
|
|
30
22
|
start(): Promise<void>;
|
|
31
23
|
term(termOptions?: {
|
|
32
24
|
signal?: NodeJS.Signals | undefined;
|
|
@@ -36,4 +28,7 @@ export declare class Daemon<Manifest extends T.SDKManifest> {
|
|
|
36
28
|
signal?: NodeJS.Signals | undefined;
|
|
37
29
|
timeout?: number | undefined;
|
|
38
30
|
}): Promise<void>;
|
|
31
|
+
subcontainerRc(): SubContainerRc<Manifest> | null;
|
|
32
|
+
onExit(fn: (success: boolean) => void): void;
|
|
33
|
+
onDrop(): void;
|
|
39
34
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Daemon = void 0;
|
|
4
4
|
const asError_1 = require("../../../base/lib/util/asError");
|
|
5
|
+
const util_1 = require("../util");
|
|
5
6
|
const CommandController_1 = require("./CommandController");
|
|
6
7
|
const TIMEOUT_INCREMENT_MS = 1000;
|
|
7
8
|
const MAX_TIMEOUT_MS = 30000;
|
|
@@ -9,19 +10,31 @@ const MAX_TIMEOUT_MS = 30000;
|
|
|
9
10
|
* This is a wrapper around CommandController that has a state of off, where the command shouldn't be running
|
|
10
11
|
* and the others state of running, where it will keep a living running command
|
|
11
12
|
*/
|
|
12
|
-
class Daemon {
|
|
13
|
-
constructor(startCommand) {
|
|
13
|
+
class Daemon extends util_1.Drop {
|
|
14
|
+
constructor(subcontainer, startCommand, oneshot = false) {
|
|
15
|
+
super();
|
|
16
|
+
this.subcontainer = subcontainer;
|
|
14
17
|
this.startCommand = startCommand;
|
|
18
|
+
this.oneshot = oneshot;
|
|
15
19
|
this.commandController = null;
|
|
16
20
|
this.shouldBeRunning = false;
|
|
21
|
+
this.exitedSuccess = false;
|
|
22
|
+
this.onExitFns = [];
|
|
17
23
|
}
|
|
18
|
-
|
|
19
|
-
return this.
|
|
24
|
+
isOneshot() {
|
|
25
|
+
return this.oneshot;
|
|
20
26
|
}
|
|
21
27
|
static of() {
|
|
22
|
-
return async (effects, subcontainer,
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
return async (effects, subcontainer, exec) => {
|
|
29
|
+
let subc = subcontainer;
|
|
30
|
+
if (subcontainer && subcontainer.isOwned())
|
|
31
|
+
subc = subcontainer.rc();
|
|
32
|
+
const startCommand = () => CommandController_1.CommandController.of()(effects, (subc?.rc() ?? null), exec);
|
|
33
|
+
const res = new Daemon(subc, startCommand);
|
|
34
|
+
effects.onLeaveContext(() => {
|
|
35
|
+
res.stop().catch((e) => console.error((0, asError_1.asError)(e)));
|
|
36
|
+
});
|
|
37
|
+
return res;
|
|
25
38
|
};
|
|
26
39
|
}
|
|
27
40
|
async start() {
|
|
@@ -30,17 +43,44 @@ class Daemon {
|
|
|
30
43
|
}
|
|
31
44
|
this.shouldBeRunning = true;
|
|
32
45
|
let timeoutCounter = 0;
|
|
33
|
-
|
|
46
|
+
(async () => {
|
|
34
47
|
while (this.shouldBeRunning) {
|
|
35
48
|
if (this.commandController)
|
|
36
|
-
await this.commandController
|
|
37
|
-
|
|
38
|
-
|
|
49
|
+
await this.commandController
|
|
50
|
+
.term({})
|
|
51
|
+
.catch((err) => console.error(err));
|
|
52
|
+
try {
|
|
53
|
+
this.commandController = await this.startCommand();
|
|
54
|
+
if (!this.shouldBeRunning) {
|
|
55
|
+
// handles race condition if stopped while starting
|
|
56
|
+
await this.stop();
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
const success = await this.commandController.wait().then((_) => true, (err) => {
|
|
60
|
+
console.error(err);
|
|
61
|
+
return false;
|
|
62
|
+
});
|
|
63
|
+
for (const fn of this.onExitFns) {
|
|
64
|
+
try {
|
|
65
|
+
fn(success);
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
console.error("EXIT handler", e);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (success && this.oneshot) {
|
|
72
|
+
this.exitedSuccess = true;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
console.error(e);
|
|
78
|
+
}
|
|
39
79
|
await new Promise((resolve) => setTimeout(resolve, timeoutCounter));
|
|
40
80
|
timeoutCounter += TIMEOUT_INCREMENT_MS;
|
|
41
|
-
timeoutCounter = Math.
|
|
81
|
+
timeoutCounter = Math.min(MAX_TIMEOUT_MS, timeoutCounter);
|
|
42
82
|
}
|
|
43
|
-
}).catch((err) => {
|
|
83
|
+
})().catch((err) => {
|
|
44
84
|
console.error((0, asError_1.asError)(err));
|
|
45
85
|
});
|
|
46
86
|
}
|
|
@@ -49,10 +89,24 @@ class Daemon {
|
|
|
49
89
|
}
|
|
50
90
|
async stop(termOptions) {
|
|
51
91
|
this.shouldBeRunning = false;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
92
|
+
this.exitedSuccess = false;
|
|
93
|
+
if (this.commandController) {
|
|
94
|
+
await this.commandController
|
|
95
|
+
.term({ ...termOptions })
|
|
96
|
+
.catch((e) => console.error((0, asError_1.asError)(e)));
|
|
97
|
+
this.commandController = null;
|
|
98
|
+
this.onExitFns = [];
|
|
99
|
+
await this.subcontainer?.destroy();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
subcontainerRc() {
|
|
103
|
+
return this.subcontainer?.rc() ?? null;
|
|
104
|
+
}
|
|
105
|
+
onExit(fn) {
|
|
106
|
+
this.onExitFns.push(fn);
|
|
107
|
+
}
|
|
108
|
+
onDrop() {
|
|
109
|
+
this.stop().catch((e) => console.error((0, asError_1.asError)(e)));
|
|
56
110
|
}
|
|
57
111
|
}
|
|
58
112
|
exports.Daemon = Daemon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Daemon.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/Daemon.ts"],"names":[],"mappings":";;;AACA,4DAAwD;
|
|
1
|
+
{"version":3,"file":"Daemon.js","sourceRoot":"","sources":["../../../../package/lib/mainFn/Daemon.ts"],"names":[],"mappings":";;;AACA,4DAAwD;AACxD,kCAA8B;AAM9B,2DAAuD;AAIvD,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,cAAc,GAAG,KAAK,CAAA;AAC5B;;;GAGG;AAEH,MAAa,MAGX,SAAQ,WAAI;IAKZ,YACU,YAAe,EACf,YAA2D,EAC1D,UAAmB,KAAK;QAEjC,KAAK,EAAE,CAAA;QAJC,iBAAY,GAAZ,YAAY,CAAG;QACf,iBAAY,GAAZ,YAAY,CAA+C;QAC1D,YAAO,GAAP,OAAO,CAAiB;QAP3B,sBAAiB,GAA0C,IAAI,CAAA;QAC/D,oBAAe,GAAG,KAAK,CAAA;QACrB,kBAAa,GAAG,KAAK,CAAA;QACvB,cAAS,GAAmC,EAAE,CAAA;IAOtD,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IACD,MAAM,CAAC,EAAE;QACP,OAAO,KAAK,EACV,OAAkB,EAClB,YAAe,EACf,IAAoC,EACpC,EAAE;YACF,IAAI,IAAI,GAAkC,YAAY,CAAA;YACtD,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE;gBAAE,IAAI,GAAG,YAAY,CAAC,EAAE,EAAE,CAAA;YACpE,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,qCAAiB,CAAC,EAAE,EAAe,CACjC,OAAO,EACP,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,CAAM,EACzB,IAAI,CACL,CAAA;YACH,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;YAC1C,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE;gBAC1B,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,iBAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;YACF,OAAO,GAAG,CAAA;QACZ,CAAC,CAAA;IACH,CAAC;IACD,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAM;QACR,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC3B,IAAI,cAAc,GAAG,CAAC,CACrB;QAAA,CAAC,KAAK,IAAI,EAAE;YACX,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,iBAAiB;oBACxB,MAAM,IAAI,CAAC,iBAAiB;yBACzB,IAAI,CAAC,EAAE,CAAC;yBACR,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvC,IAAI,CAAC;oBACH,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;oBAClD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;wBAC1B,mDAAmD;wBACnD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;wBACjB,MAAK;oBACP,CAAC;oBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EACX,CAAC,GAAG,EAAE,EAAE;wBACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAClB,OAAO,KAAK,CAAA;oBACd,CAAC,CACF,CAAA;oBACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBAChC,IAAI,CAAC;4BACH,EAAE,CAAC,OAAO,CAAC,CAAA;wBACb,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;wBAClC,CAAC;oBACH,CAAC;oBACD,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;wBACzB,MAAK;oBACP,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAClB,CAAC;gBACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;gBACnE,cAAc,IAAI,oBAAoB,CAAA;gBACtC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;YAC3D,CAAC;QACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,IAAA,iBAAO,EAAC,GAAG,CAAC,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,WAGV;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC/B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,WAGV;QACC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;QAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;QAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,iBAAiB;iBACzB,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;iBACxB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,iBAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;YAC7B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;YACnB,MAAM,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAA;QACpC,CAAC;IACH,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,IAAI,CAAA;IACxC,CAAC;IACD,MAAM,CAAC,EAA8B;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzB,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,iBAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,CAAC;CACF;AArHD,wBAqHC"}
|