@flowscripter/dynamic-cli-framework-api 1.1.1 → 1.3.0

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/dist/index.d.ts CHANGED
@@ -74,4 +74,7 @@ export { default as createCLIPlugin } from "./src/plugin/createCLIPlugin.ts";
74
74
  export type { CLIPluginOptions } from "./src/plugin/createCLIPlugin.ts";
75
75
  export { PLUGIN_SERVICE_ID } from "./src/service/core/PluginService.ts";
76
76
  export type { default as PluginService } from "./src/service/core/PluginService.ts";
77
+ export { UPGRADE_SERVICE_ID, InstallMethod, SupportedArch, SupportedOs, } from "./src/service/core/UpgradeService.ts";
78
+ export type { default as UpgradeService } from "./src/service/core/UpgradeService.ts";
79
+ export type { UpgradeCheckResult, UpgradeResult } from "./src/service/core/UpgradeService.ts";
77
80
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -28,3 +28,4 @@ export { DYNAMIC_CLI_FRAMEWORK_COMMAND_FACTORY_EXTENSION_POINT } from "./src/plu
28
28
  export { DYNAMIC_CLI_FRAMEWORK_SERVICE_PROVIDER_FACTORY_EXTENSION_POINT } from "./src/plugin/ServiceProviderFactory.js";
29
29
  export { default as createCLIPlugin } from "./src/plugin/createCLIPlugin.js";
30
30
  export { PLUGIN_SERVICE_ID } from "./src/service/core/PluginService.js";
31
+ export { UPGRADE_SERVICE_ID, InstallMethod, SupportedArch, SupportedOs, } from "./src/service/core/UpgradeService.js";
@@ -4,7 +4,7 @@ export declare const SPAWN_SERVICE_ID = "@flowscripter/dynamic-cli-framework/spa
4
4
  *
5
5
  * `ok` is `true` only when the process launched and exited with code `0`. A launch failure (e.g.
6
6
  * the binary was not found) sets `error` with no `exitCode`; a non-zero exit sets `exitCode` with
7
- * no `error`.
7
+ * no `error`; a process that did not exit within {@link SpawnOptions.timeoutMs} sets `timedOut`.
8
8
  */
9
9
  export type SpawnResult = {
10
10
  ok: true;
@@ -13,6 +13,9 @@ export type SpawnResult = {
13
13
  ok: false;
14
14
  exitCode?: number;
15
15
  error?: Error;
16
+ } | {
17
+ ok: false;
18
+ timedOut: true;
16
19
  };
17
20
  /**
18
21
  * Options for {@link SpawnService.spawn}.
@@ -40,6 +43,12 @@ export interface SpawnOptions {
40
43
  * `true`.
41
44
  */
42
45
  longRunning?: boolean;
46
+ /**
47
+ * If specified, the spawned process is aborted (`SIGTERM`, followed by `SIGKILL` if it has not
48
+ * exited after a grace period) if it has not exited within this many milliseconds. Defaults to
49
+ * unbounded.
50
+ */
51
+ timeoutMs?: number;
43
52
  }
