@cisco_open/linting-orchestrator 1.0.0-rc.4

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 (197) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +5 -0
  3. package/README.md +43 -0
  4. package/build/cli/api-client.d.ts +170 -0
  5. package/build/cli/api-client.d.ts.map +1 -0
  6. package/build/cli/api-client.js +284 -0
  7. package/build/cli/api-client.js.map +1 -0
  8. package/build/cli/commands/agents.d.ts +7 -0
  9. package/build/cli/commands/agents.d.ts.map +1 -0
  10. package/build/cli/commands/agents.js +694 -0
  11. package/build/cli/commands/agents.js.map +1 -0
  12. package/build/cli/commands/completion.d.ts +9 -0
  13. package/build/cli/commands/completion.d.ts.map +1 -0
  14. package/build/cli/commands/completion.js +177 -0
  15. package/build/cli/commands/completion.js.map +1 -0
  16. package/build/cli/commands/config.d.ts +10 -0
  17. package/build/cli/commands/config.d.ts.map +1 -0
  18. package/build/cli/commands/config.js +284 -0
  19. package/build/cli/commands/config.js.map +1 -0
  20. package/build/cli/commands/health.d.ts +11 -0
  21. package/build/cli/commands/health.d.ts.map +1 -0
  22. package/build/cli/commands/health.js +38 -0
  23. package/build/cli/commands/health.js.map +1 -0
  24. package/build/cli/commands/help.d.ts +6 -0
  25. package/build/cli/commands/help.d.ts.map +1 -0
  26. package/build/cli/commands/help.js +20 -0
  27. package/build/cli/commands/help.js.map +1 -0
  28. package/build/cli/commands/history.d.ts +11 -0
  29. package/build/cli/commands/history.d.ts.map +1 -0
  30. package/build/cli/commands/history.js +50 -0
  31. package/build/cli/commands/history.js.map +1 -0
  32. package/build/cli/commands/jobs.d.ts +12 -0
  33. package/build/cli/commands/jobs.d.ts.map +1 -0
  34. package/build/cli/commands/jobs.js +84 -0
  35. package/build/cli/commands/jobs.js.map +1 -0
  36. package/build/cli/commands/lint.d.ts +15 -0
  37. package/build/cli/commands/lint.d.ts.map +1 -0
  38. package/build/cli/commands/lint.js +384 -0
  39. package/build/cli/commands/lint.js.map +1 -0
  40. package/build/cli/commands/ps.d.ts +8 -0
  41. package/build/cli/commands/ps.d.ts.map +1 -0
  42. package/build/cli/commands/ps.js +74 -0
  43. package/build/cli/commands/ps.js.map +1 -0
  44. package/build/cli/commands/reproduce.d.ts +9 -0
  45. package/build/cli/commands/reproduce.d.ts.map +1 -0
  46. package/build/cli/commands/reproduce.js +31 -0
  47. package/build/cli/commands/reproduce.js.map +1 -0
  48. package/build/cli/commands/reset.d.ts +5 -0
  49. package/build/cli/commands/reset.d.ts.map +1 -0
  50. package/build/cli/commands/reset.js +13 -0
  51. package/build/cli/commands/reset.js.map +1 -0
  52. package/build/cli/commands/results.d.ts +13 -0
  53. package/build/cli/commands/results.d.ts.map +1 -0
  54. package/build/cli/commands/results.js +129 -0
  55. package/build/cli/commands/results.js.map +1 -0
  56. package/build/cli/commands/rulesets/check.d.ts +12 -0
  57. package/build/cli/commands/rulesets/check.d.ts.map +1 -0
  58. package/build/cli/commands/rulesets/check.js +226 -0
  59. package/build/cli/commands/rulesets/check.js.map +1 -0
  60. package/build/cli/commands/rulesets/index.d.ts +5 -0
  61. package/build/cli/commands/rulesets/index.d.ts.map +1 -0
  62. package/build/cli/commands/rulesets/index.js +6 -0
  63. package/build/cli/commands/rulesets/index.js.map +1 -0
  64. package/build/cli/commands/rulesets/view.d.ts +16 -0
  65. package/build/cli/commands/rulesets/view.d.ts.map +1 -0
  66. package/build/cli/commands/rulesets/view.js +100 -0
  67. package/build/cli/commands/rulesets/view.js.map +1 -0
  68. package/build/cli/commands/start.d.ts +16 -0
  69. package/build/cli/commands/start.d.ts.map +1 -0
  70. package/build/cli/commands/start.js +167 -0
  71. package/build/cli/commands/start.js.map +1 -0
  72. package/build/cli/commands/status.d.ts +9 -0
  73. package/build/cli/commands/status.d.ts.map +1 -0
  74. package/build/cli/commands/status.js +46 -0
  75. package/build/cli/commands/status.js.map +1 -0
  76. package/build/cli/commands/stop.d.ts +11 -0
  77. package/build/cli/commands/stop.d.ts.map +1 -0
  78. package/build/cli/commands/stop.js +78 -0
  79. package/build/cli/commands/stop.js.map +1 -0
  80. package/build/cli/config-manager.d.ts +134 -0
  81. package/build/cli/config-manager.d.ts.map +1 -0
  82. package/build/cli/config-manager.js +288 -0
  83. package/build/cli/config-manager.js.map +1 -0
  84. package/build/cli/formatters.d.ts +62 -0
  85. package/build/cli/formatters.d.ts.map +1 -0
  86. package/build/cli/formatters.js +715 -0
  87. package/build/cli/formatters.js.map +1 -0
  88. package/build/cli/history-manager.d.ts +97 -0
  89. package/build/cli/history-manager.d.ts.map +1 -0
  90. package/build/cli/history-manager.js +201 -0
  91. package/build/cli/history-manager.js.map +1 -0
  92. package/build/cli/index.d.ts +16 -0
  93. package/build/cli/index.d.ts.map +1 -0
  94. package/build/cli/index.js +335 -0
  95. package/build/cli/index.js.map +1 -0
  96. package/build/cli/list-rulesets.d.ts +15 -0
  97. package/build/cli/list-rulesets.d.ts.map +1 -0
  98. package/build/cli/list-rulesets.js +193 -0
  99. package/build/cli/list-rulesets.js.map +1 -0
  100. package/build/cli/utils/connection-error.d.ts +9 -0
  101. package/build/cli/utils/connection-error.d.ts.map +1 -0
  102. package/build/cli/utils/connection-error.js +30 -0
  103. package/build/cli/utils/connection-error.js.map +1 -0
  104. package/build/cli/utils/embedded-server.d.ts +21 -0
  105. package/build/cli/utils/embedded-server.d.ts.map +1 -0
  106. package/build/cli/utils/embedded-server.js +61 -0
  107. package/build/cli/utils/embedded-server.js.map +1 -0
  108. package/build/cli/utils/mode-validator.d.ts +13 -0
  109. package/build/cli/utils/mode-validator.d.ts.map +1 -0
  110. package/build/cli/utils/mode-validator.js +31 -0
  111. package/build/cli/utils/mode-validator.js.map +1 -0
  112. package/build/cli/utils/port-checker.d.ts +20 -0
  113. package/build/cli/utils/port-checker.d.ts.map +1 -0
  114. package/build/cli/utils/port-checker.js +49 -0
  115. package/build/cli/utils/port-checker.js.map +1 -0
  116. package/build/config.d.ts +57 -0
  117. package/build/config.d.ts.map +1 -0
  118. package/build/config.js +527 -0
  119. package/build/config.js.map +1 -0
  120. package/build/document-accessor.d.ts +79 -0
  121. package/build/document-accessor.d.ts.map +1 -0
  122. package/build/document-accessor.js +148 -0
  123. package/build/document-accessor.js.map +1 -0
  124. package/build/formatters/reproduce-markdown.d.ts +14 -0
  125. package/build/formatters/reproduce-markdown.d.ts.map +1 -0
  126. package/build/formatters/reproduce-markdown.js +182 -0
  127. package/build/formatters/reproduce-markdown.js.map +1 -0
  128. package/build/formatters/sarif-builder.d.ts +86 -0
  129. package/build/formatters/sarif-builder.d.ts.map +1 -0
  130. package/build/formatters/sarif-builder.js +276 -0
  131. package/build/formatters/sarif-builder.js.map +1 -0
  132. package/build/index.d.ts +3 -0
  133. package/build/index.d.ts.map +1 -0
  134. package/build/index.js +174 -0
  135. package/build/index.js.map +1 -0
  136. package/build/logger.d.ts +38 -0
  137. package/build/logger.d.ts.map +1 -0
  138. package/build/logger.js +105 -0
  139. package/build/logger.js.map +1 -0
  140. package/build/mock-server.d.ts +2 -0
  141. package/build/mock-server.d.ts.map +1 -0
  142. package/build/mock-server.js +290 -0
  143. package/build/mock-server.js.map +1 -0
  144. package/build/orchestrator.d.ts +149 -0
  145. package/build/orchestrator.d.ts.map +1 -0
  146. package/build/orchestrator.js +874 -0
  147. package/build/orchestrator.js.map +1 -0
  148. package/build/ruleset-loader.d.ts +79 -0
  149. package/build/ruleset-loader.d.ts.map +1 -0
  150. package/build/ruleset-loader.js +514 -0
  151. package/build/ruleset-loader.js.map +1 -0
  152. package/build/schemas.d.ts +2568 -0
  153. package/build/schemas.d.ts.map +1 -0
  154. package/build/schemas.js +674 -0
  155. package/build/schemas.js.map +1 -0
  156. package/build/server.d.ts +39 -0
  157. package/build/server.d.ts.map +1 -0
  158. package/build/server.js +834 -0
  159. package/build/server.js.map +1 -0
  160. package/build/storage/memory-storage.d.ts +190 -0
  161. package/build/storage/memory-storage.d.ts.map +1 -0
  162. package/build/storage/memory-storage.js +629 -0
  163. package/build/storage/memory-storage.js.map +1 -0
  164. package/build/storage/redis-storage.d.ts +134 -0
  165. package/build/storage/redis-storage.d.ts.map +1 -0
  166. package/build/storage/redis-storage.js +236 -0
  167. package/build/storage/redis-storage.js.map +1 -0
  168. package/build/storage/storage-adapter.d.ts +189 -0
  169. package/build/storage/storage-adapter.d.ts.map +1 -0
  170. package/build/storage/storage-adapter.js +36 -0
  171. package/build/storage/storage-adapter.js.map +1 -0
  172. package/build/types.d.ts +981 -0
  173. package/build/types.d.ts.map +1 -0
  174. package/build/types.js +5 -0
  175. package/build/types.js.map +1 -0
  176. package/build/utils/version.d.ts +40 -0
  177. package/build/utils/version.d.ts.map +1 -0
  178. package/build/utils/version.js +94 -0
  179. package/build/utils/version.js.map +1 -0
  180. package/build/validation.d.ts +95 -0
  181. package/build/validation.d.ts.map +1 -0
  182. package/build/validation.js +150 -0
  183. package/build/validation.js.map +1 -0
  184. package/build/worker-pool.d.ts +137 -0
  185. package/build/worker-pool.d.ts.map +1 -0
  186. package/build/worker-pool.js +549 -0
  187. package/build/worker-pool.js.map +1 -0
  188. package/build/worker.d.ts +2 -0
  189. package/build/worker.d.ts.map +1 -0
  190. package/build/worker.js +427 -0
  191. package/build/worker.js.map +1 -0
  192. package/package.json +110 -0
  193. package/rulesets/CHANGELOG.md +25 -0
  194. package/rulesets/config/rulesets.yaml +96 -0
  195. package/rulesets/sources/README.md +47 -0
  196. package/rulesets/sources/example/oas-recommended/v1.0.0/ruleset.yaml +6 -0
  197. package/rulesets/sources/example/oas-recommended/v2.0.0/ruleset.yaml +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import type { RulesetMetadata, RulesetVersion, RulesetSourceMetadata } from './types.js';
