@thymian/common-cli 0.0.0-PLACEHOLDER

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 (111) hide show
  1. package/README.md +59 -0
  2. package/dist/base-cli-run-command.d.ts +94 -0
  3. package/dist/base-cli-run-command.d.ts.map +1 -0
  4. package/dist/base-cli-run-command.js +440 -0
  5. package/dist/base-cli-run-command.js.map +1 -0
  6. package/dist/default-config.d.ts +3 -0
  7. package/dist/default-config.d.ts.map +1 -0
  8. package/dist/default-config.js +27 -0
  9. package/dist/default-config.js.map +1 -0
  10. package/dist/error-cache.d.ts +31 -0
  11. package/dist/error-cache.d.ts.map +1 -0
  12. package/dist/error-cache.js +36 -0
  13. package/dist/error-cache.js.map +1 -0
  14. package/dist/feedback.d.ts +13 -0
  15. package/dist/feedback.d.ts.map +1 -0
  16. package/dist/feedback.js +30 -0
  17. package/dist/feedback.js.map +1 -0
  18. package/dist/flags/filter-flag.d.ts +20 -0
  19. package/dist/flags/filter-flag.d.ts.map +1 -0
  20. package/dist/flags/filter-flag.js +63 -0
  21. package/dist/flags/filter-flag.js.map +1 -0
  22. package/dist/flags/option-flag.d.ts +39 -0
  23. package/dist/flags/option-flag.d.ts.map +1 -0
  24. package/dist/flags/option-flag.js +144 -0
  25. package/dist/flags/option-flag.js.map +1 -0
  26. package/dist/flags/rule-set-flag.d.ts +5 -0
  27. package/dist/flags/rule-set-flag.d.ts.map +1 -0
  28. package/dist/flags/rule-set-flag.js +9 -0
  29. package/dist/flags/rule-set-flag.js.map +1 -0
  30. package/dist/flags/spec-flag.d.ts +11 -0
  31. package/dist/flags/spec-flag.d.ts.map +1 -0
  32. package/dist/flags/spec-flag.js +25 -0
  33. package/dist/flags/spec-flag.js.map +1 -0
  34. package/dist/flags/traffic-flag.d.ts +10 -0
  35. package/dist/flags/traffic-flag.d.ts.map +1 -0
  36. package/dist/flags/traffic-flag.js +24 -0
  37. package/dist/flags/traffic-flag.js.map +1 -0
  38. package/dist/get-config.d.ts +20 -0
  39. package/dist/get-config.d.ts.map +1 -0
  40. package/dist/get-config.js +82 -0
  41. package/dist/get-config.js.map +1 -0
  42. package/dist/hooks/feedback-hook.d.ts +9 -0
  43. package/dist/hooks/feedback-hook.d.ts.map +1 -0
  44. package/dist/hooks/feedback-hook.js +2 -0
  45. package/dist/hooks/feedback-hook.js.map +1 -0
  46. package/dist/hooks/plugin-init-hook.d.ts +20 -0
  47. package/dist/hooks/plugin-init-hook.d.ts.map +1 -0
  48. package/dist/hooks/plugin-init-hook.js +2 -0
  49. package/dist/hooks/plugin-init-hook.js.map +1 -0
  50. package/dist/hooks/spec-search-hook.d.ts +18 -0
  51. package/dist/hooks/spec-search-hook.d.ts.map +1 -0
  52. package/dist/hooks/spec-search-hook.js +2 -0
  53. package/dist/hooks/spec-search-hook.js.map +1 -0
  54. package/dist/hooks/traffic-search-hook.d.ts +18 -0
  55. package/dist/hooks/traffic-search-hook.d.ts.map +1 -0
  56. package/dist/hooks/traffic-search-hook.js +2 -0
  57. package/dist/hooks/traffic-search-hook.js.map +1 -0
  58. package/dist/index.d.ts +20 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +20 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/merge-inputs.d.ts +34 -0
  63. package/dist/merge-inputs.d.ts.map +1 -0
  64. package/dist/merge-inputs.js +50 -0
  65. package/dist/merge-inputs.js.map +1 -0
  66. package/dist/oclif.d.ts +2 -0
  67. package/dist/oclif.d.ts.map +1 -0
  68. package/dist/oclif.js +2 -0
  69. package/dist/oclif.js.map +1 -0
  70. package/dist/promise-queue.d.ts +7 -0
  71. package/dist/promise-queue.d.ts.map +1 -0
  72. package/dist/promise-queue.js +24 -0
  73. package/dist/promise-queue.js.map +1 -0
  74. package/dist/prompts.d.ts +5 -0
  75. package/dist/prompts.d.ts.map +1 -0
  76. package/dist/prompts.js +7 -0
  77. package/dist/prompts.js.map +1 -0
  78. package/dist/read-plugins.d.ts +2 -0
  79. package/dist/read-plugins.d.ts.map +1 -0
  80. package/dist/read-plugins.js +23 -0
  81. package/dist/read-plugins.js.map +1 -0
  82. package/dist/safe-parse.d.ts +2 -0
  83. package/dist/safe-parse.d.ts.map +1 -0
  84. package/dist/safe-parse.js +22 -0
  85. package/dist/safe-parse.js.map +1 -0
  86. package/dist/thymian-base-command.d.ts +21 -0
  87. package/dist/thymian-base-command.d.ts.map +1 -0
  88. package/dist/thymian-base-command.js +60 -0
  89. package/dist/thymian-base-command.js.map +1 -0
  90. package/dist/thymian-config-schema.d.ts +85 -0
  91. package/dist/thymian-config-schema.d.ts.map +1 -0
  92. package/dist/thymian-config-schema.js +79 -0
  93. package/dist/thymian-config-schema.js.map +1 -0
  94. package/dist/thymian-config-schema.json +116 -0
  95. package/dist/thymian-config.d.ts +19 -0
  96. package/dist/thymian-config.d.ts.map +1 -0
  97. package/dist/thymian-config.js +2 -0
  98. package/dist/thymian-config.js.map +1 -0
  99. package/dist/validate-config.d.ts +8 -0
  100. package/dist/validate-config.d.ts.map +1 -0
  101. package/dist/validate-config.js +18 -0
  102. package/dist/validate-config.js.map +1 -0
  103. package/dist/workflow-outcome.d.ts +21 -0
  104. package/dist/workflow-outcome.d.ts.map +1 -0
  105. package/dist/workflow-outcome.js +51 -0
  106. package/dist/workflow-outcome.js.map +1 -0
  107. package/dist/yaml.d.ts +2 -0
  108. package/dist/yaml.d.ts.map +1 -0
  109. package/dist/yaml.js +2 -0
  110. package/dist/yaml.js.map +1 -0
  111. package/package.json +52 -0
