@eventcatalog/linter 0.0.3 → 0.0.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 (37) hide show
  1. package/README.md +223 -27
  2. package/dist/cli/index.js +22 -4
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/config/index.d.ts +22 -0
  5. package/dist/config/index.d.ts.map +1 -0
  6. package/dist/config/index.js +155 -0
  7. package/dist/config/index.js.map +1 -0
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/reporters/index.d.ts.map +1 -1
  13. package/dist/reporters/index.js +4 -0
  14. package/dist/reporters/index.js.map +1 -1
  15. package/dist/schemas/index.d.ts +3 -3
  16. package/dist/schemas/team.js +1 -1
  17. package/dist/schemas/team.js.map +1 -1
  18. package/dist/schemas/user.d.ts +3 -3
  19. package/dist/schemas/user.js +2 -2
  20. package/dist/schemas/user.js.map +1 -1
  21. package/dist/types/index.d.ts +1 -0
  22. package/dist/types/index.d.ts.map +1 -1
  23. package/dist/validators/best-practices-validator.d.ts +4 -0
  24. package/dist/validators/best-practices-validator.d.ts.map +1 -0
  25. package/dist/validators/best-practices-validator.js +36 -0
  26. package/dist/validators/best-practices-validator.js.map +1 -0
  27. package/dist/validators/index.d.ts +1 -0
  28. package/dist/validators/index.d.ts.map +1 -1
  29. package/dist/validators/index.js +4 -1
  30. package/dist/validators/index.js.map +1 -1
  31. package/dist/validators/reference-validator.d.ts.map +1 -1
  32. package/dist/validators/reference-validator.js +18 -2
  33. package/dist/validators/reference-validator.js.map +1 -1
  34. package/dist/validators/schema-validator.d.ts.map +1 -1
  35. package/dist/validators/schema-validator.js +12 -0
  36. package/dist/validators/schema-validator.js.map +1 -1
  37. package/package.json +1 -1
package/README.md CHANGED
@@ -10,6 +10,9 @@ A comprehensive linter for EventCatalog that validates frontmatter schemas and r
10
10
  - **📋 Schema Validation**: Validates all resource frontmatter against defined schemas using Zod
11
11
  - **🔗 Reference Validation**: Ensures all referenced resources (services, events, domains, etc.) actually exist
12
12
  - **📦 Semver Version Support**: Supports semantic versions, ranges (`^1.0.0`, `~1.2.0`), x-patterns (`0.0.x`), and `latest`
13
+ - **⚙️ Configurable Rules**: Optional `.eventcatalogrc.js` config file for customizing rule severity and behavior
14
+ - **🚫 Ignore Patterns**: Skip validation for specific file patterns (archived, drafts, etc.)
15
+ - **🎯 Rule Overrides**: Apply different rules to different file patterns for flexible team workflows
13
16
  - **🎯 Comprehensive Coverage**: Supports all EventCatalog resource types
14
17
  - **⚡ Fast Performance**: Efficiently scans large catalogs
15
18
  - **🎨 ESLint-Inspired Output**: Clean, file-grouped error reporting with severity levels
@@ -31,16 +34,16 @@ A comprehensive linter for EventCatalog that validates frontmatter schemas and r
31
34
 
32
35
  ## 📦 Installation
33
36
 
34
- ### Global Installation
37
+ ### Use with npx (Recommended)
35
38
 
36
39
  ```bash
37
- npm install -g @eventcatalog/linter
40
+ npx @eventcatalog/linter
38
41
  ```
39
42
 
40
- ### Use with npx (Recommended)
43
+ ### Global Installation
41
44
 
42
45
  ```bash
43
- npx @eventcatalog/linter
46
+ npm install -g @eventcatalog/linter
44
47
  ```
45
48
 
46
49
  ### Add to your project
@@ -49,6 +52,30 @@ npx @eventcatalog/linter
49
52
  npm install --save-dev @eventcatalog/linter
50
53
  ```
51
54
 
55
+ ### Quick Start
56
+
57
+ 1. **Install and run**: Start linting immediately with npx
58
+
59
+ ```bash
60
+ npx @eventcatalog/linter
61
+ ```
62
+
63
+ 2. **Add configuration**: Create a `.eventcatalogrc.js` file to customize rules
64
+
65
+ ```javascript
66
+ module.exports = {
67
+ rules: {
68
+ 'best-practices/summary-required': 'warn',
69
+ 'refs/owner-exists': 'error',
70
+ },
71
+ };
72
+ ```
73
+
74
+ 3. **Integrate with CI/CD**: Add to your GitHub Actions or GitLab CI
75
+ ```yaml
76
+ - run: npx @eventcatalog/linter
77
+ ```
78
+
52
79
  ## 🛠️ Usage
53
80
 
54
81
  ### Basic Usage
@@ -91,8 +118,8 @@ Add to your `package.json` scripts:
91
118
  ```json
92
119
  {
93
120
  "scripts": {
94
- "lint:eventcatalog": "@eventcatalog/linter",
95
- "lint:eventcatalog:verbose": "@eventcatalog/linter --verbose"
121
+ "lint:eventcatalog": "eventcatalog-linter",
122
+ "lint:eventcatalog:verbose": "eventcatalog-linter --verbose"
96
123
  }
97
124
  }
98
125
  ```
@@ -126,6 +153,161 @@ eventcatalog-lint:
126
153
  - npx @eventcatalog/linter
127
154
  ```
128
155
 
