@flowscripter/dynamic-cli-framework 7.0.10 → 7.1.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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/src/cli/BaseCLI.d.ts.map +1 -1
- package/dist/src/cli/BaseCLI.js +24 -22
- package/dist/src/cli/BaseCLIFeatureOptions.d.ts +5 -0
- package/dist/src/cli/BaseCLIFeatureOptions.d.ts.map +1 -1
- package/dist/src/cli/DefaultRuntimeCLI.js +1 -1
- package/dist/src/runtime/lifecycle/priorities.d.ts +50 -0
- package/dist/src/runtime/lifecycle/priorities.d.ts.map +1 -0
- package/dist/src/runtime/lifecycle/priorities.js +49 -0
- package/dist/src/runtime/runner.d.ts +10 -1
- package/dist/src/runtime/runner.d.ts.map +1 -1
- package/dist/src/runtime/runner.js +7 -1
- package/dist/src/service/configuration/DefaultKeyValueService.d.ts +9 -1
- package/dist/src/service/configuration/DefaultKeyValueService.d.ts.map +1 -1
- package/dist/src/service/configuration/DefaultKeyValueService.js +16 -1
- package/dist/src/service/configuration/KeyValueServiceProvider.d.ts.map +1 -1
- package/dist/src/service/configuration/KeyValueServiceProvider.js +15 -9
- package/dist/src/service/fetch/DefaultFetchService.d.ts.map +1 -1
- package/dist/src/service/fetch/DefaultFetchService.js +2 -1
- package/dist/src/service/printer/PrinterServiceProvider.d.ts.map +1 -1
- package/dist/src/service/printer/PrinterServiceProvider.js +2 -1
- package/dist/src/service/shutdown/ShutdownServiceProvider.js +3 -3
- package/dist/src/service/spawn/DefaultSpawnService.d.ts.map +1 -1
- package/dist/src/service/spawn/DefaultSpawnService.js +3 -1
- package/dist/src/service/upgrade/DefaultUpgradeService.d.ts +30 -2
- package/dist/src/service/upgrade/DefaultUpgradeService.d.ts.map +1 -1
- package/dist/src/service/upgrade/DefaultUpgradeService.js +99 -6
- package/dist/src/service/upgrade/UpgradeServiceProvider.d.ts +32 -2
- package/dist/src/service/upgrade/UpgradeServiceProvider.d.ts.map +1 -1
- package/dist/src/service/upgrade/UpgradeServiceProvider.js +82 -14
- package/dist/src/startup/banner/bannerStartupTask.d.ts +5 -5
- package/dist/src/startup/banner/bannerStartupTask.d.ts.map +1 -1
- package/dist/src/startup/banner/bannerStartupTask.js +14 -10
- package/index.ts +20 -0
- package/package.json +2 -2
- package/src/cli/BaseCLI.ts +67 -21
- package/src/cli/BaseCLIFeatureOptions.ts +5 -0
- package/src/cli/DefaultRuntimeCLI.ts +1 -1
- package/src/runtime/lifecycle/priorities.ts +67 -0
- package/src/runtime/runner.ts +17 -2
- package/src/service/configuration/DefaultKeyValueService.ts +22 -1
- package/src/service/configuration/KeyValueServiceProvider.ts +20 -9
- package/src/service/fetch/DefaultFetchService.ts +2 -1
- package/src/service/printer/PrinterServiceProvider.ts +2 -1
- package/src/service/shutdown/ShutdownServiceProvider.ts +3 -3
- package/src/service/spawn/DefaultSpawnService.ts +3 -1
- package/src/service/upgrade/DefaultUpgradeService.ts +112 -5
- package/src/service/upgrade/UpgradeServiceProvider.ts +112 -20
- package/src/service/upgrade/command/UpgradeSubCommand.ts +2 -2
- package/src/startup/banner/bannerStartupTask.ts +16 -10
package/dist/index.d.ts
CHANGED
|
@@ -120,6 +120,7 @@ export { PLUGIN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
|
120
120
|
export type { PluginService } from "@flowscripter/dynamic-cli-framework-api";
|
|
121
121
|
export { default as PluginServiceProvider } from "./src/service/plugin/PluginServiceProvider.ts";
|
|
122
122
|
export { default as BaseCLI } from "./src/cli/BaseCLI.ts";
|
|
123
|
+
export { SHUTDOWN_SERVICE_PRIORITY, STARTUP_SERVICE_PRIORITY, CONFIGURATION_SERVICE_PRIORITY, KEY_VALUE_SERVICE_PRIORITY, PRINTER_SERVICE_PRIORITY, PROMPTER_SERVICE_PRIORITY, TABLE_GENERATOR_SERVICE_PRIORITY, ARGUMENT_PROMPTER_SERVICE_PRIORITY, SPAWN_SERVICE_PRIORITY, FETCH_SERVICE_PRIORITY, UPGRADE_SERVICE_PRIORITY, UPGRADE_CHECK_STARTUP_TASK_PRIORITY, IMAGE_PRINTER_SERVICE_PRIORITY, PLUGIN_SERVICE_PRIORITY, AUTO_UPGRADE_STARTUP_TASK_PRIORITY, COMPLETION_SERVICE_PRIORITY, CLEANUP_SHUTDOWN_TASK_PRIORITY, KEY_VALUE_FLUSH_SHUTDOWN_TASK_PRIORITY, } from "./src/runtime/lifecycle/priorities.ts";
|
|
123
124
|
export { default as DefaultRuntimeCLI } from "./src/cli/DefaultRuntimeCLI.ts";
|
|
124
125
|
export type { default as Terminal } from "./src/terminal/Terminal.ts";
|
|
125
126
|
export type { default as Styler } from "./src/terminal/Styler.ts";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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
|
@@ -74,6 +74,7 @@ export { PLUGIN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
|
74
74
|
export { default as PluginServiceProvider } from "./src/service/plugin/PluginServiceProvider.js";
|
|
75
75
|
// Core CLI
|
|
76
76
|
export { default as BaseCLI } from "./src/cli/BaseCLI.js";
|
|
77
|
+
export { SHUTDOWN_SERVICE_PRIORITY, STARTUP_SERVICE_PRIORITY, CONFIGURATION_SERVICE_PRIORITY, KEY_VALUE_SERVICE_PRIORITY, PRINTER_SERVICE_PRIORITY, PROMPTER_SERVICE_PRIORITY, TABLE_GENERATOR_SERVICE_PRIORITY, ARGUMENT_PROMPTER_SERVICE_PRIORITY, SPAWN_SERVICE_PRIORITY, FETCH_SERVICE_PRIORITY, UPGRADE_SERVICE_PRIORITY, UPGRADE_CHECK_STARTUP_TASK_PRIORITY, IMAGE_PRINTER_SERVICE_PRIORITY, PLUGIN_SERVICE_PRIORITY, AUTO_UPGRADE_STARTUP_TASK_PRIORITY, COMPLETION_SERVICE_PRIORITY, CLEANUP_SHUTDOWN_TASK_PRIORITY, KEY_VALUE_FLUSH_SHUTDOWN_TASK_PRIORITY, } from "./src/runtime/lifecycle/priorities.js";
|
|
77
78
|
export { default as DefaultRuntimeCLI } from "./src/cli/DefaultRuntimeCLI.js";
|
|
78
79
|
export { SpecialKey } from "./src/terminal/KeyReader.js";
|
|
79
80
|
export { default as TtyKeyReader } from "./src/terminal/TtyKeyReader.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCLI.d.ts","sourceRoot":"","sources":["../../../src/cli/BaseCLI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAS3E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAGpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseCLI.d.ts","sourceRoot":"","sources":["../../../src/cli/BaseCLI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAGvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAS3E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAGpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AAqCpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,YAAW,GAAG;;IAazC,YACE,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,cAAc,EACpC,oBAAoB,EAAE,cAAc,EACpC,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,QAAQ,EACxB,cAAc,EAAE,QAAQ,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,qBAAqB,EAmEhC;IAED;;;;;;;OAOG;IACI,kBAAkB,CAAC,eAAe,EAAE,eAAe,QAEzD;IAED;;;;;;;;OAQG;IACH;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,WAAW,QAEtC;IAEM,UAAU,CAAC,OAAO,EAAE,OAAO,QAQjC;IAEK,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAoQzD;CACF"}
|
package/dist/src/cli/BaseCLI.js
CHANGED
|
@@ -29,8 +29,9 @@ import CompletionServiceProvider from "../service/completion/CompletionServicePr
|
|
|
29
29
|
import ImagePrinterServiceProvider from "../service/imagePrinter/ImagePrinterServiceProvider.js";
|
|
30
30
|
import SpawnServiceProvider from "../service/spawn/SpawnServiceProvider.js";
|
|
31
31
|
import FetchServiceProvider from "../service/fetch/FetchServiceProvider.js";
|
|
32
|
-
import UpgradeServiceProvider, { createUpgradeCheckStartupTask, } from "../service/upgrade/UpgradeServiceProvider.js";
|
|
32
|
+
import UpgradeServiceProvider, { createAutoUpgradeStartupTask, createUpgradeCheckStartupTask, } from "../service/upgrade/UpgradeServiceProvider.js";
|
|
33
33
|
import PluginServiceProvider from "../service/plugin/PluginServiceProvider.js";
|
|
34
|
+
import { ARGUMENT_PROMPTER_SERVICE_PRIORITY, AUTO_UPGRADE_STARTUP_TASK_PRIORITY, COMPLETION_SERVICE_PRIORITY, CONFIGURATION_SERVICE_PRIORITY, FETCH_SERVICE_PRIORITY, IMAGE_PRINTER_SERVICE_PRIORITY, KEY_VALUE_SERVICE_PRIORITY, PLUGIN_SERVICE_PRIORITY, PRINTER_SERVICE_PRIORITY, PROMPTER_SERVICE_PRIORITY, SHUTDOWN_SERVICE_PRIORITY, SPAWN_SERVICE_PRIORITY, STARTUP_SERVICE_PRIORITY, TABLE_GENERATOR_SERVICE_PRIORITY, UPGRADE_CHECK_STARTUP_TASK_PRIORITY, UPGRADE_SERVICE_PRIORITY, } from "../runtime/lifecycle/priorities.js";
|
|
34
35
|
const logger = getLogger("BaseCLI");
|
|
35
36
|
/**
|
|
36
37
|
* Base implementation of a {@link CLI}.
|
|
@@ -108,6 +109,7 @@ export default class BaseCLI {
|
|
|
108
109
|
fetchServiceEnabled: false,
|
|
109
110
|
upgradeServiceEnabled: false,
|
|
110
111
|
upgradeLocationsConfig: { supportedPlatforms: [] },
|
|
112
|
+
restartAfterAutoUpgrade: false,
|
|
111
113
|
pluginServiceEnabled: false,
|
|
112
114
|
pluginServiceRemoteConfig: { name: "", registryUrl: "", packageJsonNamespace: "" },
|
|
113
115
|
pluginServiceLocalConfig: { nodeModulesPath: "", packageJsonNamespace: "" },
|
|
@@ -128,9 +130,7 @@ export default class BaseCLI {
|
|
|
128
130
|
this.#commandRegistry = new DefaultCommandRegistry([], commandValidator);
|
|
129
131
|
// create a context
|
|
130
132
|
this.#context = new DefaultContext(this.#cliConfig);
|
|
131
|
-
|
|
132
|
-
// dependency on anything since its own initService() is a no-op.
|
|
133
|
-
this.#startupServiceProvider = new StartupServiceProvider(95);
|
|
133
|
+
this.#startupServiceProvider = new StartupServiceProvider(STARTUP_SERVICE_PRIORITY);
|
|
134
134
|
this.#stdoutTerminal = stdoutTerminal;
|
|
135
135
|
this.#printerService = new DefaultPrinterService(stdoutWritableStream, stderrWritableStream, stdoutIsColor, stderrIsColor, stdoutTerminal, stderrTerminal, styler);
|
|
136
136
|
}
|
|
@@ -182,10 +182,10 @@ export default class BaseCLI {
|
|
|
182
182
|
throw new Error("If only one command is added, it must be a global command, sub-command, or group command!");
|
|
183
183
|
}
|
|
184
184
|
// create and add core services
|
|
185
|
-
this.addServiceProvider(new ShutdownServiceProvider(
|
|
185
|
+
this.addServiceProvider(new ShutdownServiceProvider(SHUTDOWN_SERVICE_PRIORITY));
|
|
186
186
|
this.addServiceProvider(this.#startupServiceProvider);
|
|
187
|
-
this.addServiceProvider(new PrinterServiceProvider(
|
|
188
|
-
this.addServiceProvider(new TableGeneratorServiceProvider(
|
|
187
|
+
this.addServiceProvider(new PrinterServiceProvider(PRINTER_SERVICE_PRIORITY, this.#printerService));
|
|
188
|
+
this.addServiceProvider(new TableGeneratorServiceProvider(TABLE_GENERATOR_SERVICE_PRIORITY));
|
|
189
189
|
const canPrompt = this.#keyReader !== undefined && this.#stderrTerminal.isTty();
|
|
190
190
|
if (this.#options.promptingEnabled && !canPrompt) {
|
|
191
191
|
throw new Error("promptingEnabled requires a keyReader and a TTY stderr terminal");
|
|
@@ -194,7 +194,7 @@ export default class BaseCLI {
|
|
|
194
194
|
if (canPrompt) {
|
|
195
195
|
prompterService = new DefaultPrompterService(DEFAULT_PROMPTER_CONFIG, this.#stderrTerminal, this.#keyReader, this.#printerService);
|
|
196
196
|
prompterService.promptEnabled = this.#options.promptingEnabled;
|
|
197
|
-
this.addServiceProvider(new PrompterServiceProvider(
|
|
197
|
+
this.addServiceProvider(new PrompterServiceProvider(PROMPTER_SERVICE_PRIORITY, prompterService));
|
|
198
198
|
}
|
|
199
199
|
else {
|
|
200
200
|
logger.debug(() => `Skipping PrompterServiceProvider: keyReader present: ${this.#keyReader !== undefined}, stderr isTty: ${this.#stderrTerminal.isTty()}`);
|
|
@@ -202,7 +202,7 @@ export default class BaseCLI {
|
|
|
202
202
|
if (this.#options.argumentPrompterServiceEnabled) {
|
|
203
203
|
if (prompterService !== undefined) {
|
|
204
204
|
const argumentPrompterService = new DefaultArgumentPrompterService(prompterService);
|
|
205
|
-
this.addServiceProvider(new ArgumentPrompterServiceProvider(
|
|
205
|
+
this.addServiceProvider(new ArgumentPrompterServiceProvider(ARGUMENT_PROMPTER_SERVICE_PRIORITY, argumentPrompterService));
|
|
206
206
|
}
|
|
207
207
|
else {
|
|
208
208
|
logger.debug("Skipping ArgumentPrompterServiceProvider: argumentPrompterServiceEnabled is true but prompting is unavailable");
|
|
@@ -210,7 +210,7 @@ export default class BaseCLI {
|
|
|
210
210
|
}
|
|
211
211
|
if (this.#options.imagePrinterServiceEnabled) {
|
|
212
212
|
if (this.#stdoutTerminal.isTty()) {
|
|
213
|
-
this.addServiceProvider(new ImagePrinterServiceProvider(
|
|
213
|
+
this.addServiceProvider(new ImagePrinterServiceProvider(IMAGE_PRINTER_SERVICE_PRIORITY, this.#stdoutTerminal));
|
|
214
214
|
}
|
|
215
215
|
else {
|
|
216
216
|
logger.debug("Skipping ImagePrinterServiceProvider: imagePrinterServiceEnabled is true but stdout is not a TTY");
|
|
@@ -219,30 +219,27 @@ export default class BaseCLI {
|
|
|
219
219
|
// The plugin service routes package manager output through SpawnService so that it is
|
|
220
220
|
// quoted, marked and cleared on success; enabling plugins therefore also enables spawning.
|
|
221
221
|
if (this.#options.spawnServiceEnabled || this.#options.pluginServiceEnabled) {
|
|
222
|
-
this.addServiceProvider(new SpawnServiceProvider(
|
|
222
|
+
this.addServiceProvider(new SpawnServiceProvider(SPAWN_SERVICE_PRIORITY));
|
|
223
223
|
}
|
|
224
224
|
if (this.#options.fetchServiceEnabled) {
|
|
225
|
-
this.addServiceProvider(new FetchServiceProvider(
|
|
225
|
+
this.addServiceProvider(new FetchServiceProvider(FETCH_SERVICE_PRIORITY));
|
|
226
226
|
}
|
|
227
227
|
if (this.#options.completionServiceEnabled) {
|
|
228
228
|
const completionService = new DefaultCompletionService();
|
|
229
|
-
this.addServiceProvider(new CompletionServiceProvider(
|
|
229
|
+
this.addServiceProvider(new CompletionServiceProvider(COMPLETION_SERVICE_PRIORITY, completionService, this.#commandRegistry));
|
|
230
230
|
}
|
|
231
231
|
let upgradeServiceProvider;
|
|
232
232
|
if (this.#options.upgradeServiceEnabled) {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
upgradeServiceProvider = new UpgradeServiceProvider(56, this.#options.upgradeLocationsConfig);
|
|
233
|
+
upgradeServiceProvider = new UpgradeServiceProvider(UPGRADE_SERVICE_PRIORITY, this.#options.upgradeLocationsConfig, this.#options.restartAfterAutoUpgrade);
|
|
234
|
+
upgradeServiceProvider.setRestartArgs(args);
|
|
236
235
|
this.addServiceProvider(upgradeServiceProvider);
|
|
237
236
|
}
|
|
238
237
|
if (this.#options.pluginServiceEnabled) {
|
|
239
|
-
this.addServiceProvider(new PluginServiceProvider(
|
|
238
|
+
this.addServiceProvider(new PluginServiceProvider(PLUGIN_SERVICE_PRIORITY, this.#options.pluginServiceRemoteConfig, this.#options.pluginServiceLocalConfig, this.#commandRegistry, this.#serviceProviderRegistry));
|
|
240
239
|
}
|
|
241
|
-
const configurationServiceProvider = new ConfigurationServiceProvider(
|
|
240
|
+
const configurationServiceProvider = new ConfigurationServiceProvider(CONFIGURATION_SERVICE_PRIORITY, this.#options.envVarsSupportEnabled, this.#options.configFileSupportEnabled, this.#options.secretServiceEnabled);
|
|
242
241
|
this.addServiceProvider(configurationServiceProvider);
|
|
243
|
-
|
|
244
|
-
// happens in its own initService(), before KeyValueServiceProvider's initService() runs.
|
|
245
|
-
const keyValueServiceProvider = new KeyValueServiceProvider(89, configurationServiceProvider, this.#options.keyValueServiceEnabled, this.#options.secretServiceEnabled);
|
|
242
|
+
const keyValueServiceProvider = new KeyValueServiceProvider(KEY_VALUE_SERVICE_PRIORITY, configurationServiceProvider, this.#options.keyValueServiceEnabled, this.#options.secretServiceEnabled);
|
|
246
243
|
this.addServiceProvider(keyValueServiceProvider);
|
|
247
244
|
for (const serviceProvider of this.#serviceProviderRegistry.getServiceProviders()) {
|
|
248
245
|
const serviceInfo = await serviceProvider.getServiceInfo(this.#cliConfig);
|
|
@@ -254,7 +251,8 @@ export default class BaseCLI {
|
|
|
254
251
|
});
|
|
255
252
|
}
|
|
256
253
|
if (upgradeServiceProvider?.upgradeService) {
|
|
257
|
-
this.addStartupTask(createUpgradeCheckStartupTask(upgradeServiceProvider.upgradeService,
|
|
254
|
+
this.addStartupTask(createUpgradeCheckStartupTask(upgradeServiceProvider.upgradeService, UPGRADE_CHECK_STARTUP_TASK_PRIORITY));
|
|
255
|
+
this.addStartupTask(createAutoUpgradeStartupTask(upgradeServiceProvider, AUTO_UPGRADE_STARTUP_TASK_PRIORITY));
|
|
258
256
|
}
|
|
259
257
|
// directly-registered StartupTasks (e.g. the banner task) aren't backed by a ServiceProvider,
|
|
260
258
|
// so their modifierCommands need to be added to the command registry here instead, keyed by
|
|
@@ -289,6 +287,10 @@ export default class BaseCLI {
|
|
|
289
287
|
this.#commandRegistry.addCommand(new VersionCommand());
|
|
290
288
|
// run...
|
|
291
289
|
const runResult = await run(args, this.#commandRegistry, this.#serviceProviderRegistry, configurationServiceProvider, keyValueServiceProvider, this.#context, defaultCommand, this.#startupServiceProvider.startupService);
|
|
290
|
+
// a startup task ended the run, having already handled its outcome itself
|
|
291
|
+
if (runResult.exitRequested) {
|
|
292
|
+
return { runState: runResult.runState };
|
|
293
|
+
}
|
|
292
294
|
// then handle the result...
|
|
293
295
|
if (runResult.runState === RunState.NO_COMMAND) {
|
|
294
296
|
// print usage
|
|
@@ -12,6 +12,11 @@ export default interface BaseCLIFeatureOptions {
|
|
|
12
12
|
readonly fetchServiceEnabled?: boolean;
|
|
13
13
|
readonly upgradeServiceEnabled?: boolean;
|
|
14
14
|
readonly upgradeLocationsConfig?: UpgradeLocationsConfig;
|
|
15
|
+
/**
|
|
16
|
+
* When an automatic upgrade on startup succeeds, run the upgraded executable with the same
|
|
17
|
+
* arguments and end this run with its result, rather than continuing on the old version.
|
|
18
|
+
*/
|
|
19
|
+
readonly restartAfterAutoUpgrade?: boolean;
|
|
15
20
|
readonly pluginServiceEnabled?: boolean;
|
|
16
21
|
readonly pluginServiceRemoteConfig?: NpmjsPluginRepositoryConfig;
|
|
17
22
|
readonly pluginServiceLocalConfig?: NpmPluginRepositoryConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCLIFeatureOptions.d.ts","sourceRoot":"","sources":["../../../src/cli/BaseCLIFeatureOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAEhD,MAAM,CAAC,OAAO,WAAW,qBAAqB;IAC5C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAClD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IACzD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,2BAA2B,CAAC;IACjE,QAAQ,CAAC,wBAAwB,CAAC,EAAE,yBAAyB,CAAC;IAC9D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC"}
|
|
1
|
+
{"version":3,"file":"BaseCLIFeatureOptions.d.ts","sourceRoot":"","sources":["../../../src/cli/BaseCLIFeatureOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAEhD,MAAM,CAAC,OAAO,WAAW,qBAAqB;IAC5C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAClD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IACzD;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,2BAA2B,CAAC;IACjE,QAAQ,CAAC,wBAAwB,CAAC,EAAE,yBAAyB,CAAC;IAC9D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC"}
|
|
@@ -39,7 +39,7 @@ export default class DefaultRuntimeCLI extends BaseCLI {
|
|
|
39
39
|
logger.debug(() => `keyReader constructed: ${keyReader !== undefined}`);
|
|
40
40
|
const promptingEnabled = stdinIsTty && stderrIsTty;
|
|
41
41
|
logger.debug(() => `promptingEnabled default: ${promptingEnabled}`);
|
|
42
|
-
super(cliConfig, Writable.toWeb(process.stdout), Writable.toWeb(process.stderr), supportsColor.stdout !== false, supportsColor.stderr !== false, stdoutTerminal, stderrTerminal, new TtyStyler(colorLevel, supportsHyperlinks(process.stderr)), keyReader, { promptingEnabled, ...options });
|
|
42
|
+
super(cliConfig, Writable.toWeb(process.stdout), Writable.toWeb(process.stderr), supportsColor.stdout !== false, supportsColor.stderr !== false, stdoutTerminal, stderrTerminal, new TtyStyler(colorLevel, supportsHyperlinks(process.stderr)), keyReader, { promptingEnabled, restartAfterAutoUpgrade: true, ...options });
|
|
43
43
|
}
|
|
44
44
|
async run() {
|
|
45
45
|
const runResult = await super.run(process.argv.slice(2));
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Priorities of the framework's built-in service providers, startup tasks and shutdown tasks.
|
|
3
|
+
* Higher values run earlier (see {@link sortByPriority}). Service provider priorities also order
|
|
4
|
+
* their `initService()` calls within the startup sequence: when a provider and a directly
|
|
5
|
+
* registered startup task share a priority, the provider runs first.
|
|
6
|
+
*
|
|
7
|
+
* Consumer service providers and startup tasks (e.g. the banner task) choose their own
|
|
8
|
+
* priorities relative to these.
|
|
9
|
+
*/
|
|
10
|
+
/** Shutdown service provider: first, so signal handling is in place before anything else. */
|
|
11
|
+
export declare const SHUTDOWN_SERVICE_PRIORITY = 100;
|
|
12
|
+
/** Startup service provider: no ordering dependency, as its `initService()` is a no-op. */
|
|
13
|
+
export declare const STARTUP_SERVICE_PRIORITY = 95;
|
|
14
|
+
/** Configuration service provider: reads the config file in its `initService()`. */
|
|
15
|
+
export declare const CONFIGURATION_SERVICE_PRIORITY = 90;
|
|
16
|
+
/** Key-value service provider: just below configuration, whose config-file read it depends on. */
|
|
17
|
+
export declare const KEY_VALUE_SERVICE_PRIORITY = 89;
|
|
18
|
+
/** Printer service provider. */
|
|
19
|
+
export declare const PRINTER_SERVICE_PRIORITY = 80;
|
|
20
|
+
/** Prompter service provider. */
|
|
21
|
+
export declare const PROMPTER_SERVICE_PRIORITY = 75;
|
|
22
|
+
/** Table generator service provider. */
|
|
23
|
+
export declare const TABLE_GENERATOR_SERVICE_PRIORITY = 70;
|
|
24
|
+
/** Argument prompter service provider: below the prompter it uses. */
|
|
25
|
+
export declare const ARGUMENT_PROMPTER_SERVICE_PRIORITY = 65;
|
|
26
|
+
/** Spawn service provider. */
|
|
27
|
+
export declare const SPAWN_SERVICE_PRIORITY = 58;
|
|
28
|
+
/** Fetch service provider. */
|
|
29
|
+
export declare const FETCH_SERVICE_PRIORITY = 57;
|
|
30
|
+
/** Upgrade service provider: below the spawn and fetch services it uses. */
|
|
31
|
+
export declare const UPGRADE_SERVICE_PRIORITY = 56;
|
|
32
|
+
/** Background startup task which refreshes the cached upgrade check result. */
|
|
33
|
+
export declare const UPGRADE_CHECK_STARTUP_TASK_PRIORITY = 56;
|
|
34
|
+
/** Image printer service provider. */
|
|
35
|
+
export declare const IMAGE_PRINTER_SERVICE_PRIORITY = 55;
|
|
36
|
+
/** Plugin service provider. */
|
|
37
|
+
export declare const PLUGIN_SERVICE_PRIORITY = 50;
|
|
38
|
+
/**
|
|
39
|
+
* Startup task which prompts to enable automatic upgrades and performs them. It runs below
|
|
40
|
+
* consumer startup tasks such as the banner (typically 45 or more) and above the completion
|
|
41
|
+
* prompt.
|
|
42
|
+
*/
|
|
43
|
+
export declare const AUTO_UPGRADE_STARTUP_TASK_PRIORITY = 10;
|
|
44
|
+
/** Completion service provider, whose `initService()` prompts to enable shell completion. */
|
|
45
|
+
export declare const COMPLETION_SERVICE_PRIORITY = 5;
|
|
46
|
+
/** Shutdown tasks which clean up in-flight work (spinners, progress bars, spawns, fetches). */
|
|
47
|
+
export declare const CLEANUP_SHUTDOWN_TASK_PRIORITY = 0;
|
|
48
|
+
/** Shutdown task which flushes key-value data to the config file, after all other cleanup. */
|
|
49
|
+
export declare const KEY_VALUE_FLUSH_SHUTDOWN_TASK_PRIORITY = -100;
|
|
50
|
+
//# sourceMappingURL=priorities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priorities.d.ts","sourceRoot":"","sources":["../../../../src/runtime/lifecycle/priorities.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,6FAA6F;AAC7F,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,2FAA2F;AAC3F,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,kGAAkG;AAClG,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,gCAAgC;AAChC,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,iCAAiC;AACjC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,wCAAwC;AACxC,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD,sEAAsE;AACtE,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,8BAA8B;AAC9B,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,8BAA8B;AAC9B,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,+EAA+E;AAC/E,eAAO,MAAM,mCAAmC,KAAK,CAAC;AAEtD,sCAAsC;AACtC,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,+BAA+B;AAC/B,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,6FAA6F;AAC7F,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,+FAA+F;AAC/F,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,8FAA8F;AAC9F,eAAO,MAAM,sCAAsC,OAAO,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Priorities of the framework's built-in service providers, startup tasks and shutdown tasks.
|
|
3
|
+
* Higher values run earlier (see {@link sortByPriority}). Service provider priorities also order
|
|
4
|
+
* their `initService()` calls within the startup sequence: when a provider and a directly
|
|
5
|
+
* registered startup task share a priority, the provider runs first.
|
|
6
|
+
*
|
|
7
|
+
* Consumer service providers and startup tasks (e.g. the banner task) choose their own
|
|
8
|
+
* priorities relative to these.
|
|
9
|
+
*/
|
|
10
|
+
/** Shutdown service provider: first, so signal handling is in place before anything else. */
|
|
11
|
+
export const SHUTDOWN_SERVICE_PRIORITY = 100;
|
|
12
|
+
/** Startup service provider: no ordering dependency, as its `initService()` is a no-op. */
|
|
13
|
+
export const STARTUP_SERVICE_PRIORITY = 95;
|
|
14
|
+
/** Configuration service provider: reads the config file in its `initService()`. */
|
|
15
|
+
export const CONFIGURATION_SERVICE_PRIORITY = 90;
|
|
16
|
+
/** Key-value service provider: just below configuration, whose config-file read it depends on. */
|
|
17
|
+
export const KEY_VALUE_SERVICE_PRIORITY = 89;
|
|
18
|
+
/** Printer service provider. */
|
|
19
|
+
export const PRINTER_SERVICE_PRIORITY = 80;
|
|
20
|
+
/** Prompter service provider. */
|
|
21
|
+
export const PROMPTER_SERVICE_PRIORITY = 75;
|
|
22
|
+
/** Table generator service provider. */
|
|
23
|
+
export const TABLE_GENERATOR_SERVICE_PRIORITY = 70;
|
|
24
|
+
/** Argument prompter service provider: below the prompter it uses. */
|
|
25
|
+
export const ARGUMENT_PROMPTER_SERVICE_PRIORITY = 65;
|
|
26
|
+
/** Spawn service provider. */
|
|
27
|
+
export const SPAWN_SERVICE_PRIORITY = 58;
|
|
28
|
+
/** Fetch service provider. */
|
|
29
|
+
export const FETCH_SERVICE_PRIORITY = 57;
|
|
30
|
+
/** Upgrade service provider: below the spawn and fetch services it uses. */
|
|
31
|
+
export const UPGRADE_SERVICE_PRIORITY = 56;
|
|
32
|
+
/** Background startup task which refreshes the cached upgrade check result. */
|
|
33
|
+
export const UPGRADE_CHECK_STARTUP_TASK_PRIORITY = 56;
|
|
34
|
+
/** Image printer service provider. */
|
|
35
|
+
export const IMAGE_PRINTER_SERVICE_PRIORITY = 55;
|
|
36
|
+
/** Plugin service provider. */
|
|
37
|
+
export const PLUGIN_SERVICE_PRIORITY = 50;
|
|
38
|
+
/**
|
|
39
|
+
* Startup task which prompts to enable automatic upgrades and performs them. It runs below
|
|
40
|
+
* consumer startup tasks such as the banner (typically 45 or more) and above the completion
|
|
41
|
+
* prompt.
|
|
42
|
+
*/
|
|
43
|
+
export const AUTO_UPGRADE_STARTUP_TASK_PRIORITY = 10;
|
|
44
|
+
/** Completion service provider, whose `initService()` prompts to enable shell completion. */
|
|
45
|
+
export const COMPLETION_SERVICE_PRIORITY = 5;
|
|
46
|
+
/** Shutdown tasks which clean up in-flight work (spinners, progress bars, spawns, fetches). */
|
|
47
|
+
export const CLEANUP_SHUTDOWN_TASK_PRIORITY = 0;
|
|
48
|
+
/** Shutdown task which flushes key-value data to the config file, after all other cleanup. */
|
|
49
|
+
export const KEY_VALUE_FLUSH_SHUTDOWN_TASK_PRIORITY = -100;
|
|
@@ -6,6 +6,13 @@ import type ConfigurationServiceProvider from "../service/configuration/Configur
|
|
|
6
6
|
import type KeyValueServiceProvider from "../service/configuration/KeyValueServiceProvider.ts";
|
|
7
7
|
import type { Command } from "@flowscripter/dynamic-cli-framework-api";
|
|
8
8
|
import DefaultStartupService from "../service/startup/DefaultStartupService.ts";
|
|
9
|
+
/**
|
|
10
|
+
* The {@link RunResult} returned by {@link run}, with `exitRequested` set when a startup task ended
|
|
11
|
+
* the run early by returning an `exitRequest`.
|
|
12
|
+
*/
|
|
13
|
+
export type RunnerResult = RunResult & {
|
|
14
|
+
readonly exitRequested?: true;
|
|
15
|
+
};
|
|
9
16
|
/**
|
|
10
17
|
* Scan arguments and execute the parsed {@link Command} clauses with provided argument values
|
|
11
18
|
* using the provided {@link Context}.
|
|
@@ -34,6 +41,8 @@ import DefaultStartupService from "../service/startup/DefaultStartupService.ts";
|
|
|
34
41
|
* - Run the task: awaited before continuing if its mode is "blocking" (the default, and how
|
|
35
42
|
* every ServiceProvider's initService() behaves); fired without awaiting if "background"
|
|
36
43
|
* (errors logged, not propagated).
|
|
44
|
+
* - Return immediately if a "blocking" task returned an exitRequest, using its runState and
|
|
45
|
+
* skipping the remaining tasks and the command.
|
|
37
46
|
* 2. Scan arguments for any GlobalModifierCommand clauses not provided by a StartupTask
|
|
38
47
|
* - For each discovered clause:
|
|
39
48
|
* - Set any argument defaults from ConfigurationServiceProvider
|
|
@@ -80,5 +89,5 @@ import DefaultStartupService from "../service/startup/DefaultStartupService.ts";
|
|
|
80
89
|
* @param defaultCommand optional {@link SubCommand} or {@link GlobalCommand} implementation to attempt to parse arguments for and execute if
|
|
81
90
|
* no non-modifier {@link Command} name is identified in the provided arguments.
|
|
82
91
|
*/
|
|
83
|
-
export declare function run(args: ReadonlyArray<string>, commandRegistry: CommandRegistry, serviceProviderRegistry: ServiceProviderRegistry, configurationServiceProvider: ConfigurationServiceProvider | undefined, keyValueServiceProvider: KeyValueServiceProvider | undefined, context: Context, defaultCommand?: Command, startupService?: DefaultStartupService): Promise<
|
|
92
|
+
export declare function run(args: ReadonlyArray<string>, commandRegistry: CommandRegistry, serviceProviderRegistry: ServiceProviderRegistry, configurationServiceProvider: ConfigurationServiceProvider | undefined, keyValueServiceProvider: KeyValueServiceProvider | undefined, context: Context, defaultCommand?: Command, startupService?: DefaultStartupService): Promise<RunnerResult>;
|
|
84
93
|
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAiB/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAEvF,OAAO,KAAK,4BAA4B,MAAM,0DAA0D,CAAC;AACzG,OAAO,KAAK,uBAAuB,MAAM,qDAAqD,CAAC;AAK/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAKvE,OAAO,qBAAqB,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAiB/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAEvF,OAAO,KAAK,4BAA4B,MAAM,0DAA0D,CAAC;AACzG,OAAO,KAAK,uBAAuB,MAAM,qDAAqD,CAAC;AAK/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAKvE,OAAO,qBAAqB,MAAM,6CAA6C,CAAC;AAKhF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAkfzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,wBAAsB,GAAG,CACvB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,eAAe,EAAE,eAAe,EAChC,uBAAuB,EAAE,uBAAuB,EAChD,4BAA4B,EAAE,4BAA4B,GAAG,SAAS,EACtE,uBAAuB,EAAE,uBAAuB,GAAG,SAAS,EAC5D,OAAO,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,OAAO,EACxB,cAAc,CAAC,EAAE,qBAAqB,GACrC,OAAO,CAAC,YAAY,CAAC,CAoKvB"}
|
|
@@ -389,6 +389,8 @@ async function findAndExecuteDefaultNonModifierCommand(availableArgs, unusedArgs
|
|
|
389
389
|
* - Run the task: awaited before continuing if its mode is "blocking" (the default, and how
|
|
390
390
|
* every ServiceProvider's initService() behaves); fired without awaiting if "background"
|
|
391
391
|
* (errors logged, not propagated).
|
|
392
|
+
* - Return immediately if a "blocking" task returned an exitRequest, using its runState and
|
|
393
|
+
* skipping the remaining tasks and the command.
|
|
392
394
|
* 2. Scan arguments for any GlobalModifierCommand clauses not provided by a StartupTask
|
|
393
395
|
* - For each discovered clause:
|
|
394
396
|
* - Set any argument defaults from ConfigurationServiceProvider
|
|
@@ -477,7 +479,11 @@ export async function run(args, commandRegistry, serviceProviderRegistry, config
|
|
|
477
479
|
? keyValueServiceProvider.getContextForScope(context, "service", task.id)
|
|
478
480
|
: context;
|
|
479
481
|
if ((task.mode ?? "blocking") === "blocking") {
|
|
480
|
-
await task.run(taskContext);
|
|
482
|
+
const outcome = await task.run(taskContext);
|
|
483
|
+
if (outcome?.exitRequest) {
|
|
484
|
+
logger.debug(() => `Startup task '${task.id}' requested exit with run state ${outcome.exitRequest.runState}`);
|
|
485
|
+
return { runState: outcome.exitRequest.runState, exitRequested: true };
|
|
486
|
+
}
|
|
481
487
|
}
|
|
482
488
|
else {
|
|
483
489
|
void task.run(taskContext).catch((error) => {
|
|
@@ -7,8 +7,16 @@ import type DefaultSecretService from "./DefaultSecretService.ts";
|
|
|
7
7
|
*/
|
|
8
8
|
export default class DefaultKeyValueService implements KeyValueService {
|
|
9
9
|
#private;
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* @param keyValueData the scope's data.
|
|
12
|
+
* @param secretService optional secret service for {@link Secret} values.
|
|
13
|
+
* @param flushToStorage optional callback which writes every scope's pending changes to storage
|
|
14
|
+
* and marks them clean, invoked by {@link flush}.
|
|
15
|
+
*/
|
|
16
|
+
constructor(keyValueData: Map<string, ValueNode>, secretService?: DefaultSecretService, flushToStorage?: () => Promise<void>);
|
|
11
17
|
isDirty(): boolean;
|
|
18
|
+
markClean(): void;
|
|
19
|
+
flush(): Promise<void>;
|
|
12
20
|
get<T extends ValueNode = ValueNode>(key: string): Promise<T>;
|
|
13
21
|
has(key: string): Promise<boolean>;
|
|
14
22
|
set(key: string, value: SettableValueNode): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultKeyValueService.d.ts","sourceRoot":"","sources":["../../../../src/service/configuration/DefaultKeyValueService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAC;AAGlE;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,eAAe;;
|
|
1
|
+
{"version":3,"file":"DefaultKeyValueService.d.ts","sourceRoot":"","sources":["../../../../src/service/configuration/DefaultKeyValueService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAC;AAGlE;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,eAAe;;IAMpE;;;;;OAKG;IACH,YACE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EACpC,aAAa,CAAC,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAKrC;IAEM,OAAO,IAAI,OAAO,CAExB;IAEM,SAAS,IAAI,IAAI,CAEvB;IAEY,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAGlC;IAEY,GAAG,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAsBzE;IAEM,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAExC;IAEY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;IAsCY,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9C;CAsBF"}
|
|
@@ -9,13 +9,28 @@ export default class DefaultKeyValueService {
|
|
|
9
9
|
#keyValueData;
|
|
10
10
|
#dirty = false;
|
|
11
11
|
#secretService;
|
|
12
|
-
|
|
12
|
+
#flushToStorage;
|
|
13
|
+
/**
|
|
14
|
+
* @param keyValueData the scope's data.
|
|
15
|
+
* @param secretService optional secret service for {@link Secret} values.
|
|
16
|
+
* @param flushToStorage optional callback which writes every scope's pending changes to storage
|
|
17
|
+
* and marks them clean, invoked by {@link flush}.
|
|
18
|
+
*/
|
|
19
|
+
constructor(keyValueData, secretService, flushToStorage) {
|
|
13
20
|
this.#keyValueData = keyValueData;
|
|
14
21
|
this.#secretService = secretService;
|
|
22
|
+
this.#flushToStorage = flushToStorage;
|
|
15
23
|
}
|
|
16
24
|
isDirty() {
|
|
17
25
|
return this.#dirty;
|
|
18
26
|
}
|
|
27
|
+
markClean() {
|
|
28
|
+
this.#dirty = false;
|
|
29
|
+
}
|
|
30
|
+
async flush() {
|
|
31
|
+
await this.#flushToStorage?.();
|
|
32
|
+
this.#dirty = false;
|
|
33
|
+
}
|
|
19
34
|
async get(key) {
|
|
20
35
|
const value = this.#keyValueData.get(key);
|
|
21
36
|
if (value === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyValueServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/service/configuration/KeyValueServiceProvider.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,EACV,eAAe,EAGhB,MAAM,yCAAyC,CAAC;AAIjD,OAAO,KAAK,4BAA4B,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"KeyValueServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/service/configuration/KeyValueServiceProvider.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,EACV,eAAe,EAGhB,MAAM,yCAAyC,CAAC;AAIjD,OAAO,KAAK,4BAA4B,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAoClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAwB,YAAW,eAAe;;IACrE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAwB;IAClD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAIjC,SAAgB,sBAAsB,EAAE,OAAO,CAAC;IAChD,SAAgB,oBAAoB,EAAE,OAAO,CAAC;IAW9C;;;;;;;;OAQG;IACH,YACE,eAAe,EAAE,MAAM,EACvB,4BAA4B,EAAE,4BAA4B,EAC1D,sBAAsB,UAAQ,EAC9B,oBAAoB,UAAQ,EAY7B;IAEM,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAUhE;IAED;;;;;;;;;;OAUG;IACI,wBAAwB,CAC7B,SAAS,EAAE,wBAAwB,EACnC,QAAQ,EAAE,MAAM,GACf,eAAe,CAwBjB;IAED;;;;;;;;;;;;;;OAcG;IACI,kBAAkB,CACvB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,wBAAwB,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAaT;IAqBY,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CASxD;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { KEY_VALUE_SERVICE_ID, SHUTDOWN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import DefaultKeyValueService from "./DefaultKeyValueService.js";
|
|
3
3
|
import DefaultSecretService from "./DefaultSecretService.js";
|
|
4
|
+
import { KEY_VALUE_FLUSH_SHUTDOWN_TASK_PRIORITY } from "../../runtime/lifecycle/priorities.js";
|
|
4
5
|
/**
|
|
5
6
|
* Registered under {@link KEY_VALUE_SERVICE_ID} in the plain, undecorated {@link Context} purely
|
|
6
7
|
* so {@link Context.doesServiceExist} reports correctly - every real access goes through a
|
|
@@ -21,6 +22,9 @@ class UnreachableKeyValueService {
|
|
|
21
22
|
delete() {
|
|
22
23
|
return Promise.reject(new Error(UnreachableKeyValueService.#message));
|
|
23
24
|
}
|
|
25
|
+
flush() {
|
|
26
|
+
return Promise.reject(new Error(UnreachableKeyValueService.#message));
|
|
27
|
+
}
|
|
24
28
|
static #message = "KeyValueService accessed without a resolved scope - this should be unreachable";
|
|
25
29
|
}
|
|
26
30
|
/**
|
|
@@ -150,7 +154,7 @@ export default class KeyValueServiceProvider {
|
|
|
150
154
|
const secretService = this.secretServiceEnabled
|
|
151
155
|
? new DefaultSecretService(this.#cliConfigName, `${scopeType}_${scopeKey}`)
|
|
152
156
|
: undefined;
|
|
153
|
-
const scopedService = new DefaultKeyValueService(keyValueData, secretService);
|
|
157
|
+
const scopedService = new DefaultKeyValueService(keyValueData, secretService, () => this.#flushDirtyScopes());
|
|
154
158
|
scopedServices.set(scopeKey, scopedService);
|
|
155
159
|
return scopedService;
|
|
156
160
|
}
|
|
@@ -183,24 +187,26 @@ export default class KeyValueServiceProvider {
|
|
|
183
187
|
}
|
|
184
188
|
/**
|
|
185
189
|
* Flush every scoped KeyValueService's data to the configuration file, if any of them report
|
|
186
|
-
* themselves dirty. Registered as a low-priority ShutdownTask (see
|
|
187
|
-
* runs once, after other shutdown cleanup, regardless of how long any
|
|
190
|
+
* themselves dirty, then mark them all clean. Registered as a low-priority ShutdownTask (see
|
|
191
|
+
* {@link initService}) so it runs once, after other shutdown cleanup, regardless of how long any
|
|
192
|
+
* scope was written to. Also backs {@link KeyValueService.flush} for every scope.
|
|
188
193
|
*/
|
|
189
194
|
async #flushDirtyScopes() {
|
|
190
|
-
const
|
|
195
|
+
const scopedServices = [
|
|
191
196
|
...this.#commandScopedKeyValueServices.values(),
|
|
192
197
|
...this.#serviceScopedKeyValueServices.values(),
|
|
193
|
-
]
|
|
194
|
-
await this.#configurationServiceProvider.flushIfDirty(
|
|
198
|
+
];
|
|
199
|
+
await this.#configurationServiceProvider.flushIfDirty(scopedServices.some((service) => service.isDirty()));
|
|
200
|
+
for (const service of scopedServices) {
|
|
201
|
+
service.markClean();
|
|
202
|
+
}
|
|
195
203
|
}
|
|
196
204
|
async initService(context) {
|
|
197
205
|
if (this.keyValueServiceEnabled || this.secretServiceEnabled) {
|
|
198
206
|
const shutdownService = context.getServiceById(SHUTDOWN_SERVICE_ID);
|
|
199
207
|
shutdownService.registerTask({
|
|
200
208
|
id: `${KEY_VALUE_SERVICE_ID}-flush`,
|
|
201
|
-
|
|
202
|
-
// other shutdown cleanup (which defaults to priority 0).
|
|
203
|
-
priority: -100,
|
|
209
|
+
priority: KEY_VALUE_FLUSH_SHUTDOWN_TASK_PRIORITY,
|
|
204
210
|
run: () => this.#flushDirtyScopes(),
|
|
205
211
|
});
|
|
206
212
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultFetchService.d.ts","sourceRoot":"","sources":["../../../../src/service/fetch/DefaultFetchService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,YAAY,EAEb,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultFetchService.d.ts","sourceRoot":"","sources":["../../../../src/service/fetch/DefaultFetchService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,YAAY,EAEb,MAAM,yCAAyC,CAAC;AAOjD,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,YAAY;;IAGvD,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAExC;IAEY,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyCrF;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SHUTDOWN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
2
2
|
import getLogger from "../../util/logger.js";
|
|
3
|
+
import { CLEANUP_SHUTDOWN_TASK_PRIORITY } from "../../runtime/lifecycle/priorities.js";
|
|
3
4
|
const logger = getLogger("DefaultFetchService");
|
|
4
5
|
export default class DefaultFetchService {
|
|
5
6
|
#context;
|
|
@@ -26,7 +27,7 @@ export default class DefaultFetchService {
|
|
|
26
27
|
shutdownService.enterLongRunningMode();
|
|
27
28
|
shutdownService.registerTask({
|
|
28
29
|
id: `fetch:${input.toString()}`,
|
|
29
|
-
priority:
|
|
30
|
+
priority: CLEANUP_SHUTDOWN_TASK_PRIORITY,
|
|
30
31
|
run: async () => {
|
|
31
32
|
if (settled) {
|
|
32
33
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrinterServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/service/printer/PrinterServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAK9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"PrinterServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/service/printer/PrinterServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAK9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,eAAe;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAsB;IAChD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;;;;OAKG;IACH,YAAmB,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAGzE;IAEM,cAAc,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAUjE;IAED,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3C;CACF"}
|
|
@@ -4,6 +4,7 @@ import DarkModeCommand from "./command/DarkModeCommand.js";
|
|
|
4
4
|
import NoColorCommand from "./command/NoColorCommand.js";
|
|
5
5
|
import NoHyperlinksCommand from "./command/NoHyperlinksCommand.js";
|
|
6
6
|
import { SHUTDOWN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
7
|
+
import { CLEANUP_SHUTDOWN_TASK_PRIORITY } from "../../runtime/lifecycle/priorities.js";
|
|
7
8
|
/**
|
|
8
9
|
* Provides a {@link PrinterService}.
|
|
9
10
|
*/
|
|
@@ -36,7 +37,7 @@ export default class PrinterServiceProvider {
|
|
|
36
37
|
const shutdownService = context.getServiceById(SHUTDOWN_SERVICE_ID);
|
|
37
38
|
shutdownService.registerTask({
|
|
38
39
|
id: PRINTER_SERVICE_ID,
|
|
39
|
-
priority:
|
|
40
|
+
priority: CLEANUP_SHUTDOWN_TASK_PRIORITY,
|
|
40
41
|
run: async () => {
|
|
41
42
|
await this.printerService.hideSpinner();
|
|
42
43
|
await this.printerService.hideAllProgressBars();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import process from "node:process";
|
|
2
2
|
import DefaultShutdownService from "./DefaultShutdownService.js";
|
|
3
|
-
import { SHUTDOWN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
3
|
+
import { RunState, SHUTDOWN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
|
|
4
4
|
import getLogger from "../../util/logger.js";
|
|
5
5
|
import { shutdownState } from "./ShutdownState.js";
|
|
6
6
|
const logger = getLogger("ShutdownServiceProvider");
|
|
@@ -29,7 +29,7 @@ export default class ShutdownServiceProvider {
|
|
|
29
29
|
shutdownState.interruptCount++;
|
|
30
30
|
if (!shutdownState.longRunningMode || shutdownState.interruptCount >= 3) {
|
|
31
31
|
ShutdownServiceProvider.shutdown().then(() => {
|
|
32
|
-
process.exit(
|
|
32
|
+
process.exit(RunState.INTERRUPTED);
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
@@ -38,7 +38,7 @@ export default class ShutdownServiceProvider {
|
|
|
38
38
|
}
|
|
39
39
|
static onTerminate() {
|
|
40
40
|
ShutdownServiceProvider.shutdown().then(() => {
|
|
41
|
-
process.exit(
|
|
41
|
+
process.exit(RunState.TERMINATED);
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
static async shutdown() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultSpawnService.d.ts","sourceRoot":"","sources":["../../../../src/service/spawn/DefaultSpawnService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EAGP,YAAY,EACZ,WAAW,EACX,YAAY,EACb,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultSpawnService.d.ts","sourceRoot":"","sources":["../../../../src/service/spawn/DefaultSpawnService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EAGP,YAAY,EACZ,WAAW,EACX,YAAY,EACb,MAAM,yCAAyC,CAAC;AASjD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAa3E;AAED,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,YAAY;;IAGvD,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAExC;IA+CY,KAAK,CAChB,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAC9B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CA2FtB;CACF"}
|