package/README.md ADDED
@@ -0,0 +1,59 @@
1
+ <!-- HEADER:START - Do not remove or modify this section -->
2
+ <div align="center">
3
+ <img src="https://raw.githubusercontent.com/thymianofficial/thymian/main/astro-docs/src/assets/logo.svg" alt="Thymian Logo" width="200"/>
4
+
5
+ # Thymian
6
+
7
+ **Add resilience and HTTP conformance to your API development workflow**
8
+
9
+ [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL%203.0-green.svg)](https://github.com/thymianofficial/thymian/blob/main/LICENSE)
10
+ [![CI](https://github.com/thymianofficial/thymian/actions/workflows/ci.yaml/badge.svg)](https://github.com/thymianofficial/thymian/actions/workflows/ci.yaml)
11
+ [![Documentation](https://img.shields.io/badge/docs-thymian.dev-green.svg)](https://thymian.dev)
12
+ [![Discord](https://img.shields.io/discord/1440702693768429791?logo=discord&label=Discord&color=5865F2)](https://discord.gg/TRSwCxbz9f)
13
+ [![Reddit](https://img.shields.io/badge/Reddit-ThymianOfficial-FF4500?logo=reddit)](https://www.reddit.com/r/ThymianOfficial/)
14
+ [![Twitter](https://img.shields.io/badge/Twitter-@thymiandev-1DA1F2?logo=x)](https://x.com/thymiandev)
15
+
16
+ </div>
17
+ <!-- HEADER:END -->
18
+
19
+ ## @thymian/common-cli
20
+
21
+ Shared CLI infrastructure used by the Thymian command-line tool. Provides common command patterns, output formatting, and configuration loading utilities that are shared across all Thymian CLI commands.
22
+
23
+ ## Installation
24
+
25
+ ```bash
26
+ npm install @thymian/common-cli
27
+ ```
28
+
29
+ > **Getting started with Thymian?** See the [main Thymian package](https://www.npmjs.com/package/thymian) for quick installation and first-run instructions.
30
+
31
+ <!-- FOOTER:START - Do not remove or modify this section -->
32
+
33
+ ## 📚 Documentation
34
+
35
+ - **[Getting Started](https://thymian.dev/introduction/getting-started)** - Set up Thymian in minutes
36
+ - **[Documentation](https://thymian.dev)** - Comprehensive guides and API reference
37
+ - **[CLI Reference](https://thymian.dev/references/cli)** - Complete CLI command documentation
38
+ - **[HTTP Rules](https://thymian.dev/guides/http-rules/how-to-use-rules)** - Learn about HTTP conformance validation
39
+
40
+ ## 🏢 Enterprise Support
41
+
42
+ Get professional consulting and dedicated support from the creators of Thymian. We offer:
43
+
44
+ - API design and governance strategies
45
+ - HTTP standards compliance auditing
46
+ - Custom plugin development
47
+ - Custom rule development
48
+ - Team training and workshops
49
+
50
+ **[Learn more about Enterprise Support](https://thymian.dev/enterprise)** | **Email: [support@thymian.dev](mailto:support@thymian.dev)**
51
+
52
+ ---
53
+
54
+ <div align="center">
55
+
56
+ **Shipped with 🌱 by [qupaya](https://qupaya.com)**
57
+
58
+ </div>
59
+ <!-- FOOTER:END -->
@@ -0,0 +1,94 @@
1
+ import { Command, Interfaces } from '@oclif/core';
2
+ import type { CommandError } from '@oclif/core/interfaces';
3
+ import { type Logger, type SpecificationInput, Thymian, type ThymianPlugin, type TrafficInput } from '@thymian/core';
4
+ import { ErrorCache } from './error-cache.js';
5
+ import { Feedback } from './feedback.js';
6
+ import type { ThymianConfig } from './thymian-config.js';
7
+ export type CommandFlags<T extends typeof Command> = Interfaces.InferredFlags<(typeof BaseCliRunCommand)['baseFlags'] & T['flags']>;
8
+ export type CommandArgs<T extends typeof Command> = Interfaces.InferredArgs<T['args']>;
9
+ export declare abstract class BaseCliRunCommand<T extends typeof Command> extends Command {
10
+ static enableJsonFlag: boolean;
11
+ /**
12
+ * Whether this command requires API specifications to run.
13
+ * Commands that operate independently of specs (e.g. `serve`, `http-linter:overview`)
14
+ * can set this to `false` to skip the spec resolution chain (Steps C–F).
15
+ */
16
+ static requiresSpecifications: boolean;
17
+ /**
18
+ * Whether this command requires traffic inputs to run.
19
+ * Only `analyze` sets this to `true`. When enabled, traffic is resolved
20
+ * via --traffic flag → config → thymian.traffic-search hook → guidance.
21
+ */
22
+ static requiresTraffic: boolean;
23
+ static baseFlags: {
24
+ verbose: Interfaces.BooleanFlag<boolean>;
25
+ debug: Interfaces.BooleanFlag<boolean>;
26
+ guidance: Interfaces.BooleanFlag<boolean>;
27
+ "sort-reports-by": Interfaces.OptionFlag<string, Interfaces.CustomOptions>;
28
+ "log-level": Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
29
+ config: Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
30
+ autoload: Interfaces.BooleanFlag<boolean>;
31
+ plugin: Interfaces.OptionFlag<string[], Interfaces.CustomOptions>;
32
+ option: Interfaces.OptionFlag<import("./flags/option-flag.js").PluginOptionOverride[] | undefined, Interfaces.CustomOptions>;
33
+ spec: Interfaces.OptionFlag<SpecificationInput[] | undefined, Interfaces.CustomOptions>;
34
+ traffic: Interfaces.OptionFlag<TrafficInput[] | undefined, Interfaces.CustomOptions>;
35
+ "rule-set": Interfaces.OptionFlag<string[] | undefined, Interfaces.CustomOptions>;
36
+ "rule-severity": Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
37
+ timeout: Interfaces.OptionFlag<number, Interfaces.CustomOptions>;
38
+ "idle-timeout": Interfaces.OptionFlag<number, Interfaces.CustomOptions>;
39
+ cwd: Interfaces.OptionFlag<string, Interfaces.CustomOptions>;
40
+ "suppress-feedback": Interfaces.BooleanFlag<boolean>;
41
+ };
42
+ protected flags: CommandFlags<T>;
43
+ protected args: CommandArgs<T>;
44
+ protected logger: Logger;
45
+ protected thymianConfig: ThymianConfig;
46
+ protected thymian: Thymian;
47
+ protected feedback?: Feedback;
48
+ protected errorCache?: ErrorCache;
49
+ /**
50
+ * Whether guidance output is enabled for this command run.
51
+ * Resolved from `--guidance`/`--no-guidance` flag with TTY auto-detection fallback.
52
+ */
53
+ protected guidanceEnabled: boolean;
54
+ init(): Promise<void>;
55
+ protected catch(err: CommandError): Promise<void>;
56
+ protected printStackTraces(err: unknown): void;
57
+ protected shouldAutoload(): boolean;
58
+ /**
59
+ * Run the `thymian.spec-search` oclif hook to let plugins discover specification files.
60
+ * Returns results grouped by plugin, each containing typed SpecificationInput[].
61
+ */
62
+ private runSpecSearch;
63
+ /**
64
+ * Run the `thymian.traffic-search` oclif hook to let plugins discover traffic files.
65
+ * Returns results grouped by plugin, each containing typed TrafficInput[].
66
+ */
67
+ private runTrafficSearch;
68
+ /**
69
+ * Apply `-o` flag overrides to the loaded Thymian configuration.
70
+ *
71
+ * Each override targets a specific plugin by name and sets a deeply
72
+ * nested property on its `options` object. If the plugin entry does
73
+ * not yet exist in the config it will be created.
74
+ */
75
+ protected overridePluginOptions(): void;
76
+ /**
77
+ * Re-resolve log level considering the config file.
78
+ * Only applies config.logLevel if no explicit flag was set.
79
+ */
80
+ private resolveLogLevelWithConfig;
81
+ setThymian(thymian: Thymian): void;
82
+ protected loadPluginModule(nameOrPath: string, isRelativePath?: boolean): Promise<ThymianPlugin>;
83
+ protected registerPlugin(nameOrPath: string, isRelativePath?: boolean): Promise<void>;
84
+ protected addPluginsToThymianConfig(): Promise<void>;
85
+ protected registerPluginsFromConfig(): Promise<void>;
86
+ shouldSuppressFeedback(): boolean;
87
+ /**
88
+ * Write a guidance message to stderr when guidance is enabled.
89
+ * This is the single choke-point for all guidance output — if
90
+ * `this.guidanceEnabled` is false, the method is a no-op.
91
+ */
92
+ guidance(message: string): void;
93
+ }
94
+ //# sourceMappingURL=base-cli-run-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-cli-run-command.d.ts","sourceRoot":"","sources":["../src/base-cli-run-command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAS,UAAU,EAAgB,MAAM,aAAa,CAAC;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAGL,KAAK,MAAM,EAEX,KAAK,kBAAkB,EAEvB,OAAO,EAEP,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,aAAa,CAC3E,CAAC,OAAO,iBAAiB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CACrD,CAAC;AACF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,YAAY,CACzE,CAAC,CAAC,MAAM,CAAC,CACV,CAAC;AAEF,8BAAsB,iBAAiB,CACrC,CAAC,SAAS,OAAO,OAAO,CACxB,SAAQ,OAAO;IACf,OAAgB,cAAc,UAAQ;IAEtC;;;;OAIG;IACH,MAAM,CAAC,sBAAsB,UAAQ;IAErC;;;;OAIG;IACH,MAAM,CAAC,eAAe,UAAS;IAE/B,OAAgB,SAAS;;;;;;;;;;;;;;;;;;MAgFvB;IAEF,SAAS,CAAC,KAAK,EAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS,CAAC,IAAI,EAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAChC,SAAS,CAAC,MAAM,EAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,aAAa,EAAG,aAAa,CAAC;IACxC,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC;IAC5B,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC9B,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAElC;;;OAGG;IACH,SAAS,CAAC,eAAe,UAAS;IAEZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;cAyJlB,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA6ChE,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAe9C,SAAS,CAAC,cAAc,IAAI,OAAO;IAQnC;;;OAGG;YACW,aAAa;IAgB3B;;;OAGG;YACW,gBAAgB;IAgB9B;;;;;;OAMG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAiBvC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAyB1B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;cAIzB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,cAAc,UAAQ,GACrB,OAAO,CAAC,aAAa,CAAC;cAwCT,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,cAAc,UAAQ,GACrB,OAAO,CAAC,IAAI,CAAC;cAeA,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;cA4B1C,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnD,sBAAsB,IAAI,OAAO;IAIxC;;;;OAIG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAOvC"}
@@ -0,0 +1,440 @@
1
+ import { createRequire } from 'node:module';
2
+ import { isAbsolute, resolve } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ import { inspect } from 'node:util';
5
+ import { Command, Flags, Interfaces, settings, ux } from '@oclif/core';
6
+ import { CLIError } from '@oclif/core/errors';
7
+ import { isLogLevel, isPlugin, TextLogger, Thymian, ThymianBaseError, } from '@thymian/core';
8
+ import { ErrorCache } from './error-cache.js';
9
+ import { Feedback } from './feedback.js';
10
+ import { deepSet, optionFlag } from './flags/option-flag.js';
11
+ import { ruleSetFlag } from './flags/rule-set-flag.js';
12
+ import { specFlag } from './flags/spec-flag.js';
13
+ import { trafficFlag } from './flags/traffic-flag.js';
14
+ import { getConfig } from './get-config.js';
15
+ const require = createRequire(import.meta.url);
16
+ export class BaseCliRunCommand extends Command {
17
+ static enableJsonFlag = true;
18
+ /**
19
+ * Whether this command requires API specifications to run.
20
+ * Commands that operate independently of specs (e.g. `serve`, `http-linter:overview`)
21
+ * can set this to `false` to skip the spec resolution chain (Steps C–F).
22
+ */
23
+ static requiresSpecifications = true;
24
+ /**
25
+ * Whether this command requires traffic inputs to run.
26
+ * Only `analyze` sets this to `true`. When enabled, traffic is resolved
27
+ * via --traffic flag → config → thymian.traffic-search hook → guidance.
28
+ */
29
+ static requiresTraffic = false;
30
+ static baseFlags = {
31
+ verbose: Flags.boolean({
32
+ default: false,
33
+ description: 'Run thymian in verbose mode.',
34
+ helpGroup: 'BASE',
35
+ }),
36
+ debug: Flags.boolean({
37
+ default: false,
38
+ charAliases: ['d'],
39
+ description: 'Run thymian in debug mode.',
40
+ helpGroup: 'BASE',
41
+ }),
42
+ guidance: Flags.boolean({
43
+ allowNo: true,
44
+ description: 'Show guidance hints on stderr. Defaults to true for TTY, false for non-TTY.',
45
+ helpGroup: 'BASE',
46
+ }),
47
+ ['sort-reports-by']: Flags.string({
48
+ description: 'Control how validation findings are grouped in the report.',
49
+ helpGroup: 'BASE',
50
+ options: ['rule', 'endpoint', 'severity'],
51
+ default: 'endpoint',
52
+ }),
53
+ ['log-level']: Flags.string({
54
+ description: 'Set log level (trace, debug, info, warn, error, silent). When set to trace, all events are traced.',
55
+ helpGroup: 'BASE',
56
+ options: ['trace', 'debug', 'info', 'warn', 'error', 'silent'],
57
+ }),
58
+ config: Flags.file({
59
+ aliases: ['c'],
60
+ charAliases: ['c'],
61
+ description: 'Path to thymian configuration file.',
62
+ helpGroup: 'BASE',
63
+ }),
64
+ autoload: Flags.boolean({
65
+ allowNo: true,
66
+ description: 'Disable automatic loading and initialization of plugins based on configuration file.',
67
+ helpGroup: 'BASE',
68
+ }),
69
+ plugin: Flags.string({
70
+ multiple: true,
71
+ charAliases: ['p'],
72
+ default: [],
73
+ helpGroup: 'BASE',
74
+ }),
75
+ option: optionFlag(),
76
+ spec: specFlag(),
77
+ traffic: trafficFlag(),
78
+ ['rule-set']: ruleSetFlag(),
79
+ ['rule-severity']: Flags.string({
80
+ description: 'Set the minimum rule severity threshold for rule loading (off, error, warn, hint). Only rules at or above this severity are loaded.',
81
+ helpGroup: 'BASE',
82
+ options: ['off', 'error', 'warn', 'hint'],
83
+ }),
84
+ timeout: Flags.integer({
85
+ default: Thymian.DEFAULT_TIMEOUT,
86
+ charAliases: ['t'],
87
+ description: 'Set the duration in ms to wait for anything that happens in Thymian.',
88
+ helpGroup: 'BASE',
89
+ }),
90
+ ['idle-timeout']: Flags.integer({
91
+ description: 'Set the duration in ms to waited for events and actions when closing Thymian.',
92
+ helpGroup: 'BASE',
93
+ default: Thymian.DEFAULT_IDLE_TIMEOUT,
94
+ }),
95
+ cwd: Flags.string({
96
+ default: process.cwd(),
97
+ description: 'Set current working directory.',
98
+ }),
99
+ ['suppress-feedback']: Flags.boolean({
100
+ default: false,
101
+ description: 'Suppress feedback messages from Thymian.',
102
+ helpGroup: 'BASE',
103
+ }),
104
+ };
105
+ flags;
106
+ args;
107
+ logger;
108
+ thymianConfig;
109
+ thymian;
110
+ feedback;
111
+ errorCache;
112
+ /**
113
+ * Whether guidance output is enabled for this command run.
114
+ * Resolved from `--guidance`/`--no-guidance` flag with TTY auto-detection fallback.
115
+ */
116
+ guidanceEnabled = false;
117
+ async init() {
118
+ await super.init();
119
+ this.errorCache = ErrorCache.forCommand(this);
120
+ const { args, flags } = await this.parse({
121
+ flags: this.ctor.flags,
122
+ baseFlags: super.ctor.baseFlags,
123
+ enableJsonFlag: this.ctor.enableJsonFlag,
124
+ args: this.ctor.args,
125
+ strict: this.ctor.strict,
126
+ });
127
+ this.flags = flags;
128
+ this.args = args;
129
+ this.flags.debug = settings.debug || this.flags.debug;
130
+ this.guidanceEnabled = this.flags.guidance ?? Boolean(process.stderr.isTTY);
131
+ this.feedback = Feedback.forCommand(this);
132
+ // --- Config Resolution Chain ---
133
+ // Step A+B: Load config from --config flag, well-known file, or defaultConfig
134
+ this.thymianConfig = await getConfig({
135
+ configPath: this.flags.config,
136
+ cwd: this.flags.cwd,
137
+ });
138
+ this.overridePluginOptions();
139
+ // Step C: --spec flag overrides config specifications
140
+ if (this.flags.spec && this.flags.spec.length > 0) {
141
+ this.thymianConfig = {
142
+ ...this.thymianConfig,
143
+ specifications: this.flags.spec,
144
+ };
145
+ }
146
+ // Step D+E+F: If no specifications at this point, ask plugins to search
147
+ // Only enforced for commands that require specifications.
148
+ const requiresSpecs = this.ctor
149
+ .requiresSpecifications;
150
+ if (requiresSpecs &&
151
+ (!this.thymianConfig.specifications ||
152
+ this.thymianConfig.specifications.length === 0)) {
153
+ const discovered = await this.runSpecSearch();
154
+ if (discovered.length > 0) {
155
+ // Step E: Specifications found — suggest user actions and exit
156
+ const fileList = discovered
157
+ .flatMap((d) => d.specifications.map((s) => ` - ${s.location}`))
158
+ .join('\n');
159
+ const firstSpec = discovered[0].specifications[0];
160
+ ux.stderr(`No specification configured. The following specification files were detected:\n\n${fileList}\n`);
161
+ ux.stderr('Rerun with --spec to use a detected file, for example:\n');
162
+ ux.stderr(` $ thymian ${this.id} --spec ${formatSpecInput(firstSpec)}\n`);
163
+ ux.stderr('Or generate a reusable config:\n');
164
+ ux.stderr(` $ thymian generate config --for-spec ${formatSpecInput(firstSpec)}\n`);
165
+ this.exit(2);
166
+ }
167
+ else {
168
+ // Step F: No specifications found anywhere
169
+ ux.stderr('No specification found. Provide a specification with --spec or create a configuration file.\n');
170
+ ux.stderr(' $ thymian generate config\n');
171
+ this.exit(2);
172
+ }
173
+ }
174
+ // --- Traffic Resolution Chain ---
175
+ // --traffic flag overrides config traffic
176
+ if (this.flags.traffic && this.flags.traffic.length > 0) {
177
+ this.thymianConfig = {
178
+ ...this.thymianConfig,
179
+ traffic: this.flags.traffic,
180
+ };
181
+ }
182
+ const requiresTraffic = this.ctor
183
+ .requiresTraffic;
184
+ if (requiresTraffic &&
185
+ (!this.thymianConfig.traffic || this.thymianConfig.traffic.length === 0)) {
186
+ const discovered = await this.runTrafficSearch();
187
+ if (discovered.length > 0) {
188
+ const fileList = discovered
189
+ .flatMap((d) => d.traffic.map((t) => ` * ${formatTrafficInput(t)}`))
190
+ .join('\n');
191
+ const firstTraffic = discovered[0].traffic[0];
192
+ ux.stderr(`No traffic configured. The following traffic files were detected:\n\n${fileList}\n`);
193
+ ux.stderr('Rerun with --traffic to use a detected file, for example:\n');
194
+ ux.stderr(` $ thymian ${this.id} --traffic ${formatTrafficInput(firstTraffic)}\n`);
195
+ this.exit(2);
196
+ }
197
+ else {
198
+ ux.stderr('No traffic found. Provide traffic with --traffic or add it to your configuration file.\n');
199
+ this.exit(2);
200
+ }
201
+ }
202
+ const logLevel = this.resolveLogLevelWithConfig();
203
+ this.logger = new TextLogger('thymian', logLevel);
204
+ this.logger.info('Configuration loaded.');
205
+ const specCount = this.thymianConfig.specifications?.length ?? 0;
206
+ if (specCount > 0) {
207
+ this.logger.info(`Resolved ${specCount} specification(s).`);
208
+ }
209
+ this.thymian = new Thymian(this.logger.child('@thymian/core'), {
210
+ timeout: this.flags.timeout,
211
+ cwd: this.flags.cwd,
212
+ idleTimeout: this.flags['idle-timeout'],
213
+ sortReportsBy: this.flags['sort-reports-by'],
214
+ });
215
+ this.logger.info('Thymian instance created.');
216
+ if (this.shouldAutoload()) {
217
+ this.debug('Autoloading Thymian plugins.');
218
+ this.logger.info('Autoloading plugins from configuration...');
219
+ await this.addPluginsToThymianConfig();
220
+ await this.registerPluginsFromConfig();
221
+ }
222
+ await this.feedback?.run();
223
+ }
224
+ async catch(err) {
225
+ await this.feedback?.error();
226
+ const versionDetails = this.config.versionDetails;
227
+ const pluginVersions = Object.entries(versionDetails.pluginVersions ?? {})
228
+ .filter(([name]) => !name.startsWith('@oclif'))
229
+ .map(([name, version]) => ({ name, version: version.version }));
230
+ await this.errorCache?.write({
231
+ name: err.name,
232
+ message: err.message,
233
+ commandName: this.id ?? 'unknown command',
234
+ timestamp: Date.now(),
235
+ cause: err.cause,
236
+ stack: err.stack,
237
+ argv: process.argv,
238
+ version: {
239
+ architecture: versionDetails.architecture,
240
+ cliVersion: versionDetails.cliVersion,
241
+ nodeVersion: versionDetails.nodeVersion,
242
+ osVersion: versionDetails.osVersion,
243
+ },
244
+ pluginVersions,
245
+ });
246
+ if (err instanceof ThymianBaseError) {
247
+ const cliError = new CLIError(err.message, {
248
+ suggestions: err.options.suggestions,
249
+ exit: err.options.exitCode,
250
+ code: err.options.code,
251
+ });
252
+ cliError.name = err.name;
253
+ Object.defineProperty(cliError, 'ref', { value: err.options.ref });
254
+ if (settings.debug) {
255
+ this.printStackTraces(err);
256
+ }
257
+ return super.catch(cliError);
258
+ }
259
+ return super.catch(err);
260
+ }
261
+ printStackTraces(err) {
262
+ if (err instanceof Error) {
263
+ if (this.jsonEnabled() && err.cause) {
264
+ this.logJson(this.toErrorJson(err.cause));
265
+ }
266
+ else if (err.cause) {
267
+ ux.stderr(err.cause instanceof Error
268
+ ? String(err.cause)
269
+ : inspect(err.cause, { depth: 3 }));
270
+ }
271
+ this.printStackTraces(err.cause);
272
+ }
273
+ }
274
+ shouldAutoload() {
275
+ if ('autoload' in this.flags) {
276
+ return this.flags.autoload;
277
+ }
278
+ return this.thymianConfig.autoload ?? true;
279
+ }
280
+ /**
281
+ * Run the `thymian.spec-search` oclif hook to let plugins discover specification files.
282
+ * Returns results grouped by plugin, each containing typed SpecificationInput[].
283
+ */
284
+ async runSpecSearch() {
285
+ const hookResults = await this.config.runHook('thymian.spec-search', {
286
+ cwd: this.flags.cwd,
287
+ });
288
+ const results = [];
289
+ for (const success of hookResults.successes) {
290
+ const result = success.result;
291
+ if (result.specifications.length > 0) {
292
+ results.push(result);
293
+ }
294
+ }
295
+ return results;
296
+ }
297
+ /**
298
+ * Run the `thymian.traffic-search` oclif hook to let plugins discover traffic files.
299
+ * Returns results grouped by plugin, each containing typed TrafficInput[].
300
+ */
301
+ async runTrafficSearch() {
302
+ const hookResults = await this.config.runHook('thymian.traffic-search', {
303
+ cwd: this.flags.cwd,
304
+ });
305
+ const results = [];
306
+ for (const success of hookResults.successes) {
307
+ const result = success.result;
308
+ if (result.traffic.length > 0) {
309
+ results.push(result);
310
+ }
311
+ }
312
+ return results;
313
+ }
314
+ /**
315
+ * Apply `-o` flag overrides to the loaded Thymian configuration.
316
+ *
317
+ * Each override targets a specific plugin by name and sets a deeply
318
+ * nested property on its `options` object. If the plugin entry does
319
+ * not yet exist in the config it will be created.
320
+ */
321
+ overridePluginOptions() {
322
+ if (!this.flags.option?.length) {
323
+ return;
324
+ }
325
+ for (const override of this.flags.option) {
326
+ this.thymianConfig.plugins[override.pluginName] ??= {};
327
+ const pluginConfig = this.thymianConfig.plugins[override.pluginName];
328
+ pluginConfig.options ??= {};
329
+ deepSet(pluginConfig.options, override.path, override.value);
330
+ }
331
+ }
332
+ /**
333
+ * Re-resolve log level considering the config file.
334
+ * Only applies config.logLevel if no explicit flag was set.
335
+ */
336
+ resolveLogLevelWithConfig() {
337
+ const flagLevel = this.flags['log-level'];
338
+ if (flagLevel && isLogLevel(flagLevel)) {
339
+ return flagLevel;
340
+ }
341
+ if (this.flags.debug) {
342
+ return 'debug';
343
+ }
344
+ if (this.flags.verbose) {
345
+ return 'info';
346
+ }
347
+ if (this.thymianConfig.logLevel &&
348
+ isLogLevel(this.thymianConfig.logLevel)) {
349
+ return this.thymianConfig.logLevel;
350
+ }
351
+ return 'warn';
352
+ }
353
+ setThymian(thymian) {
354
+ this.thymian = thymian;
355
+ }
356
+ async loadPluginModule(nameOrPath, isRelativePath = false) {
357
+ const options = this.thymianConfig.plugins[nameOrPath] ?? {};
358
+ const location = isRelativePath || typeof options.path === 'string'
359
+ ? resolve(this.flags.cwd, options.path ?? nameOrPath)
360
+ : nameOrPath;
361
+ let pluginModule;
362
+ this.debug('Load plugin module from location "%s".', location);
363
+ try {
364
+ const resolvedPath = require.resolve(location);
365
+ pluginModule = (await import(pathToFileURL(resolvedPath).href)).default;
366
+ }
367
+ catch (e) {
368
+ this.logger.debug('Failed to load plugin module from "%s": %s', location, inspect(e));
369
+ throw new ThymianBaseError(`Failed to load plugin module "${options.path ?? nameOrPath}".`, {
370
+ name: 'PluginLoadError',
371
+ cause: e,
372
+ });
373
+ }
374
+ if (!isPlugin(pluginModule)) {
375
+ throw new CLIError(`"${options.path ?? nameOrPath}" does not default export a valid Thymian plugin.`);
376
+ }
377
+ return pluginModule;
378
+ }
379
+ async registerPlugin(nameOrPath, isRelativePath = false) {
380
+ const pluginModule = await this.loadPluginModule(nameOrPath, isRelativePath);
381
+ const config = this.thymianConfig.plugins[pluginModule.name] ?? {};
382
+ if (typeof config.autoload === 'boolean' && !config.autoload) {
383
+ return;
384
+ }
385
+ this.thymian.register(pluginModule, config.options);
386
+ }
387
+ async addPluginsToThymianConfig() {
388
+ for (const plugin of this.flags.plugin) {
389
+ this.debug('Adding plugin from flag "%s" to Thymian config.', plugin);
390
+ const isPathPlugin = isAbsolute(plugin) ||
391
+ plugin.startsWith('./') ||
392
+ plugin.startsWith('../');
393
+ if (!isPathPlugin) {
394
+ this.debug('Load plugin "%s" as npm package or absolute path.', plugin);
395
+ const pluginModule = await this.loadPluginModule(plugin, false);
396
+ this.thymianConfig.plugins[pluginModule.name] ??= {};
397
+ }
398
+ else {
399
+ this.debug(`Load plugin %s from relative path.`, plugin);
400
+ const pluginModule = await this.loadPluginModule(plugin, true);
401
+ this.thymianConfig.plugins[pluginModule.name] = {
402
+ ...(this.thymianConfig.plugins[pluginModule.name] ?? {}),
403
+ path: plugin,
404
+ };
405
+ }
406
+ }
407
+ }
408
+ async registerPluginsFromConfig() {
409
+ for (const name of Object.keys(this.thymianConfig.plugins)) {
410
+ await this.registerPlugin(name);
411
+ }
412
+ }
413
+ shouldSuppressFeedback() {
414
+ return this.flags['suppress-feedback'];
415
+ }
416
+ /**
417
+ * Write a guidance message to stderr when guidance is enabled.
418
+ * This is the single choke-point for all guidance output — if
419
+ * `this.guidanceEnabled` is false, the method is a no-op.
420
+ */
421
+ guidance(message) {
422
+ if (!this.guidanceEnabled) {
423
+ return;
424
+ }
425
+ ux.stderr(message);
426
+ }
427
+ }
428
+ /**
429
+ * Format a SpecificationInput as `type:location` for display and --spec flag suggestions.
430
+ */
431
+ function formatSpecInput(spec) {
432
+ return `${spec.type}:${spec.location}`;
433
+ }
434
+ /**
435
+ * Format a TrafficInput as `type:location` for display and --traffic flag suggestions.
436
+ */
437
+ function formatTrafficInput(traffic) {
438
+ return `${traffic.type}:${traffic.location}`;
439
+ }
440
+ //# sourceMappingURL=base-cli-run-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-cli-run-command.js","sourceRoot":"","sources":["../src/base-cli-run-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ThymianConfig } from './thymian-config.js';
2
+ export declare const defaultConfig: ThymianConfig;
3
+ //# sourceMappingURL=default-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-config.d.ts","sourceRoot":"","sources":["../src/default-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,eAAO,MAAM,aAAa,EAAE,aAyB3B,CAAC"}
@@ -0,0 +1,27 @@
1
+ export const defaultConfig = {
2
+ specifications: [],
3
+ traffic: [],
4
+ ruleSets: ['@thymian/rules-rfc-9110'],
5
+ ruleSeverity: 'error',
6
+ rules: {},
7
+ plugins: {
8
+ '@thymian/plugin-http-linter': {},
9
+ '@thymian/plugin-openapi': {
10
+ options: {
11
+ descriptions: [],
12
+ },
13
+ },
14
+ '@thymian/plugin-request-dispatcher': {},
15
+ '@thymian/plugin-sampler': {},
16
+ '@thymian/plugin-reporter': {
17
+ options: {
18
+ formatters: {
19
+ text: {},
20
+ },
21
+ },
22
+ },
23
+ '@thymian/plugin-http-tester': {},
24
+ '@thymian/plugin-http-analyzer': {},
25
+ },
26
+ };
27
+ //# sourceMappingURL=default-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-config.js","sourceRoot":"","sources":["../src/default-config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,CAAC,yBAAyB,CAAC;IACrC,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,EAAE;IACT,OAAO,EAAE;QACP,6BAA6B,EAAE,EAAE;QACjC,yBAAyB,EAAE;YACzB,OAAO,EAAE;gBACP,YAAY,EAAE,EAAE;aACjB;SACF;QACD,oCAAoC,EAAE,EAAE;QACxC,yBAAyB,EAAE,EAAE;QAC7B,0BAA0B,EAAE;YAC1B,OAAO,EAAE;gBACP,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE;iBACT;aACF;SACF;QACD,6BAA6B,EAAE,EAAE;QACjC,+BAA+B,EAAE,EAAE;KACpC;CACF,CAAC"}