2
+ export interface RulesetLoaderConfig {
3
+ configPath: string;
4
+ sourcesBasePath: string;
5
+ enableCache?: boolean;
6
+ }
7
+ /**
8
+ * RulesetLoader - Manages loading and caching of Spectral rulesets
9
+ */
10
+ export declare class RulesetLoader {
11
+ private config;
12
+ private cache;
13
+ private loaderConfig;
14
+ constructor(config: RulesetLoaderConfig);
15
+ /**
16
+ * Initialize the loader by loading the configuration file
17
+ */
18
+ initialize(): Promise<void>;
19
+ /**
20
+ * Get a specific ruleset version
21
+ * @param name Ruleset name
22
+ * @param version Ruleset version (optional, uses default if not specified)
23
+ */
24
+ loadVersion(name: string, version?: string): Promise<RulesetVersion>;
25
+ /**
26
+ * Load a specific ruleset version from filesystem
27
+ */
28
+ private loadRulesetVersion;
29
+ /**
30
+ * Resolve an installed npm package's version by reading its package.json.
31
+ * Returns undefined if the package cannot be located.
32
+ */
33
+ private resolvePackageVersion;
34
+ /**
35
+ * Extract rule definitions from a Spectral ruleset
36
+ */
37
+ private extractRules;
38
+ /**
39
+ * Map Spectral severity to our severity type
40
+ */
41
+ private mapSeverity;
42
+ /**
43
+ * Get default version for a ruleset
44
+ */
45
+ getDefaultVersion(name: string): string | undefined;
46
+ /**
47
+ * Get source metadata for a specific ruleset version.
48
+ * Used to generate Spectral CLI reproduction instructions.
49
+ */
50
+ getSourceMetadata(rulesetName: string, version: string): Promise<RulesetSourceMetadata | null>;
51
+ /**
52
+ * List all available rulesets
53
+ */
54
+ listRulesets(): RulesetMetadata[];
55
+ /**
56
+ * List all available rulesets with rule counts (loads default versions)
57
+ */
58
+ listRulesetsWithCounts(): Promise<RulesetMetadata[]>;
59
+ /**
60
+ * List all versions for a specific ruleset
61
+ */
62
+ listVersions(name: string): string[];
63
+ /**
64
+ * Get ruleset metadata without loading the full ruleset
65
+ */
66
+ getMetadata(name: string): RulesetMetadata;
67
+ /**
68
+ * Clear the cache (useful for testing or reloading)
69
+ */
70
+ clearCache(): void;
71
+ /**
72
+ * Get cache statistics
73
+ */
74
+ getCacheStats(): {
75
+ size: number;
76
+ keys: string[];
77
+ };
78
+ }
79
+ //# sourceMappingURL=ruleset-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleset-loader.d.ts","sourceRoot":"","sources":["../src/ruleset-loader.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAIV,eAAe,EACf,cAAc,EAEd,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,YAAY,CAAsB;gBAE9B,MAAM,EAAE,mBAAmB;IAOvC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC;;;;OAIG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA2C1E;;OAEG;YACW,kBAAkB;IAwKhC;;;OAGG;YACW,qBAAqB;IAcnC;;OAEG;IACH,OAAO,CAAC,YAAY;IA8CpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQnD;;;OAGG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAgDpG;;OAEG;IACH,YAAY,IAAI,eAAe,EAAE;IAuBjC;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA6C1D;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAapC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IA0B1C;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;CAMlD"}
@@ -0,0 +1,514 @@
1
+ // Copyright 2026 Cisco Systems, Inc. and its affiliates
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ /**
5
+ * RulesetLoader - Loads and manages Spectral rulesets from configuration
6
+ *
7
+ * Responsibilities:
8
+ * - Load rulesets.yaml configuration
9
+ * - Resolve source repository paths
10
+ * - Parse Spectral ruleset files (YAML/JS)
11
+ * - Extract rule definitions
12
+ * - Cache loaded rulesets for performance
13
+ * - Provide ruleset metadata and rule listings
14
+ */
15
+ import * as fs from 'fs/promises';
16
+ import * as os from 'os';
17
+ import * as path from 'path';
18
+ import { pathToFileURL } from 'url';
19
+ import { parse as parseYAML } from 'yaml';
20
+ // @ts-ignore - ESM export resolution issue with TypeScript
21
+ import { bundleAndLoadRuleset } from '@stoplight/spectral-ruleset-bundler/with-loader';
22
+ import spectralCore from '@stoplight/spectral-core';
23
+ const { Ruleset } = spectralCore;
24
+ /**
25
+ * RulesetLoader - Manages loading and caching of Spectral rulesets
26
+ */
27
+ export class RulesetLoader {
28
+ config = null;
29
+ cache = new Map();
30
+ loaderConfig;
31
+ constructor(config) {
32
+ this.loaderConfig = {
33
+ enableCache: true,
34
+ ...config,
35
+ };
36
+ }
37
+ /**
38
+ * Initialize the loader by loading the configuration file
39
+ */
40
+ async initialize() {
41
+ const configContent = await fs.readFile(this.loaderConfig.configPath, 'utf-8');
42
+ try {
43
+ this.config = parseYAML(configContent);
44
+ }
45
+ catch (err) {
46
+ const msg = err instanceof Error ? err.message : String(err);
47
+ throw new Error(`Failed to parse rulesets configuration: ${msg}`);
48
+ }
49
+ if (!this.config || !this.config.rulesets) {
50
+ throw new Error('Invalid rulesets configuration: missing rulesets array');
51
+ }
52
+ }
53
+ /**
54
+ * Get a specific ruleset version
55
+ * @param name Ruleset name
56
+ * @param version Ruleset version (optional, uses default if not specified)
57
+ */
58
+ async loadVersion(name, version) {
59
+ if (!this.config) {
60
+ throw new Error('RulesetLoader not initialized. Call initialize() first.');
61
+ }
62
+ // Find ruleset configuration
63
+ const rulesetConfig = this.config.rulesets.find(r => r.name === name);
64
+ if (!rulesetConfig) {
65
+ throw new Error(`Ruleset '${name}' not found in configuration`);
66
+ }
67
+ // Determine version to load
68
+ const versionToLoad = version || this.getDefaultVersion(name);
69
+ if (!versionToLoad) {
70
+ throw new Error(`No default version configured for ruleset '${name}'`);
71
+ }
72
+ // Check cache
73
+ const cacheKey = `${name}:${versionToLoad}`;
74
+ if (this.loaderConfig.enableCache && this.cache.has(cacheKey)) {
75
+ return this.cache.get(cacheKey);
76
+ }
77
+ // Find version configuration
78
+ const versionConfig = rulesetConfig.versions.find(v => v.version === versionToLoad);
79
+ if (!versionConfig) {
80
+ throw new Error(`Version '${versionToLoad}' not found for ruleset '${name}'. ` +
81
+ `Available versions: ${rulesetConfig.versions.map(v => v.version).join(', ')}`);
82
+ }
83
+ // Load the ruleset
84
+ const rulesetVersion = await this.loadRulesetVersion(rulesetConfig, versionConfig);
85
+ // Cache it
86
+ if (this.loaderConfig.enableCache) {
87
+ this.cache.set(cacheKey, rulesetVersion);
88
+ }
89
+ return rulesetVersion;
90
+ }
91
+ /**
92
+ * Load a specific ruleset version from filesystem
93
+ */
94
+ async loadRulesetVersion(rulesetConfig, versionConfig) {
95
+ const isEmbedded = rulesetConfig.origin === 'embedded';
96
+ // Validate config:
97
+ // embedded: entrypoint must be a `spectral:*` token
98
+ // else: absolutePath OR (sourceRepo + sourceVersion + entrypoint) required
99
+ if (isEmbedded) {
100
+ if (!versionConfig.entrypoint?.startsWith('spectral:')) {
101
+ throw new Error(`Ruleset '${rulesetConfig.name}' version '${versionConfig.version}': ` +
102
+ `origin 'embedded' requires entrypoint to be a Spectral built-in token ` +
103
+ `(e.g. 'spectral:oas'), got: '${versionConfig.entrypoint}'`);
104
+ }
105
+ }
106
+ else if (!versionConfig.absolutePath && (!versionConfig.sourceRepo || !versionConfig.sourceVersion)) {
107
+ throw new Error(`Ruleset '${rulesetConfig.name}' version '${versionConfig.version}': ` +
108
+ `either absolutePath or all of sourceRepo, sourceVersion, and entrypoint must be set`);
109
+ }
110
+ // Resolve source path (ensure absolute path)
111
+ // embedded: write a tiny shim file that `extends` the built-in token,
112
+ // so the bundler's normal token-resolution path handles it.
113
+ let sourcePath;
114
+ let cleanupShim = null;
115
+ if (isEmbedded) {
116
+ const shimDir = await fs.mkdtemp(path.join(os.tmpdir(), 'spectify-embedded-'));
117
+ sourcePath = path.join(shimDir, `${rulesetConfig.name}.yaml`);
118
+ await fs.writeFile(sourcePath, `extends: ${versionConfig.entrypoint}\n`, 'utf8');
119
+ cleanupShim = async () => { await fs.rm(shimDir, { recursive: true, force: true }); };
120
+ }
121
+ else {
122
+ sourcePath = versionConfig.absolutePath
123
+ ? path.resolve(versionConfig.absolutePath)
124
+ : path.resolve(this.loaderConfig.sourcesBasePath, versionConfig.sourceRepo, versionConfig.sourceVersion, versionConfig.entrypoint);
125
+ // Check if file exists
126
+ try {
127
+ await fs.access(sourcePath);
128
+ }
129
+ catch (error) {
130
+ throw new Error(`Ruleset file not found: ${sourcePath}\n` +
131
+ (versionConfig.absolutePath
132
+ ? `Configured as absolutePath: ${versionConfig.absolutePath}`
133
+ : `Expected: rulesets/sources/${versionConfig.sourceRepo}/${versionConfig.sourceVersion}/${versionConfig.entrypoint}`));
134
+ }
135
+ }
136
+ // Load and parse the Spectral ruleset.
137
+ //
138
+ // Two mutually-exclusive mechanisms are supported, selected by the
139
+ // catalogue entry's `loader` field (defaulting to `bundler`):
140
+ //
141
+ // bundler Spectral's Rollup-based `@stoplight/spectral-ruleset-bundler`.
142
+ // Handles YAML, ESM JS, `extends: 'spectral:oas'` token
143
+ // resolution, and named imports from CJS npm packages
144
+ // (via Rollup interop). The right choice for almost
145
+ // every ruleset.
146
+ //
147
+ // native Node's built-in `await import()`. Use when the entrypoint
148
+ // is a CommonJS dist file (typically Babel/`tsc` output of
149
+ // a TypeScript ruleset) that the bundler chokes on with
150
+ // `exports is not defined`. Only valid for .js/.cjs/.mjs
151
+ // entrypoints. The `embedded` shim always uses the bundler
152
+ // (it's a generated YAML stub).
153
+ const loaderKind = isEmbedded
154
+ ? 'bundler'
155
+ : (versionConfig.loader ?? 'bundler');
156
+ let spectralRuleset;
157
+ if (loaderKind === 'native') {
158
+ if (!/\.(js|cjs|mjs)$/i.test(sourcePath)) {
159
+ throw new Error(`Ruleset '${rulesetConfig.name}@${versionConfig.version}' is configured ` +
160
+ `with loader: native but its entrypoint is not a JavaScript file ` +
161
+ `(${sourcePath}). The native loader only supports .js / .cjs / .mjs.`);
162
+ }
163
+ try {
164
+ const mod = await import(pathToFileURL(sourcePath).href);
165
+ const def = extractRulesetDef(mod);
166
+ if (!def || (!def.rules && !def.extends && !def.overrides)) {
167
+ throw new Error(`module did not export a recognisable Spectral ruleset definition ` +
168
+ `(expected an object with 'rules', 'extends', or 'overrides')`);
169
+ }
170
+ spectralRuleset = new Ruleset(def, { source: sourcePath });
171
+ }
172
+ catch (error) {
173
+ throw new Error(`Failed to load Spectral ruleset from ${sourcePath} via loader: native: ` +
174
+ (error instanceof Error ? error.message : String(error)));
175
+ }
176
+ }
177
+ else {
178
+ try {
179
+ spectralRuleset = await bundleAndLoadRuleset(sourcePath, { fs: { promises: fs }, fetch });
180
+ }
181
+ catch (error) {
182
+ throw new Error(`Failed to load Spectral ruleset from ${sourcePath}: ` +
183
+ (error instanceof Error ? error.message : String(error)));
184
+ }
185
+ }
186
+ // For embedded entries, resolve the installed package's version if `package` is set
187
+ let resolvedVersion;
188
+ if (isEmbedded && versionConfig.package) {
189
+ resolvedVersion = await this.resolvePackageVersion(versionConfig.package);
190
+ // Mutate config so subsequent reads (e.g. via /rulesets API) see it.
191
+ versionConfig.resolvedVersion = resolvedVersion;
192
+ }
193
+ // Extract rules
194
+ const rules = this.extractRules(spectralRuleset, rulesetConfig.name, versionConfig.version);
195
+ // Build metadata
196
+ const metadata = {
197
+ name: rulesetConfig.name,
198
+ displayName: rulesetConfig.displayName,
199
+ category: rulesetConfig.category,
200
+ origin: rulesetConfig.origin,
201
+ description: rulesetConfig.description,
202
+ versions: rulesetConfig.versions.map(v => v.version),
203
+ defaultVersion: this.getDefaultVersion(rulesetConfig.name) || versionConfig.version,
204
+ ruleCount: rules.length,
205
+ tags: rulesetConfig.tags || [],
206
+ metadata: rulesetConfig.metadata,
207
+ };
208
+ // Build RulesetVersion
209
+ const rulesetVersion = {
210
+ metadata,
211
+ version: versionConfig.version,
212
+ sourceRepo: versionConfig.sourceRepo ?? '',
213
+ sourceVersion: versionConfig.sourceVersion ?? '',
214
+ entrypoint: versionConfig.entrypoint,
215
+ rulesetPath: sourcePath, // Store absolute path for worker initialization
216
+ releaseDate: versionConfig.releaseDate,
217
+ deprecated: versionConfig.deprecated || false,
218
+ changelog: versionConfig.changelog,
219
+ rules,
220
+ spectralRuleset, // Store original Spectral ruleset for execution
221
+ package: versionConfig.package,
222
+ resolvedVersion,
223
+ loader: loaderKind,
224
+ };
225
+ // Note: we intentionally keep the shim file on disk for the lifetime of
226
+ // the process so worker pools that re-read `rulesetPath` continue to find
227
+ // it. The OS reclaims it on tmp cleanup. If this becomes a footprint
228
+ // concern, register `cleanupShim` with a process-exit hook.
229
+ void cleanupShim;
230
+ return rulesetVersion;
231
+ }
232
+ /**
233
+ * Resolve an installed npm package's version by reading its package.json.
234
+ * Returns undefined if the package cannot be located.
235
+ */
236
+ async resolvePackageVersion(pkgName) {
237
+ try {
238
+ // require.resolve handles node_modules traversal correctly.
239
+ const { createRequire } = await import('module');
240
+ const req = createRequire(import.meta.url);
241
+ const pkgJsonPath = req.resolve(`${pkgName}/package.json`);
242
+ const raw = await fs.readFile(pkgJsonPath, 'utf8');
243
+ const pkg = JSON.parse(raw);
244
+ return typeof pkg.version === 'string' ? pkg.version : undefined;
245
+ }
246
+ catch {
247
+ return undefined;
248
+ }
249
+ }
250
+ /**
251
+ * Extract rule definitions from a Spectral ruleset
252
+ */
253
+ extractRules(spectralRuleset, rulesetName, rulesetVersion) {
254
+ const rules = [];
255
+ if (!spectralRuleset.rules) {
256
+ return rules;
257
+ }
258
+ for (const [ruleName, ruleConfig] of Object.entries(spectralRuleset.rules)) {
259
+ if (typeof ruleConfig !== 'object' || ruleConfig === null) {
260
+ continue;
261
+ }
262
+ const rule = ruleConfig;
263
+ // Skip rules that are disabled (severity -1, or enabled === false).
264
+ // Spectral keeps all inherited rules in the map but marks disabled ones
265
+ // with enabled=false (set by extends: [["ruleset", "off"]]). Including
266
+ // them would inflate the rule count with rules that never fire.
267
+ if (rule.enabled === false || rule.severity === -1) {
268
+ continue;
269
+ }
270
+ // Extract rule definition
271
+ const ruleDefinition = {
272
+ name: ruleName,
273
+ rulesetName,
274
+ rulesetVersion,
275
+ severity: this.mapSeverity(rule.severity),
276
+ message: rule.message || rule.description || '',
277
+ description: rule.description || '',
278
+ given: Array.isArray(rule.given) ? rule.given : [rule.given].filter(Boolean),
279
+ then: rule.then,
280
+ recommended: rule.recommended !== false, // Default to true
281
+ formats: rule.formats,
282
+ };
283
+ rules.push(ruleDefinition);
284
+ }
285
+ return rules;
286
+ }
287
+ /**
288
+ * Map Spectral severity to our severity type
289
+ */
290
+ mapSeverity(severity) {
291
+ if (typeof severity === 'string') {
292
+ const lower = severity.toLowerCase();
293
+ if (lower === 'error' || lower === 'warn' || lower === 'info' || lower === 'hint') {
294
+ return lower;
295
+ }
296
+ }
297
+ // Spectral numeric severities: 0=error, 1=warn, 2=info, 3=hint
298
+ if (typeof severity === 'number') {
299
+ const severityMap = {
300
+ 0: 'error',
301
+ 1: 'warn',
302
+ 2: 'info',
303
+ 3: 'hint',
304
+ };
305
+ return severityMap[severity] || 'warn';
306
+ }
307
+ return 'warn'; // Default
308
+ }
309
+ /**
310
+ * Get default version for a ruleset
311
+ */
312
+ getDefaultVersion(name) {
313
+ if (!this.config) {
314
+ throw new Error('RulesetLoader not initialized');
315
+ }
316
+ return this.config.defaults?.[name];
317
+ }
318
+ /**
319
+ * Get source metadata for a specific ruleset version.
320
+ * Used to generate Spectral CLI reproduction instructions.
321
+ */
322
+ async getSourceMetadata(rulesetName, version) {
323
+ if (!this.config) {
324
+ throw new Error('RulesetLoader not initialized');
325
+ }
326
+ const rulesetConfig = this.config.rulesets.find(r => r.name === rulesetName);
327
+ if (!rulesetConfig) {
328
+ return null;
329
+ }
330
+ const versionConfig = rulesetConfig.versions.find(v => v.version === version);
331
+ if (!versionConfig) {
332
+ return null;
333
+ }
334
+ // Check if package.json exists in the source directory
335
+ // For embedded entries, there is no sources/ tree — skip the check.
336
+ const isEmbedded = rulesetConfig.origin === 'embedded';
337
+ let hasPackageJson = false;
338
+ if (!isEmbedded) {
339
+ const sourceDir = versionConfig.absolutePath
340
+ ? path.dirname(path.resolve(versionConfig.absolutePath))
341
+ : path.resolve(this.loaderConfig.sourcesBasePath, versionConfig.sourceRepo, versionConfig.sourceVersion);
342
+ try {
343
+ await fs.access(path.join(sourceDir, 'package.json'));
344
+ hasPackageJson = true;
345
+ }
346
+ catch {
347
+ // No package.json
348
+ }
349
+ }
350
+ return {
351
+ rulesetName: rulesetConfig.name,
352
+ displayName: rulesetConfig.displayName,
353
+ version: versionConfig.version,
354
+ repositoryUrl: rulesetConfig.metadata.repository,
355
+ sourceRepo: versionConfig.sourceRepo ?? '',
356
+ sourceVersion: versionConfig.sourceVersion ?? '',
357
+ entrypoint: versionConfig.entrypoint,
358
+ hasPackageJson,
359
+ license: rulesetConfig.metadata.license,
360
+ };
361
+ }
362
+ /**
363
+ * List all available rulesets
364
+ */
365
+ listRulesets() {
366
+ if (!this.config) {
367
+ throw new Error('RulesetLoader not initialized');
368
+ }
369
+ return this.config.rulesets.map(r => {
370
+ const defaultVersion = this.getDefaultVersion(r.name);
371
+ return {
372
+ name: r.name,
373
+ displayName: r.displayName,
374
+ category: r.category,
375
+ origin: r.origin,
376
+ description: r.description,
377
+ versions: r.versions.map(v => v.version),
378
+ defaultVersion: defaultVersion || r.versions[0].version,
379
+ ruleCount: 0, // Will be populated when version is loaded
380
+ tags: r.tags || [],
381
+ metadata: r.metadata,
382
+ };
383
+ });
384
+ }
385
+ /**
386
+ * List all available rulesets with rule counts (loads default versions)
387
+ */
388
+ async listRulesetsWithCounts() {
389
+ if (!this.config) {
390
+ throw new Error('RulesetLoader not initialized');
391
+ }
392
+ const metadataPromises = this.config.rulesets.map(async (r) => {
393
+ const defaultVersion = this.getDefaultVersion(r.name) || r.versions[0].version;
394
+ try {
395
+ // Load the default version to get accurate rule count (cached after first load)
396
+ const rulesetVersion = await this.loadVersion(r.name, defaultVersion);
397
+ return {
398
+ name: r.name,
399
+ displayName: r.displayName,
400
+ category: r.category,
401
+ origin: r.origin,
402
+ description: r.description,
403
+ versions: r.versions.map(v => v.version),
404
+ defaultVersion,
405
+ ruleCount: rulesetVersion.rules.length,
406
+ tags: r.tags || [],
407
+ metadata: r.metadata,
408
+ };
409
+ }
410
+ catch (error) {
411
+ // If loading fails, return metadata with 0 rule count
412
+ console.error(`Failed to load ruleset ${r.name}:`, error);
413
+ return {
414
+ name: r.name,
415
+ displayName: r.displayName,
416
+ category: r.category,
417
+ origin: r.origin,
418
+ description: r.description,
419
+ versions: r.versions.map(v => v.version),
420
+ defaultVersion,
421
+ ruleCount: 0,
422
+ tags: r.tags || [],
423
+ metadata: r.metadata,
424
+ };
425
+ }
426
+ });
427
+ return Promise.all(metadataPromises);
428
+ }
429
+ /**
430
+ * List all versions for a specific ruleset
431
+ */
432
+ listVersions(name) {
433
+ if (!this.config) {
434
+ throw new Error('RulesetLoader not initialized');
435
+ }
436
+ const rulesetConfig = this.config.rulesets.find(r => r.name === name);
437
+ if (!rulesetConfig) {
438
+ throw new Error(`Ruleset '${name}' not found`);
439
+ }
440
+ return rulesetConfig.versions.map(v => v.version);
441
+ }
442
+ /**
443
+ * Get ruleset metadata without loading the full ruleset
444
+ */
445
+ getMetadata(name) {
446
+ if (!this.config) {
447
+ throw new Error('RulesetLoader not initialized');
448
+ }
449
+ const rulesetConfig = this.config.rulesets.find(r => r.name === name);
450
+ if (!rulesetConfig) {
451
+ throw new Error(`Ruleset '${name}' not found`);
452
+ }
453
+ const defaultVersion = this.getDefaultVersion(name);
454
+ return {
455
+ name: rulesetConfig.name,
456
+ displayName: rulesetConfig.displayName,
457
+ category: rulesetConfig.category,
458
+ origin: rulesetConfig.origin,
459
+ description: rulesetConfig.description,
460
+ versions: rulesetConfig.versions.map(v => v.version),
461
+ defaultVersion: defaultVersion || rulesetConfig.versions[0].version,
462
+ ruleCount: 0, // Will be populated when version is loaded
463
+ tags: rulesetConfig.tags || [],
464
+ metadata: rulesetConfig.metadata,
465
+ };
466
+ }
467
+ /**
468
+ * Clear the cache (useful for testing or reloading)
469
+ */
470
+ clearCache() {
471
+ this.cache.clear();
472
+ }
473
+ /**
474
+ * Get cache statistics
475
+ */
476
+ getCacheStats() {
477
+ return {
478
+ size: this.cache.size,
479
+ keys: Array.from(this.cache.keys()),
480
+ };
481
+ }
482
+ }
483
+ /**
484
+ * Extract a Spectral ruleset definition object from the namespace returned
485
+ * by Node's `await import()`. Handles the common module shapes:
486
+ *
487
+ * ESM: `export default { rules: ... }` → { default: { rules } }
488
+ * CJS: `module.exports = { rules: ... }` → { default: { rules } }
489
+ * CJS named: `module.exports.default = { rules: ... }`→ { default: { rules } }
490
+ * Babel CJS: Both of the above wrapped under → { __esModule, default: { default: { rules } } }
491
+ * Babel's `_interopRequireDefault` shape
492
+ *
493
+ * Returns `null` if no plausible ruleset definition was found.
494
+ */
495
+ function extractRulesetDef(mod) {
496
+ if (!mod || typeof mod !== 'object')
497
+ return null;
498
+ const ns = mod;
499
+ let candidate = (ns.default ?? ns);
500
+ // Babel CJS interop wraps the real definition under a second `.default`.
501
+ // Detect this by checking that the outer candidate has none of the
502
+ // top-level ruleset keys but does have a `.default` that looks like one.
503
+ if (candidate
504
+ && typeof candidate === 'object'
505
+ && !('rules' in candidate)
506
+ && !('extends' in candidate)
507
+ && !('overrides' in candidate)
508
+ && candidate.default
509
+ && typeof candidate.default === 'object') {
510
+ candidate = candidate.default;
511
+ }
512
+ return candidate;
513
+ }
514
+ //# sourceMappingURL=ruleset-loader.js.map