@eventcatalog/linter 0.1.1 → 1.0.1

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 (90) hide show
  1. package/README.md +50 -18
  2. package/package.json +14 -17
  3. package/dist/cli/index.d.ts +0 -3
  4. package/dist/cli/index.d.ts.map +0 -1
  5. package/dist/cli/index.js +0 -73
  6. package/dist/cli/index.js.map +0 -1
  7. package/dist/config/index.d.ts +0 -29
  8. package/dist/config/index.d.ts.map +0 -1
  9. package/dist/config/index.js +0 -196
  10. package/dist/config/index.js.map +0 -1
  11. package/dist/index.d.ts +0 -8
  12. package/dist/index.d.ts.map +0 -1
  13. package/dist/index.js +0 -24
  14. package/dist/index.js.map +0 -1
  15. package/dist/parser/index.d.ts +0 -17
  16. package/dist/parser/index.d.ts.map +0 -1
  17. package/dist/parser/index.js +0 -43
  18. package/dist/parser/index.js.map +0 -1
  19. package/dist/reporters/index.d.ts +0 -16
  20. package/dist/reporters/index.d.ts.map +0 -1
  21. package/dist/reporters/index.js +0 -155
  22. package/dist/reporters/index.js.map +0 -1
  23. package/dist/scanner/index.d.ts +0 -14
  24. package/dist/scanner/index.d.ts.map +0 -1
  25. package/dist/scanner/index.js +0 -102
  26. package/dist/scanner/index.js.map +0 -1
  27. package/dist/schemas/channel.d.ts +0 -389
  28. package/dist/schemas/channel.d.ts.map +0 -1
  29. package/dist/schemas/channel.js +0 -20
  30. package/dist/schemas/channel.js.map +0 -1
  31. package/dist/schemas/common.d.ts +0 -550
  32. package/dist/schemas/common.d.ts.map +0 -1
  33. package/dist/schemas/common.js +0 -144
  34. package/dist/schemas/common.js.map +0 -1
  35. package/dist/schemas/data-store.d.ts +0 -348
  36. package/dist/schemas/data-store.d.ts.map +0 -1
  37. package/dist/schemas/data-store.js +0 -17
  38. package/dist/schemas/data-store.js.map +0 -1
  39. package/dist/schemas/domain.d.ts +0 -381
  40. package/dist/schemas/domain.d.ts.map +0 -1
  41. package/dist/schemas/domain.js +0 -13
  42. package/dist/schemas/domain.js.map +0 -1
  43. package/dist/schemas/entity.d.ts +0 -382
  44. package/dist/schemas/entity.d.ts.map +0 -1
  45. package/dist/schemas/entity.js +0 -24
  46. package/dist/schemas/entity.js.map +0 -1
  47. package/dist/schemas/flow.d.ts +0 -733
  48. package/dist/schemas/flow.d.ts.map +0 -1
  49. package/dist/schemas/flow.js +0 -70
  50. package/dist/schemas/flow.js.map +0 -1
  51. package/dist/schemas/index.d.ts +0 -3815
  52. package/dist/schemas/index.d.ts.map +0 -1
  53. package/dist/schemas/index.js +0 -50
  54. package/dist/schemas/index.js.map +0 -1
  55. package/dist/schemas/message.d.ts +0 -1076
  56. package/dist/schemas/message.d.ts.map +0 -1
  57. package/dist/schemas/message.js +0 -17
  58. package/dist/schemas/message.js.map +0 -1
  59. package/dist/schemas/service.d.ts +0 -417
  60. package/dist/schemas/service.d.ts.map +0 -1
  61. package/dist/schemas/service.js +0 -15
  62. package/dist/schemas/service.js.map +0 -1
  63. package/dist/schemas/team.d.ts +0 -45
  64. package/dist/schemas/team.d.ts.map +0 -1
  65. package/dist/schemas/team.js +0 -20
  66. package/dist/schemas/team.js.map +0 -1
  67. package/dist/schemas/user.d.ts +0 -48
  68. package/dist/schemas/user.d.ts.map +0 -1
  69. package/dist/schemas/user.js +0 -21
  70. package/dist/schemas/user.js.map +0 -1
  71. package/dist/types/index.d.ts +0 -82
  72. package/dist/types/index.d.ts.map +0 -1
  73. package/dist/types/index.js +0 -3
  74. package/dist/types/index.js.map +0 -1
  75. package/dist/validators/best-practices-validator.d.ts +0 -4
  76. package/dist/validators/best-practices-validator.d.ts.map +0 -1
  77. package/dist/validators/best-practices-validator.js +0 -38
  78. package/dist/validators/best-practices-validator.js.map +0 -1
  79. package/dist/validators/index.d.ts +0 -8
  80. package/dist/validators/index.d.ts.map +0 -1
  81. package/dist/validators/index.js +0 -31
  82. package/dist/validators/index.js.map +0 -1
  83. package/dist/validators/reference-validator.d.ts +0 -12
  84. package/dist/validators/reference-validator.d.ts.map +0 -1
  85. package/dist/validators/reference-validator.js +0 -201
  86. package/dist/validators/reference-validator.js.map +0 -1
  87. package/dist/validators/schema-validator.d.ts +0 -5
  88. package/dist/validators/schema-validator.d.ts.map +0 -1
  89. package/dist/validators/schema-validator.js +0 -62
  90. package/dist/validators/schema-validator.js.map +0 -1