156
+ ## ⚙️ Configuration
157
+
158
+ The EventCatalog Linter supports optional configuration through a `.eventcatalogrc.js` file in your catalog root directory. This allows you to:
159
+
160
+ - Turn rules on/off
161
+ - Configure rule severity levels (error, warn, off)
162
+ - Ignore specific file patterns
163
+ - Override rules for specific file patterns
164
+
165
+ ### Configuration File
166
+
167
+ Create a `.eventcatalogrc.js` file in your EventCatalog root directory:
168
+
169
+ ```javascript
170
+ // .eventcatalogrc.js
171
+ module.exports = {
172
+ rules: {
173
+ // Schema validation rules
174
+ 'schema/required-fields': 'error',
175
+ 'schema/valid-semver': 'error',
176
+ 'schema/valid-email': 'warn',
177
+
178
+ // Reference validation rules
179
+ 'refs/owner-exists': 'error',
180
+ 'refs/valid-version-range': 'error',
181
+
182
+ // Best practice rules
183
+ 'best-practices/summary-required': 'warn',
184
+ 'best-practices/owner-required': 'error',
185
+ },
186
+
187
+ // Ignore certain paths
188
+ ignorePatterns: ['**/archived/**', '**/drafts/**'],
189
+
190
+ // Override rules for specific file patterns
191
+ overrides: [
192
+ {
193
+ files: ['**/experimental/**'],
194
+ rules: {
195
+ 'best-practices/owner-required': 'off',
196
+ },
197
+ },
198
+ ],
199
+ };
200
+ ```
201
+
202
+ ### Rule Severity Levels
203
+
204
+ - **`'error'`** - Causes the linter to exit with error code 1
205
+ - **`'warn'`** - Shows warnings but allows the linter to pass (unless `--fail-on-warning` is used)
206
+ - **`'off'`** - Disables the rule completely
207
+
208
+ ### Available Rules
209
+
210
+ | Rule Name | Description | Accepted Values | Default |
211
+ | --------------------------------- | -------------------------------------------------------------------------- | ---------------------- | -------------- |
212
+ | **Schema Validation Rules** |
213
+ | `schema/required-fields` | Validates that required fields are present in frontmatter | `error`, `warn`, `off` | `error` |
214
+ | `schema/valid-type` | Validates that field types are correct (strings, arrays, objects) | `error`, `warn`, `off` | `error` |
215
+ | `schema/valid-semver` | Validates semantic version format (1.0.0, 2.1.3-beta) | `error`, `warn`, `off` | `error` |
216
+ | `schema/valid-email` | Validates email address format in user frontmatter | `error`, `warn`, `off` | `error` |
217
+ | `schema/validation-error` | General schema validation errors | `error`, `warn`, `off` | `error` |
218
+ | **Reference Validation Rules** |
219
+ | `refs/owner-exists` | Ensures referenced owners (users/teams) exist | `error`, `warn`, `off` | `error` |
220
+ | `refs/valid-version-range` | Validates version references and patterns | `error`, `warn`, `off` | `error` |
221
+ | `refs/resource-exists` | Ensures referenced resources exist (always enabled for critical resources) | Always enabled | Always enabled |
222
+ | **Best Practice Rules** |
223
+ | `best-practices/summary-required` | Requires summary field for better documentation | `error`, `warn`, `off` | `error` |
224
+ | `best-practices/owner-required` | Requires at least one owner for accountability | `error`, `warn`, `off` | `error` |
225
+
226
+ **Note**: Core resource reference validation (services, domains, entities) is always enabled and cannot be disabled, ensuring referential integrity of your EventCatalog.
227
+
228
+ ### Configuration Examples
229
+
230
+ #### Relaxed Configuration for Development
231
+
232
+ ```javascript
233
+ module.exports = {
234
+ rules: {
235
+ 'best-practices/summary-required': 'warn',
236
+ 'best-practices/owner-required': 'warn',
237
+ 'refs/owner-exists': 'warn',
238
+ },
239
+ ignorePatterns: ['**/drafts/**', '**/experimental/**'],
240
+ };
241
+ ```
242
+
243
+ #### Strict Configuration for Production
244
+
245
+ ```javascript
246
+ module.exports = {
247
+ rules: {
248
+ 'schema/required-fields': 'error',
249
+ 'refs/owner-exists': 'error',
250
+ 'best-practices/summary-required': 'error',
251
+ 'best-practices/owner-required': 'error',
252
+ },
253
+ };
254
+ ```
255
+
256
+ #### Team-Specific Overrides
257
+
258
+ ```javascript
259
+ module.exports = {
260
+ rules: {
261
+ 'best-practices/owner-required': 'error',
262
+ 'best-practices/summary-required': 'error',
263
+ },
264
+ overrides: [
265
+ {
266
+ files: ['**/legacy/**'],
267
+ rules: {
268
+ 'best-practices/owner-required': 'warn',
269
+ 'best-practices/summary-required': 'off',
270
+ },
271
+ },
272
+ {
273
+ files: ['**/critical/**'],
274
+ rules: {
275
+ 'best-practices/summary-required': 'error',
276
+ 'refs/owner-exists': 'error',
277
+ },
278
+ },
279
+ ],
280
+ };
281
+ ```
282
+
283
+ ### Using with CI/CD
284
+
285
+ The configuration file allows you to have different validation rules for different environments:
286
+
287
+ ```bash
288
+ # Development - warnings allowed
289
+ npx @eventcatalog/linter
290
+
291
+ # Production - fail on warnings
292
+ npx @eventcatalog/linter --fail-on-warning
293
+ ```
294
+
295
+ ### Using with CI/CD
296
+
297
+ The configuration file allows you to have different validation rules for different environments:
298
+
299
+ ```bash
300
+ # Development - warnings allowed
301
+ npx @eventcatalog/linter
302
+
303
+ # Production - fail on warnings
304
+ npx @eventcatalog/linter --fail-on-warning
305
+ ```
306
+
307
+ ### Default Behavior
308
+
309
+ If no `.eventcatalogrc.js` file is found, the linter uses default rules where all validations are set to `'error'`. This ensures strict validation out of the box, making it easy to get started with quality documentation practices.
310
+
129
311
  ## ✅ What It Validates
130
312
 
131
313
  ### Frontmatter Schema Validation
@@ -204,18 +386,18 @@ $ eventcatalog-linter
204
386
  $ eventcatalog-linter
205
387
 
206
388
  services/user-service/index.mdx
207
- ✖ error version: Invalid semantic version format [version] (@eventcatalog/schema-validation)
208
- ⚠ warning summary should be provided for better documentation [summary] (@eventcatalog/schema-validation)
389
+ ✖ error version: Invalid semantic version format [version] (schema/valid-semver)
390
+ ⚠ warning Summary is required for better documentation [summary] (best-practices/summary-required)
209
391
 
210
392
  ✖ 2 problems
211
393
 
212
394
  domains/sales/index.mdx
213
- ✖ error Referenced service "order-service" does not exist [services] (@eventcatalog/invalid-reference)
395
+ ✖ error Referenced service "order-service" does not exist [services] (refs/resource-exists)
214
396
 
215
397
  ✖ 1 problem
216
398
 
217
399
  flows/user-registration/index.mdx
