astro 5.16.1 → 5.16.2

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 (56) hide show
  1. package/dist/assets/utils/remotePattern.d.ts +1 -3
  2. package/dist/cli/create-key/infra/crypto-key-generator.d.ts +3 -1
  3. package/dist/cli/create-key/infra/crypto-key-generator.js +7 -9
  4. package/dist/cli/definitions.d.ts +9 -8
  5. package/dist/cli/docs/infra/process-cloud-ide-provider.d.ts +4 -1
  6. package/dist/cli/docs/infra/process-cloud-ide-provider.js +3 -7
  7. package/dist/cli/index.js +35 -36
  8. package/dist/cli/info/core/get-package-manager.js +14 -15
  9. package/dist/cli/info/definitions.d.ts +3 -3
  10. package/dist/cli/info/infra/bun-package-manager.d.ts +4 -1
  11. package/dist/cli/info/infra/bun-package-manager.js +6 -10
  12. package/dist/cli/info/infra/cli-astro-config-resolver.d.ts +7 -4
  13. package/dist/cli/info/infra/cli-astro-config-resolver.js +32 -29
  14. package/dist/cli/info/infra/cli-clipboard.d.ts +9 -7
  15. package/dist/cli/info/infra/cli-clipboard.js +48 -37
  16. package/dist/cli/info/infra/cli-debug-info-provider.d.ts +11 -8
  17. package/dist/cli/info/infra/cli-debug-info-provider.js +46 -36
  18. package/dist/cli/info/infra/dev-debug-info-provider.d.ts +12 -9
  19. package/dist/cli/info/infra/dev-debug-info-provider.js +33 -23
  20. package/dist/cli/info/infra/noop-package-manager.d.ts +4 -1
  21. package/dist/cli/info/infra/noop-package-manager.js +6 -10
  22. package/dist/cli/info/infra/npm-package-manager.d.ts +7 -4
  23. package/dist/cli/info/infra/npm-package-manager.js +25 -25
  24. package/dist/cli/info/infra/pnpm-package-manager.d.ts +7 -4
  25. package/dist/cli/info/infra/pnpm-package-manager.js +24 -24
  26. package/dist/cli/info/infra/process-node-version-provider.d.ts +3 -1
  27. package/dist/cli/info/infra/process-node-version-provider.js +3 -7
  28. package/dist/cli/info/infra/process-package-manager-user-agent-provider.d.ts +3 -1
  29. package/dist/cli/info/infra/process-package-manager-user-agent-provider.js +4 -7
  30. package/dist/cli/info/infra/prompts-prompt.d.ts +9 -4
  31. package/dist/cli/info/infra/prompts-prompt.js +20 -15
  32. package/dist/cli/info/infra/styled-debug-info-formatter.d.ts +7 -4
  33. package/dist/cli/info/infra/styled-debug-info-formatter.js +23 -19
  34. package/dist/cli/info/infra/yarn-package-manager.d.ts +7 -4
  35. package/dist/cli/info/infra/yarn-package-manager.js +21 -21
  36. package/dist/cli/infra/build-time-astro-version-provider.d.ts +3 -1
  37. package/dist/cli/infra/build-time-astro-version-provider.js +4 -8
  38. package/dist/cli/infra/cli-command-runner.d.ts +7 -4
  39. package/dist/cli/infra/cli-command-runner.js +14 -10
  40. package/dist/cli/infra/logger-help-display.d.ts +11 -7
  41. package/dist/cli/infra/logger-help-display.js +62 -50
  42. package/dist/cli/infra/passthrough-text-styler.d.ts +8 -1
  43. package/dist/cli/infra/passthrough-text-styler.js +20 -10
  44. package/dist/cli/infra/piccolore-text-styler.d.ts +1 -1
  45. package/dist/cli/infra/piccolore-text-styler.js +2 -4
  46. package/dist/cli/infra/process-operating-system-provider.d.ts +5 -1
  47. package/dist/cli/infra/process-operating-system-provider.js +8 -16
  48. package/dist/cli/infra/tinyexec-command-executor.d.ts +6 -2
  49. package/dist/cli/infra/tinyexec-command-executor.js +28 -30
  50. package/dist/content/content-layer.js +3 -3
  51. package/dist/core/app/index.js +3 -1
  52. package/dist/core/constants.js +1 -1
  53. package/dist/core/dev/dev.js +1 -1
  54. package/dist/core/messages.js +2 -2
  55. package/dist/vite-plugin-astro-server/plugin.js +16 -16
  56. package/package.json +3 -3