@@ -1,155 +0,0 @@
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.reportErrors = exports.groupErrorsByFile = exports.formatParseError = exports.formatError = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const formatError = (error, showFilename = true) => {
9
- const lineInfo = error.line ? chalk_1.default.dim(`:${error.line}:1`) : '';
10
- const filename = showFilename ? `${chalk_1.default.dim(error.file)}${lineInfo}` : '';
11
- const isWarning = error.severity === 'warning';
12
- const severity = isWarning ? chalk_1.default.yellow('warning') : chalk_1.default.red('error');
13
- const icon = isWarning ? chalk_1.default.yellow('⚠') : chalk_1.default.red('✖');
14
- const errorCode = getErrorCode(error);
15
- const field = error.field ? chalk_1.default.dim(`[${error.field}]`) : '';
16
- const parts = [];
17
- if (filename)
18
- parts.push(filename);
19
- parts.push(icon, severity, error.message, field, chalk_1.default.dim(errorCode));
20
- return parts.filter(Boolean).join(' ');
21
- };
22
- exports.formatError = formatError;
23
- const getErrorCode = (error) => {
24
- if (error.rule) {
25
- return `(${error.rule})`;
26
- }
27
- // Fallback to generic error codes
28
- if (error.type === 'schema') {
29
- if (error.field) {
30
- if (error.message.includes('Required'))
31
- return '(@eventcatalog/required-field)';
32
- if (error.message.includes('Expected'))
33
- return '(@eventcatalog/invalid-type)';
34
- return '(@eventcatalog/schema-validation)';
35
- }
36
- return '(@eventcatalog/schema)';
37
- }
38
- if (error.type === 'reference') {
39
- return '(@eventcatalog/invalid-reference)';
40
- }
41
- return '(@eventcatalog/unknown)';
42
- };
43
- const formatParseError = (error, showFilename = true) => {
44
- const filename = showFilename ? chalk_1.default.dim(error.file.relativePath) : '';
45
- const severity = chalk_1.default.red('error');
46
- const message = `Parse error: ${error.error.message}`;
47
- const errorCode = chalk_1.default.dim('(@eventcatalog/parse-error)');
48
- const parts = [];
49
- if (filename)
50
- parts.push(filename);
51
- parts.push(chalk_1.default.red('✖'), severity, message, errorCode);
52
- return parts.filter(Boolean).join(' ');
53
- };
54
- exports.formatParseError = formatParseError;
55
- const groupErrorsByFile = (errors) => {
56
- const grouped = new Map();
57
- for (const error of errors) {
58
- if (!grouped.has(error.file)) {
59
- grouped.set(error.file, []);
60
- }
61
- grouped.get(error.file).push(error);
62
- }
63
- return grouped;
64
- };
65
- exports.groupErrorsByFile = groupErrorsByFile;
66
- const reportErrors = (validationErrors, parseErrors, verbose = false) => {
67
- const allErrors = [
68
- ...validationErrors,
69
- ...parseErrors.map((pe) => ({
70
- type: 'parse',
71
- resource: pe.file.resourceType || 'unknown',
72
- message: pe.error.message,
73
- file: pe.file.relativePath,
74
- line: undefined,
75
- })),
76
- ];
77
- const schemaErrors = validationErrors.filter((e) => e.type === 'schema');
78
- const referenceErrors = validationErrors.filter((e) => e.type === 'reference');
79
- const warnings = validationErrors.filter((e) => e.severity === 'warning');
80
- const errors = [...validationErrors.filter((e) => e.severity !== 'warning'), ...parseErrors];
81
- const totalErrors = errors.length;
82
- const totalWarnings = warnings.length;
83
- if (totalErrors === 0 && totalWarnings === 0) {
84
- console.log(chalk_1.default.green('✔ No problems found!'));
85
- return {
86
- totalErrors: 0,
87
- totalWarnings: 0,
88
- schemaErrors: 0,
89
- referenceErrors: 0,
90
- parseErrors: 0,
91
- filesChecked: 0,
92
- filesWithErrors: 0,
93
- };
94
- }
95
- const grouped = (0, exports.groupErrorsByFile)(validationErrors);
96
- const parseErrorsGrouped = groupParseErrorsByFile(parseErrors);
97
- const allFiles = new Set([...grouped.keys(), ...parseErrorsGrouped.keys()]);
98
- console.log(); // Empty line
99
- // Report by file for better readability
100
- for (const file of Array.from(allFiles).sort()) {
101
- const fileErrors = grouped.get(file) || [];
102
- const fileParseErrors = parseErrorsGrouped.get(file) || [];
103
- const fileErrorCount = fileErrors.length + fileParseErrors.length;
104
- if (fileErrorCount === 0)
105
- continue;
106
- // File header (ESLint-style)
107
- console.log(chalk_1.default.underline(file));
108
- // Parse errors first
109
- for (const error of fileParseErrors) {
110
- console.log(` ${(0, exports.formatParseError)(error, false)}`);
111
- }
112
- // Then validation errors
113
- for (const error of fileErrors) {
114
- console.log(` ${(0, exports.formatError)(error, false)}`);
115
- }
116
- // File summary
117
- const fileWarnings = fileErrors.filter((e) => e.severity === 'warning').length;
118
- const fileActualErrors = fileErrorCount - fileWarnings;
119
- const problemText = fileErrorCount === 1 ? 'problem' : 'problems';
120
- const summaryColor = fileActualErrors > 0 ? chalk_1.default.red : chalk_1.default.yellow;
121
- const summaryIcon = fileActualErrors > 0 ? '✖' : '⚠';
122
- console.log(summaryColor(`\n${summaryIcon} ${fileErrorCount} ${problemText}\n`));
123
- }
124
- // Overall summary (ESLint-style)
125
- const filesWithErrors = allFiles.size;
126
- const totalProblems = totalErrors + totalWarnings;
127
- const problemText = totalProblems === 1 ? 'problem' : 'problems';
128
- const fileText = filesWithErrors === 1 ? 'file' : 'files';
129
- const summaryColor = totalErrors > 0 ? chalk_1.default.red.bold : chalk_1.default.yellow.bold;
130
- const summaryIcon = totalErrors > 0 ? '✖' : '⚠';
131
- console.log(summaryColor(`${summaryIcon} ${totalProblems} ${problemText} (${totalErrors} errors, ${totalWarnings} warnings)`));
132
- console.log(chalk_1.default.dim(` ${filesWithErrors} ${fileText} checked`));
133
- return {
134
- totalErrors,
135
- totalWarnings,
136
- schemaErrors: schemaErrors.length,
137
- referenceErrors: referenceErrors.length,
138
- parseErrors: parseErrors.length,
139
- filesChecked: allFiles.size,
140
- filesWithErrors,
141
- };
142
- };
143
- exports.reportErrors = reportErrors;
144
- const groupParseErrorsByFile = (errors) => {
145
- const grouped = new Map();
146
- for (const error of errors) {
147
- const file = error.file.relativePath;
148
- if (!grouped.has(file)) {
149
- grouped.set(file, []);
150
- }
151
- grouped.get(file).push(error);
152
- }
153
- return grouped;
154
- };
155
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAcnB,MAAM,WAAW,GAAG,CAAC,KAAsB,EAAE,eAAwB,IAAI,EAAU,EAAE;IAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3E,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAEvE,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB;AAEF,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAU,EAAE;IACtD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;IAC3B,CAAC;IAED,kCAAkC;IAClC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO,gCAAgC,CAAC;YAChF,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO,8BAA8B,CAAC;YAC9E,OAAO,mCAAmC,CAAC;QAC7C,CAAC;QACD,OAAO,wBAAwB,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IACD,OAAO,yBAAyB,CAAC;AACnC,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAiB,EAAE,eAAwB,IAAI,EAAU,EAAE;IAC1F,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,QAAQ,GAAG,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,gBAAgB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACtD,MAAM,SAAS,GAAG,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAEzD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B;AAEK,MAAM,iBAAiB,GAAG,CAAC,MAAyB,EAAkC,EAAE;IAC7F,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAErD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAXW,QAAA,iBAAiB,qBAW5B;AAEK,MAAM,YAAY,GAAG,CAC1B,gBAAmC,EACnC,WAAyB,EACzB,UAAmB,KAAK,EACT,EAAE;IACjB,MAAM,SAAS,GAAG;QAChB,GAAG,gBAAgB;QACnB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,OAAgB;YACtB,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS;YAC3C,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO;YACzB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY;YAC1B,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;KACJ,CAAC;IAEF,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;IAC7F,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IAEtC,IAAI,WAAW,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACjD,OAAO;YACL,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,CAAC;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,gBAAgB,CAAC,CAAC;IACpD,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAE5E,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa;IAE5B,wCAAwC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QAElE,IAAI,cAAc,KAAK,CAAC;YAAE,SAAS;QAEnC,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnC,qBAAqB;QACrB,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,wBAAgB,EAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,yBAAyB;QACzB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,mBAAW,EAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,eAAe;QACf,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAC/E,MAAM,gBAAgB,GAAG,cAAc,GAAG,YAAY,CAAC;QACvD,MAAM,WAAW,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAClE,MAAM,YAAY,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC;QACrE,MAAM,WAAW,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,WAAW,IAAI,cAAc,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,iCAAiC;IACjC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC;IACtC,MAAM,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC;IAClD,MAAM,WAAW,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IACjE,MAAM,QAAQ,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAE1D,MAAM,YAAY,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1E,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,WAAW,IAAI,aAAa,IAAI,WAAW,KAAK,WAAW,YAAY,aAAa,YAAY,CAAC,CAAC,CAAC;IAC/H,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,eAAe,IAAI,QAAQ,UAAU,CAAC,CAAC,CAAC;IAEnE,OAAO;QACL,WAAW;QACX,aAAa;QACb,YAAY,EAAE,YAAY,CAAC,MAAM;QACjC,eAAe,EAAE,eAAe,CAAC,MAAM;QACvC,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,YAAY,EAAE,QAAQ,CAAC,IAAI;QAC3B,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC;AA7FW,QAAA,YAAY,gBA6FvB;AAEF,MAAM,sBAAsB,GAAG,CAAC,MAAoB,EAA6B,EAAE;IACjF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEhD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -1,14 +0,0 @@
1
- import { ResourceType } from '../schemas';
2
- export interface CatalogFile {
3
- path: string;
4
- relativePath: string;
5
- resourceType: ResourceType;
6
- resourceId: string;
7
- version?: string;
8
- }
9
- export declare const extractResourceInfo: (filePath: string, resourceType: ResourceType) => {
10
- id: string;
11
- version?: string;
12
- };
13
- export declare const scanCatalogFiles: (rootDir: string) => Promise<CatalogFile[]>;
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA4BD,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,EAAE,cAAc,YAAY,KAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAmDhH,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,WAAW,EAAE,CA0B7E,CAAC"}
@@ -1,102 +0,0 @@
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.scanCatalogFiles = exports.extractResourceInfo = void 0;
7
- const fast_glob_1 = __importDefault(require("fast-glob"));
8
- const path_1 = __importDefault(require("path"));
9
- const RESOURCE_PATTERNS = {
10
- domain: [
11
- 'domains/*/index.{md,mdx}',
12
- 'domains/*/versioned/*/index.{md,mdx}',
13
- 'domains/*/subdomains/*/index.{md,mdx}',
14
- 'domains/*/subdomains/*/versioned/*/index.{md,mdx}',
15
- ],
16
- service: [
17
- 'domains/*/services/*/index.{md,mdx}',
18
- 'domains/*/services/*/versioned/*/index.{md,mdx}',
19
- 'domains/*/subdomains/*/services/*/index.{md,mdx}',
20
- 'domains/*/subdomains/*/services/*/versioned/*/index.{md,mdx}',
21
- 'services/*/index.{md,mdx}',
22
- 'services/*/versioned/*/index.{md,mdx}',
23
- ],
24
- event: ['**/events/*/index.{md,mdx}', '**/events/*/versioned/*/index.{md,mdx}'],
25
- command: ['**/commands/*/index.{md,mdx}', '**/commands/*/versioned/*/index.{md,mdx}'],
26
- query: ['**/queries/*/index.{md,mdx}', '**/queries/*/versioned/*/index.{md,mdx}'],
27
- channel: ['**/channels/*/index.{md,mdx}', '**/channels/*/versioned/*/index.{md,mdx}'],
28
- flow: ['**/flows/*/index.{md,mdx}', '**/flows/*/versioned/*/index.{md,mdx}'],
29
- entity: ['**/entities/*/index.{md,mdx}', '**/entities/*/versioned/*/index.{md,mdx}'],
30
- user: ['users/*.{md,mdx}'],
31
- team: ['teams/*.{md,mdx}'],
32
- dataStore: ['**/containers/*/index.{md,mdx}', '**/containers/*/versioned/*/index.{md,mdx}'],
33
- };
34
- const extractResourceInfo = (filePath, resourceType) => {
35
- // Normalize path separators to forward slashes for consistent parsing across platforms
36
- const normalizedPath = filePath.replace(/\\/g, '/');
37
- const relativePath = normalizedPath.split('/');
38
- if (resourceType === 'user' || resourceType === 'team') {
39
- const filename = path_1.default.basename(filePath, path_1.default.extname(filePath));
40
- return { id: filename };
41
- }
42
- // Find the resource type directory in the path
43
- const resourceTypePattern = `${resourceType}s`;
44
- const resourceTypeIndex = relativePath.findIndex((part) => part === resourceTypePattern);
45
- if (resourceTypeIndex === -1) {
46
- // Fallback to original logic if pattern not found
47
- const parts = relativePath.slice(1, -1);
48
- return { id: parts[parts.length - 1] };
49
- }
50
- // Extract parts after the resource type directory, excluding index.mdx
51
- const parts = relativePath.slice(resourceTypeIndex + 1, -1);
52
- if (parts.length === 0) {
53
- return { id: 'unknown' };
54
- }
55
- // Check for versioned structure: resourceId/versioned/version/index.mdx
56
- if (parts.length >= 3 && parts[parts.length - 2] === 'versioned') {
57
- const version = parts[parts.length - 1];
58
- const resourceId = parts.slice(0, -2).join('/');
59
- return { id: resourceId, version };
60
- }
61
- // Check for domain versioned structure: domains/domainId/versioned/version/index.mdx
62
- if (resourceType === 'domain' && parts.length >= 2) {
63
- const versionedIndex = parts.findIndex((part) => part === 'versioned');
64
- if (versionedIndex !== -1 && versionedIndex < parts.length - 1) {
65
- const version = parts[versionedIndex + 1];
66
- const resourceId = parts.slice(0, versionedIndex).join('/');
67
- return { id: resourceId, version };
68
- }
69
- }
70
- // Standard structure: resourceId/index.mdx
71
- if (parts.length === 1) {
72
- return { id: parts[0] };
73
- }
74
- // Handle subdomain structure or nested resources
75
- return { id: parts.join('/') };
76
- };
77
- exports.extractResourceInfo = extractResourceInfo;
78
- const scanCatalogFiles = async (rootDir) => {
79
- const files = [];
80
- for (const [resourceType, patterns] of Object.entries(RESOURCE_PATTERNS)) {
81
- const foundFiles = await (0, fast_glob_1.default)(patterns, {
82
- cwd: rootDir,
83
- absolute: true,
84
- onlyFiles: true,
85
- followSymbolicLinks: false,
86
- });
87
- for (const filePath of foundFiles) {
88
- const relativePath = path_1.default.relative(rootDir, filePath);
89
- const { id, version } = (0, exports.extractResourceInfo)(relativePath, resourceType);
90
- files.push({
91
- path: filePath,
92
- relativePath,
93
- resourceType: resourceType,
94
- resourceId: id,
95
- version,
96
- });
97
- }
98
- }
99
- return files;
100
- };
101
- exports.scanCatalogFiles = scanCatalogFiles;
102
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"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"}