218
- ✖ error Referenced service "notification-service" (version: 2.0.0) does not exist [steps[1].service] (@eventcatalog/invalid-reference)
400
+ ✖ error Referenced service "notification-service" (version: 2.0.0) does not exist [steps[1].service] (refs/valid-version-range)
219
401
 
220
402
  ✖ 1 problem
221
403
 
@@ -229,12 +411,12 @@ flows/user-registration/index.mdx
229
411
  $ eventcatalog-linter --verbose
230
412
 
231
413
  services/user-service/index.mdx
232
- ✖ error version: Invalid semantic version format [version] (@eventcatalog/schema-validation)
414
+ ✖ error version: Invalid semantic version format [version] (schema/valid-semver)
233
415
 
234
416
  ✖ 1 problem
235
417
 
236
418
  domains/sales/index.mdx
237
- ✖ error Referenced service "order-service" does not exist [services] (@eventcatalog/invalid-reference)
419
+ ✖ error Referenced service "order-service" does not exist [services] (refs/resource-exists)
238
420
 
239
421
  ✖ 1 problem
240
422
 
@@ -442,32 +624,43 @@ email: invalid-email # Should be john@example.com
442
624
  ---
443
625
  ```
444
626
 
445
- ## 🏷️ Error Codes
627
+ ## 🏷️ Rule Names and Error Codes
628
+
629
+ The linter provides descriptive rule names in parentheses to help identify and fix issues quickly. Each error shows the specific rule that was violated:
446
630
 
447
- The linter provides descriptive error codes to help identify and fix issues quickly:
631
+ ### Schema Validation Rules
448
632
 
449
- ### Schema Validation Errors
633
+ - `(schema/required-fields)` - Required field is missing
634
+ - `(schema/valid-type)` - Field has wrong data type
635
+ - `(schema/valid-semver)` - Invalid semantic version format
636
+ - `(schema/valid-email)` - Invalid email address format
637
+ - `(schema/validation-error)` - General schema validation error
450
638
 
451
- - `@eventcatalog/required-field` - Required field is missing
452
- - `@eventcatalog/invalid-type` - Field has wrong data type
453
- - `@eventcatalog/schema-validation` - General schema validation error
454
- - `@eventcatalog/schema` - Schema-related validation error
639
+ ### Reference Validation Rules
455
640
 
456
- ### Reference Validation Errors
641
+ - `(refs/owner-exists)` - Referenced owner (user/team) doesn't exist
642
+ - `(refs/valid-version-range)` - Referenced version doesn't exist or invalid pattern
643
+ - `(refs/resource-exists)` - Referenced resource doesn't exist
457
644
 
458
- - `@eventcatalog/invalid-reference` - Referenced resource doesn't exist
645
+ ### Best Practice Rules
646
+
647
+ - `(best-practices/summary-required)` - Summary field is missing
648
+ - `(best-practices/owner-required)` - At least one owner is required
459
649
 
460
650
  ### Parse Errors
461
651
 
462
- - `@eventcatalog/parse-error` - YAML/frontmatter parsing error
652
+ - `(@eventcatalog/parse-error)` - YAML/frontmatter parsing error
463
653
 
464
- ### Example with Error Codes
654
+ ### Example with Rule Names
465
655
 
466
656
  ```bash
467
657
  services/user-service/index.mdx
468
- ✖ error name: Required [name] (@eventcatalog/required-field)
469
- ✖ error version: Invalid semantic version format [version] (@eventcatalog/schema-validation)
470
- ✖ error Referenced service "missing-service" does not exist [sends] (@eventcatalog/invalid-reference)
658
+ ✖ error name: Expected string, but received undefined [name] (schema/valid-type)
659
+ ✖ error version: Invalid semantic version format [version] (schema/valid-semver)
660
+ ✖ error Referenced user/team "missing-owner" does not exist [owners] (refs/owner-exists)
661
+ ✖ error Summary is required for better documentation [summary] (best-practices/summary-required)
662
+
663
+ ✖ 4 problems
471
664
  ```
472
665
 
473
666
  ## ⚠️ Warnings Support
@@ -542,14 +735,17 @@ npm test schema-validator.test.ts
542
735
  ```
543
736
  src/
544
737
  ├── cli/ # Command-line interface
738
+ ├── config/ # Configuration loading and rule management
545
739
  ├── schemas/ # Zod validation schemas
546
740
  ├── scanner/ # File system scanning
547
741
  ├── parser/ # Frontmatter parsing
548
- ├── validators/ # Validation logic
742
+ ├── validators/ # Validation logic (schema, reference, best practices)
549
743
  ├── reporters/ # Error reporting
550
744
  └── types/ # TypeScript definitions
551
745
 
552
746
  tests/
747
+ ├── config.test.ts
748
+ ├── cli-integration.test.ts
553
749
  ├── schema-validator.test.ts
554
750
  ├── reference-validator.test.ts
555
751
  ├── scanner.test.ts
package/dist/cli/index.js CHANGED
@@ -12,6 +12,7 @@ const scanner_1 = require("../scanner");
12
12
  const parser_1 = require("../parser");
13
13
  const validators_1 = require("../validators");
14
14
  const reporters_1 = require("../reporters");
15
+ const config_1 = require("../config");
15
16
  const program = new commander_1.Command();
16
17
  program
17
18
  .name('eventcatalog-linter')
@@ -22,10 +23,21 @@ program
22
23
  .option('--fail-on-warning', 'Exit with non-zero code on warnings', false)
