@flowscripter/dynamic-cli-framework 6.0.0 → 7.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.
Files changed (124) hide show
  1. package/README.md +2 -0
  2. package/dist/index.d.ts +10 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +7 -2
  5. package/dist/src/cli/BaseCLI.d.ts +8 -0
  6. package/dist/src/cli/BaseCLI.d.ts.map +1 -1
  7. package/dist/src/cli/BaseCLI.js +37 -4
  8. package/dist/src/launcher.d.ts +3 -3
  9. package/dist/src/launcher.d.ts.map +1 -1
  10. package/dist/src/launcher.js +6 -4
  11. package/dist/src/runtime/lifecycle/PriorityTaskList.d.ts +22 -0
  12. package/dist/src/runtime/lifecycle/PriorityTaskList.d.ts.map +1 -0
  13. package/dist/src/runtime/lifecycle/PriorityTaskList.js +23 -0
  14. package/dist/src/runtime/runner.d.ts +15 -7
  15. package/dist/src/runtime/runner.d.ts.map +1 -1
  16. package/dist/src/runtime/runner.js +82 -53
  17. package/dist/src/service/configuration/ConfigurationServiceProvider.d.ts +26 -82
  18. package/dist/src/service/configuration/ConfigurationServiceProvider.d.ts.map +1 -1
  19. package/dist/src/service/configuration/ConfigurationServiceProvider.js +68 -163
  20. package/dist/src/service/configuration/DefaultKeyValueService.d.ts +6 -3
  21. package/dist/src/service/configuration/DefaultKeyValueService.d.ts.map +1 -1
  22. package/dist/src/service/configuration/DefaultKeyValueService.js +7 -24
  23. package/dist/src/service/configuration/DefaultSecretService.d.ts +1 -3
  24. package/dist/src/service/configuration/DefaultSecretService.d.ts.map +1 -1
  25. package/dist/src/service/configuration/DefaultSecretService.js +2 -10
  26. package/dist/src/service/configuration/KeyValueServiceProvider.d.ts +105 -0
  27. package/dist/src/service/configuration/KeyValueServiceProvider.d.ts.map +1 -0
  28. package/dist/src/service/configuration/KeyValueServiceProvider.js +201 -0
  29. package/dist/src/service/configuration/command/ConfigCommand.d.ts +4 -5
  30. package/dist/src/service/configuration/command/ConfigCommand.d.ts.map +1 -1
  31. package/dist/src/service/configuration/command/ConfigCommand.js +7 -6
  32. package/dist/src/service/configuration/command/DumpConfigCommand.d.ts +7 -3
  33. package/dist/src/service/configuration/command/DumpConfigCommand.d.ts.map +1 -1
  34. package/dist/src/service/configuration/command/DumpConfigCommand.js +10 -5
  35. package/dist/src/service/fetch/DefaultFetchService.d.ts +2 -2
  36. package/dist/src/service/fetch/DefaultFetchService.d.ts.map +1 -1
  37. package/dist/src/service/fetch/DefaultFetchService.js +17 -12
  38. package/dist/src/service/fetch/FetchServiceProvider.d.ts.map +1 -1
  39. package/dist/src/service/fetch/FetchServiceProvider.js +2 -3
  40. package/dist/src/service/printer/PrinterServiceProvider.d.ts.map +1 -1
  41. package/dist/src/service/printer/PrinterServiceProvider.js +11 -7
  42. package/dist/src/service/printer/command/DarkModeCommand.d.ts +3 -5
  43. package/dist/src/service/printer/command/DarkModeCommand.d.ts.map +1 -1
  44. package/dist/src/service/printer/command/DarkModeCommand.js +6 -6
  45. package/dist/src/service/printer/command/LogLevelCommand.d.ts +3 -5
  46. package/dist/src/service/printer/command/LogLevelCommand.d.ts.map +1 -1
  47. package/dist/src/service/printer/command/LogLevelCommand.js +9 -9
  48. package/dist/src/service/printer/command/NoColorCommand.d.ts +3 -5
  49. package/dist/src/service/printer/command/NoColorCommand.d.ts.map +1 -1
  50. package/dist/src/service/printer/command/NoColorCommand.js +6 -6
  51. package/dist/src/service/printer/command/NoHyperlinksCommand.d.ts +2 -4
  52. package/dist/src/service/printer/command/NoHyperlinksCommand.d.ts.map +1 -1
  53. package/dist/src/service/printer/command/NoHyperlinksCommand.js +5 -5
  54. package/dist/src/service/prompter/PrompterServiceProvider.js +1 -1
  55. package/dist/src/service/prompter/command/NoPromptCommand.d.ts +2 -4
  56. package/dist/src/service/prompter/command/NoPromptCommand.d.ts.map +1 -1
  57. package/dist/src/service/prompter/command/NoPromptCommand.js +5 -5
  58. package/dist/src/service/shutdown/DefaultShutdownService.d.ts +4 -3
  59. package/dist/src/service/shutdown/DefaultShutdownService.d.ts.map +1 -1
  60. package/dist/src/service/shutdown/DefaultShutdownService.js +4 -3
  61. package/dist/src/service/shutdown/ShutdownServiceProvider.js +2 -2
  62. package/dist/src/service/spawn/DefaultSpawnService.d.ts +2 -2
  63. package/dist/src/service/spawn/DefaultSpawnService.d.ts.map +1 -1
  64. package/dist/src/service/spawn/DefaultSpawnService.js +17 -14
  65. package/dist/src/service/spawn/SpawnServiceProvider.d.ts.map +1 -1
  66. package/dist/src/service/spawn/SpawnServiceProvider.js +1 -4
  67. package/dist/src/service/startup/DefaultStartupService.d.ts +10 -0
  68. package/dist/src/service/startup/DefaultStartupService.d.ts.map +1 -0
  69. package/dist/src/service/startup/DefaultStartupService.js +13 -0
  70. package/dist/src/service/startup/StartupServiceProvider.d.ts +17 -0
  71. package/dist/src/service/startup/StartupServiceProvider.d.ts.map +1 -0
  72. package/dist/src/service/startup/StartupServiceProvider.js +26 -0
  73. package/dist/src/service/upgrade/DefaultUpgradeService.d.ts +10 -4
  74. package/dist/src/service/upgrade/DefaultUpgradeService.d.ts.map +1 -1
  75. package/dist/src/service/upgrade/DefaultUpgradeService.js +156 -37
  76. package/dist/src/service/upgrade/UpgradeServiceProvider.d.ts +10 -0
  77. package/dist/src/service/upgrade/UpgradeServiceProvider.d.ts.map +1 -1
  78. package/dist/src/service/upgrade/UpgradeServiceProvider.js +25 -6
  79. package/dist/src/service/upgrade/command/UpgradeSubCommand.d.ts +0 -3
  80. package/dist/src/service/upgrade/command/UpgradeSubCommand.d.ts.map +1 -1
  81. package/dist/src/service/upgrade/command/UpgradeSubCommand.js +5 -13
  82. package/dist/src/startup/banner/bannerStartupTask.d.ts +17 -0
  83. package/dist/src/startup/banner/bannerStartupTask.d.ts.map +1 -0
  84. package/dist/src/startup/banner/bannerStartupTask.js +66 -0
  85. package/dist/src/{service → startup}/banner/command/NoBannerCommand.d.ts +8 -2
  86. package/dist/src/startup/banner/command/NoBannerCommand.d.ts.map +1 -0
  87. package/dist/src/{service → startup}/banner/command/NoBannerCommand.js +4 -4
  88. package/index.ts +19 -3
  89. package/package.json +7 -7
  90. package/src/cli/BaseCLI.ts +49 -3
  91. package/src/launcher.ts +7 -2
  92. package/src/runtime/lifecycle/PriorityTaskList.ts +34 -0
  93. package/src/runtime/runner.ts +106 -67
  94. package/src/service/configuration/ConfigurationServiceProvider.ts +80 -180
  95. package/src/service/configuration/DefaultKeyValueService.ts +8 -27
  96. package/src/service/configuration/DefaultSecretService.ts +3 -13
  97. package/src/service/configuration/KeyValueServiceProvider.ts +246 -0
  98. package/src/service/configuration/command/ConfigCommand.ts +12 -11
  99. package/src/service/configuration/command/DumpConfigCommand.ts +10 -9
  100. package/src/service/fetch/DefaultFetchService.ts +18 -12
  101. package/src/service/fetch/FetchServiceProvider.ts +2 -4
  102. package/src/service/printer/PrinterServiceProvider.ts +11 -7
  103. package/src/service/printer/command/DarkModeCommand.ts +7 -8
  104. package/src/service/printer/command/LogLevelCommand.ts +10 -11
  105. package/src/service/printer/command/NoColorCommand.ts +7 -8
  106. package/src/service/printer/command/NoHyperlinksCommand.ts +6 -7
  107. package/src/service/prompter/PrompterServiceProvider.ts +1 -1
  108. package/src/service/prompter/command/NoPromptCommand.ts +6 -7
  109. package/src/service/shutdown/DefaultShutdownService.ts +5 -4
  110. package/src/service/shutdown/ShutdownServiceProvider.ts +2 -2
  111. package/src/service/spawn/DefaultSpawnService.ts +18 -14
  112. package/src/service/spawn/SpawnServiceProvider.ts +1 -5
  113. package/src/service/startup/DefaultStartupService.ts +17 -0
  114. package/src/service/startup/StartupServiceProvider.ts +36 -0
  115. package/src/service/upgrade/DefaultUpgradeService.ts +202 -42
  116. package/src/service/upgrade/UpgradeServiceProvider.ts +31 -8
  117. package/src/service/upgrade/command/UpgradeSubCommand.ts +5 -15
  118. package/src/startup/banner/bannerStartupTask.ts +96 -0
  119. package/src/{service → startup}/banner/command/NoBannerCommand.ts +12 -5
  120. package/dist/src/service/banner/BannerServiceProvider.d.ts +0 -29
  121. package/dist/src/service/banner/BannerServiceProvider.d.ts.map +0 -1
  122. package/dist/src/service/banner/BannerServiceProvider.js +0 -69
  123. package/dist/src/service/banner/command/NoBannerCommand.d.ts.map +0 -1
  124. package/src/service/banner/BannerServiceProvider.ts +0 -89