44
53
  /**
45
54
  * Service allowing a {@link Command} to spawn a child process, with output optionally captured
@@ -1 +1 @@
1
- {"version":3,"file":"SpawnService.d.ts","sourceRoot":"","sources":["../../../../src/service/core/SpawnService.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,sDAAsD,CAAC;AAEpF;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAE/D;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,YAAY;IACnC;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACrF"}
1
+ {"version":3,"file":"SpawnService.d.ts","sourceRoot":"","sources":["../../../../src/service/core/SpawnService.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,sDAAsD,CAAC;AAEpF;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAC/C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAE/D;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,YAAY;IACnC;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACrF"}
@@ -0,0 +1,105 @@
1
+ export declare const UPGRADE_SERVICE_ID = "@flowscripter/dynamic-cli-framework/upgrade-service";
2
+ /**
3
+ * Operating systems an {@link UpgradeService} implementation may support.
4
+ */
5
+ export declare enum SupportedOs {
6
+ LINUX = "linux",
7
+ MACOS = "macos",
8
+ WINDOWS = "windows"
9
+ }
10
+ /**
11
+ * CPU architectures an {@link UpgradeService} implementation may support.
12
+ */
13
+ export declare enum SupportedArch {
14
+ X64 = "x64",
15
+ ARM64 = "arm64"
16
+ }
17
+ /**
18
+ * Mechanism by which the CLI was originally installed, and therefore how it should be upgraded.
19
+ */
20
+ export declare enum InstallMethod {
21
+ LINUX_SCRIPT = "linux-script",
22
+ HOMEBREW = "homebrew",
23
+ WINGET = "winget",
24
+ GITHUB_RELEASE = "github-release"
25
+ }
26
+ /**
27
+ * Outcome of an {@link UpgradeService.checkForUpgrade} call.
28
+ */
29
+ export interface UpgradeCheckResult {
30
+ readonly currentVersion: string;
31
+ readonly latestVersion: string;
32
+ readonly updateAvailable: boolean;
33
+ readonly os: SupportedOs;
34
+ readonly arch: SupportedArch;
35
+ readonly installMethod: InstallMethod;
36
+ }
37
+ /**
38
+ * Outcome of an {@link UpgradeService.upgrade} call.
39
+ */
40
+ export interface UpgradeResult {
41
+ readonly ok: boolean;
42
+ readonly oldVersion: string;
43
+ readonly newVersion?: string;
44
+ readonly error?: Error;
45
+ }
46
+ /**
47
+ * Service allowing a {@link Command} to check for and install a newer version of the CLI itself.
48
+ */
49
+ export default interface UpgradeService {
50
+ /**
51
+ * Detect the operating system the CLI is currently running on.
52
+ *
53
+ * @return the detected {@link SupportedOs}, or `undefined` if it is not supported.
54
+ */
55
+ detectOs(): SupportedOs | undefined;
56
+ /**
57
+ * Detect the CPU architecture the CLI is currently running on.
58
+ *
59
+ * @return the detected {@link SupportedArch}, or `undefined` if it is not supported.
60
+ */
61
+ detectArch(): SupportedArch | undefined;
62
+ /**
63
+ * Detect the mechanism by which the CLI was installed for the specified operating system.
64
+ *
65
+ * @param os the {@link SupportedOs} to detect the install method for.
66
+ *
67
+ * @return the detected {@link InstallMethod}, or `undefined` if it could not be determined.
68
+ */
69
+ detectInstallMethod(os: SupportedOs): Promise<InstallMethod | undefined>;
70
+ /**
71
+ * Check whether a newer version of the CLI is available.
72
+ *
73
+ * @param os optional {@link SupportedOs} override, defaults to the detected value.
74
+ * @param arch optional {@link SupportedArch} override, defaults to the detected value.
75
+ * @param installMethod optional {@link InstallMethod} override, defaults to the detected value.
76
+ *
77
+ * @return the {@link UpgradeCheckResult}, or `undefined` if the resolved os/arch/installMethod
78
+ * combination is not supported or not configured. Never rejects.
79
+ */
80
+ checkForUpgrade(os?: SupportedOs, arch?: SupportedArch, installMethod?: InstallMethod): Promise<UpgradeCheckResult | undefined>;
81
+ /**
82
+ * Upgrade the CLI to the latest available version.
83
+ *
84
+ * @param os optional {@link SupportedOs} override, defaults to the detected value.
85
+ * @param arch optional {@link SupportedArch} override, defaults to the detected value.
86
+ * @param installMethod optional {@link InstallMethod} override, defaults to the detected value.
87
+ *
88
+ * @return the {@link UpgradeResult}. Never rejects.
89
+ */
90
+ upgrade(os?: SupportedOs, arch?: SupportedArch, installMethod?: InstallMethod): Promise<UpgradeResult>;
91
+ /**
92
+ * Returns the result of the version check that was started eagerly once this service's
93
+ * dependencies were set (or starts one now, with default/no-override detection, if none has
94
+ * started yet). Every call is backed by the same cached promise.
95
+ *
96
+ * @param waitForResult if `true`, waits for the check to fully resolve. If `false` (default),
97
+ * gives up and resolves to `undefined` after an internal bounded delay, so callers on a
98
+ * startup/opportunistic path are never blocked by a slow network/spawn call.
99
+ *
100
+ * @return the {@link UpgradeCheckResult}, or `undefined` if unsupported/unconfigured or the
101
+ * bounded wait elapsed. Never rejects.
102
+ */
103
+ getUpgradeCheckResult(waitForResult?: boolean): Promise<UpgradeCheckResult | undefined>;
104
+ }
105
+ //# sourceMappingURL=UpgradeService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpgradeService.d.ts","sourceRoot":"","sources":["../../../../src/service/core/UpgradeService.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,wDAAwD,CAAC;AAExF;;GAEG;AACH,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,aAAa;IACvB,GAAG,QAAQ;IACX,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,oBAAY,aAAa;IACvB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,cAAc,mBAAmB;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,cAAc;IACrC;;;;OAIG;IACH,QAAQ,IAAI,WAAW,GAAG,SAAS,CAAC;IAEpC;;;;OAIG;IACH,UAAU,IAAI,aAAa,GAAG,SAAS,CAAC;IAExC;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAEzE;;;;;;;;;OASG;IACH,eAAe,CACb,EAAE,CAAC,EAAE,WAAW,EAChB,IAAI,CAAC,EAAE,aAAa,EACpB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAE3C;;;;;;;;OAQG;IACH,OAAO,CACL,EAAE,CAAC,EAAE,WAAW,EAChB,IAAI,CAAC,EAAE,aAAa,EACpB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;;;;;;;;;;OAWG;IACH,qBAAqB,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;CACzF"}
@@ -0,0 +1,28 @@
1
+ export const UPGRADE_SERVICE_ID = "@flowscripter/dynamic-cli-framework/upgrade-service";
2
+ /**
3
+ * Operating systems an {@link UpgradeService} implementation may support.
4
+ */
5
+ export var SupportedOs;
6
+ (function (SupportedOs) {
7
+ SupportedOs["LINUX"] = "linux";
8
+ SupportedOs["MACOS"] = "macos";
9
+ SupportedOs["WINDOWS"] = "windows";
10
+ })(SupportedOs || (SupportedOs = {}));
11
+ /**
12
+ * CPU architectures an {@link UpgradeService} implementation may support.
13
+ */
14
+ export var SupportedArch;
15
+ (function (SupportedArch) {
16
+ SupportedArch["X64"] = "x64";
17
+ SupportedArch["ARM64"] = "arm64";
18
+ })(SupportedArch || (SupportedArch = {}));
19
+ /**
20
+ * Mechanism by which the CLI was originally installed, and therefore how it should be upgraded.
21
+ */
22
+ export var InstallMethod;
23
+ (function (InstallMethod) {
24
+ InstallMethod["LINUX_SCRIPT"] = "linux-script";
25
+ InstallMethod["HOMEBREW"] = "homebrew";
26
+ InstallMethod["WINGET"] = "winget";
27
+ InstallMethod["GITHUB_RELEASE"] = "github-release";
28
+ })(InstallMethod || (InstallMethod = {}));
package/index.ts CHANGED
@@ -140,3 +140,12 @@ export { default as createCLIPlugin } from "./src/plugin/createCLIPlugin.ts";
140
140
  export type { CLIPluginOptions } from "./src/plugin/createCLIPlugin.ts";
