@thymian/common-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +11 -0
  2. package/dist/base-cli-run-command.d.ts +81 -0
  3. package/dist/base-cli-run-command.d.ts.map +1 -0
  4. package/dist/base-cli-run-command.js +405 -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 +5 -0
  104. package/dist/workflow-outcome.d.ts.map +1 -0
  105. package/dist/workflow-outcome.js +21 -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 +34 -0
@@ -0,0 +1,18 @@
1
+ import type { SpecificationInput } from '@thymian/core';
2
+ declare module '@oclif/core/interfaces' {
3
+ interface Hooks {
4
+ 'thymian.spec-search': {
5
+ options: ThymianSpecSearchOptions;
6
+ return: ThymianSpecSearchResult;
7
+ };
8
+ }
9
+ }
10
+ export type ThymianSpecSearchOptions = {
11
+ cwd: string;
12
+ };
13
+ export interface ThymianSpecSearchResult {
14
+ pluginName: string;
15
+ specifications: SpecificationInput[];
16
+ }
17
+ export type ThymianSpecSearchHook = (options: ThymianSpecSearchOptions) => Promise<ThymianSpecSearchResult>;
18
+ //# sourceMappingURL=spec-search-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-search-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/spec-search-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,KAAK;QACb,qBAAqB,EAAE;YACrB,OAAO,EAAE,wBAAwB,CAAC;YAClC,MAAM,EAAE,uBAAuB,CAAC;SACjC,CAAC;KACH;CACF;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,kBAAkB,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=spec-search-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-search-hook.js","sourceRoot":"","sources":["../../src/hooks/spec-search-hook.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import type { TrafficInput } from '@thymian/core';
2
+ declare module '@oclif/core/interfaces' {
3
+ interface Hooks {
4
+ 'thymian.traffic-search': {
5
+ options: ThymianTrafficSearchOptions;
6
+ return: ThymianTrafficSearchResult;
7
+ };
8
+ }
9
+ }
10
+ export type ThymianTrafficSearchOptions = {
11
+ cwd: string;
12
+ };
13
+ export interface ThymianTrafficSearchResult {
14
+ pluginName: string;
15
+ traffic: TrafficInput[];
16
+ }
17
+ export type ThymianTrafficSearchHook = (options: ThymianTrafficSearchOptions) => Promise<ThymianTrafficSearchResult>;
18
+ //# sourceMappingURL=traffic-search-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traffic-search-hook.d.ts","sourceRoot":"","sources":["../../src/hooks/traffic-search-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,KAAK;QACb,wBAAwB,EAAE;YACxB,OAAO,EAAE,2BAA2B,CAAC;YACrC,MAAM,EAAE,0BAA0B,CAAC;SACpC,CAAC;KACH;CACF;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,2BAA2B,KACjC,OAAO,CAAC,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=traffic-search-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traffic-search-hook.js","sourceRoot":"","sources":["../../src/hooks/traffic-search-hook.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ export * from './base-cli-run-command.js';
2
+ export * from './default-config.js';
3
+ export * from './error-cache.js';
4
+ export * from './flags/rule-set-flag.js';
5
+ export * from './flags/spec-flag.js';
6
+ export * from './flags/traffic-flag.js';
7
+ export * from './hooks/feedback-hook.js';
8
+ export * from './hooks/plugin-init-hook.js';
9
+ export * from './hooks/spec-search-hook.js';
10
+ export * from './hooks/traffic-search-hook.js';
11
+ export * from './merge-inputs.js';
12
+ export * as oclif from './oclif.js';
13
+ export * as prompts from './prompts.js';
14
+ export * from './read-plugins.js';
15
+ export * from './thymian-base-command.js';
16
+ export * from './thymian-config.js';
17
+ export * from './thymian-config-schema.js';
18
+ export * from './workflow-outcome.js';
19
+ export * as yaml from './yaml.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ export * from './base-cli-run-command.js';
2
+ export * from './default-config.js';
3
+ export * from './error-cache.js';
4
+ export * from './flags/rule-set-flag.js';
5
+ export * from './flags/spec-flag.js';
6
+ export * from './flags/traffic-flag.js';
7
+ export * from './hooks/feedback-hook.js';
8
+ export * from './hooks/plugin-init-hook.js';
9
+ export * from './hooks/spec-search-hook.js';
10
+ export * from './hooks/traffic-search-hook.js';
11
+ export * from './merge-inputs.js';
12
+ export * as oclif from './oclif.js';
13
+ export * as prompts from './prompts.js';
14
+ export * from './read-plugins.js';
15
+ export * from './thymian-base-command.js';
16
+ export * from './thymian-config.js';
17
+ export * from './thymian-config-schema.js';
18
+ export * from './workflow-outcome.js';
19
+ export * as yaml from './yaml.js';
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type RuleFilter, type RuleSeverity, type SpecificationInput, type TrafficInput } from '@thymian/core';
2
+ /**
3
+ * Merge specification inputs from config and CLI flags.
4
+ * Flag values are appended after config values.
5
+ */
6
+ export declare function mergeSpecifications(configSpecs: SpecificationInput[] | undefined, flagSpecs: SpecificationInput[] | undefined): SpecificationInput[];
7
+ /**
8
+ * Merge traffic inputs from config and CLI flags.
9
+ * Flag values are appended after config values.
10
+ */
11
+ export declare function mergeTraffic(configTraffic: TrafficInput[] | undefined, flagTraffic: TrafficInput[] | undefined): TrafficInput[];
12
+ /**
13
+ * Merge rule set package names from config and CLI flags.
14
+ * Flag values are appended after config values. Duplicates are removed.
15
+ */
16
+ export declare function mergeRuleSets(configRuleSets: string[] | undefined, flagRuleSets: string[] | undefined): string[];
17
+ /**
18
+ * Resolve the effective rule severity from CLI flag and config.
19
+ * CLI flag takes precedence over config value.
20
+ * Default is 'error'.
21
+ */
22
+ export declare function resolveRuleSeverity(configSeverity: RuleSeverity | undefined, flagSeverity: string | undefined): RuleSeverity;
23
+ /**
24
+ * Create a rule filter from a severity threshold.
25
+ * Only rules whose severity is at or above the threshold will be loaded.
26
+ *
27
+ * Severity hierarchy (most to least severe): error (1) > warn (2) > hint (3) > off (4)
28
+ * - 'error': only loads rules with severity 'error'
29
+ * - 'warn': loads rules with severity 'error' or 'warn'
30
+ * - 'hint': loads rules with severity 'error', 'warn', or 'hint' (all active rules)
31
+ * - 'off': loads no rules
32
+ */
33
+ export declare function createSeverityRuleFilter(severity: RuleSeverity): RuleFilter;
34
+ //# sourceMappingURL=merge-inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-inputs.d.ts","sourceRoot":"","sources":["../src/merge-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,EAC7C,SAAS,EAAE,kBAAkB,EAAE,GAAG,SAAS,GAC1C,kBAAkB,EAAE,CAEtB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,YAAY,EAAE,GAAG,SAAS,EACzC,WAAW,EAAE,YAAY,EAAE,GAAG,SAAS,GACtC,YAAY,EAAE,CAEhB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,cAAc,EAAE,MAAM,EAAE,GAAG,SAAS,EACpC,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,GACjC,MAAM,EAAE,CAEV;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,YAAY,GAAG,SAAS,EACxC,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,YAAY,CAMd;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,YAAY,GAAG,UAAU,CAO3E"}
@@ -0,0 +1,50 @@
1
+ import { isRuleSeverityLevel, severityLevelValues, } from '@thymian/core';
2
+ /**
3
+ * Merge specification inputs from config and CLI flags.
4
+ * Flag values are appended after config values.
5
+ */
6
+ export function mergeSpecifications(configSpecs, flagSpecs) {
7
+ return [...(configSpecs ?? []), ...(flagSpecs ?? [])];
8
+ }
9
+ /**
10
+ * Merge traffic inputs from config and CLI flags.
11
+ * Flag values are appended after config values.
12
+ */
13
+ export function mergeTraffic(configTraffic, flagTraffic) {
14
+ return [...(configTraffic ?? []), ...(flagTraffic ?? [])];
15
+ }
16
+ /**
17
+ * Merge rule set package names from config and CLI flags.
18
+ * Flag values are appended after config values. Duplicates are removed.
19
+ */
20
+ export function mergeRuleSets(configRuleSets, flagRuleSets) {
21
+ return [...new Set([...(configRuleSets ?? []), ...(flagRuleSets ?? [])])];
22
+ }
23
+ /**
24
+ * Resolve the effective rule severity from CLI flag and config.
25
+ * CLI flag takes precedence over config value.
26
+ * Default is 'error'.
27
+ */
28
+ export function resolveRuleSeverity(configSeverity, flagSeverity) {
29
+ if (flagSeverity && isRuleSeverityLevel(flagSeverity)) {
30
+ return flagSeverity;
31
+ }
32
+ return configSeverity ?? 'error';
33
+ }
34
+ /**
35
+ * Create a rule filter from a severity threshold.
36
+ * Only rules whose severity is at or above the threshold will be loaded.
37
+ *
38
+ * Severity hierarchy (most to least severe): error (1) > warn (2) > hint (3) > off (4)
39
+ * - 'error': only loads rules with severity 'error'
40
+ * - 'warn': loads rules with severity 'error' or 'warn'
41
+ * - 'hint': loads rules with severity 'error', 'warn', or 'hint' (all active rules)
42
+ * - 'off': loads no rules
43
+ */
44
+ export function createSeverityRuleFilter(severity) {
45
+ if (severity === 'off') {
46
+ return () => false;
47
+ }
48
+ return (rule) => severityLevelValues[rule.meta.severity] <= severityLevelValues[severity];
49
+ }
50
+ //# sourceMappingURL=merge-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-inputs.js","sourceRoot":"","sources":["../src/merge-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAGnB,mBAAmB,GAGpB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAA6C,EAC7C,SAA2C;IAE3C,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,aAAyC,EACzC,WAAuC;IAEvC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,cAAoC,EACpC,YAAkC;IAElC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAAwC,EACxC,YAAgC;IAEhC,IAAI,YAAY,IAAI,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,cAAc,IAAI,OAAO,CAAC;AACnC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAsB;IAC7D,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,EAAE,CACd,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from '@oclif/core';
2
+ //# sourceMappingURL=oclif.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oclif.d.ts","sourceRoot":"","sources":["../src/oclif.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
package/dist/oclif.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from '@oclif/core';
2
+ //# sourceMappingURL=oclif.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oclif.js","sourceRoot":"","sources":["../src/oclif.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare class PromiseQueue {
2
+ private promise;
3
+ private counter;
4
+ add<T>(fn: () => Promise<T>): Promise<T>;
5
+ size(): number;
6
+ }
7
+ //# sourceMappingURL=promise-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-queue.d.ts","sourceRoot":"","sources":["../src/promise-queue.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAK;IAEpB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAexC,IAAI,IAAI,MAAM;CAGf"}
@@ -0,0 +1,24 @@
1
+ export class PromiseQueue {
2
+ promise = Promise.resolve();
3
+ counter = 0;
4
+ add(fn) {
5
+ ++this.counter;
6
+ return new Promise((resolve, reject) => {
7
+ this.promise = this.promise.then(async () => {
8
+ try {
9
+ resolve(await fn());
10
+ }
11
+ catch (e) {
12
+ reject(e);
13
+ }
14
+ finally {
15
+ --this.counter;
16
+ }
17
+ });
18
+ });
19
+ }
20
+ size() {
21
+ return this.counter;
22
+ }
23
+ }
24
+ //# sourceMappingURL=promise-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-queue.js","sourceRoot":"","sources":["../src/promise-queue.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAY;IACf,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,GAAG,CAAC,CAAC;IAEpB,GAAG,CAAI,EAAoB;QACzB,EAAE,IAAI,CAAC,OAAO,CAAC;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBAC1C,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACtB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC;wBAAS,CAAC;oBACT,EAAE,IAAI,CAAC,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import { PromiseQueue } from './promise-queue.js';
2
+ export declare const promptQueue: PromiseQueue;
3
+ export declare function runPrompts<T>(fn: () => Promise<T>): Promise<T>;
4
+ export * from '@inquirer/prompts';
5
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,eAAO,MAAM,WAAW,cAAqB,CAAC;AAE9C,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE9D;AAED,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { PromiseQueue } from './promise-queue.js';
2
+ export const promptQueue = new PromiseQueue();
3
+ export function runPrompts(fn) {
4
+ return promptQueue.add(fn);
5
+ }
6
+ export * from '@inquirer/prompts';
7
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AAE9C,MAAM,UAAU,UAAU,CAAI,EAAoB;IAChD,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getPluginNames(args?: string[]): Promise<string[]>;
2
+ //# sourceMappingURL=read-plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-plugins.d.ts","sourceRoot":"","sources":["../src/read-plugins.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,CAClC,IAAI,GAAE,MAAM,EAA0B,GACrC,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBnB"}
@@ -0,0 +1,23 @@
1
+ import { parseArgs } from 'node:util';
2
+ import { getConfig } from './get-config.js';
3
+ export async function getPluginNames(args = process.argv.slice(2)) {
4
+ const options = {
5
+ config: {
6
+ type: 'string',
7
+ short: 'c',
8
+ },
9
+ };
10
+ const processed = parseArgs({
11
+ options,
12
+ strict: false,
13
+ args,
14
+ allowPositionals: true,
15
+ });
16
+ const configFlag = processed.values.config;
17
+ const config = await getConfig({
18
+ configPath: typeof configFlag === 'string' ? configFlag : undefined,
19
+ cwd: process.cwd(),
20
+ });
21
+ return Object.keys(config.plugins);
22
+ }
23
+ //# sourceMappingURL=read-plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-plugins.js","sourceRoot":"","sources":["../src/read-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG;QACd,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SACX;KACO,CAAC;IAEX,MAAM,SAAS,GAAG,SAAS,CAAC;QAC1B,OAAO;QACP,MAAM,EAAE,KAAK;QACb,IAAI;QACJ,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAE3C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;QAC7B,UAAU,EAAE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACnE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function safeParse(value: string): unknown;
2
+ //# sourceMappingURL=safe-parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-parse.d.ts","sourceRoot":"","sources":["../src/safe-parse.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAoBhD"}
@@ -0,0 +1,22 @@
1
+ export function safeParse(value) {
2
+ try {
3
+ return JSON.parse(value);
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
+ }
6
+ catch (err) {
7
+ if (value === 'true') {
8
+ return true;
9
+ }
10
+ if (value === 'false') {
11
+ return false;
12
+ }
13
+ if (value === 'null') {
14
+ return null;
15
+ }
16
+ if (!isNaN(+value) && value.trim() !== '') {
17
+ return Number(value);
18
+ }
19
+ return value;
20
+ }
21
+ }
22
+ //# sourceMappingURL=safe-parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-parse.js","sourceRoot":"","sources":["../src/safe-parse.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,6DAA6D;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { Command, Flags, Interfaces } from '@oclif/core';
2
+ import type { CommandError } from '@oclif/core/interfaces';
3
+ import { ErrorCache } from './error-cache.js';
4
+ import { Feedback } from './feedback.js';
5
+ type Flags<T extends typeof Command> = Interfaces.InferredFlags<(typeof ThymianBaseCommand)['baseFlags'] & T['flags']>;
6
+ type Args<T extends typeof Command> = Interfaces.InferredArgs<T['args']>;
7
+ export declare abstract class ThymianBaseCommand<T extends typeof Command> extends Command {
8
+ static enableJsonFlag: boolean;
9
+ static baseFlags: {
10
+ "suppress-feedback": Interfaces.BooleanFlag<boolean>;
11
+ };
12
+ protected flags: Flags<T>;
13
+ protected args: Args<T>;
14
+ protected feedback: Feedback;
15
+ protected errorCache: ErrorCache;
16
+ init(): Promise<void>;
17
+ protected catch(err: CommandError): Promise<void>;
18
+ shouldSuppressFeedback(): boolean;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=thymian-base-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thymian-base-command.d.ts","sourceRoot":"","sources":["../src/thymian-base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,KAAK,KAAK,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,aAAa,CAC7D,CAAC,OAAO,kBAAkB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CACtD,CAAC;AACF,KAAK,IAAI,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,8BAAsB,kBAAkB,CACtC,CAAC,SAAS,OAAO,OAAO,CACxB,SAAQ,OAAO;IACf,OAAgB,cAAc,UAAQ;IAEtC,OAAgB,SAAS;;MAMvB;IAEF,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAG,QAAQ,CAAC;IAC9B,SAAS,CAAC,UAAU,EAAG,UAAU,CAAC;IAEZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;cAiBlB,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BzD,sBAAsB,IAAI,OAAO;CAGzC"}
@@ -0,0 +1,60 @@
1
+ import { Command, Flags, Interfaces } from '@oclif/core';
2
+ import { ErrorCache } from './error-cache.js';
3
+ import { Feedback } from './feedback.js';
4
+ export class ThymianBaseCommand extends Command {
5
+ static enableJsonFlag = true;
6
+ static baseFlags = {
7
+ ['suppress-feedback']: Flags.boolean({
8
+ default: false,
9
+ description: 'Suppress feedback messages from Thymian.',
10
+ helpGroup: 'BASE',
11
+ }),
12
+ };
13
+ flags;
14
+ args;
15
+ feedback;
16
+ errorCache;
17
+ async init() {
18
+ await super.init();
19
+ const { args, flags } = await this.parse({
20
+ flags: this.ctor.flags,
21
+ baseFlags: super.ctor.baseFlags,
22
+ enableJsonFlag: this.ctor.enableJsonFlag,
23
+ args: this.ctor.args,
24
+ strict: this.ctor.strict,
25
+ });
26
+ this.flags = flags;
27
+ this.args = args;
28
+ this.feedback = Feedback.forCommand(this);
29
+ this.errorCache = ErrorCache.forCommand(this);
30
+ await this.feedback.run();
31
+ }
32
+ async catch(err) {
33
+ await this.feedback.error();
34
+ const versionDetails = this.config.versionDetails;
35
+ const pluginVersions = Object.entries(versionDetails.pluginVersions ?? {})
36
+ .filter(([name]) => !name.startsWith('@oclif'))
37
+ .map(([name, version]) => ({ name, version: version.version }));
38
+ await this.errorCache.write({
39
+ name: err.name,
40
+ message: err.message,
41
+ commandName: this.id ?? 'unknown command',
42
+ timestamp: Date.now(),
43
+ cause: err.cause,
44
+ stack: err.stack,
45
+ argv: process.argv,
46
+ version: {
47
+ architecture: versionDetails.architecture,
48
+ cliVersion: versionDetails.cliVersion,
49
+ nodeVersion: versionDetails.nodeVersion,
50
+ osVersion: versionDetails.osVersion,
51
+ },
52
+ pluginVersions,
53
+ });
54
+ return super.catch(err);
55
+ }
56
+ shouldSuppressFeedback() {
57
+ return this.flags['suppress-feedback'];
58
+ }
59
+ }
60
+ //# sourceMappingURL=thymian-base-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thymian-base-command.js","sourceRoot":"","sources":["../src/thymian-base-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ export declare const thymianConfigSchema: {
2
+ type: string;
3
+ properties: {
4
+ autoload: {
5
+ type: string;
6
+ };
7
+ logLevel: {
8
+ type: string;
9
+ enum: string[];
10
+ };
11
+ specifications: {
12
+ type: string;
13
+ items: {
14
+ type: string;
15
+ required: string[];
16
+ additionalProperties: boolean;
17
+ properties: {
18
+ type: {
19
+ type: string;
20
+ };
21
+ location: {};
22
+ options: {
23
+ type: string;
24
+ additionalProperties: boolean;
25
+ };
26
+ };
27
+ };
28
+ };
29
+ traffic: {
30
+ type: string;
31
+ items: {
32
+ type: string;
33
+ required: string[];
34
+ additionalProperties: boolean;
35
+ properties: {
36
+ type: {
37
+ type: string;
38
+ };
39
+ location: {};
40
+ options: {
41
+ type: string;
42
+ additionalProperties: boolean;
43
+ };
44
+ };
45
+ };
46
+ };
47
+ ruleSets: {
48
+ type: string;
49
+ items: {
50
+ type: string;
51
+ };
52
+ };
53
+ ruleSeverity: {
54
+ type: string;
55
+ enum: string[];
56
+ };
57
+ rules: {
58
+ type: string;
59
+ additionalProperties: boolean;
60
+ };
61
+ targetUrl: {
62
+ type: string;
63
+ };
64
+ plugins: {
65
+ type: string;
66
+ additionalProperties: {
67
+ type: string;
68
+ additionalProperties: boolean;
69
+ properties: {
70
+ path: {
71
+ type: string;
72
+ };
73
+ verbose: {
74
+ type: string;
75
+ };
76
+ options: {
77
+ type: string;
78
+ additionalProperties: boolean;
79
+ };
80
+ };
81
+ };
82
+ };
83
+ };
84
+ };
85
+ //# sourceMappingURL=thymian-config-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thymian-config-schema.d.ts","sourceRoot":"","sources":["../src/thymian-config-schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6E/B,CAAC"}
@@ -0,0 +1,79 @@
1
+ export const thymianConfigSchema = {
2
+ type: 'object',
3
+ properties: {
4
+ autoload: {
5
+ type: 'boolean',
6
+ },
7
+ logLevel: {
8
+ type: 'string',
9
+ enum: ['trace', 'debug', 'info', 'warn', 'error', 'silent'],
10
+ },
11
+ specifications: {
12
+ type: 'array',
13
+ items: {
14
+ type: 'object',
15
+ required: ['type', 'location'],
16
+ additionalProperties: false,
17
+ properties: {
18
+ type: { type: 'string' },
19
+ location: {},
20
+ options: {
21
+ type: 'object',
22
+ additionalProperties: true,
23
+ },
24
+ },
25
+ },
26
+ },
27
+ traffic: {
28
+ type: 'array',
29
+ items: {
30
+ type: 'object',
31
+ required: ['type', 'location'],
32
+ additionalProperties: false,
33
+ properties: {
34
+ type: { type: 'string' },
35
+ location: {},
36
+ options: {
37
+ type: 'object',
38
+ additionalProperties: true,
39
+ },
40
+ },
41
+ },
42
+ },
43
+ ruleSets: {
44
+ type: 'array',
45
+ items: { type: 'string' },
46
+ },
47
+ ruleSeverity: {
48
+ type: 'string',
49
+ enum: ['off', 'error', 'warn', 'hint'],
50
+ },
51
+ rules: {
52
+ type: 'object',
53
+ additionalProperties: true,
54
+ },
55
+ targetUrl: {
56
+ type: 'string',
57
+ },
58
+ plugins: {
59
+ type: 'object',
60
+ additionalProperties: {
61
+ type: 'object',
62
+ additionalProperties: false,
63
+ properties: {
64
+ path: {
65
+ type: 'string',
66
+ },
67
+ verbose: {
68
+ type: 'boolean',
69
+ },
70
+ options: {
71
+ type: 'object',
72
+ additionalProperties: true,
73
+ },
74
+ },
75
+ },
76
+ },
77
+ },
78
+ };
79
+ //# sourceMappingURL=thymian-config-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thymian-config-schema.js","sourceRoot":"","sources":["../src/thymian-config-schema.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,IAAI,EAAE,SAAS;SAChB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;SAC5D;QACD,cAAc,EAAE;YACd,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;gBAC9B,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,QAAQ,EAAE,EAAE;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,IAAI;qBAC3B;iBACF;aACF;SACF;QACD,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;gBAC9B,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,QAAQ,EAAE,EAAE;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,IAAI;qBAC3B;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC1B;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;SACvC;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,IAAI;SAC3B;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;SACf;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE;gBACpB,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;qBACf;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,SAAS;qBAChB;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,IAAI;qBAC3B;iBACF;aACF;SACF;KACF;CACF,CAAC"}