23
24
  .action(async (directory, options) => {
24
25
  const rootDir = path_1.default.resolve(directory);
25
- const spinner = (0, ora_1.default)('Scanning EventCatalog files...').start();
26
+ const spinner = (0, ora_1.default)('Loading configuration...').start();
26
27
  try {
27
- const files = await (0, scanner_1.scanCatalogFiles)(rootDir);
28
- spinner.text = `Found ${files.length} catalog files`;
28
+ // Load configuration
29
+ const config = (0, config_1.loadConfig)(rootDir);
30
+ spinner.text = 'Scanning EventCatalog files...';
31
+ const allFiles = await (0, scanner_1.scanCatalogFiles)(rootDir);
32
+ // Filter out ignored files
33
+ const files = allFiles.filter((file) => !(0, config_1.shouldIgnoreFile)(file.relativePath, config.ignorePatterns || []));
34
+ const ignoredCount = allFiles.length - files.length;
35
+ if (ignoredCount > 0) {
36
+ spinner.text = `Found ${files.length} catalog files (${ignoredCount} ignored)`;
37
+ }
38
+ else {
39
+ spinner.text = `Found ${files.length} catalog files`;
40
+ }
29
41
  if (files.length === 0) {
30
42
  spinner.warn('No EventCatalog files found');
31
43
  process.exit(0);
@@ -33,7 +45,13 @@ program
33
45
  spinner.text = 'Parsing frontmatter...';
34
46
  const { parsed, errors: parseErrors } = await (0, parser_1.parseAllFiles)(files);
35
47
  spinner.text = 'Validating catalog...';
36
- const validationErrors = (0, validators_1.validateCatalog)(parsed);
48
+ const rawValidationErrors = (0, validators_1.validateCatalog)(parsed);
49
+ // Apply rule configuration to each file's errors
50
+ const validationErrors = parsed.flatMap((parsedFile) => {
51
+ const fileErrors = rawValidationErrors.filter((error) => error.file === parsedFile.file.relativePath);
52
+ const effectiveRules = (0, config_1.getEffectiveRules)(parsedFile.file.relativePath, config);
53
+ return (0, config_1.applyRuleSeverity)(fileErrors, effectiveRules);
54
+ });
37
55
  spinner.stop();
38
56
  const summary = (0, reporters_1.reportErrors)(validationErrors, parseErrors, options.verbose);
39
57
  // Show scan summary
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,gDAAwB;AACxB,wCAA8C;AAC9C,sCAA0C;AAC1C,8CAAgD;AAChD,4CAA4C;AAG5C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,qBAAqB,CAAC;KAC3B,WAAW,CAAC,iEAAiE,CAAC;KAC9E,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,aAAa,EAAE,gCAAgC,EAAE,GAAG,CAAC;KAC9D,MAAM,CAAC,eAAe,EAAE,qBAAqB,EAAE,KAAK,CAAC;KACrD,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,EAAE,KAAK,CAAC;KACzE,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,OAA+B,EAAE,EAAE;IACnE,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,IAAA,0BAAgB,EAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,GAAG,SAAS,KAAK,CAAC,MAAM,gBAAgB,CAAC;QAErD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACxC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,sBAAa,EAAC,KAAK,CAAC,CAAC;QAEnE,OAAO,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACvC,MAAM,gBAAgB,GAAG,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;QAEjD,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,MAAM,OAAO,GAAG,IAAA,wBAAY,EAAC,gBAAgB,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAE7E,oBAAoB;QACpB,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { ValidationError } from '../types';
2
+ export type RuleSeverity = 'error' | 'warn' | 'off';
3
+ export interface RuleConfig {
4
+ severity: RuleSeverity;
5
+ options?: Record<string, any>;
6
+ }
7
+ export interface ConfigOverride {
8
+ files: string[];
9
+ rules: Record<string, RuleSeverity | [RuleSeverity, Record<string, any>]>;
10
+ }
11
+ export interface LinterConfig {
12
+ rules: Record<string, RuleSeverity | [RuleSeverity, Record<string, any>]>;
13
+ ignorePatterns?: string[];
14
+ overrides?: ConfigOverride[];
15
+ }
16
+ export declare const DEFAULT_RULES: Record<string, RuleSeverity>;
17
+ export declare const loadConfig: (rootDir: string) => LinterConfig;
18
+ export declare const parseRuleConfig: (rule: RuleSeverity | [RuleSeverity, Record<string, any>]) => RuleConfig;
19
+ export declare const shouldIgnoreFile: (filePath: string, ignorePatterns: string[]) => boolean;
20
+ export declare const getEffectiveRules: (filePath: string, config: LinterConfig) => Record<string, RuleConfig>;
21
+ export declare const applyRuleSeverity: (errors: ValidationError[], rules: Record<string, RuleConfig>) => ValidationError[];
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAYtD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,YAiC5C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAG,UAW1F,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,EAAE,gBAAgB,MAAM,EAAE,KAAG,OAgB7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,EAAE,QAAQ,YAAY,KAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAwBnG,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,EAAE,EAAE,OAAO,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KAAG,eAAe,EAmB/G,CAAC"}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.applyRuleSeverity = exports.getEffectiveRules = exports.shouldIgnoreFile = exports.parseRuleConfig = exports.loadConfig = exports.DEFAULT_RULES = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ exports.DEFAULT_RULES = {
10
+ 'schema/required-fields': 'error',
11
+ 'schema/valid-semver': 'error',
12
+ 'schema/valid-email': 'error',
13
+ 'refs/owner-exists': 'error',
14
+ 'refs/valid-version-range': 'error',
15
+ 'best-practices/summary-required': 'error',
16
+ 'best-practices/owner-required': 'error',
17
+ 'naming/service-id-format': 'error',
18
+ 'naming/event-id-format': 'error',
19
+ 'versions/consistent-format': 'error',
20
+ 'versions/no-deprecated': 'error',
21
+ };
22
+ const loadConfig = (rootDir) => {
23
+ const configPath = path_1.default.join(rootDir, '.eventcatalogrc.js');
24
+ if (!fs_1.default.existsSync(configPath)) {
25
+ // Return default config if no config file exists
26
+ return {
27
+ rules: exports.DEFAULT_RULES,
28
+ ignorePatterns: [],
29
+ overrides: [],
30
+ };
31
+ }
32
+ try {
33
+ // Clear module cache to ensure fresh load
34
+ delete require.cache[require.resolve(configPath)];
35
+ const config = require(configPath);
36
+ // Merge with defaults
37
+ const mergedConfig = {
38
+ rules: { ...exports.DEFAULT_RULES, ...config.rules },
39
+ ignorePatterns: config.ignorePatterns || [],
40
+ overrides: config.overrides || [],
41
+ };
42
+ return mergedConfig;
43
+ }
44
+ catch (error) {
45
+ console.warn(`Warning: Could not load .eventcatalogrc.js: ${error instanceof Error ? error.message : String(error)}`);
46
+ return {
47
+ rules: exports.DEFAULT_RULES,
48
+ ignorePatterns: [],
49
+ overrides: [],
50
+ };
51
+ }
52
+ };
53
+ exports.loadConfig = loadConfig;
54
+ const parseRuleConfig = (rule) => {
55
+ if (Array.isArray(rule)) {
56
+ return {
57
+ severity: rule[0],
58
+ options: rule[1],
59
+ };
60
+ }
61
+ return {
62
+ severity: rule,
63
+ options: {},
64
+ };
65
+ };
66
+ exports.parseRuleConfig = parseRuleConfig;
67
+ const shouldIgnoreFile = (filePath, ignorePatterns) => {
68
+ if (!ignorePatterns || ignorePatterns.length === 0) {
69
+ return false;
70
+ }
71
+ const normalizedPath = filePath.replace(/\\/g, '/');
72
+ for (const pattern of ignorePatterns) {
73
+ // Simple glob matching for now
74
+ const regex = new RegExp(pattern.replace(/\*\*/g, '.*').replace(/\*/g, '[^/]*'));
75
+ if (regex.test(normalizedPath)) {
76
+ return true;
77
+ }
78
+ }
79
+ return false;
80
+ };
81
+ exports.shouldIgnoreFile = shouldIgnoreFile;
82
+ const getEffectiveRules = (filePath, config) => {
83
+ let effectiveRules = { ...config.rules };
84
+ // Apply overrides
85
+ if (config.overrides) {
86
+ for (const override of config.overrides) {
87
+ const matchesFile = override.files.some((pattern) => {
88
+ const regex = new RegExp(pattern.replace(/\*\*/g, '.*').replace(/\*/g, '[^/]*'));
89
+ return regex.test(filePath);
90
+ });
91
+ if (matchesFile) {
92
+ effectiveRules = { ...effectiveRules, ...override.rules };
93
+ }
94
+ }
95
+ }
96
+ // Parse rules into RuleConfig objects
97
+ const parsedRules = {};
98
+ for (const [ruleName, ruleValue] of Object.entries(effectiveRules)) {
99
+ parsedRules[ruleName] = (0, exports.parseRuleConfig)(ruleValue);
100
+ }
101
+ return parsedRules;
102
+ };
103
+ exports.getEffectiveRules = getEffectiveRules;
104
+ const applyRuleSeverity = (errors, rules) => {
105
+ const result = [];
106
+ for (const error of errors) {
107
+ // Map validation errors to rule names
108
+ const ruleName = mapErrorToRuleName(error);
109
+ const rule = rules[ruleName];
110
+ if (!rule || rule.severity === 'off') {
111
+ continue; // Skip disabled rules
112
+ }
113
+ result.push({
114
+ ...error,
115
+ severity: rule.severity === 'warn' ? 'warning' : 'error',
116
+ });
117
+ }
118
+ return result;
119
+ };
120
+ exports.applyRuleSeverity = applyRuleSeverity;
121
+ const mapErrorToRuleName = (error) => {
122
+ // Map validation errors to rule names based on the error type and content
123
+ if (error.type === 'schema') {
124
+ // Check field-specific rules first
125
+ if (error.field === 'summary') {
126
+ return 'best-practices/summary-required';
127
+ }
128
+ if (error.field === 'owners') {
129
+ return 'best-practices/owner-required';
130
+ }
131
+ // Check message content for specific validation types
132
+ if (error.message.includes('email') || error.message.includes('Invalid email')) {
133
+ return 'schema/valid-email';
134
+ }
135
+ if (error.message.includes('version') || error.message.includes('semantic')) {
136
+ return 'schema/valid-semver';
137
+ }
138
+ if (error.message.includes('Required') || error.message.includes('Expected')) {
139
+ return 'schema/required-fields';
140
+ }
141
+ return 'schema/required-fields';
142
+ }
143
+ if (error.type === 'reference') {
144
+ if (error.message.includes('user') || error.message.includes('team')) {
145
+ return 'refs/owner-exists';
146
+ }
147
+ if (error.message.includes('version')) {
148
+ return 'refs/valid-version-range';
149
+ }
150
+ // Service, domain, entity, and other references are always validated and not configurable
151
+ return 'schema/required-fields'; // Map to a default rule so they remain as errors
152
+ }
153
+ return 'schema/required-fields';
154
+ };
155
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,4 +4,5 @@ export * from './scanner';
4
4
  export * from './parser';
5
5
  export * from './validators';
6
6
  export * from './reporters';
7
+ export * from './config';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -20,4 +20,5 @@ __exportStar(require("./scanner"), exports);
20
20
  __exportStar(require("./parser"), exports);
21
21
  __exportStar(require("./validators"), exports);
22
22
  __exportStar(require("./reporters"), exports);
23
+ __exportStar(require("./config"), exports);
23
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B;AAC1B,4CAA0B;AAC1B,2CAAyB;AACzB,+CAA6B;AAC7B,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B;AAC1B,4CAA0B;AAC1B,2CAAyB;AACzB,+CAA6B;AAC7B,8CAA4B;AAC5B,2CAAyB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,eAAe,EAAE,eAAc,OAAc,KAAG,MAelF,CAAC;AAiBF,eAAO,MAAM,gBAAgB,GAAI,OAAO,UAAU,EAAE,eAAc,OAAc,KAAG,MAWlF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAW1F,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,kBAAkB,eAAe,EAAE,EACnC,aAAa,UAAU,EAAE,EACzB,UAAS,OAAe,KACvB,aAyFF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,eAAe,EAAE,eAAc,OAAc,KAAG,MAelF,CAAC;AAsBF,eAAO,MAAM,gBAAgB,GAAI,OAAO,UAAU,EAAE,eAAc,OAAc,KAAG,MAWlF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAW1F,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,kBAAkB,eAAe,EAAE,EACnC,aAAa,UAAU,EAAE,EACzB,UAAS,OAAe,KACvB,aAyFF,CAAC"}
@@ -21,6 +21,10 @@ const formatError = (error, showFilename = true) => {
21
21
  };
22
22
  exports.formatError = formatError;
23
23
  const getErrorCode = (error) => {
24
+ if (error.rule) {
25
+ return `(${error.rule})`;
26
+ }
27
+ // Fallback to generic error codes
24
28
  if (error.type === 'schema') {
25
29
  if (error.field) {
26
30
  if (error.message.includes('Required'))
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":"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"}
@@ -3341,7 +3341,7 @@ export declare const schemas: {
3341
3341
  readonly user: import("zod").ZodObject<{
3342
3342
  id: import("zod").ZodString;
3343
3343
  name: import("zod").ZodString;
3344
- avatarUrl: import("zod").ZodString;
3344
+ avatarUrl: import("zod").ZodOptional<import("zod").ZodString>;
3345
3345
  role: import("zod").ZodOptional<import("zod").ZodString>;
3346
3346
  hidden: import("zod").ZodOptional<import("zod").ZodBoolean>;
3347
3347
  email: import("zod").ZodOptional<import("zod").ZodString>;
@@ -3356,8 +3356,8 @@ export declare const schemas: {
3356
3356
  }, "strip", import("zod").ZodTypeAny, {
3357
3357
  id: string;
3358
3358
  name: string;
3359
- avatarUrl: string;
3360
3359
  hidden?: boolean | undefined;
3360
+ avatarUrl?: string | undefined;
3361
3361
  role?: string | undefined;
3362
3362
  email?: string | undefined;
3363
3363
  slackDirectMessageUrl?: string | undefined;
@@ -3371,8 +3371,8 @@ export declare const schemas: {
3371
3371
  }, {
3372
3372
  id: string;
3373
3373
  name: string;
3374
- avatarUrl: string;
3375
3374
  hidden?: boolean | undefined;
3375
+ avatarUrl?: string | undefined;
3376
3376
  role?: string | undefined;
3377
3377
  email?: string | undefined;
3378
3378
  slackDirectMessageUrl?: string | undefined;
@@ -6,7 +6,7 @@ exports.teamSchema = zod_1.z.object({
6
6
  id: zod_1.z.string(),
7
7
  name: zod_1.z.string(),
8
8
  summary: zod_1.z.string().optional(),
9
- email: zod_1.z.string().optional(),
9
+ email: zod_1.z.string().email().optional(),
10
10
  hidden: zod_1.z.boolean().optional(),
11
11
  slackDirectMessageUrl: zod_1.z.string().optional(),
12
12
  msTeamsDirectMessageUrl: zod_1.z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/schemas/team.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,qBAAqB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,uBAAuB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,qBAAqB;IAC3D,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,wBAAwB;IACpE,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,uBAAuB;IAClE,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,uBAAuB;IAClE,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,wBAAwB;IACpE,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,sBAAsB;CACjE,CAAC,CAAC"}
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/schemas/team.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,qBAAqB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,uBAAuB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,qBAAqB;IAC3D,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,wBAAwB;IACpE,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,uBAAuB;IAClE,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,uBAAuB;IAClE,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,wBAAwB;IACpE,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,sBAAsB;CACjE,CAAC,CAAC"}
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  export declare const userSchema: z.ZodObject<{
3
3
  id: z.ZodString;
4
4
  name: z.ZodString;
5
- avatarUrl: z.ZodString;
5
+ avatarUrl: z.ZodOptional<z.ZodString>;
6
6
  role: z.ZodOptional<z.ZodString>;
7
7
  hidden: z.ZodOptional<z.ZodBoolean>;
8
8
  email: z.ZodOptional<z.ZodString>;
@@ -17,8 +17,8 @@ export declare const userSchema: z.ZodObject<{
17
17
  }, "strip", z.ZodTypeAny, {
18
18
  id: string;
19
19
  name: string;
20
- avatarUrl: string;
21
20
  hidden?: boolean | undefined;
21
+ avatarUrl?: string | undefined;
22
22
  role?: string | undefined;
23
23
  email?: string | undefined;
24
24
  slackDirectMessageUrl?: string | undefined;
@@ -32,8 +32,8 @@ export declare const userSchema: z.ZodObject<{
32
32
  }, {
33
33
  id: string;
34
34
  name: string;
35
- avatarUrl: string;
36
35
  hidden?: boolean | undefined;
36
+ avatarUrl?: string | undefined;
37
37
  role?: string | undefined;
38
38
  email?: string | undefined;
39
39
  slackDirectMessageUrl?: string | undefined;
@@ -5,10 +5,10 @@ const zod_1 = require("zod");
5
5
  exports.userSchema = zod_1.z.object({
6
6
  id: zod_1.z.string(),
7
7
  name: zod_1.z.string(),
8
- avatarUrl: zod_1.z.string(),
8
+ avatarUrl: zod_1.z.string().optional(),
9
9
  role: zod_1.z.string().optional(),
10
10
  hidden: zod_1.z.boolean().optional(),
11
- email: zod_1.z.string().optional(),
11
+ email: zod_1.z.string().email().optional(),
12
12
  slackDirectMessageUrl: zod_1.z.string().optional(),
13
13
  msTeamsDirectMessageUrl: zod_1.z.string().optional(),
14
14
  ownedDomains: zod_1.z.array(zod_1.z.any()).optional(), // reference('domains')
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/schemas/user.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,qBAAqB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,uBAAuB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,uBAAuB;IAClE,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,wBAAwB;IACpE,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,sBAAsB;IAChE,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,wBAAwB;IACpE,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,uBAAuB;IAClE,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,qBAAqB;CACpE,CAAC,CAAC"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/schemas/user.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,qBAAqB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,uBAAuB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,uBAAuB;IAClE,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,wBAAwB;IACpE,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,sBAAsB;IAChE,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,wBAAwB;IACpE,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,uBAAuB;IAClE,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,qBAAqB;CACpE,CAAC,CAAC"}
@@ -72,6 +72,7 @@ export interface ValidationError {
72
72
  file: string;
73
73
  line?: number;
74
74
  severity?: 'error' | 'warning';
75
+ rule?: string;
75
76
  }
76
77
  export interface LinterOptions {
77
78
  rootDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,4 @@
1
+ import { ParsedFile } from '../parser';
2
+ import { ValidationError } from '../types';
3
+ export declare const validateBestPractices: (parsedFiles: ParsedFile[]) => ValidationError[];
4
+ //# sourceMappingURL=best-practices-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"best-practices-validator.d.ts","sourceRoot":"","sources":["../../src/validators/best-practices-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,qBAAqB,GAAI,aAAa,UAAU,EAAE,KAAG,eAAe,EAkChF,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateBestPractices = void 0;
4
+ const validateBestPractices = (parsedFiles) => {
5
+ const errors = [];
6
+ for (const parsedFile of parsedFiles) {
7
+ const { file, frontmatter } = parsedFile;
8
+ // Check for required summary
9
+ if (!frontmatter.summary || (typeof frontmatter.summary === 'string' && frontmatter.summary.trim() === '')) {
10
+ errors.push({
11
+ type: 'schema',
12
+ resource: `${file.resourceType}/${file.resourceId}`,
13
+ field: 'summary',
14
+ message: 'Summary is required for better documentation',
15
+ file: file.relativePath,
16
+ severity: 'error',
17
+ rule: 'best-practices/summary-required',
18
+ });
19
+ }
20
+ // Check for required owners
21
+ if (!frontmatter.owners || !Array.isArray(frontmatter.owners) || frontmatter.owners.length === 0) {
22
+ errors.push({
23
+ type: 'schema',
24
+ resource: `${file.resourceType}/${file.resourceId}`,
25
+ field: 'owners',
26
+ message: 'At least one owner is required',
27
+ file: file.relativePath,
28
+ severity: 'error',
29
+ rule: 'best-practices/owner-required',
30
+ });
31
+ }
32
+ }
33
+ return errors;
34
+ };
35
+ exports.validateBestPractices = validateBestPractices;
36
+ //# sourceMappingURL=best-practices-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"best-practices-validator.js","sourceRoot":"","sources":["../../src/validators/best-practices-validator.ts"],"names":[],"mappings":";;;AAGO,MAAM,qBAAqB,GAAG,CAAC,WAAyB,EAAqB,EAAE;IACpF,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;QAEzC,6BAA6B;QAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC3G,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnD,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,8CAA8C;gBACvD,IAAI,EAAE,IAAI,CAAC,YAAY;gBACvB,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,iCAAiC;aACxC,CAAC,CAAC;QACL,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjG,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnD,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,gCAAgC;gBACzC,IAAI,EAAE,IAAI,CAAC,YAAY;gBACvB,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,+BAA+B;aACtC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAlCW,QAAA,qBAAqB,yBAkChC"}
@@ -1,5 +1,6 @@
1
1
  export * from './schema-validator';
2
2
  export * from './reference-validator';
3
+ export * from './best-practices-validator';
3
4
  import { ParsedFile } from '../parser';
4
5
  import { ValidationError } from '../types';
5
6
  export declare const validateCatalog: (parsedFiles: ParsedFile[]) => ValidationError[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAI3C,eAAO,MAAM,eAAe,GAAI,aAAa,UAAU,EAAE,KAAG,eAAe,EAK1E,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK3C,eAAO,MAAM,eAAe,GAAI,aAAa,UAAU,EAAE,KAAG,eAAe,EAM1E,CAAC"}
@@ -17,12 +17,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.validateCatalog = void 0;
18
18
  __exportStar(require("./schema-validator"), exports);
19
19
  __exportStar(require("./reference-validator"), exports);
20
+ __exportStar(require("./best-practices-validator"), exports);
20
21
  const schema_validator_1 = require("./schema-validator");
21
22
  const reference_validator_1 = require("./reference-validator");
23
+ const best_practices_validator_1 = require("./best-practices-validator");
22
24
  const validateCatalog = (parsedFiles) => {
23
25
  const schemaErrors = (0, schema_validator_1.validateAllSchemas)(parsedFiles);
24
26
  const referenceErrors = (0, reference_validator_1.validateReferences)(parsedFiles);
25
- return [...schemaErrors, ...referenceErrors];
27
+ const bestPracticeErrors = (0, best_practices_validator_1.validateBestPractices)(parsedFiles);
28
+ return [...schemaErrors, ...referenceErrors, ...bestPracticeErrors];
26
29
  };
27
30
  exports.validateCatalog = validateCatalog;
28
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,wDAAsC;AAItC,yDAAwD;AACxD,+DAA2D;AAEpD,MAAM,eAAe,GAAG,CAAC,WAAyB,EAAqB,EAAE;IAC9E,MAAM,YAAY,GAAG,IAAA,qCAAkB,EAAC,WAAW,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,IAAA,wCAAkB,EAAC,WAAW,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,eAAe,CAAC,CAAC;AAC/C,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,wDAAsC;AACtC,6DAA2C;AAI3C,yDAAwD;AACxD,+DAA2D;AAC3D,yEAAmE;AAE5D,MAAM,eAAe,GAAG,CAAC,WAAyB,EAAqB,EAAE;IAC9E,MAAM,YAAY,GAAG,IAAA,qCAAkB,EAAC,WAAW,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,IAAA,wCAAkB,EAAC,WAAW,CAAC,CAAC;IACxD,MAAM,kBAAkB,GAAG,IAAA,gDAAqB,EAAC,WAAW,CAAC,CAAC;IAE9D,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,eAAe,EAAE,GAAG,kBAAkB,CAAC,CAAC;AACtE,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"reference-validator.d.ts","sourceRoot":"","sources":["../../src/validators/reference-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAqB,MAAM,UAAU,CAAC;AAI9D,UAAU,aAAa;IACrB,CAAC,YAAY,EAAE,MAAM,GAAG;QACtB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;KACnC,CAAC;CACH;AAED,eAAO,MAAM,kBAAkB,GAAI,aAAa,UAAU,EAAE,KAAG,aA8B9D,CAAC;AA0IF,eAAO,MAAM,kBAAkB,GAAI,aAAa,UAAU,EAAE,KAAG,eAAe,EAyB7E,CAAC"}
1
+ {"version":3,"file":"reference-validator.d.ts","sourceRoot":"","sources":["../../src/validators/reference-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAqB,MAAM,UAAU,CAAC;AAI9D,UAAU,aAAa;IACrB,CAAC,YAAY,EAAE,MAAM,GAAG;QACtB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;KACnC,CAAC;CACH;AAED,eAAO,MAAM,kBAAkB,GAAI,aAAa,UAAU,EAAE,KAAG,aAmC9D,CAAC;AA+IF,eAAO,MAAM,kBAAkB,GAAI,aAAa,UAAU,EAAE,KAAG,eAAe,EAkC7E,CAAC"}
@@ -10,10 +10,13 @@ const buildResourceIndex = (parsedFiles) => {
10
10
  for (const parsedFile of parsedFiles) {
11
11
  const { file, frontmatter } = parsedFile;
12
12
  const { resourceType } = file;
13
- // For users and teams, use the frontmatter id field instead of filename
13
+ // For users, teams, and domains, use the frontmatter id field instead of filename/directory
14
14
  // This handles cases where filename is "aSmith.mdx" but frontmatter has id: "asmith"
15
+ // And where directory is "e-commerce" but frontmatter has id: "E-Commerce"
15
16
  let resourceId = file.resourceId;
16
- if ((resourceType === 'user' || resourceType === 'team') && frontmatter.id && typeof frontmatter.id === 'string') {
17
+ if ((resourceType === 'user' || resourceType === 'team' || resourceType === 'domain') &&
18
+ frontmatter.id &&
19
+ typeof frontmatter.id === 'string') {
17
20
  resourceId = frontmatter.id;
18
21
  }
19
22
  if (!index[resourceType]) {
@@ -85,6 +88,11 @@ const extractReferences = (parsedFile) => {
85
88
  references.push({ ref, possibleTypes: ['service'], field: 'services' });
86
89
  });
87
90
  }
91
+ if (frontmatter.domains && Array.isArray(frontmatter.domains)) {
92
+ frontmatter.domains.forEach((ref) => {
93
+ references.push({ ref, possibleTypes: ['domain'], field: 'domains' });
94
+ });
95
+ }
88
96
  if (frontmatter.entities && Array.isArray(frontmatter.entities)) {
89
97
  frontmatter.entities.forEach((ref) => {
90
98
  references.push({ ref, possibleTypes: ['entity'], field: 'entities' });
@@ -155,12 +163,20 @@ const validateReferences = (parsedFiles) => {
155
163
  if (!found) {
156
164
  const versionStr = ref.version ? ` (version: ${ref.version})` : '';
157
165
  const typeStr = possibleTypes.length === 1 ? possibleTypes[0] : possibleTypes.join('/');
166
+ let rule = 'refs/resource-exists';
167
+ if (field === 'owners') {
168
+ rule = 'refs/owner-exists';
169
+ }
170
+ else if (ref.version) {
171
+ rule = 'refs/valid-version-range';
172
+ }
158
173
  errors.push({
159
174
  type: 'reference',
160
175
  resource: `${parsedFile.file.resourceType}/${parsedFile.file.resourceId}`,
161
176
  field,
162
177
  message: `Referenced ${typeStr} "${ref.id}"${versionStr} does not exist`,
163
178
  file: parsedFile.file.relativePath,
179
+ rule,
164
180
  });
165
181
  }
166
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reference-validator.js","sourceRoot":"","sources":["../../src/validators/reference-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference-validator.js","sourceRoot":"","sources":["../../src/validators/reference-validator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../src/validators/schema-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,cAAc,GAAI,YAAY,UAAU,KAAG,eAAe,EAoCtE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,aAAa,UAAU,EAAE,KAAG,eAAe,EAQ7E,CAAC"}
1
+ {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../src/validators/schema-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,cAAc,GAAI,YAAY,UAAU,KAAG,eAAe,EA+CtE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,aAAa,UAAU,EAAE,KAAG,eAAe,EAQ7E,CAAC"}
@@ -18,12 +18,23 @@ const validateSchema = (parsedFile) => {
18
18
  if (issue.code === 'invalid_type') {
19
19
  message = `Expected ${issue.expected}, but received ${issue.received}`;
20
20
  }
21
+ let rule = 'schema/required-fields';
22
+ if (issue.code === 'invalid_type') {
23
+ rule = 'schema/valid-type';
24
+ }
25
+ else if (issue.code === 'invalid_string' && issue.validation === 'email') {
26
+ rule = 'schema/valid-email';
27
+ }
28
+ else if (field && field.includes('version')) {
29
+ rule = 'schema/valid-semver';
30
+ }
21
31
  errors.push({
22
32
  type: 'schema',
23
33
  resource: `${file.resourceType}/${file.resourceId}`,
24
34
  field: field || undefined,
25
35
  message: field ? `${field}: ${message}` : message,
26
36
  file: file.relativePath,
37
+ rule,
27
38
  });
28
39
  }
29
40
  }
@@ -33,6 +44,7 @@ const validateSchema = (parsedFile) => {
33
44
  resource: `${file.resourceType}/${file.resourceId}`,
34
45
  message: error instanceof Error ? error.message : String(error),
35
46
  file: file.relativePath,
47
+ rule: 'schema/validation-error',
36
48
  });
37
49
  }
38
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../src/validators/schema-validator.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,wCAAqC;AAI9B,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAqB,EAAE;IAC1E,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;IACzC,MAAM,MAAM,GAAG,iBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAE5B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClC,OAAO,GAAG,YAAY,KAAK,CAAC,QAAQ,kBAAkB,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACzE,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnD,KAAK,EAAE,KAAK,IAAI,SAAS;oBACzB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO;oBACjD,IAAI,EAAE,IAAI,CAAC,YAAY;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnD,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,IAAI,EAAE,IAAI,CAAC,YAAY;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AApCW,QAAA,cAAc,kBAoCzB;AAEK,MAAM,kBAAkB,GAAG,CAAC,WAAyB,EAAqB,EAAE;IACjF,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,sBAAc,EAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B"}
1
+ {"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../src/validators/schema-validator.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,wCAAqC;AAI9B,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAqB,EAAE;IAC1E,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;IACzC,MAAM,MAAM,GAAG,iBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAE5B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClC,OAAO,GAAG,YAAY,KAAK,CAAC,QAAQ,kBAAkB,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACzE,CAAC;gBAED,IAAI,IAAI,GAAG,wBAAwB,CAAC;gBACpC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBAClC,IAAI,GAAG,mBAAmB,CAAC;gBAC7B,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;oBAC3E,IAAI,GAAG,oBAAoB,CAAC;gBAC9B,CAAC;qBAAM,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9C,IAAI,GAAG,qBAAqB,CAAC;gBAC/B,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnD,KAAK,EAAE,KAAK,IAAI,SAAS;oBACzB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO;oBACjD,IAAI,EAAE,IAAI,CAAC,YAAY;oBACvB,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnD,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,IAAI,EAAE,IAAI,CAAC,YAAY;gBACvB,IAAI,EAAE,yBAAyB;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA/CW,QAAA,cAAc,kBA+CzB;AAEK,MAAM,kBAAkB,GAAG,CAAC,WAAyB,EAAqB,EAAE;IACjF,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,sBAAc,EAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AARW,QAAA,kBAAkB,sBAQ7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eventcatalog/linter",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "A linter for EventCatalog to validate frontmatter and resource references",
5
5
  "main": "dist/index.js",
6
6
  "bin": {