141
141
  export { PLUGIN_SERVICE_ID } from "./src/service/core/PluginService.ts";
142
142
  export type { default as PluginService } from "./src/service/core/PluginService.ts";
143
+
144
+ export {
145
+ UPGRADE_SERVICE_ID,
146
+ InstallMethod,
147
+ SupportedArch,
148
+ SupportedOs,
149
+ } from "./src/service/core/UpgradeService.ts";
150
+ export type { default as UpgradeService } from "./src/service/core/UpgradeService.ts";
151
+ export type { UpgradeCheckResult, UpgradeResult } from "./src/service/core/UpgradeService.ts";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowscripter/dynamic-cli-framework-api",
3
- "version": "1.1.1",
3
+ "version": "1.3.0",
4
4
  "description": "API for https://github.com/flowscripter/dynamic-cli-framework",
5
5
  "keywords": [
6
6
  "bun",
@@ -5,11 +5,12 @@ export const SPAWN_SERVICE_ID = "@flowscripter/dynamic-cli-framework/spawn-servi
5
5
  *
6
6
  * `ok` is `true` only when the process launched and exited with code `0`. A launch failure (e.g.
7
7
  * the binary was not found) sets `error` with no `exitCode`; a non-zero exit sets `exitCode` with
8
- * no `error`.
8
+ * no `error`; a process that did not exit within {@link SpawnOptions.timeoutMs} sets `timedOut`.
9
9
  */
10
10
  export type SpawnResult =
11
11
  | { ok: true; exitCode: number }
12
- | { ok: false; exitCode?: number; error?: Error };
12
+ | { ok: false; exitCode?: number; error?: Error }
13
+ | { ok: false; timedOut: true };
13
14
 
14
15
  /**
15
16
  * Options for {@link SpawnService.spawn}.
@@ -40,6 +41,13 @@ export interface SpawnOptions {
40
41
  * `true`.
41
42
  */
42
43
  longRunning?: boolean;
44
+
45
+ /**
46
+ * If specified, the spawned process is aborted (`SIGTERM`, followed by `SIGKILL` if it has not
47
+ * exited after a grace period) if it has not exited within this many milliseconds. Defaults to
48
+ * unbounded.
49
+ */
50
+ timeoutMs?: number;
43
51
  }
44
52
 