package/README.md CHANGED
@@ -38,6 +38,7 @@
38
38
  - Core (but optional) services for color output (foreground and background),
39
39
  syntax highlighting, pretty printing, table and tree structure rendering,
40
40
  configuration management, and user input prompting.
41
+ - Support for blocking and non-blocking startup tasks.
41
42
  - Graceful signal handling (SIGINT/SIGTERM) with shutdown hooks, cooperative
42
43
  cancellation for long-running commands, and triple-interrupt force exit.
43
44
  - Graceful degradation when piped or run non-interactively: color,
@@ -70,6 +71,7 @@ The following example projects are available:
70
71
  - [Core Service Providers](./README/core-service-providers.md)
71
72
  - [Core Commands](./README/core-commands.md)
72
73
  - [Plugins](./README/plugins.md)
74
+ - [Startup Tasks](./README/startup-tasks.md)
73
75
  - [Development](./README/development.md)
74
76
  - [API Documentation](https://flowscripter.github.io/dynamic-cli-framework/index.html)
75
77
 
package/dist/index.d.ts CHANGED
@@ -24,7 +24,9 @@ export { default as DefaultAsciiBannerGeneratorService } from "./src/service/asc
24
24
  export { default as AsciiBannerGeneratorServiceProvider } from "./src/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.ts";
25
25
  export { default as ChiselFontAsciiBannerGeneratorService } from "./src/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.ts";
26
26
  export type { ChiselBannerColors, ChiselBannerGenerateOptions, } from "./src/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.ts";
27
- export { default as BannerServiceProvider } from "./src/service/banner/BannerServiceProvider.ts";
27
+ export { default as createBannerStartupTask } from "./src/startup/banner/bannerStartupTask.ts";
28
+ export { CONFIGURATION_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
29
+ export type { ConfigurationService } from "@flowscripter/dynamic-cli-framework-api";
28
30
  export { KEY_VALUE_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
29
31
  export { SECRET_SENTINEL_PREFIX } from "@flowscripter/dynamic-cli-framework-api";
30
32
  export type { KeyValueService } from "@flowscripter/dynamic-cli-framework-api";
@@ -33,16 +35,21 @@ export { default as DefaultKeyValueService } from "./src/service/configuration/D
33
35
  export { default as DefaultSecretService } from "./src/service/configuration/DefaultSecretService.ts";
34
36
  export type { SecretsApi } from "./src/service/configuration/DefaultSecretService.ts";
35
37
  export { default as ConfigCommand } from "./src/service/configuration/command/ConfigCommand.ts";
36
- export { default as ConfigurationServiceProvider } from "./src/service/configuration/ConfigurationServiceProvider.ts";
38
+ export { default as ConfigurationServiceProvider, type KeyValueServiceScopeType, } from "./src/service/configuration/ConfigurationServiceProvider.ts";
39
+ export { default as KeyValueServiceProvider } from "./src/service/configuration/KeyValueServiceProvider.ts";
37
40
  export { PRINTER_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
38
41
  export type { PrinterService } from "@flowscripter/dynamic-cli-framework-api";
39
42
  export { Icon, Level, ProgressStyle, SpinnerStyle } from "@flowscripter/dynamic-cli-framework-api";
40
43
  export { default as DefaultPrinterService } from "./src/service/printer/DefaultPrinterService.ts";
41
44
  export { default as PrinterServiceProvider } from "./src/service/printer/PrinterServiceProvider.ts";
42
45
  export { SHUTDOWN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
43
- export type { ShutdownService } from "@flowscripter/dynamic-cli-framework-api";
46
+ export type { ShutdownService, ShutdownTask } from "@flowscripter/dynamic-cli-framework-api";
44
47
  export { default as DefaultShutdownService } from "./src/service/shutdown/DefaultShutdownService.ts";
45
48
  export { default as ShutdownServiceProvider } from "./src/service/shutdown/ShutdownServiceProvider.ts";
49
+ export { STARTUP_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
50
+ export type { StartupService, StartupTask, StartupTaskContext, StartupTaskMode, } from "@flowscripter/dynamic-cli-framework-api";
51
+ export { default as DefaultStartupService } from "./src/service/startup/DefaultStartupService.ts";
52
+ export { default as StartupServiceProvider } from "./src/service/startup/StartupServiceProvider.ts";
46
53
  export { FETCH_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
47
54
  export type { FetchOptions, FetchService } from "@flowscripter/dynamic-cli-framework-api";
48
55
  export { default as DefaultFetchService } from "./src/service/fetch/DefaultFetchService.ts";
@@ -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
@@ -6,13 +6,15 @@ export { ASCII_BANNER_GENERATOR_SERVICE_ID } from "@flowscripter/dynamic-cli-fra
6
6
  export { default as DefaultAsciiBannerGeneratorService } from "./src/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.js";
7
7
  export { default as AsciiBannerGeneratorServiceProvider } from "./src/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.js";
8
8
  export { default as ChiselFontAsciiBannerGeneratorService } from "./src/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.js";
9
- export { default as BannerServiceProvider } from "./src/service/banner/BannerServiceProvider.js";
9
+ export { default as createBannerStartupTask } from "./src/startup/banner/bannerStartupTask.js";
10
+ export { CONFIGURATION_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
10
11
  export { KEY_VALUE_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
11
12
  export { SECRET_SENTINEL_PREFIX } from "@flowscripter/dynamic-cli-framework-api";
12
13
  export { default as DefaultKeyValueService } from "./src/service/configuration/DefaultKeyValueService.js";
13
14
  export { default as DefaultSecretService } from "./src/service/configuration/DefaultSecretService.js";
14
15
  export { default as ConfigCommand } from "./src/service/configuration/command/ConfigCommand.js";
15
- export { default as ConfigurationServiceProvider } from "./src/service/configuration/ConfigurationServiceProvider.js";
16
+ export { default as ConfigurationServiceProvider, } from "./src/service/configuration/ConfigurationServiceProvider.js";
17
+ export { default as KeyValueServiceProvider } from "./src/service/configuration/KeyValueServiceProvider.js";
16
18
  export { PRINTER_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
17
19
  export { Icon, Level, ProgressStyle, SpinnerStyle } from "@flowscripter/dynamic-cli-framework-api";
18
20
  export { default as DefaultPrinterService } from "./src/service/printer/DefaultPrinterService.js";
@@ -20,6 +22,9 @@ export { default as PrinterServiceProvider } from "./src/service/printer/Printer
20
22
  export { SHUTDOWN_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
21
23
  export { default as DefaultShutdownService } from "./src/service/shutdown/DefaultShutdownService.js";
22
24
  export { default as ShutdownServiceProvider } from "./src/service/shutdown/ShutdownServiceProvider.js";
25
+ export { STARTUP_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
26
+ export { default as DefaultStartupService } from "./src/service/startup/DefaultStartupService.js";
27
+ export { default as StartupServiceProvider } from "./src/service/startup/StartupServiceProvider.js";
23
28
  export { FETCH_SERVICE_ID } from "@flowscripter/dynamic-cli-framework-api";
24
29
  export { default as DefaultFetchService } from "./src/service/fetch/DefaultFetchService.js";
25
30
  export { default as FetchServiceProvider } from "./src/service/fetch/FetchServiceProvider.js";
@@ -3,6 +3,7 @@ import type { RunResult } from "@flowscripter/dynamic-cli-framework-api";
3
3
  import type { Command } from "@flowscripter/dynamic-cli-framework-api";
4
4
  import type { ServiceProvider } from "@flowscripter/dynamic-cli-framework-api";
5
5
  import type { CLIConfig } from "@flowscripter/dynamic-cli-framework-api";
6
+ import type { StartupTask } from "@flowscripter/dynamic-cli-framework-api";
6
7
  import { WritableStream } from "node:stream/web";
7
8
  import type Terminal from "../terminal/Terminal.ts";
8
9
  import type Styler from "../terminal/Styler.ts";
@@ -64,6 +65,13 @@ export default class BaseCLI implements CLI {
64
65
  *
65
66
  * @param command the {@link Command} to add.
66
67
  */
68
+ /**
69
+ * Register a {@link StartupTask} to run once during CLI startup, in priority order alongside
70
+ * every registered {@link ServiceProvider}'s `initService()` call.
71
+ *
72
+ * @param task the {@link StartupTask} to register.
73
+ */
74
+ addStartupTask(task: StartupTask): void;
67
75
  addCommand(command: Command): void;
68
76
  run(args: ReadonlyArray<string>): Promise<RunResult>;
69
77
  }
@@ -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;AA4BzE,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;AAgBpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,YAAW,GAAG;;IAYzC,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,EAgEhC;IAED;;;;;;;OAOG;IACI,kBAAkB,CAAC,eAAe,EAAE,eAAe,QAEzD;IAED;;;;;;;;OAQG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,QAQjC;IAEK,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CA4MzD;CACF"}
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;AAkBpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;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,EAoEhC;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,CAsOzD;CACF"}
@@ -10,8 +10,10 @@ import UsageCommand from "../command/UsageCommand.js";
10
10
  import { isGlobalCommand, isGlobalModifierCommand, isGroupCommand, isSubCommand, } from "../runtime/command/CommandTypeGuards.js";
11
11
  import CommandValidator from "../runtime/command/CommandValidator.js";
12
12
  import ShutdownServiceProvider from "../service/shutdown/ShutdownServiceProvider.js";
13
+ import StartupServiceProvider from "../service/startup/StartupServiceProvider.js";
13
14
  import { shutdownState } from "../service/shutdown/ShutdownState.js";
14
15
  import ConfigurationServiceProvider from "../service/configuration/ConfigurationServiceProvider.js";
16
+ import KeyValueServiceProvider from "../service/configuration/KeyValueServiceProvider.js";
15
17
  import PrinterServiceProvider from "../service/printer/PrinterServiceProvider.js";
16
18
  import TableGeneratorServiceProvider from "../service/tableGenerator/TableGeneratorServiceProvider.js";
17
19
  import { run } from "../runtime/runner.js";
@@ -27,7 +29,7 @@ import CompletionServiceProvider from "../service/completion/CompletionServicePr
27
29
  import ImagePrinterServiceProvider from "../service/imagePrinter/ImagePrinterServiceProvider.js";
28
30
  import SpawnServiceProvider from "../service/spawn/SpawnServiceProvider.js";
29
31
  import FetchServiceProvider from "../service/fetch/FetchServiceProvider.js";
30
- import UpgradeServiceProvider from "../service/upgrade/UpgradeServiceProvider.js";
32
+ import UpgradeServiceProvider, { createUpgradeCheckStartupTask, } from "../service/upgrade/UpgradeServiceProvider.js";
31
33
  import PluginServiceProvider from "../service/plugin/PluginServiceProvider.js";
32
34
  const logger = getLogger("BaseCLI");
33
35
  /**
@@ -76,6 +78,7 @@ export default class BaseCLI {
76
78
  #context;
77
79
  #printerService;
78
80
  #stdoutTerminal;
81
+ #startupServiceProvider;
79
82
  constructor(cliConfig, stdoutWritableStream, stderrWritableStream, stdoutIsColor, stderrIsColor, stdoutTerminal, stderrTerminal, styler, keyReader, options) {
80
83
  if (cliConfig.name.length === 0) {
81
84
  throw new Error("Invalid empty CLI name provided");
@@ -122,6 +125,9 @@ export default class BaseCLI {
122
125
  this.#commandRegistry = new DefaultCommandRegistry([], commandValidator);
123
126
  // create a context
124
127
  this.#context = new DefaultContext(this.#cliConfig);
128
+ // priority 95 sits between shutdown (100) and configuration (90) - it has no ordering
129
+ // dependency on anything since its own initService() is a no-op.
130
+ this.#startupServiceProvider = new StartupServiceProvider(95);
125
131
  this.#stdoutTerminal = stdoutTerminal;
126
132
  this.#printerService = new DefaultPrinterService(stdoutWritableStream, stderrWritableStream, stdoutIsColor, stderrIsColor, stdoutTerminal, stderrTerminal, styler);
127
133
  }
@@ -145,6 +151,15 @@ export default class BaseCLI {
145
151
  *
146
152
  * @param command the {@link Command} to add.
147
153
  */
154
+ /**
155
+ * Register a {@link StartupTask} to run once during CLI startup, in priority order alongside
156
+ * every registered {@link ServiceProvider}'s `initService()` call.
157
+ *
158
+ * @param task the {@link StartupTask} to register.
159
+ */
160
+ addStartupTask(task) {
161
+ this.#startupServiceProvider.startupService.registerTask(task);
162
+ }
148
163
  addCommand(command) {
149
164
  if (!isGlobalModifierCommand(command)) {
150
165
  // store the command locally to help determine if this CLI will be a single or multi-command CLI
@@ -165,6 +180,7 @@ export default class BaseCLI {
165
180
  }
166
181
  // create and add core services
167
182
  this.addServiceProvider(new ShutdownServiceProvider(100));
183
+ this.addServiceProvider(this.#startupServiceProvider);
168
184
  this.addServiceProvider(new PrinterServiceProvider(80, this.#printerService));
169
185
  this.addServiceProvider(new TableGeneratorServiceProvider(70));
170
186
  const canPrompt = this.#keyReader !== undefined && this.#stderrTerminal.isTty();
@@ -207,16 +223,22 @@ export default class BaseCLI {
207
223
  const completionService = new DefaultCompletionService();
208
224
  this.addServiceProvider(new CompletionServiceProvider(5, completionService, this.#commandRegistry));
209
225
  }
226
+ let upgradeServiceProvider;
210
227
  if (this.#options.upgradeServiceEnabled) {
211
228
  // 56 runs after Spawn(58)/Fetch(57) - whose dependencies it needs
212
229
  // but before the consumer-configured Banner/Plugin(50) priority band.
213
- this.addServiceProvider(new UpgradeServiceProvider(56, this.#options.upgradeLocationsConfig));
230
+ upgradeServiceProvider = new UpgradeServiceProvider(56, this.#options.upgradeLocationsConfig);
231
+ this.addServiceProvider(upgradeServiceProvider);
214
232
  }
215
233
  if (this.#options.pluginServiceEnabled) {
216
234
  this.addServiceProvider(new PluginServiceProvider(50, this.#options.pluginServiceRemoteConfig, this.#options.pluginServiceLocalConfig, this.#commandRegistry, this.#serviceProviderRegistry));
217
235
  }
218
- const configurationServiceProvider = new ConfigurationServiceProvider(90, this.#options.envVarsSupportEnabled, this.#options.configFileSupportEnabled, this.#options.keyValueServiceEnabled, this.#options.secretServiceEnabled);
236
+ const configurationServiceProvider = new ConfigurationServiceProvider(90, this.#options.envVarsSupportEnabled, this.#options.configFileSupportEnabled, this.#options.secretServiceEnabled);
219
237
  this.addServiceProvider(configurationServiceProvider);
238
+ // priority 89 sits just below ConfigurationServiceProvider's 90 - its config-file read
239
+ // happens in its own initService(), before KeyValueServiceProvider's initService() runs.
240
+ const keyValueServiceProvider = new KeyValueServiceProvider(89, configurationServiceProvider, this.#options.keyValueServiceEnabled, this.#options.secretServiceEnabled);
241
+ this.addServiceProvider(keyValueServiceProvider);
220
242
  for (const serviceProvider of this.#serviceProviderRegistry.getServiceProviders()) {
221
243
  const serviceInfo = await serviceProvider.getServiceInfo(this.#cliConfig);
222
244
  if (serviceInfo.service) {
@@ -226,6 +248,17 @@ export default class BaseCLI {
226
248
  this.#commandRegistry.addCommand(command, serviceProvider.serviceId);
227
249
  });
228
250
  }
251
+ if (upgradeServiceProvider?.upgradeService) {
252
+ this.addStartupTask(createUpgradeCheckStartupTask(upgradeServiceProvider.upgradeService, 56));
253
+ }
254
+ // directly-registered StartupTasks (e.g. the banner task) aren't backed by a ServiceProvider,
255
+ // so their modifierCommands need to be added to the command registry here instead, keyed by
256
+ // the task's own ID.
257
+ for (const task of this.#startupServiceProvider.startupService.getTasks()) {
258
+ (task.modifierCommands ?? []).forEach((command) => {
259
+ this.#commandRegistry.addCommand(command, task.id);
260
+ });
261
+ }
229
262
  logger.debug(() => `Running with args: ${args.join(" ")}`);
230
263
  let helpSubCommand;
231
264
  let helpGlobalCommand;
@@ -250,7 +283,7 @@ export default class BaseCLI {
250
283
  // register the version command
251
284
  this.#commandRegistry.addCommand(new VersionCommand());
252
285
  // run...
253
- const runResult = await run(args, this.#commandRegistry, this.#serviceProviderRegistry, configurationServiceProvider, this.#context, defaultCommand);
286
+ const runResult = await run(args, this.#commandRegistry, this.#serviceProviderRegistry, configurationServiceProvider, keyValueServiceProvider, this.#context, defaultCommand, this.#startupServiceProvider.startupService);
254
287
  // then handle the result...
255
288
  if (runResult.runState === RunState.NO_COMMAND) {
256
289
  // print usage
@@ -1,5 +1,5 @@
1
- import type { SubCommand, Command, RunResult, ServiceProvider } from "@flowscripter/dynamic-cli-framework-api";
1
+ import type { SubCommand, Command, RunResult, ServiceProvider, StartupTask } from "@flowscripter/dynamic-cli-framework-api";
2
2
  import type BaseCLIFeatureOptions from "./cli/BaseCLIFeatureOptions.ts";
3
- export declare function launchSingleCommandCLI(command: SubCommand, description?: string, name?: string, version?: string, serviceProviders?: ReadonlyArray<ServiceProvider>, options?: BaseCLIFeatureOptions): Promise<RunResult>;
4
- export declare function launchMultiCommandCLI(commands: ReadonlyArray<Command>, description?: string, name?: string, version?: string, serviceProviders?: ReadonlyArray<ServiceProvider>, options?: BaseCLIFeatureOptions): Promise<RunResult>;
3
+ export declare function launchSingleCommandCLI(command: SubCommand, description?: string, name?: string, version?: string, serviceProviders?: ReadonlyArray<ServiceProvider>, options?: BaseCLIFeatureOptions, startupTasks?: ReadonlyArray<StartupTask>): Promise<RunResult>;
4
+ export declare function launchMultiCommandCLI(commands: ReadonlyArray<Command>, description?: string, name?: string, version?: string, serviceProviders?: ReadonlyArray<ServiceProvider>, options?: BaseCLIFeatureOptions, startupTasks?: ReadonlyArray<StartupTask>): Promise<RunResult>;
5
5
  //# sourceMappingURL=launcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/launcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,UAAU,EACV,OAAO,EACP,SAAS,EACT,eAAe,EAChB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,qBAAqB,MAAM,gCAAgC,CAAC;AAGxE,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,UAAU,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,EACjD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,SAAS,CAAC,CAuBpB;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,EACjD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,SAAS,CAAC,CAuBpB"}
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/launcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,UAAU,EACV,OAAO,EACP,SAAS,EACT,eAAe,EACf,WAAW,EACZ,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,qBAAqB,MAAM,gCAAgC,CAAC;AAGxE,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,UAAU,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,EACjD,OAAO,CAAC,EAAE,qBAAqB,EAC/B,YAAY,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GACxC,OAAO,CAAC,SAAS,CAAC,CAwBpB;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,EACjD,OAAO,CAAC,EAAE,qBAAqB,EAC/B,YAAY,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GACxC,OAAO,CAAC,SAAS,CAAC,CAwBpB"}
@@ -1,7 +1,7 @@
1
1
  import process from "node:process";
2
2
  import path from "node:path";
3
3
  import DefaultRuntimeCLI from "./cli/DefaultRuntimeCLI.js";
4
- export async function launchSingleCommandCLI(command, description, name, version, serviceProviders, options) {
4
+ export async function launchSingleCommandCLI(command, description, name, version, serviceProviders, options, startupTasks) {
5
5
  if (!name) {
6
6
  name = path.basename(process.execPath);
7
7
  }
@@ -17,10 +17,11 @@ export async function launchSingleCommandCLI(command, description, name, version
17
17
  };
18
18
  const cli = new DefaultRuntimeCLI(cliConfig, mergedOptions);
19
19
  cli.addCommand(command);
20
- serviceProviders?.forEach((service) => cli.addServiceProvider(service));
20
+ serviceProviders?.forEach((serviceProvider) => cli.addServiceProvider(serviceProvider));
21
+ startupTasks?.forEach((startupTask) => cli.addStartupTask(startupTask));
21
22
  return await cli.run();
22
23
  }
23
- export async function launchMultiCommandCLI(commands, description, name, version, serviceProviders, options) {
24
+ export async function launchMultiCommandCLI(commands, description, name, version, serviceProviders, options, startupTasks) {
24
25
  if (!name) {
25
26
  name = path.basename(process.execPath);
26
27
  }
@@ -36,6 +37,7 @@ export async function launchMultiCommandCLI(commands, description, name, version
36
37
  };
37
38
  const cli = new DefaultRuntimeCLI(cliConfig, mergedOptions);
38
39
  commands.forEach((command) => cli.addCommand(command));
39
- serviceProviders?.forEach((service) => cli.addServiceProvider(service));
40
+ serviceProviders?.forEach((serviceProvider) => cli.addServiceProvider(serviceProvider));
41
+ startupTasks?.forEach((startupTask) => cli.addStartupTask(startupTask));
40
42
  return await cli.run();
41
43
  }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Common shape shared by {@link StartupTask} and {@link ShutdownTask}: a task with an optional
3
+ * priority, used to order execution. Higher values run earlier. Undefined is treated as `0`.
4
+ */
5
+ export interface PriorityTask {
6
+ readonly priority?: number;
7
+ }
8
+ /**
9
+ * Stably sort tasks by descending priority (default `0`). Tasks with the same priority keep
10
+ * their relative order in the input array.
11
+ */
12
+ export declare function sortByPriority<T extends PriorityTask>(tasks: ReadonlyArray<T>): Array<T>;
13
+ /**
14
+ * Internal helper shared by {@link DefaultStartupService} and {@link DefaultShutdownService}:
15
+ * accumulates registered tasks and returns them in priority order on demand.
16
+ */
17
+ export default class PriorityTaskList<T extends PriorityTask> {
18
+ #private;
19
+ add(task: T): void;
20
+ sorted(): ReadonlyArray<T>;
21
+ }
22
+ //# sourceMappingURL=PriorityTaskList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PriorityTaskList.d.ts","sourceRoot":"","sources":["../../../../src/runtime/lifecycle/PriorityTaskList.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAKxF;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB,CAAC,CAAC,SAAS,YAAY;;IAGnD,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAExB;IAEM,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAEhC;CACF"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Stably sort tasks by descending priority (default `0`). Tasks with the same priority keep
3
+ * their relative order in the input array.
4
+ */
5
+ export function sortByPriority(tasks) {
6
+ return tasks
7
+ .map((task, index) => ({ task, index }))
8
+ .sort((a, b) => (b.task.priority ?? 0) - (a.task.priority ?? 0) || a.index - b.index)
9
+ .map((entry) => entry.task);
10
+ }
11
+ /**
12
+ * Internal helper shared by {@link DefaultStartupService} and {@link DefaultShutdownService}:
13
+ * accumulates registered tasks and returns them in priority order on demand.
14
+ */
15
+ export default class PriorityTaskList {
16
+ #tasks = [];
17
+ add(task) {
18
+ this.#tasks.push(task);
19
+ }
20
+ sorted() {
21
+ return sortByPriority(this.#tasks);
22
+ }
23
+ }
@@ -3,21 +3,24 @@ import type { RunResult } from "@flowscripter/dynamic-cli-framework-api";
3
3
  import type { CommandRegistry } from "@flowscripter/dynamic-cli-framework-api";
4
4
  import type { ServiceProviderRegistry } from "@flowscripter/dynamic-cli-framework-api";
5
5
  import type ConfigurationServiceProvider from "../service/configuration/ConfigurationServiceProvider.ts";
6
+ import type KeyValueServiceProvider from "../service/configuration/KeyValueServiceProvider.ts";
6
7
  import type { Command } from "@flowscripter/dynamic-cli-framework-api";
8
+ import DefaultStartupService from "../service/startup/DefaultStartupService.ts";
7
9
  /**
8
10
  * Scan arguments and execute the parsed {@link Command} clauses with provided argument values
9
11
  * using the provided {@link Context}.
10
12
  *
11
13
  * An overview of the logic (assuming the optional ConfigurationServiceProvider is provided):
12
14
  *
13
- * 1. For each ServiceProvider in servicePriority order:
14
- * - Scan arguments for GlobalModifierCommand clauses provided by the ServiceProvider
15
+ * 1. For each StartupTask in priority order (whether backed by a ServiceProvider's
16
+ * initService() or registered directly, e.g. the banner task):
17
+ * - Scan arguments for GlobalModifierCommand clauses provided by the task
15
18
  * - For each discovered clause:
16
19
  * - Set any argument defaults from ConfigurationServiceProvider
17
20
  * - Parse the arguments for the GlobalModifierCommand
18
21
  * - Return on error
19
22
  * - Add to list of GlobalModifierCommands to execute
20
- * - Scan ConfigurationServiceProvider for GlobalModifierCommand clauses provided by the ServiceProvider not already found in arguments
23
+ * - Scan ConfigurationServiceProvider for GlobalModifierCommand clauses provided by the task not already found in arguments
21
24
  * - For each configured clause:
22
25
  * - Parse the arguments for the GlobalModifierCommand
23
26
  * - Return on error
@@ -26,14 +29,18 @@ import type { Command } from "@flowscripter/dynamic-cli-framework-api";
26
29
  * - For each GlobalModifierCommand clause:
27
30
  * - Execute the GlobalModifierCommand
28
31
  * - Return on error
29
- * - Init the ServiceProvider's service.
30
- * 2. Scan arguments for any GlobalModifierCommand clauses not provided by ServiceProviders
32
+ * - Give the task a Context whose KeyValueService is bound permanently to its own scope
33
+ * (keyed by task.id), via KeyValueServiceProvider if provided.
34
+ * - Run the task: awaited before continuing if its mode is "blocking" (the default, and how
35
+ * every ServiceProvider's initService() behaves); fired without awaiting if "background"
36
+ * (errors logged, not propagated).
37
+ * 2. Scan arguments for any GlobalModifierCommand clauses not provided by a StartupTask
31
38
  * - For each discovered clause:
32
39
  * - Set any argument defaults from ConfigurationServiceProvider
33
40
  * - Parse the arguments for the GlobalModifierCommand
34
41
  * - Return on error
35
42
  * - Add to list of GlobalModifierCommands to execute
36
- * 3. Scan ConfigurationServiceProvider for GlobalModifierCommand clauses not provided by the ServiceProvider and not already found in arguments
43
+ * 3. Scan ConfigurationServiceProvider for GlobalModifierCommand clauses not provided by a StartupTask and not already found in arguments
37
44
  * - For each discovered clause:
38
45
  * - Parse the arguments for the GlobalModifierCommand
39
46
  * - Return on error
@@ -68,9 +75,10 @@ import type { Command } from "@flowscripter/dynamic-cli-framework-api";
68
75
  * @param commandRegistry the {@link CommandRegistry} to use when scanning and parsing.
69
76
  * @param serviceProviderRegistry the {@link ServiceProviderRegistry} to use when scanning and parsing.
70
77
  * @param configurationServiceProvider optional {@link ConfigurationServiceProvider} to use for accessing argument defaults.
78
+ * @param keyValueServiceProvider optional {@link KeyValueServiceProvider} to use to get a scope-decorated {@link Context}.
71
79
  * @param context the {@link Context} in which to execute specified {@link Command} instances.
72
80
  * @param defaultCommand optional {@link SubCommand} or {@link GlobalCommand} implementation to attempt to parse arguments for and execute if
73
81
  * no non-modifier {@link Command} name is identified in the provided arguments.
74
82
  */
75
- export declare function run(args: ReadonlyArray<string>, commandRegistry: CommandRegistry, serviceProviderRegistry: ServiceProviderRegistry, configurationServiceProvider: ConfigurationServiceProvider | undefined, context: Context, defaultCommand?: Command): Promise<RunResult>;
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<RunResult>;
76
84
  //# 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;AAKzG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAyevE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;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,OAAO,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,OAAO,GACvB,OAAO,CAAC,SAAS,CAAC,CAgJpB"}
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;AAqfhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;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,SAAS,CAAC,CA6JpB"}