@@ -1,15 +1,18 @@
1
1
  import type { AstroConfig } from '../../../types/public/index.js';
2
2
  import type { AstroVersionProvider, OperatingSystemProvider } from '../../definitions.js';
3
3
  import type { DebugInfoProvider, NodeVersionProvider, PackageManager } from '../definitions.js';
4
- interface Options {
5
- config: Pick<AstroConfig, 'output' | 'adapter' | 'integrations'>;
6
- astroVersionProvider: AstroVersionProvider;
7
- packageManager: PackageManager;
8
- operatingSystemProvider: OperatingSystemProvider;
9
- nodeVersionProvider: NodeVersionProvider;
10
- }
4
+ import type { DebugInfo } from '../domain/debug-info.js';
11
5
  /**
12
6
  * Returns debug info without any package versions, to avoid slowing down the dev server
13
7
  */
14
- export declare function createDevDebugInfoProvider({ config, astroVersionProvider, packageManager, operatingSystemProvider, nodeVersionProvider, }: Options): DebugInfoProvider;
15
- export {};
8
+ export declare class DevDebugInfoProvider implements DebugInfoProvider {
9
+ #private;
10
+ constructor({ config, astroVersionProvider, packageManager, operatingSystemProvider, nodeVersionProvider, }: {
11
+ config: Pick<AstroConfig, 'output' | 'adapter' | 'integrations'>;
12
+ astroVersionProvider: AstroVersionProvider;
13
+ packageManager: PackageManager;
14
+ operatingSystemProvider: OperatingSystemProvider;
15
+ nodeVersionProvider: NodeVersionProvider;
16
+ });
17
+ get(): Promise<DebugInfo>;
18
+ }
@@ -1,26 +1,36 @@
1
- function createDevDebugInfoProvider({
2
- config,
3
- astroVersionProvider,
4
- packageManager,
5
- operatingSystemProvider,
6
- nodeVersionProvider
7
- }) {
8
- return {
9
- async get() {
10
- const debugInfo = [
11
- ["Astro", `v${astroVersionProvider.version}`],
12
- ["Node", nodeVersionProvider.get()],
13
- ["System", operatingSystemProvider.displayName],
14
- ["Package Manager", packageManager.getName()],
15
- ["Output", config.output],
16
- ["Adapter", config.adapter?.name ?? "none"]
17
- ];
18
- const integrations = config.integrations.map((integration) => integration.name);
19
- debugInfo.push(["Integrations", integrations.length > 0 ? integrations : "none"]);
20
- return debugInfo;
21
- }
22
- };
1
+ class DevDebugInfoProvider {
2
+ #config;
3
+ #astroVersionProvider;
4
+ #packageManager;
5
+ #operatingSystemProvider;
6
+ #nodeVersionProvider;
7
+ constructor({
8
+ config,
9
+ astroVersionProvider,
10
+ packageManager,
11
+ operatingSystemProvider,
12
+ nodeVersionProvider
13
+ }) {
14
+ this.#config = config;
15
+ this.#astroVersionProvider = astroVersionProvider;
16
+ this.#packageManager = packageManager;
17
+ this.#operatingSystemProvider = operatingSystemProvider;
18
+ this.#nodeVersionProvider = nodeVersionProvider;
19
+ }
20
+ async get() {
21
+ const debugInfo = [
22
+ ["Astro", `v${this.#astroVersionProvider.version}`],
23
+ ["Node", this.#nodeVersionProvider.version],
24
+ ["System", this.#operatingSystemProvider.displayName],
25
+ ["Package Manager", this.#packageManager.name],
26
+ ["Output", this.#config.output],
27
+ ["Adapter", this.#config.adapter?.name ?? "none"]
28
+ ];
29
+ const integrations = this.#config.integrations.map((integration) => integration.name);
30
+ debugInfo.push(["Integrations", integrations.length > 0 ? integrations : "none"]);
31
+ return debugInfo;
32
+ }
23
33
  }
24
34
  export {
25
- createDevDebugInfoProvider
35
+ DevDebugInfoProvider
26
36
  };
@@ -1,2 +1,5 @@
1
1
  import type { PackageManager } from '../definitions.js';
2
- export declare function createNoopPackageManager(): PackageManager;
2
+ export declare class NoopPackageManager implements PackageManager {
3
+ readonly name: string;
4
+ getPackageVersion(): Promise<string | undefined>;
5
+ }
@@ -1,13 +1,9 @@
1
- function createNoopPackageManager() {
2
- return {
3
- getName() {
4
- return "unknown";
5
- },
6
- async getPackageVersion() {
7
- return void 0;
8
- }
9
- };
1
+ class NoopPackageManager {
2
+ name = "unknown";
3
+ async getPackageVersion() {
4
+ return void 0;
5
+ }
10
6
  }
11
7
  export {
12
- createNoopPackageManager
8
+ NoopPackageManager
13
9
  };
@@ -1,7 +1,10 @@
1
1
  import type { CommandExecutor } from '../../definitions.js';
2
2
  import type { PackageManager } from '../definitions.js';
3
- interface Options {
4
- commandExecutor: CommandExecutor;
3
+ export declare class NpmPackageManager implements PackageManager {
4
+ #private;
5
+ readonly name: string;
6
+ constructor({ commandExecutor }: {
7
+ commandExecutor: CommandExecutor;
8
+ });
9
+ getPackageVersion(name: string): Promise<string | undefined>;
5
10
  }
6
- export declare function createNpmPackageManager({ commandExecutor }: Options): PackageManager;
7
- export {};
@@ -1,32 +1,32 @@
1
- function createNpmPackageManager({ commandExecutor }) {
2
- return {
3
- getName() {
4
- return "npm";
5
- },
6
- async getPackageVersion(name) {
7
- try {
8
- const { stdout } = await commandExecutor.execute(
9
- "npm",
10
- ["ls", name, "--json", "--depth=1"],
11
- {
12
- shell: true
13
- }
14
- );
15
- const parsedNpmOutput = JSON.parse(stdout);
16
- if (!parsedNpmOutput.dependencies) {
17
- return void 0;
1
+ class NpmPackageManager {
2
+ name = "npm";
3
+ #commandExecutor;
4
+ constructor({ commandExecutor }) {
5
+ this.#commandExecutor = commandExecutor;
6
+ }
7
+ async getPackageVersion(name) {
8
+ try {
9
+ const { stdout } = await this.#commandExecutor.execute(
10
+ "npm",
11
+ ["ls", name, "--json", "--depth=1"],
12
+ {
13
+ shell: true
18
14
  }
19
- if (parsedNpmOutput.dependencies[name]) {
20
- return `v${parsedNpmOutput.dependencies[name].version}`;
21
- }
22
- const astro = parsedNpmOutput.dependencies.astro;
23
- return astro ? `v${astro.dependencies[name].version}` : void 0;
24
- } catch {
15
+ );
16
+ const parsedNpmOutput = JSON.parse(stdout);
17
+ if (!parsedNpmOutput.dependencies) {
25
18
  return void 0;
26
19
  }
20
+ if (parsedNpmOutput.dependencies[name]) {
21
+ return `v${parsedNpmOutput.dependencies[name].version}`;
22
+ }
23
+ const astro = parsedNpmOutput.dependencies.astro;
24
+ return astro ? `v${astro.dependencies[name].version}` : void 0;
25
+ } catch {
26
+ return void 0;
27
27
  }
28
- };
28
+ }
29
29
  }
30
30
  export {
31
- createNpmPackageManager
31
+ NpmPackageManager
32
32
  };
@@ -1,7 +1,10 @@
1
1
  import type { CommandExecutor } from '../../definitions.js';
2
2
  import type { PackageManager } from '../definitions.js';
3
- interface Options {
4
- commandExecutor: CommandExecutor;
3
+ export declare class PnpmPackageManager implements PackageManager {
4
+ #private;
5
+ readonly name: string;
6
+ constructor({ commandExecutor }: {
7
+ commandExecutor: CommandExecutor;
8
+ });
9
+ getPackageVersion(name: string): Promise<string | undefined>;
5
10
  }
6
- export declare function createPnpmPackageManager({ commandExecutor }: Options): PackageManager;
7
- export {};
@@ -1,33 +1,33 @@
1
1
  function formatPnpmVersionOutput(versionOutput) {
2
2
  return versionOutput.startsWith("link:") ? "Local" : `v${versionOutput}`;
3
3
  }
4
- function createPnpmPackageManager({ commandExecutor }) {
5
- return {
6
- getName() {
7
- return "pnpm";
8
- },
9
- async getPackageVersion(name) {
10
- try {
11
- const { stdout } = await commandExecutor.execute("pnpm", ["why", name, "--json"], {
12
- shell: true
13
- });
14
- const parsedOutput = JSON.parse(stdout);
15
- const deps = parsedOutput[0].dependencies;
16
- if (parsedOutput.length === 0 || !deps) {
17
- return void 0;
18
- }
19
- const userProvidedDependency = deps[name];
20
- if (userProvidedDependency) {
21
- return formatPnpmVersionOutput(userProvidedDependency.version);
22
- }
23
- const astroDependency = deps.astro?.dependencies[name];
24
- return astroDependency ? formatPnpmVersionOutput(astroDependency.version) : void 0;
25
- } catch {
4
+ class PnpmPackageManager {
5
+ name = "pnpm";
6
+ #commandExecutor;
7
+ constructor({ commandExecutor }) {
8
+ this.#commandExecutor = commandExecutor;
9
+ }
10
+ async getPackageVersion(name) {
11
+ try {
12
+ const { stdout } = await this.#commandExecutor.execute("pnpm", ["why", name, "--json"], {
13
+ shell: true
14
+ });
15
+ const parsedOutput = JSON.parse(stdout);
16
+ const deps = parsedOutput[0].dependencies;
17
+ if (parsedOutput.length === 0 || !deps) {
26
18
  return void 0;
27
19
  }
20
+ const userProvidedDependency = deps[name];
21
+ if (userProvidedDependency) {
22
+ return formatPnpmVersionOutput(userProvidedDependency.version);
23
+ }
24
+ const astroDependency = deps.astro?.dependencies[name];
25
+ return astroDependency ? formatPnpmVersionOutput(astroDependency.version) : void 0;
26
+ } catch {
27
+ return void 0;
28
28
  }
29
- };
29
+ }
30
30
  }
31
31
  export {
32
- createPnpmPackageManager
32
+ PnpmPackageManager
33
33
  };
@@ -1,2 +1,4 @@
1
1
  import type { NodeVersionProvider } from '../definitions.js';
2
- export declare function createProcessNodeVersionProvider(): NodeVersionProvider;
2
+ export declare class ProcessNodeVersionProvider implements NodeVersionProvider {
3
+ readonly version: string;
4
+ }
@@ -1,10 +1,6 @@
1
- function createProcessNodeVersionProvider() {
2
- return {
3
- get() {
4
- return process.version;
5
- }
6
- };
1
+ class ProcessNodeVersionProvider {
2
+ version = process.version;
7
3
  }
8
4
  export {
9
- createProcessNodeVersionProvider
5
+ ProcessNodeVersionProvider
10
6
  };
@@ -1,2 +1,4 @@
1
1
  import type { PackageManagerUserAgentProvider } from '../definitions.js';
2
- export declare function createProcessPackageManagerUserAgentProvider(): PackageManagerUserAgentProvider;
2
+ export declare class ProcessPackageManagerUserAgentProvider implements PackageManagerUserAgentProvider {
3
+ readonly userAgent: string | null;
4
+ }
@@ -1,10 +1,7 @@
1
- function createProcessPackageManagerUserAgentProvider() {
2
- return {
3
- getUserAgent() {
4
- return process.env.npm_config_user_agent ?? null;
5
- }
6
- };
1
+ class ProcessPackageManagerUserAgentProvider {
2
+ // https://docs.npmjs.com/cli/v8/using-npm/config#user-agent
3
+ userAgent = process.env.npm_config_user_agent ?? null;
7
4
  }
8
5
  export {
9
- createProcessPackageManagerUserAgentProvider
6
+ ProcessPackageManagerUserAgentProvider
10
7
  };
@@ -1,6 +1,11 @@
1
1
  import type { Prompt } from '../definitions.js';
2
- interface Options {
3
- force: boolean;
2
+ export declare class PromptsPrompt implements Prompt {
3
+ #private;
4
+ constructor({ force }: {
5
+ force: boolean;
6
+ });
7
+ confirm({ message, defaultValue, }: {
8
+ message: string;
9
+ defaultValue?: boolean;
10
+ }): Promise<boolean>;
4
11
  }
5
- export declare function createPromptsPrompt({ force }: Options): Prompt;
6
- export {};
@@ -1,20 +1,25 @@
1
1
  import prompts from "prompts";
2
- function createPromptsPrompt({ force }) {
3
- return {
4
- async confirm({ message, defaultValue }) {
5
- if (force) {
6
- return true;
7
- }
8
- const { value } = await prompts({
9
- type: "confirm",
10
- name: "value",
11
- message,
12
- initial: defaultValue
13
- });
14
- return value;
2
+ class PromptsPrompt {
3
+ #force;
4
+ constructor({ force }) {
5
+ this.#force = force;
6
+ }
7
+ async confirm({
8
+ message,
9
+ defaultValue
10
+ }) {
11
+ if (this.#force) {
12
+ return true;
15
13
  }
16
- };
14
+ const { value } = await prompts({
15
+ type: "confirm",
16
+ name: "value",
17
+ message,
18
+ initial: defaultValue
19
+ });
20
+ return value;
21
+ }
17
22
  }
18
23
  export {
19
- createPromptsPrompt
24
+ PromptsPrompt
20
25
  };
@@ -1,7 +1,10 @@
1
1
  import type { TextStyler } from '../../definitions.js';
2
2
  import type { DebugInfoFormatter } from '../definitions.js';
3
- interface Options {
4
- textStyler: TextStyler;
3
+ import type { DebugInfo } from '../domain/debug-info.js';
4
+ export declare class StyledDebugInfoFormatter implements DebugInfoFormatter {
5
+ #private;
6
+ constructor({ textStyler, }: {
7
+ textStyler: TextStyler;
8
+ });
9
+ format(info: DebugInfo): string;
5
10
  }
6
- export declare function createStyledDebugInfoFormatter({ textStyler }: Options): DebugInfoFormatter;
7
- export {};
@@ -1,25 +1,29 @@
1
- const MAX_PADDING = 25;
2
- function createStyledDebugInfoFormatter({ textStyler }) {
3
- return {
4
- format(info) {
5
- let output = "";
6
- for (const [label, value] of info) {
7
- const padding = MAX_PADDING - label.length;
8
- const [first, ...rest] = Array.isArray(value) ? value : [value];
9
- let richtext = `
10
- ${textStyler.bold(label)}${" ".repeat(padding)}${textStyler.green(first)}`;
11
- if (rest.length > 0) {
12
- for (const entry of rest) {
13
- richtext += `
14
- ${" ".repeat(MAX_PADDING)}${textStyler.green(entry)}`;
15
- }
1
+ class StyledDebugInfoFormatter {
2
+ #textStyler;
3
+ #maxPadding = 25;
4
+ constructor({
5
+ textStyler
6
+ }) {
7
+ this.#textStyler = textStyler;
8
+ }
9
+ format(info) {
10
+ let output = "";
11
+ for (const [label, value] of info) {
12
+ const padding = this.#maxPadding - label.length;
13
+ const [first, ...rest] = Array.isArray(value) ? value : [value];
14
+ let richtext = `
15
+ ${this.#textStyler.bold(label)}${" ".repeat(padding)}${this.#textStyler.green(first)}`;
16
+ if (rest.length > 0) {
17
+ for (const entry of rest) {
18
+ richtext += `
19
+ ${" ".repeat(this.#maxPadding)}${this.#textStyler.green(entry)}`;
16
20
  }
17
- output += richtext;
18
21
  }
19
- return output.trim();
22
+ output += richtext;
20
23
  }
21
- };
24
+ return output.trim();
25
+ }
22
26
  }
23
27
  export {
24
- createStyledDebugInfoFormatter
28
+ StyledDebugInfoFormatter
25
29
  };
@@ -1,7 +1,10 @@
1
1
  import type { CommandExecutor } from '../../definitions.js';
2
2
  import type { PackageManager } from '../definitions.js';
3
- interface Options {
4
- commandExecutor: CommandExecutor;
3
+ export declare class YarnPackageManager implements PackageManager {
4
+ #private;
5
+ readonly name: string;
6
+ constructor({ commandExecutor }: {
7
+ commandExecutor: CommandExecutor;
8
+ });
9
+ getPackageVersion(name: string): Promise<string | undefined>;
5
10
  }
6
- export declare function createYarnPackageManager({ commandExecutor }: Options): PackageManager;
7
- export {};
@@ -6,29 +6,29 @@ function getYarnOutputDepVersion(dependency, outputLine) {
6
6
  }
7
7
  }
8
8
  }
9
- function createYarnPackageManager({ commandExecutor }) {
10
- return {
11
- getName() {
12
- return "yarn";
13
- },
14
- async getPackageVersion(name) {
15
- try {
16
- const { stdout } = await commandExecutor.execute("yarn", ["why", name, "--json"], {
17
- shell: true
18
- });
19
- const hasUserDefinition = stdout.includes("workspace:.");
20
- for (const line of stdout.split("\n")) {
21
- if (hasUserDefinition && line.includes("workspace:."))
22
- return getYarnOutputDepVersion(name, line);
23
- if (!hasUserDefinition && line.includes("astro@"))
24
- return getYarnOutputDepVersion(name, line);
25
- }
26
- } catch {
27
- return void 0;
9
+ class YarnPackageManager {
10
+ name = "yarn";
11
+ #commandExecutor;
12
+ constructor({ commandExecutor }) {
13
+ this.#commandExecutor = commandExecutor;
14
+ }
15
+ async getPackageVersion(name) {
16
+ try {
17
+ const { stdout } = await this.#commandExecutor.execute("yarn", ["why", name, "--json"], {
18
+ shell: true
19
+ });
20
+ const hasUserDefinition = stdout.includes("workspace:.");
21
+ for (const line of stdout.split("\n")) {
22
+ if (hasUserDefinition && line.includes("workspace:."))
23
+ return getYarnOutputDepVersion(name, line);
24
+ if (!hasUserDefinition && line.includes("astro@"))
25
+ return getYarnOutputDepVersion(name, line);
28
26
  }
27
+ } catch {
28
+ return void 0;
29
29
  }
30
- };
30
+ }
31
31
  }
32
32
  export {
33
- createYarnPackageManager
33
+ YarnPackageManager
34
34
  };
@@ -1,2 +1,4 @@
1
1
  import type { AstroVersionProvider } from '../definitions.js';
2
- export declare function createBuildTimeAstroVersionProvider(): AstroVersionProvider;
2
+ export declare class BuildTimeAstroVersionProvider implements AstroVersionProvider {
3
+ readonly version: string;
4
+ }
@@ -1,11 +1,7 @@
1
- function createBuildTimeAstroVersionProvider() {
2
- const version = "5.16.1";
3
- return {
4
- get version() {
5
- return version;
6
- }
7
- };
1
+ class BuildTimeAstroVersionProvider {
2
+ // Injected during the build through esbuild define
3
+ version = "5.16.2";
8
4
  }
9
5
  export {
10
- createBuildTimeAstroVersionProvider
6
+ BuildTimeAstroVersionProvider
11
7
  };
@@ -1,6 +1,9 @@
1
1
  import type { CommandRunner, HelpDisplay } from '../definitions.js';
2
- interface Options {
3
- helpDisplay: HelpDisplay;
2
+ import type { AnyCommand } from '../domain/command.js';
3
+ export declare class CliCommandRunner implements CommandRunner {
4
+ #private;
5
+ constructor({ helpDisplay, }: {
6
+ helpDisplay: HelpDisplay;
7
+ });
8
+ run<T extends AnyCommand>(command: T, ...args: Parameters<T['run']>): ReturnType<T['run']> | undefined;
4
9
  }
5
- export declare function createCliCommandRunner({ helpDisplay }: Options): CommandRunner;
6
- export {};
@@ -1,14 +1,18 @@
1
- function createCliCommandRunner({ helpDisplay }) {
2
- return {
3
- run(command, ...args) {
4
- if (helpDisplay.shouldFire()) {
5
- helpDisplay.show(command.help);
6
- return;
7
- }
8
- return command.run(...args);
1
+ class CliCommandRunner {
2
+ #helpDisplay;
3
+ constructor({
4
+ helpDisplay
5
+ }) {
6
+ this.#helpDisplay = helpDisplay;
7
+ }
8
+ run(command, ...args) {
9
+ if (this.#helpDisplay.shouldFire()) {
10
+ this.#helpDisplay.show(command.help);
11
+ return;
9
12
  }
10
- };
13
+ return command.run(...args);
14
+ }
11
15
  }
12
16
  export {
13
- createCliCommandRunner
17
+ CliCommandRunner
14
18
  };
@@ -1,11 +1,15 @@
1
1
  import type { Logger } from '../../core/logger/core.js';
2
2
  import type { AstroVersionProvider, HelpDisplay, TextStyler } from '../definitions.js';
3
+ import type { HelpPayload } from '../domain/help-payload.js';
3
4
  import type { Flags } from '../flags.js';
4
- interface Options {
5
- logger: Logger;
6
- textStyler: TextStyler;
7
- astroVersionProvider: AstroVersionProvider;
8
- flags: Flags;
5
+ export declare class LoggerHelpDisplay implements HelpDisplay {
6
+ #private;
7
+ constructor({ logger, textStyler, astroVersionProvider, flags, }: {
8
+ logger: Logger;
9
+ textStyler: TextStyler;
10
+ astroVersionProvider: AstroVersionProvider;
11
+ flags: Flags;
12
+ });
13
+ shouldFire(): boolean;
14
+ show({ commandName, description, headline, tables, usage }: HelpPayload): void;
9
15
  }
10
- export declare function createLoggerHelpDisplay({ logger, flags, textStyler, astroVersionProvider, }: Options): HelpDisplay;
11
- export {};