45
53
  /**
@@ -0,0 +1,123 @@
1
+ export const UPGRADE_SERVICE_ID = "@flowscripter/dynamic-cli-framework/upgrade-service";
2
+
3
+ /**
4
+ * Operating systems an {@link UpgradeService} implementation may support.
5
+ */
6
+ export enum SupportedOs {
7
+ LINUX = "linux",
8
+ MACOS = "macos",
9
+ WINDOWS = "windows",
10
+ }
11
+
12
+ /**
13
+ * CPU architectures an {@link UpgradeService} implementation may support.
14
+ */
15
+ export enum SupportedArch {
16
+ X64 = "x64",
17
+ ARM64 = "arm64",
18
+ }
19
+
20
+ /**
21
+ * Mechanism by which the CLI was originally installed, and therefore how it should be upgraded.
22
+ */
23
+ export enum InstallMethod {
24
+ LINUX_SCRIPT = "linux-script",
25
+ HOMEBREW = "homebrew",
26
+ WINGET = "winget",
27
+ GITHUB_RELEASE = "github-release",
28
+ }
29
+
30
+ /**
31
+ * Outcome of an {@link UpgradeService.checkForUpgrade} call.
32
+ */
33
+ export interface UpgradeCheckResult {
34
+ readonly currentVersion: string;
35
+ readonly latestVersion: string;
36
+ readonly updateAvailable: boolean;
37
+ readonly os: SupportedOs;
38
+ readonly arch: SupportedArch;
39
+ readonly installMethod: InstallMethod;
40
+ }
41
+
42
+ /**
43
+ * Outcome of an {@link UpgradeService.upgrade} call.
44
+ */
45
+ export interface UpgradeResult {
46
+ readonly ok: boolean;
47
+ readonly oldVersion: string;
48
+ readonly newVersion?: string;
49
+ readonly error?: Error;
50
+ }
51
+
52
+ /**
53
+ * Service allowing a {@link Command} to check for and install a newer version of the CLI itself.
54
+ */
55
+ export default interface UpgradeService {
56
+ /**
57
+ * Detect the operating system the CLI is currently running on.
58
+ *
59
+ * @return the detected {@link SupportedOs}, or `undefined` if it is not supported.
60
+ */
61
+ detectOs(): SupportedOs | undefined;
62
+
63
+ /**
64
+ * Detect the CPU architecture the CLI is currently running on.
65
+ *
66
+ * @return the detected {@link SupportedArch}, or `undefined` if it is not supported.
67
+ */
68
+ detectArch(): SupportedArch | undefined;
69
+
70
+ /**
71
+ * Detect the mechanism by which the CLI was installed for the specified operating system.
72
+ *
73
+ * @param os the {@link SupportedOs} to detect the install method for.
74
+ *
75
+ * @return the detected {@link InstallMethod}, or `undefined` if it could not be determined.
76
+ */
77
+ detectInstallMethod(os: SupportedOs): Promise<InstallMethod | undefined>;
78
+
79
+ /**
80
+ * Check whether a newer version of the CLI is available.
81
+ *
82
+ * @param os optional {@link SupportedOs} override, defaults to the detected value.
83
+ * @param arch optional {@link SupportedArch} override, defaults to the detected value.
84
+ * @param installMethod optional {@link InstallMethod} override, defaults to the detected value.
85
+ *
86
+ * @return the {@link UpgradeCheckResult}, or `undefined` if the resolved os/arch/installMethod
87
+ * combination is not supported or not configured. Never rejects.
88
+ */
89
+ checkForUpgrade(
90
+ os?: SupportedOs,
91
+ arch?: SupportedArch,
92
+ installMethod?: InstallMethod,
93
+ ): Promise<UpgradeCheckResult | undefined>;
94
+
95
+ /**
96
+ * Upgrade the CLI to the latest available version.
97
+ *
98
+ * @param os optional {@link SupportedOs} override, defaults to the detected value.
99
+ * @param arch optional {@link SupportedArch} override, defaults to the detected value.
100
+ * @param installMethod optional {@link InstallMethod} override, defaults to the detected value.
101
+ *
102
+ * @return the {@link UpgradeResult}. Never rejects.
103
+ */
104
+ upgrade(
105
+ os?: SupportedOs,
106
+ arch?: SupportedArch,
107
+ installMethod?: InstallMethod,
108
+ ): Promise<UpgradeResult>;
109
+
110
+ /**
111
+ * Returns the result of the version check that was started eagerly once this service's
112
+ * dependencies were set (or starts one now, with default/no-override detection, if none has
113
+ * started yet). Every call is backed by the same cached promise.
114
+ *
115
+ * @param waitForResult if `true`, waits for the check to fully resolve. If `false` (default),
116
+ * gives up and resolves to `undefined` after an internal bounded delay, so callers on a
117
+ * startup/opportunistic path are never blocked by a slow network/spawn call.
118
+ *
119
+ * @return the {@link UpgradeCheckResult}, or `undefined` if unsupported/unconfigured or the
120
+ * bounded wait elapsed. Never rejects.
121
+ */
122
+ getUpgradeCheckResult(waitForResult?: boolean): Promise<UpgradeCheckResult | undefined>;
123
+ }