@flowscripter/dynamic-cli-framework 2.4.0 → 3.0.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 +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/src/cli/BaseCLI.d.ts +1 -0
- package/dist/src/cli/BaseCLI.d.ts.map +1 -1
- package/dist/src/cli/BaseCLI.js +6 -0
- package/dist/src/cli/BaseCLIFeatureOptions.d.ts +1 -0
- package/dist/src/cli/BaseCLIFeatureOptions.d.ts.map +1 -1
- package/dist/src/command/MultiCommandCliHelpCommand.d.ts +4 -4
- package/dist/src/command/MultiCommandCliHelpCommand.d.ts.map +1 -1
- package/dist/src/command/MultiCommandCliHelpCommand.js +3 -3
- package/dist/src/runtime/command/CommandValidator.d.ts.map +1 -1
- package/dist/src/runtime/command/CommandValidator.js +14 -16
- package/dist/src/runtime/parser.d.ts +5 -5
- package/dist/src/runtime/parser.d.ts.map +1 -1
- package/dist/src/runtime/parser.js +2 -2
- package/dist/src/runtime/runner.d.ts.map +1 -1
- package/dist/src/runtime/values/ValuePopulationResult.d.ts +3 -3
- package/dist/src/runtime/values/ValuePopulationResult.d.ts.map +1 -1
- package/dist/src/runtime/values/argumentValueMerge.d.ts +2 -2
- package/dist/src/runtime/values/argumentValueMerge.d.ts.map +1 -1
- package/dist/src/runtime/values/argumentValueValidation.d.ts +4 -4
- package/dist/src/runtime/values/argumentValueValidation.d.ts.map +1 -1
- package/dist/src/runtime/values/argumentValueValidation.js +6 -6
- package/dist/src/runtime/values/globalCommandValuePopulation.d.ts +4 -4
- package/dist/src/runtime/values/globalCommandValuePopulation.d.ts.map +1 -1
- package/dist/src/runtime/values/globalCommandValuePopulation.js +5 -5
- package/dist/src/runtime/values/subCommandValuePopulation.d.ts +5 -5
- package/dist/src/runtime/values/subCommandValuePopulation.d.ts.map +1 -1
- package/dist/src/runtime/values/subCommandValuePopulation.js +8 -7
- package/dist/src/service/argumentPrompter/DefaultArgumentPrompterService.d.ts.map +1 -1
- package/dist/src/service/argumentPrompter/DefaultArgumentPrompterService.js +6 -6
- package/dist/src/service/banner/command/NoBannerCommand.d.ts +2 -2
- package/dist/src/service/banner/command/NoBannerCommand.d.ts.map +1 -1
- package/dist/src/service/banner/command/NoBannerCommand.js +2 -2
- package/dist/src/service/completion/command/CompletionCompleteSubCommand.d.ts +2 -2
- package/dist/src/service/completion/command/CompletionCompleteSubCommand.d.ts.map +1 -1
- package/dist/src/service/completion/command/CompletionCompleteSubCommand.js +3 -3
- package/dist/src/service/completion/command/CompletionIntegrationSubCommand.d.ts +2 -2
- package/dist/src/service/completion/command/CompletionIntegrationSubCommand.d.ts.map +1 -1
- package/dist/src/service/completion/command/CompletionIntegrationSubCommand.js +3 -3
- package/dist/src/service/configuration/ConfigurationServiceProvider.d.ts +6 -6
- package/dist/src/service/configuration/ConfigurationServiceProvider.d.ts.map +1 -1
- package/dist/src/service/configuration/ConfigurationServiceProvider.js +4 -4
- package/dist/src/service/configuration/command/ConfigCommand.d.ts +2 -2
- package/dist/src/service/configuration/command/ConfigCommand.d.ts.map +1 -1
- package/dist/src/service/configuration/command/ConfigCommand.js +2 -2
- package/dist/src/service/fetch/DefaultFetchService.d.ts +7 -0
- package/dist/src/service/fetch/DefaultFetchService.d.ts.map +1 -0
- package/dist/src/service/fetch/DefaultFetchService.js +44 -0
- package/dist/src/service/fetch/FetchServiceProvider.d.ts +10 -0
- package/dist/src/service/fetch/FetchServiceProvider.d.ts.map +1 -0
- package/dist/src/service/fetch/FetchServiceProvider.js +22 -0
- package/dist/src/service/plugin/DefaultPluginServiceProvider.d.ts +2 -1
- package/dist/src/service/plugin/DefaultPluginServiceProvider.d.ts.map +1 -1
- package/dist/src/service/plugin/DefaultPluginServiceProvider.js +23 -8
- package/dist/src/service/plugin/FetchInterfaceAdapter.d.ts +17 -0
- package/dist/src/service/plugin/FetchInterfaceAdapter.d.ts.map +1 -0
- package/dist/src/service/plugin/FetchInterfaceAdapter.js +16 -0
- package/dist/src/service/plugin/SpawnInterfaceAdapter.js +1 -1
- package/dist/src/service/plugin/command/PluginAddSubCommand.d.ts +4 -4
- package/dist/src/service/plugin/command/PluginAddSubCommand.d.ts.map +1 -1
- package/dist/src/service/plugin/command/PluginAddSubCommand.js +2 -2
- package/dist/src/service/plugin/command/PluginListSubCommand.d.ts +2 -2
- package/dist/src/service/plugin/command/PluginListSubCommand.d.ts.map +1 -1
- package/dist/src/service/plugin/command/PluginRemoveSubCommand.d.ts +4 -4
- package/dist/src/service/plugin/command/PluginRemoveSubCommand.d.ts.map +1 -1
- package/dist/src/service/plugin/command/PluginRemoveSubCommand.js +2 -2
- package/dist/src/service/plugin/command/PluginSearchSubCommand.d.ts +4 -4
- package/dist/src/service/plugin/command/PluginSearchSubCommand.d.ts.map +1 -1
- package/dist/src/service/plugin/command/PluginSearchSubCommand.js +2 -2
- package/dist/src/service/plugin/command/PluginUpgradeSubCommand.d.ts +2 -2
- package/dist/src/service/plugin/command/PluginUpgradeSubCommand.d.ts.map +1 -1
- package/dist/src/service/printer/command/DarkModeCommand.d.ts +2 -2
- package/dist/src/service/printer/command/DarkModeCommand.d.ts.map +1 -1
- package/dist/src/service/printer/command/DarkModeCommand.js +2 -2
- package/dist/src/service/printer/command/LogLevelCommand.d.ts +2 -2
- package/dist/src/service/printer/command/LogLevelCommand.d.ts.map +1 -1
- package/dist/src/service/printer/command/LogLevelCommand.js +2 -2
- package/dist/src/service/printer/command/NoColorCommand.d.ts +2 -2
- package/dist/src/service/printer/command/NoColorCommand.d.ts.map +1 -1
- package/dist/src/service/printer/command/NoColorCommand.js +2 -2
- package/dist/src/service/printer/command/NoHyperlinksCommand.d.ts +2 -2
- package/dist/src/service/printer/command/NoHyperlinksCommand.d.ts.map +1 -1
- package/dist/src/service/printer/command/NoHyperlinksCommand.js +2 -2
- package/dist/src/service/prompter/command/NoPromptCommand.d.ts +2 -2
- package/dist/src/service/prompter/command/NoPromptCommand.d.ts.map +1 -1
- package/dist/src/service/prompter/command/NoPromptCommand.js +2 -2
- package/dist/src/service/spawn/DefaultSpawnService.js +6 -6
- package/dist/src/service/upgrade/DefaultUpgradeService.d.ts +2 -2
- package/dist/src/service/upgrade/DefaultUpgradeService.d.ts.map +1 -1
- package/dist/src/service/upgrade/DefaultUpgradeService.js +33 -51
- package/dist/src/service/upgrade/UpgradeServiceProvider.d.ts.map +1 -1
- package/dist/src/service/upgrade/UpgradeServiceProvider.js +12 -9
- package/dist/src/service/upgrade/command/UpgradeSubCommand.d.ts +2 -2
- package/dist/src/service/upgrade/command/UpgradeSubCommand.d.ts.map +1 -1
- package/dist/src/service/upgrade/command/UpgradeSubCommand.js +3 -3
- package/dist/src/util/envVarHelper.d.ts +3 -3
- package/dist/src/util/envVarHelper.d.ts.map +1 -1
- package/dist/src/util/envVarHelper.js +9 -12
- package/dist/src/util/helpHelper.d.ts.map +1 -1
- package/dist/src/util/helpHelper.js +27 -28
- package/index.ts +12 -10
- package/package.json +3 -3
- package/src/cli/BaseCLI.ts +7 -0
- package/src/cli/BaseCLIFeatureOptions.ts +1 -0
- package/src/command/MultiCommandCliHelpCommand.ts +7 -7
- package/src/runtime/command/CommandValidator.ts +17 -26
- package/src/runtime/parser.ts +8 -8
- package/src/runtime/runner.ts +16 -19
- package/src/runtime/values/ValuePopulationResult.ts +4 -4
- package/src/runtime/values/argumentValueMerge.ts +33 -50
- package/src/runtime/values/argumentValueValidation.ts +38 -52
- package/src/runtime/values/globalCommandValuePopulation.ts +7 -7
- package/src/runtime/values/subCommandValuePopulation.ts +42 -47
- package/src/service/argumentPrompter/DefaultArgumentPrompterService.ts +23 -26
- package/src/service/banner/command/NoBannerCommand.ts +3 -6
- package/src/service/completion/command/CompletionCompleteSubCommand.ts +4 -7
- package/src/service/completion/command/CompletionIntegrationSubCommand.ts +4 -7
- package/src/service/configuration/ConfigurationServiceProvider.ts +21 -21
- package/src/service/configuration/command/ConfigCommand.ts +3 -6
- package/src/service/fetch/DefaultFetchService.ts +55 -0
- package/src/service/fetch/FetchServiceProvider.ts +33 -0
- package/src/service/plugin/DefaultPluginServiceProvider.ts +29 -12
- package/src/service/plugin/FetchInterfaceAdapter.ts +28 -0
- package/src/service/plugin/SpawnInterfaceAdapter.ts +1 -1
- package/src/service/plugin/command/PluginAddSubCommand.ts +4 -4
- package/src/service/plugin/command/PluginListSubCommand.ts +2 -2
- package/src/service/plugin/command/PluginRemoveSubCommand.ts +4 -4
- package/src/service/plugin/command/PluginSearchSubCommand.ts +4 -4
- package/src/service/plugin/command/PluginUpgradeSubCommand.ts +2 -2
- package/src/service/printer/command/DarkModeCommand.ts +3 -6
- package/src/service/printer/command/LogLevelCommand.ts +3 -6
- package/src/service/printer/command/NoColorCommand.ts +3 -6
- package/src/service/printer/command/NoHyperlinksCommand.ts +3 -6
- package/src/service/prompter/command/NoPromptCommand.ts +3 -6
- package/src/service/prompter/prompt/promptText.ts +2 -2
- package/src/service/spawn/DefaultSpawnService.ts +6 -6
- package/src/service/upgrade/DefaultUpgradeService.ts +66 -65
- package/src/service/upgrade/UpgradeServiceProvider.ts +13 -9
- package/src/service/upgrade/command/UpgradeSubCommand.ts +4 -7
- package/src/util/envVarHelper.ts +23 -26
- package/src/util/helpHelper.ts +28 -36
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValueTypeName } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import { Icon, PRINTER_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
3
|
import { PLUGIN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
import { getPluginId } from "./getPluginId.js";
|
|
@@ -11,7 +11,7 @@ export class PluginAddSubCommand {
|
|
|
11
11
|
{
|
|
12
12
|
name: "pluginId",
|
|
13
13
|
description: "Plugin ID to install (e.g. @scope/name)",
|
|
14
|
-
type:
|
|
14
|
+
type: ValueTypeName.STRING,
|
|
15
15
|
},
|
|
16
16
|
];
|
|
17
17
|
async execute(context, argumentValues) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { SubCommand } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import type { Context } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Values } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
export declare class PluginListSubCommand implements SubCommand {
|
|
5
5
|
readonly name = "list";
|
|
6
6
|
readonly description = "List locally installed plugins";
|
|
7
7
|
readonly enableConfiguration = false;
|
|
8
8
|
readonly options: never[];
|
|
9
9
|
readonly positionals: never[];
|
|
10
|
-
execute(context: Context, _argumentValues:
|
|
10
|
+
execute(context: Context, _argumentValues: Values): Promise<void>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=PluginListSubCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginListSubCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/plugin/command/PluginListSubCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"PluginListSubCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/plugin/command/PluginListSubCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAOtE,qBAAa,oBAAqB,YAAW,UAAU;IACrD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,oCAAoC;IACxD,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW,UAAM;IAEpB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBxE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SubCommand } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import type { Context } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
|
-
import type {
|
|
4
|
-
import {
|
|
3
|
+
import type { Values } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
|
+
import { ValueTypeName } from "@flowscripter/dynamic-cli-framework-api";
|
|
5
5
|
export declare class PluginRemoveSubCommand implements SubCommand {
|
|
6
6
|
readonly name = "remove";
|
|
7
7
|
readonly description = "Remove a locally installed plugin";
|
|
@@ -10,8 +10,8 @@ export declare class PluginRemoveSubCommand implements SubCommand {
|
|
|
10
10
|
readonly positionals: {
|
|
11
11
|
name: string;
|
|
12
12
|
description: string;
|
|
13
|
-
type:
|
|
13
|
+
type: ValueTypeName;
|
|
14
14
|
}[];
|
|
15
|
-
execute(context: Context, argumentValues:
|
|
15
|
+
execute(context: Context, argumentValues: Values): Promise<void>;
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=PluginRemoveSubCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginRemoveSubCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/plugin/command/PluginRemoveSubCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"PluginRemoveSubCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/plugin/command/PluginRemoveSubCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAMxE,qBAAa,sBAAuB,YAAW,UAAU;IACvD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,uCAAuC;IAC3D,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW;;;;QAMlB;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CASvE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValueTypeName } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import { Icon, PRINTER_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
3
|
import { PLUGIN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
export class PluginRemoveSubCommand {
|
|
@@ -10,7 +10,7 @@ export class PluginRemoveSubCommand {
|
|
|
10
10
|
{
|
|
11
11
|
name: "pluginId",
|
|
12
12
|
description: "Plugin ID to remove (e.g. @scope/name)",
|
|
13
|
-
type:
|
|
13
|
+
type: ValueTypeName.STRING,
|
|
14
14
|
},
|
|
15
15
|
];
|
|
16
16
|
async execute(context, argumentValues) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SubCommand } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import type { Context } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
|
-
import type {
|
|
4
|
-
import {
|
|
3
|
+
import type { Values } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
|
+
import { ValueTypeName } from "@flowscripter/dynamic-cli-framework-api";
|
|
5
5
|
export declare class PluginSearchSubCommand implements SubCommand {
|
|
6
6
|
readonly name = "search";
|
|
7
7
|
readonly description = "Search remote plugins";
|
|
@@ -10,9 +10,9 @@ export declare class PluginSearchSubCommand implements SubCommand {
|
|
|
10
10
|
readonly positionals: {
|
|
11
11
|
name: string;
|
|
12
12
|
description: string;
|
|
13
|
-
type:
|
|
13
|
+
type: ValueTypeName;
|
|
14
14
|
isVarargOptional: boolean;
|
|
15
15
|
}[];
|
|
16
|
-
execute(context: Context, argumentValues:
|
|
16
|
+
execute(context: Context, argumentValues: Values): Promise<void>;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=PluginSearchSubCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginSearchSubCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/plugin/command/PluginSearchSubCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"PluginSearchSubCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/plugin/command/PluginSearchSubCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAOxE,qBAAa,sBAAuB,YAAW,UAAU;IACvD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,2BAA2B;IAC/C,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW;;;;;QAOlB;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBvE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValueTypeName } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import { PRINTER_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
3
|
import { PLUGIN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
import { getPluginId } from "./getPluginId.js";
|
|
@@ -11,7 +11,7 @@ export class PluginSearchSubCommand {
|
|
|
11
11
|
{
|
|
12
12
|
name: "query",
|
|
13
13
|
description: "Search query",
|
|
14
|
-
type:
|
|
14
|
+
type: ValueTypeName.STRING,
|
|
15
15
|
isVarargOptional: true,
|
|
16
16
|
},
|
|
17
17
|
];
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { SubCommand } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import type { Context } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Values } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
export declare class PluginUpgradeSubCommand implements SubCommand {
|
|
5
5
|
readonly name = "upgrade";
|
|
6
6
|
readonly description = "Upgrade locally installed plugins";
|
|
7
7
|
readonly enableConfiguration = false;
|
|
8
8
|
readonly options: never[];
|
|
9
9
|
readonly positionals: never[];
|
|
10
|
-
execute(context: Context, _argumentValues:
|
|
10
|
+
execute(context: Context, _argumentValues: Values): Promise<void>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=PluginUpgradeSubCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginUpgradeSubCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/plugin/command/PluginUpgradeSubCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"PluginUpgradeSubCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/plugin/command/PluginUpgradeSubCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAOtE,qBAAa,uBAAwB,YAAW,UAAU;IACxD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,uCAAuC;IAC3D,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW,UAAM;IAEpB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBxE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GlobalModifierCommand } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import type { GlobalCommandArgument } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
|
-
import { type
|
|
3
|
+
import { type SingleValueType } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
import type { Context } from "@flowscripter/dynamic-cli-framework-api";
|
|
5
5
|
import type PrinterServiceProvider from "../PrinterServiceProvider.ts";
|
|
6
6
|
/**
|
|
@@ -14,6 +14,6 @@ export default class DarkModeCommand implements GlobalModifierCommand {
|
|
|
14
14
|
readonly argument: GlobalCommandArgument;
|
|
15
15
|
readonly executePriority: number;
|
|
16
16
|
constructor(printerServiceProvider: PrinterServiceProvider, executePriority: number);
|
|
17
|
-
execute(_context: Context, argumentValue:
|
|
17
|
+
execute(_context: Context, argumentValue: SingleValueType): Promise<void>;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=DarkModeCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DarkModeCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/printer/command/DarkModeCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,
|
|
1
|
+
{"version":3,"file":"DarkModeCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/printer/command/DarkModeCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,yCAAyC,CAAC;AAC9F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,sBAAsB,MAAM,8BAA8B,CAAC;AAEvE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,qBAAqB;;IACnE,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,iCAAiC;IACrD,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAItC;IACF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAId,sBAAsB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM;IAKnF,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAKjF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValueTypeName } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
/**
|
|
3
3
|
* Command allowing the specification of dark/light mode for {@link PrinterServiceProvider}.
|
|
4
4
|
*/
|
|
@@ -7,7 +7,7 @@ export default class DarkModeCommand {
|
|
|
7
7
|
description = "Enable dark mode for output";
|
|
8
8
|
enableConfiguration = true;
|
|
9
9
|
argument = {
|
|
10
|
-
type:
|
|
10
|
+
type: ValueTypeName.BOOLEAN,
|
|
11
11
|
defaultValue: false,
|
|
12
12
|
configurationKey: "DARK_MODE",
|
|
13
13
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GlobalCommandArgument } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
|
-
import { type
|
|
2
|
+
import { type SingleValueType } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
3
|
import type { GlobalModifierCommand } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
import type { Context } from "@flowscripter/dynamic-cli-framework-api";
|
|
5
5
|
import type PrinterServiceProvider from "../PrinterServiceProvider.ts";
|
|
@@ -14,6 +14,6 @@ export default class LogLevelCommand implements GlobalModifierCommand {
|
|
|
14
14
|
readonly argument: GlobalCommandArgument;
|
|
15
15
|
readonly executePriority: number;
|
|
16
16
|
constructor(printerServiceProvider: PrinterServiceProvider, executePriority: number);
|
|
17
|
-
execute(_context: Context, argumentValue:
|
|
17
|
+
execute(_context: Context, argumentValue: SingleValueType): Promise<void>;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=LogLevelCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogLevelCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/printer/command/LogLevelCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,
|
|
1
|
+
{"version":3,"file":"LogLevelCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/printer/command/LogLevelCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,yCAAyC,CAAC;AAC9F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,sBAAsB,MAAM,8BAA8B,CAAC;AAGvE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,qBAAqB;;IACnE,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,+BAA+B;IACnD,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAMtC;IACF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAId,sBAAsB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM;IAKnF,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBjF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValueTypeName } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import { Level } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
3
|
/**
|
|
4
4
|
* Command allowing the setting of the log level for {@link PrinterServiceProvider}.
|
|
@@ -8,7 +8,7 @@ export default class LogLevelCommand {
|
|
|
8
8
|
description = "Set the logging threshold";
|
|
9
9
|
enableConfiguration = true;
|
|
10
10
|
argument = {
|
|
11
|
-
type:
|
|
11
|
+
type: ValueTypeName.STRING,
|
|
12
12
|
allowableValues: ["DEBUG", "INFO", "WARN", "ERROR"],
|
|
13
13
|
isCaseInsensitive: true,
|
|
14
14
|
defaultValue: "INFO",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GlobalModifierCommand } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import type { GlobalCommandArgument } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
|
-
import { type
|
|
3
|
+
import { type SingleValueType } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
import type { Context } from "@flowscripter/dynamic-cli-framework-api";
|
|
5
5
|
import type PrinterServiceProvider from "../PrinterServiceProvider.ts";
|
|
6
6
|
/**
|
|
@@ -14,6 +14,6 @@ export default class NoColorCommand implements GlobalModifierCommand {
|
|
|
14
14
|
readonly argument: GlobalCommandArgument;
|
|
15
15
|
readonly executePriority: number;
|
|
16
16
|
constructor(printerServiceProvider: PrinterServiceProvider, executePriority: number);
|
|
17
|
-
execute(_context: Context, argumentValue:
|
|
17
|
+
execute(_context: Context, argumentValue: SingleValueType): Promise<void>;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=NoColorCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoColorCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/printer/command/NoColorCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,
|
|
1
|
+
{"version":3,"file":"NoColorCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/printer/command/NoColorCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,yCAAyC,CAAC;AAC9F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,sBAAsB,MAAM,8BAA8B,CAAC;AAEvE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,qBAAqB;;IAClE,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,8BAA8B;IAClD,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAItC;IACF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAId,sBAAsB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM;IAKnF,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAKjF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValueTypeName } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
/**
|
|
3
3
|
* Command allowing the disabling of color for {@link PrinterServiceProvider}.
|
|
4
4
|
*/
|
|
@@ -7,7 +7,7 @@ export default class NoColorCommand {
|
|
|
7
7
|
description = "Disable color for output";
|
|
8
8
|
enableConfiguration = true;
|
|
9
9
|
argument = {
|
|
10
|
-
type:
|
|
10
|
+
type: ValueTypeName.BOOLEAN,
|
|
11
11
|
defaultValue: false,
|
|
12
12
|
configurationKey: "NO_COLOR",
|
|
13
13
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GlobalModifierCommand } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import type { GlobalCommandArgument } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
|
-
import { type
|
|
3
|
+
import { type SingleValueType } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
import type { Context } from "@flowscripter/dynamic-cli-framework-api";
|
|
5
5
|
import type PrinterServiceProvider from "../PrinterServiceProvider.ts";
|
|
6
6
|
export default class NoHyperlinksCommand implements GlobalModifierCommand {
|
|
@@ -11,6 +11,6 @@ export default class NoHyperlinksCommand implements GlobalModifierCommand {
|
|
|
11
11
|
readonly argument: GlobalCommandArgument;
|
|
12
12
|
readonly executePriority: number;
|
|
13
13
|
constructor(printerServiceProvider: PrinterServiceProvider, executePriority: number);
|
|
14
|
-
execute(_context: Context, argumentValue:
|
|
14
|
+
execute(_context: Context, argumentValue: SingleValueType): Promise<void>;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=NoHyperlinksCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoHyperlinksCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/printer/command/NoHyperlinksCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,
|
|
1
|
+
{"version":3,"file":"NoHyperlinksCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/printer/command/NoHyperlinksCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,yCAAyC,CAAC;AAC9F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,sBAAsB,MAAM,8BAA8B,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,qBAAqB;;IACvE,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,WAAW,mCAAmC;IACvD,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAItC;IACF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAId,sBAAsB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM;IAKnF,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAKjF"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValueTypeName } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
export default class NoHyperlinksCommand {
|
|
3
3
|
name = "no-hyperlinks";
|
|
4
4
|
description = "Disable hyperlinks for output";
|
|
5
5
|
enableConfiguration = true;
|
|
6
6
|
argument = {
|
|
7
|
-
type:
|
|
7
|
+
type: ValueTypeName.BOOLEAN,
|
|
8
8
|
defaultValue: false,
|
|
9
9
|
configurationKey: "NO_HYPERLINKS",
|
|
10
10
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GlobalModifierCommand } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import type { GlobalCommandArgument } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
|
-
import { type
|
|
3
|
+
import { type SingleValueType } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
import type { Context } from "@flowscripter/dynamic-cli-framework-api";
|
|
5
5
|
import type PrompterServiceProvider from "../PrompterServiceProvider.ts";
|
|
6
6
|
export default class NoPromptCommand implements GlobalModifierCommand {
|
|
@@ -11,6 +11,6 @@ export default class NoPromptCommand implements GlobalModifierCommand {
|
|
|
11
11
|
readonly argument: GlobalCommandArgument;
|
|
12
12
|
readonly executePriority: number;
|
|
13
13
|
constructor(prompterServiceProvider: PrompterServiceProvider, executePriority: number);
|
|
14
|
-
execute(_context: Context, argumentValue:
|
|
14
|
+
execute(_context: Context, argumentValue: SingleValueType): Promise<void>;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=NoPromptCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoPromptCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/prompter/command/NoPromptCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,
|
|
1
|
+
{"version":3,"file":"NoPromptCommand.d.ts","sourceRoot":"","sources":["../../../../../src/service/prompter/command/NoPromptCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,yCAAyC,CAAC;AAC9F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,uBAAuB,MAAM,+BAA+B,CAAC;AAEzE,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,qBAAqB;;IACnE,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,mCAAmC;IACvD,QAAQ,CAAC,mBAAmB,QAAQ;IACpC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAItC;IACF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAId,uBAAuB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM;IAKrF,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAKjF"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValueTypeName } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
export default class NoPromptCommand {
|
|
3
3
|
name = "no-prompt";
|
|
4
4
|
description = "Disable interactive prompting";
|
|
5
5
|
enableConfiguration = true;
|
|
6
6
|
argument = {
|
|
7
|
-
type:
|
|
7
|
+
type: ValueTypeName.BOOLEAN,
|
|
8
8
|
defaultValue: false,
|
|
9
9
|
configurationKey: "NO_PROMPT",
|
|
10
10
|
};
|
|
@@ -70,9 +70,9 @@ export default class DefaultSpawnService {
|
|
|
70
70
|
}
|
|
71
71
|
const printerService = this.#printerService;
|
|
72
72
|
const shutdownService = this.#shutdownService;
|
|
73
|
-
const
|
|
73
|
+
const mode = options.mode ?? "inherit";
|
|
74
74
|
const longRunning = options.longRunning ?? true;
|
|
75
|
-
if (
|
|
75
|
+
if (mode === "inherit") {
|
|
76
76
|
await printerService.hideSpinner();
|
|
77
77
|
await printerService.hideAllProgressBars();
|
|
78
78
|
}
|
|
@@ -80,9 +80,9 @@ export default class DefaultSpawnService {
|
|
|
80
80
|
try {
|
|
81
81
|
proc = Bun.spawn(resolveForPlatform(command), {
|
|
82
82
|
cwd: options.cwd,
|
|
83
|
-
stdin:
|
|
84
|
-
stdout:
|
|
85
|
-
stderr:
|
|
83
|
+
stdin: mode === "inherit" ? "inherit" : "ignore",
|
|
84
|
+
stdout: mode === "wrapped" ? "pipe" : mode === "ignore" ? "ignore" : "inherit",
|
|
85
|
+
stderr: mode === "wrapped" ? "pipe" : mode === "ignore" ? "ignore" : "inherit",
|
|
86
86
|
});
|
|
87
87
|
}
|
|
88
88
|
catch (error) {
|
|
@@ -99,7 +99,7 @@ export default class DefaultSpawnService {
|
|
|
99
99
|
}
|
|
100
100
|
await this.#terminate(proc, command);
|
|
101
101
|
});
|
|
102
|
-
if (
|
|
102
|
+
if (mode === "wrapped" && options.onOutput) {
|
|
103
103
|
const onOutput = options.onOutput;
|
|
104
104
|
void this.#pipeLines(proc.stdout, "stdout", onOutput);
|
|
105
105
|
void this.#pipeLines(proc.stderr, "stderr", onOutput);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { CLIConfig,
|
|
1
|
+
import type { CLIConfig, FetchService, SpawnService, UpgradeCheckResult, UpgradeResult } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import { InstallMethod, SupportedArch, SupportedOs, type UpgradeService } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
3
|
import type { UpgradeLocationsConfig } from "./UpgradeLocationsConfig.ts";
|
|
4
4
|
export declare const VERSION_CHECK_TIMEOUT_MS = 250;
|
|
5
5
|
export default class DefaultUpgradeService implements UpgradeService {
|
|
6
6
|
#private;
|
|
7
7
|
constructor(config: UpgradeLocationsConfig, cliConfig: CLIConfig);
|
|
8
|
-
setDependencies(spawnService: SpawnService,
|
|
8
|
+
setDependencies(spawnService: SpawnService | undefined, fetchService: FetchService | undefined): void;
|
|
9
9
|
getUpgradeCheckResult(waitForResult?: boolean): Promise<UpgradeCheckResult | undefined>;
|
|
10
10
|
detectOs(): SupportedOs | undefined;
|
|
11
11
|
detectArch(): SupportedArch | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultUpgradeService.d.ts","sourceRoot":"","sources":["../../../../src/service/upgrade/DefaultUpgradeService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"DefaultUpgradeService.d.ts","sourceRoot":"","sources":["../../../../src/service/upgrade/DefaultUpgradeService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EAEZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,KAAK,cAAc,EACpB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAO1E,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAc5C,MAAM,CAAC,OAAO,OAAO,qBAAsB,YAAW,cAAc;;gBAO/C,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,SAAS;IAKhE,eAAe,CACpB,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,YAAY,EAAE,YAAY,GAAG,SAAS,GACrC,IAAI;IAKA,qBAAqB,CAAC,aAAa,UAAQ,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAerF,QAAQ,IAAI,WAAW,GAAG,SAAS;IAanC,UAAU,IAAI,aAAa,GAAG,SAAS;IAWjC,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAgBxE,eAAe,CAC1B,UAAU,CAAC,EAAE,WAAW,EACxB,YAAY,CAAC,EAAE,aAAa,EAC5B,qBAAqB,CAAC,EAAE,aAAa,GACpC,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAmC7B,OAAO,CAClB,UAAU,CAAC,EAAE,WAAW,EACxB,YAAY,CAAC,EAAE,aAAa,EAC5B,qBAAqB,CAAC,EAAE,aAAa,GACpC,OAAO,CAAC,aAAa,CAAC;CAuQ1B"}
|
|
@@ -21,7 +21,7 @@ const OS_LABELS = {
|
|
|
21
21
|
};
|
|
22
22
|
export default class DefaultUpgradeService {
|
|
23
23
|
#spawnService;
|
|
24
|
-
#
|
|
24
|
+
#fetchService;
|
|
25
25
|
#upgradeCheckPromise;
|
|
26
26
|
#config;
|
|
27
27
|
#cliConfig;
|
|
@@ -29,9 +29,9 @@ export default class DefaultUpgradeService {
|
|
|
29
29
|
this.#config = config;
|
|
30
30
|
this.#cliConfig = cliConfig;
|
|
31
31
|
}
|
|
32
|
-
setDependencies(spawnService,
|
|
32
|
+
setDependencies(spawnService, fetchService) {
|
|
33
33
|
this.#spawnService = spawnService;
|
|
34
|
-
this.#
|
|
34
|
+
this.#fetchService = fetchService;
|
|
35
35
|
}
|
|
36
36
|
getUpgradeCheckResult(waitForResult = false) {
|
|
37
37
|
if (!this.#upgradeCheckPromise) {
|
|
@@ -128,6 +128,9 @@ export default class DefaultUpgradeService {
|
|
|
128
128
|
if (!this.#spawnService) {
|
|
129
129
|
return { ok: false, oldVersion, error: new Error("SpawnService is not available") };
|
|
130
130
|
}
|
|
131
|
+
if (checkResult.installMethod === InstallMethod.GITHUB_RELEASE && !this.#fetchService) {
|
|
132
|
+
return { ok: false, oldVersion, error: new Error("FetchService is not available") };
|
|
133
|
+
}
|
|
131
134
|
try {
|
|
132
135
|
switch (checkResult.installMethod) {
|
|
133
136
|
case InstallMethod.LINUX_SCRIPT:
|
|
@@ -156,14 +159,14 @@ export default class DefaultUpgradeService {
|
|
|
156
159
|
if (!this.#spawnService || !this.#config.homebrew) {
|
|
157
160
|
return false;
|
|
158
161
|
}
|
|
159
|
-
const result = await this.#spawnService.spawn(["brew", "list", "--versions", this.#config.homebrew.formula], {
|
|
162
|
+
const result = await this.#spawnService.spawn(["brew", "list", "--versions", this.#config.homebrew.formula], { mode: "ignore", longRunning: false, timeoutMs: VERSION_CHECK_TIMEOUT_MS });
|
|
160
163
|
return result.ok;
|
|
161
164
|
}
|
|
162
165
|
async #isWingetInstalled() {
|
|
163
166
|
if (!this.#spawnService || !this.#config.winget) {
|
|
164
167
|
return false;
|
|
165
168
|
}
|
|
166
|
-
const result = await this.#spawnService.spawn(["winget", "list", "--id", this.#config.winget.packageId], {
|
|
169
|
+
const result = await this.#spawnService.spawn(["winget", "list", "--id", this.#config.winget.packageId], { mode: "ignore", longRunning: false, timeoutMs: VERSION_CHECK_TIMEOUT_MS });
|
|
167
170
|
return result.ok;
|
|
168
171
|
}
|
|
169
172
|
#isLinuxScriptInstall() {
|
|
@@ -183,12 +186,12 @@ export default class DefaultUpgradeService {
|
|
|
183
186
|
}
|
|
184
187
|
}
|
|
185
188
|
async #getLatestGithubReleaseVersion() {
|
|
186
|
-
if (!this.#config.githubRelease) {
|
|
189
|
+
if (!this.#config.githubRelease || !this.#fetchService) {
|
|
187
190
|
return undefined;
|
|
188
191
|
}
|
|
189
192
|
const { owner, repo } = this.#config.githubRelease;
|
|
190
193
|
try {
|
|
191
|
-
const response = await fetch(`https://api.github.com/repos/${owner}/${repo}/releases/latest`, {
|
|
194
|
+
const response = await this.#fetchService.fetch(`https://api.github.com/repos/${owner}/${repo}/releases/latest`, { timeoutMs: VERSION_CHECK_TIMEOUT_MS });
|
|
192
195
|
if (!response.ok) {
|
|
193
196
|
return undefined;
|
|
194
197
|
}
|
|
@@ -201,7 +204,7 @@ export default class DefaultUpgradeService {
|
|
|
201
204
|
}
|
|
202
205
|
}
|
|
203
206
|
async #getLatestHomebrewVersion() {
|
|
204
|
-
if (!this.#config.homebrew) {
|
|
207
|
+
if (!this.#config.homebrew || !this.#fetchService) {
|
|
205
208
|
return undefined;
|
|
206
209
|
}
|
|
207
210
|
const { tap, formula } = this.#config.homebrew;
|
|
@@ -210,7 +213,7 @@ export default class DefaultUpgradeService {
|
|
|
210
213
|
return undefined;
|
|
211
214
|
}
|
|
212
215
|
try {
|
|
213
|
-
const response = await fetch(`https://raw.githubusercontent.com/${tapOwner}/homebrew-${tapName}/main/${formula}.rb`, {
|
|
216
|
+
const response = await this.#fetchService.fetch(`https://raw.githubusercontent.com/${tapOwner}/homebrew-${tapName}/main/${formula}.rb`, { timeoutMs: VERSION_CHECK_TIMEOUT_MS });
|
|
214
217
|
if (!response.ok) {
|
|
215
218
|
return undefined;
|
|
216
219
|
}
|
|
@@ -228,7 +231,7 @@ export default class DefaultUpgradeService {
|
|
|
228
231
|
}
|
|
229
232
|
const lines = [];
|
|
230
233
|
const result = await this.#spawnService.spawn(["winget", "show", "--id", this.#config.winget.packageId], {
|
|
231
|
-
|
|
234
|
+
mode: "wrapped",
|
|
232
235
|
longRunning: false,
|
|
233
236
|
timeoutMs: VERSION_CHECK_TIMEOUT_MS,
|
|
234
237
|
onOutput: (line) => lines.push(line),
|
|
@@ -246,14 +249,18 @@ export default class DefaultUpgradeService {
|
|
|
246
249
|
}
|
|
247
250
|
async #upgradeViaLinuxScript() {
|
|
248
251
|
const { scriptUrl } = this.#config.linuxScript;
|
|
249
|
-
const result = await this.#spawnService.spawn(["sh", "-c", `curl -fsSL ${scriptUrl} | sh`]
|
|
252
|
+
const result = await this.#spawnService.spawn(["sh", "-c", `curl -fsSL ${scriptUrl} | sh`], {
|
|
253
|
+
mode: "ignore",
|
|
254
|
+
});
|
|
250
255
|
if (!result.ok) {
|
|
251
256
|
throw new Error(`Install script failed: ${describeSpawnFailure(result)}`);
|
|
252
257
|
}
|
|
253
258
|
}
|
|
254
259
|
async #upgradeViaHomebrew() {
|
|
255
260
|
const { tap, formula } = this.#config.homebrew;
|
|
256
|
-
const result = await this.#spawnService.spawn(["brew", "upgrade", `${tap}/${formula}`]
|
|
261
|
+
const result = await this.#spawnService.spawn(["brew", "upgrade", `${tap}/${formula}`], {
|
|
262
|
+
mode: "ignore",
|
|
263
|
+
});
|
|
257
264
|
if (!result.ok) {
|
|
258
265
|
throw new Error(`brew upgrade failed: ${describeSpawnFailure(result)}`);
|
|
259
266
|
}
|
|
@@ -268,7 +275,7 @@ export default class DefaultUpgradeService {
|
|
|
268
275
|
"--silent",
|
|
269
276
|
"--accept-package-agreements",
|
|
270
277
|
"--accept-source-agreements",
|
|
271
|
-
]);
|
|
278
|
+
], { mode: "ignore" });
|
|
272
279
|
if (!result.ok) {
|
|
273
280
|
throw new Error(`winget upgrade failed: ${describeSpawnFailure(result)}`);
|
|
274
281
|
}
|
|
@@ -278,20 +285,13 @@ export default class DefaultUpgradeService {
|
|
|
278
285
|
const archLabel = os === SupportedOs.MACOS ? "aarch64" : arch === SupportedArch.X64 ? "x64" : "arm64";
|
|
279
286
|
const assetName = assetPattern.replace("{os}", OS_LABELS[os]).replace("{arch}", archLabel);
|
|
280
287
|
const url = `https://github.com/${owner}/${repo}/releases/latest/download/${assetName}`;
|
|
281
|
-
//
|
|
282
|
-
//
|
|
283
|
-
this.#
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
const response = await fetch(url);
|
|
287
|
-
if (!response.ok) {
|
|
288
|
-
throw new Error(`Failed to download release asset '${assetName}': HTTP ${response.status}`);
|
|
289
|
-
}
|
|
290
|
-
archiveData = await response.arrayBuffer();
|
|
291
|
-
}
|
|
292
|
-
finally {
|
|
293
|
-
this.#shutdownService?.leaveLongRunningMode();
|
|
288
|
+
// longRunning: true gets cooperative Ctrl-C handling during what can be the slowest step of
|
|
289
|
+
// the upgrade.
|
|
290
|
+
const response = await this.#fetchService.fetch(url, { longRunning: true });
|
|
291
|
+
if (!response.ok) {
|
|
292
|
+
throw new Error(`Failed to download release asset '${assetName}': HTTP ${response.status}`);
|
|
294
293
|
}
|
|
294
|
+
const archiveData = await response.arrayBuffer();
|
|
295
295
|
const tmpDir = await mkdtemp(join(tmpdir(), "upgrade-"));
|
|
296
296
|
const archivePath = join(tmpDir, assetName);
|
|
297
297
|
await Bun.write(archivePath, archiveData);
|
|
@@ -301,49 +301,31 @@ export default class DefaultUpgradeService {
|
|
|
301
301
|
"powershell",
|
|
302
302
|
"-Command",
|
|
303
303
|
`Expand-Archive -Path '${archivePath}' -DestinationPath '${tmpDir}' -Force`,
|
|
304
|
-
]);
|
|
304
|
+
], { mode: "ignore" });
|
|
305
305
|
if (!extractResult.ok) {
|
|
306
306
|
throw new Error("Failed to extract release archive");
|
|
307
307
|
}
|
|
308
308
|
const extractedBinary = join(tmpDir, `${this.#cliConfig.name}.exe`);
|
|
309
309
|
const oldPath = `${currentExecutable}.old.exe`;
|
|
310
|
-
const moveResult = await this.#spawnService.spawn([
|
|
311
|
-
"cmd",
|
|
312
|
-
"/c",
|
|
313
|
-
"move",
|
|
314
|
-
"/y",
|
|
315
|
-
currentExecutable,
|
|
316
|
-
oldPath,
|
|
317
|
-
]);
|
|
310
|
+
const moveResult = await this.#spawnService.spawn(["cmd", "/c", "move", "/y", currentExecutable, oldPath], { mode: "ignore" });
|
|
318
311
|
if (!moveResult.ok) {
|
|
319
312
|
throw new Error("Failed to move current executable aside");
|
|
320
313
|
}
|
|
321
|
-
const copyResult = await this.#spawnService.spawn([
|
|
322
|
-
"cmd",
|
|
323
|
-
"/c",
|
|
324
|
-
"copy",
|
|
325
|
-
"/y",
|
|
326
|
-
extractedBinary,
|
|
327
|
-
currentExecutable,
|
|
328
|
-
]);
|
|
314
|
+
const copyResult = await this.#spawnService.spawn(["cmd", "/c", "copy", "/y", extractedBinary, currentExecutable], { mode: "ignore" });
|
|
329
315
|
if (!copyResult.ok) {
|
|
330
316
|
throw new Error("Failed to copy new executable into place");
|
|
331
317
|
}
|
|
332
318
|
}
|
|
333
319
|
else {
|
|
334
|
-
const extractResult = await this.#spawnService.spawn([
|
|
335
|
-
"
|
|
336
|
-
|
|
337
|
-
archivePath,
|
|
338
|
-
"-d",
|
|
339
|
-
tmpDir,
|
|
340
|
-
]);
|
|
320
|
+
const extractResult = await this.#spawnService.spawn(["unzip", "-o", archivePath, "-d", tmpDir], {
|
|
321
|
+
mode: "ignore",
|
|
322
|
+
});
|
|
341
323
|
if (!extractResult.ok) {
|
|
342
324
|
throw new Error("Failed to extract release archive");
|
|
343
325
|
}
|
|
344
326
|
const extractedBinary = join(tmpDir, this.#cliConfig.name);
|
|
345
327
|
await Bun.write(currentExecutable, Bun.file(extractedBinary));
|
|
346
|
-
await this.#spawnService.spawn(["chmod", "+x", currentExecutable]);
|
|
328
|
+
await this.#spawnService.spawn(["chmod", "+x", currentExecutable], { mode: "ignore" });
|
|
347
329
|
}
|
|
348
330
|
}
|
|
349
331
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpgradeServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/service/upgrade/UpgradeServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAK1E,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,eAAe;;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAsB;IAChD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAKd,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB;IAKnE,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IASpD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"UpgradeServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/service/upgrade/UpgradeServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAK1E,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,eAAe;;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAsB;IAChD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAKd,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB;IAKnE,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IASpD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAsH1D"}
|