@cxtms/cx-schema 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +384 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1523 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +111 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/schemaLoader.d.ts +17 -0
- package/dist/utils/schemaLoader.d.ts.map +1 -0
- package/dist/utils/schemaLoader.js +134 -0
- package/dist/utils/schemaLoader.js.map +1 -0
- package/dist/validator.d.ts +64 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +380 -0
- package/dist/validator.js.map +1 -0
- package/dist/workflowValidator.d.ts +64 -0
- package/dist/workflowValidator.d.ts.map +1 -0
- package/dist/workflowValidator.js +410 -0
- package/dist/workflowValidator.js.map +1 -0
- package/package.json +50 -0
- package/schemas/actions/all.json +26 -0
- package/schemas/actions/confirm.json +21 -0
- package/schemas/actions/consoleLog.json +16 -0
- package/schemas/actions/dialog.json +25 -0
- package/schemas/actions/fileDownload.json +16 -0
- package/schemas/actions/forEach.json +31 -0
- package/schemas/actions/if.json +12 -0
- package/schemas/actions/mutation.json +25 -0
- package/schemas/actions/navigate.json +18 -0
- package/schemas/actions/navigateBack.json +22 -0
- package/schemas/actions/navigateBackOrClose.json +21 -0
- package/schemas/actions/notification.json +19 -0
- package/schemas/actions/openBarcodeScanner.json +104 -0
- package/schemas/actions/query.json +32 -0
- package/schemas/actions/refresh.json +13 -0
- package/schemas/actions/resetDirtyState.json +22 -0
- package/schemas/actions/setFields.json +21 -0
- package/schemas/actions/setStore.json +13 -0
- package/schemas/actions/validateForm.json +15 -0
- package/schemas/actions/workflow.json +24 -0
- package/schemas/components/README.md +147 -0
- package/schemas/components/appComponent.json +50 -0
- package/schemas/components/barcodeScanner.json +69 -0
- package/schemas/components/button.json +123 -0
- package/schemas/components/calendar.json +489 -0
- package/schemas/components/card.json +176 -0
- package/schemas/components/collection.json +54 -0
- package/schemas/components/dataGrid.json +119 -0
- package/schemas/components/datasource.json +151 -0
- package/schemas/components/dropdown.json +57 -0
- package/schemas/components/field-collection.json +618 -0
- package/schemas/components/field.json +265 -0
- package/schemas/components/form.json +234 -0
- package/schemas/components/index.json +68 -0
- package/schemas/components/layout.json +69 -0
- package/schemas/components/module.json +138 -0
- package/schemas/components/navDropdown.json +36 -0
- package/schemas/components/navbar.json +78 -0
- package/schemas/components/navbarItem.json +28 -0
- package/schemas/components/navbarLink.json +36 -0
- package/schemas/components/row.json +31 -0
- package/schemas/components/tab.json +34 -0
- package/schemas/components/tabs.json +35 -0
- package/schemas/components/timeline.json +172 -0
- package/schemas/components/timelineGrid.json +324 -0
- package/schemas/fields/README.md +66 -0
- package/schemas/fields/attachment.json +156 -0
- package/schemas/fields/autocomplete-googleplaces.json +130 -0
- package/schemas/fields/checkbox.json +82 -0
- package/schemas/fields/date.json +88 -0
- package/schemas/fields/datetime.json +75 -0
- package/schemas/fields/email.json +75 -0
- package/schemas/fields/index.json +53 -0
- package/schemas/fields/number.json +91 -0
- package/schemas/fields/password.json +70 -0
- package/schemas/fields/radio.json +94 -0
- package/schemas/fields/rangedatetime.json +56 -0
- package/schemas/fields/select-async.json +334 -0
- package/schemas/fields/select.json +115 -0
- package/schemas/fields/tel.json +79 -0
- package/schemas/fields/text.json +86 -0
- package/schemas/fields/textarea.json +95 -0
- package/schemas/fields/time.json +91 -0
- package/schemas/fields/url.json +74 -0
- package/schemas/schema.graphql +10492 -0
- package/schemas/schemas.json +598 -0
- package/schemas/workflows/activity.json +111 -0
- package/schemas/workflows/common/condition.json +48 -0
- package/schemas/workflows/common/expression.json +76 -0
- package/schemas/workflows/common/mapping.json +134 -0
- package/schemas/workflows/input.json +76 -0
- package/schemas/workflows/output.json +41 -0
- package/schemas/workflows/schedule.json +26 -0
- package/schemas/workflows/tasks/accounting-transaction.json +95 -0
- package/schemas/workflows/tasks/all.json +34 -0
- package/schemas/workflows/tasks/attachment.json +94 -0
- package/schemas/workflows/tasks/charge.json +90 -0
- package/schemas/workflows/tasks/commodity.json +89 -0
- package/schemas/workflows/tasks/contact.json +82 -0
- package/schemas/workflows/tasks/csv.json +79 -0
- package/schemas/workflows/tasks/document-render.json +105 -0
- package/schemas/workflows/tasks/document-send.json +84 -0
- package/schemas/workflows/tasks/email-send.json +110 -0
- package/schemas/workflows/tasks/error.json +72 -0
- package/schemas/workflows/tasks/export.json +90 -0
- package/schemas/workflows/tasks/foreach.json +69 -0
- package/schemas/workflows/tasks/generic.json +47 -0
- package/schemas/workflows/tasks/graphql.json +78 -0
- package/schemas/workflows/tasks/httpRequest.json +119 -0
- package/schemas/workflows/tasks/job.json +88 -0
- package/schemas/workflows/tasks/log.json +73 -0
- package/schemas/workflows/tasks/map.json +58 -0
- package/schemas/workflows/tasks/order.json +87 -0
- package/schemas/workflows/tasks/payment.json +85 -0
- package/schemas/workflows/tasks/setVariable.json +76 -0
- package/schemas/workflows/tasks/switch.json +75 -0
- package/schemas/workflows/tasks/template.json +73 -0
- package/schemas/workflows/tasks/validation.json +90 -0
- package/schemas/workflows/tasks/while.json +53 -0
- package/schemas/workflows/tasks/workflow-execute.json +82 -0
- package/schemas/workflows/trigger.json +86 -0
- package/schemas/workflows/variable.json +46 -0
- package/schemas/workflows/workflow.json +172 -0
- package/scripts/postinstall.js +161 -0
- package/scripts/setup-vscode.js +80 -0
- package/templates/module.yaml +83 -0
- package/templates/workflow.yaml +100 -0
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Main module validator
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.ModuleValidator = void 0;
|
|
43
|
+
const ajv_1 = __importDefault(require("ajv"));
|
|
44
|
+
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
45
|
+
const fs = __importStar(require("fs"));
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
const yaml = __importStar(require("js-yaml"));
|
|
48
|
+
const schemaLoader_1 = require("./utils/schemaLoader");
|
|
49
|
+
class ModuleValidator {
|
|
50
|
+
constructor(options = {}) {
|
|
51
|
+
this.schemasDir = options.schemasPath || path.join(__dirname, '../schemas');
|
|
52
|
+
this.options = {
|
|
53
|
+
schemasPath: this.schemasDir,
|
|
54
|
+
strictMode: options.strictMode ?? true,
|
|
55
|
+
includeWarnings: options.includeWarnings ?? true
|
|
56
|
+
};
|
|
57
|
+
// Initialize Ajv with Draft 7 support
|
|
58
|
+
this.ajv = new ajv_1.default({
|
|
59
|
+
strict: false,
|
|
60
|
+
allErrors: true,
|
|
61
|
+
verbose: true,
|
|
62
|
+
validateFormats: true,
|
|
63
|
+
allowUnionTypes: true
|
|
64
|
+
});
|
|
65
|
+
// Add format validators
|
|
66
|
+
(0, ajv_formats_1.default)(this.ajv);
|
|
67
|
+
// Load all schemas
|
|
68
|
+
this.schemas = (0, schemaLoader_1.loadSchemas)(this.schemasDir);
|
|
69
|
+
// Register schemas with Ajv
|
|
70
|
+
this.registerSchemas();
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Register all loaded schemas with Ajv
|
|
74
|
+
*/
|
|
75
|
+
registerSchemas() {
|
|
76
|
+
// First, add all schemas to Ajv
|
|
77
|
+
for (const [key, entry] of this.schemas.entries()) {
|
|
78
|
+
try {
|
|
79
|
+
const schemaId = this.getSchemaId(key);
|
|
80
|
+
this.ajv.addSchema(entry.schema, schemaId);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error(`Error adding schema ${key}:`, error);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Convert schema file path to schema ID for Ajv
|
|
89
|
+
*/
|
|
90
|
+
getSchemaId(key) {
|
|
91
|
+
if (key === 'schemas.json') {
|
|
92
|
+
return 'schemas.json';
|
|
93
|
+
}
|
|
94
|
+
return key;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Validate a YAML module file
|
|
98
|
+
*/
|
|
99
|
+
async validateModule(filePath) {
|
|
100
|
+
const errors = [];
|
|
101
|
+
const warnings = [];
|
|
102
|
+
try {
|
|
103
|
+
// Check if file exists
|
|
104
|
+
if (!fs.existsSync(filePath)) {
|
|
105
|
+
errors.push({
|
|
106
|
+
type: 'file_not_found',
|
|
107
|
+
path: filePath,
|
|
108
|
+
message: `File not found: ${filePath}`
|
|
109
|
+
});
|
|
110
|
+
return this.createResult(filePath, errors, warnings);
|
|
111
|
+
}
|
|
112
|
+
// Read and parse YAML
|
|
113
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
114
|
+
let moduleData;
|
|
115
|
+
try {
|
|
116
|
+
moduleData = yaml.load(content);
|
|
117
|
+
}
|
|
118
|
+
catch (yamlError) {
|
|
119
|
+
errors.push({
|
|
120
|
+
type: 'yaml_syntax_error',
|
|
121
|
+
path: filePath,
|
|
122
|
+
message: `YAML syntax error: ${yamlError.message}`
|
|
123
|
+
});
|
|
124
|
+
return this.createResult(filePath, errors, warnings);
|
|
125
|
+
}
|
|
126
|
+
// Validate module structure
|
|
127
|
+
this.validateModuleStructure(moduleData, errors, warnings);
|
|
128
|
+
// Validate components
|
|
129
|
+
if (moduleData.components && Array.isArray(moduleData.components)) {
|
|
130
|
+
this.validateComponents(moduleData.components, errors, warnings);
|
|
131
|
+
}
|
|
132
|
+
// Validate routes
|
|
133
|
+
if (moduleData.routes && Array.isArray(moduleData.routes)) {
|
|
134
|
+
this.validateRoutes(moduleData.routes, errors, warnings);
|
|
135
|
+
}
|
|
136
|
+
// Validate entities
|
|
137
|
+
if (moduleData.entities && Array.isArray(moduleData.entities)) {
|
|
138
|
+
this.validateEntities(moduleData.entities, errors, warnings);
|
|
139
|
+
}
|
|
140
|
+
return this.createResult(filePath, errors, warnings);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
errors.push({
|
|
144
|
+
type: 'unexpected_error',
|
|
145
|
+
path: filePath,
|
|
146
|
+
message: `Unexpected error: ${error.message}`
|
|
147
|
+
});
|
|
148
|
+
return this.createResult(filePath, errors, warnings);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Validate top-level module structure
|
|
153
|
+
*/
|
|
154
|
+
validateModuleStructure(moduleData, errors, warnings) {
|
|
155
|
+
// Check required top-level properties
|
|
156
|
+
if (!moduleData.module) {
|
|
157
|
+
errors.push({
|
|
158
|
+
type: 'missing_property',
|
|
159
|
+
path: 'module',
|
|
160
|
+
message: 'Missing required property: module'
|
|
161
|
+
});
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
if (!moduleData.components) {
|
|
165
|
+
errors.push({
|
|
166
|
+
type: 'missing_property',
|
|
167
|
+
path: 'components',
|
|
168
|
+
message: 'Missing required property: components'
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
// Validate module metadata
|
|
172
|
+
const module = moduleData.module;
|
|
173
|
+
if (!module.name) {
|
|
174
|
+
errors.push({
|
|
175
|
+
type: 'missing_property',
|
|
176
|
+
path: 'module.name',
|
|
177
|
+
message: 'Missing required property: module.name'
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (!module.appModuleId) {
|
|
181
|
+
errors.push({
|
|
182
|
+
type: 'missing_property',
|
|
183
|
+
path: 'module.appModuleId',
|
|
184
|
+
message: 'Missing required property: module.appModuleId'
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
if (!module.displayName) {
|
|
188
|
+
errors.push({
|
|
189
|
+
type: 'missing_property',
|
|
190
|
+
path: 'module.displayName',
|
|
191
|
+
message: 'Missing required property: module.displayName'
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Validate components array
|
|
197
|
+
*/
|
|
198
|
+
validateComponents(components, errors, warnings) {
|
|
199
|
+
components.forEach((component, index) => {
|
|
200
|
+
const componentPath = `components[${index}]`;
|
|
201
|
+
this.validateComponent(component, componentPath, errors, warnings);
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Validate a single component
|
|
206
|
+
*/
|
|
207
|
+
validateComponent(component, componentPath, errors, warnings) {
|
|
208
|
+
if (!component || typeof component !== 'object') {
|
|
209
|
+
errors.push({
|
|
210
|
+
type: 'invalid_component',
|
|
211
|
+
path: componentPath,
|
|
212
|
+
message: 'Component must be an object'
|
|
213
|
+
});
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
// Check for required properties
|
|
217
|
+
if (!component.name) {
|
|
218
|
+
errors.push({
|
|
219
|
+
type: 'missing_property',
|
|
220
|
+
path: `${componentPath}.name`,
|
|
221
|
+
message: 'Component must have a name property'
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
// Validate layout if present
|
|
225
|
+
if (component.layout) {
|
|
226
|
+
this.validateNestedComponent(component.layout, `${componentPath}.layout`, errors, warnings);
|
|
227
|
+
}
|
|
228
|
+
// Check for deprecated properties
|
|
229
|
+
this.checkDeprecatedProperties(component, componentPath, warnings);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Recursively validate nested components
|
|
233
|
+
*/
|
|
234
|
+
validateNestedComponent(component, componentPath, errors, warnings) {
|
|
235
|
+
if (!component || typeof component !== 'object') {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
const componentType = component.component;
|
|
239
|
+
if (!componentType) {
|
|
240
|
+
errors.push({
|
|
241
|
+
type: 'missing_property',
|
|
242
|
+
path: `${componentPath}.component`,
|
|
243
|
+
message: 'Component must have a component type'
|
|
244
|
+
});
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
// Try to validate against specific component schema
|
|
248
|
+
const schemaKey = `components/${componentType}.json`;
|
|
249
|
+
if (this.schemas.has(schemaKey)) {
|
|
250
|
+
try {
|
|
251
|
+
const validate = this.ajv.getSchema(schemaKey);
|
|
252
|
+
if (validate && !validate(component)) {
|
|
253
|
+
this.addAjvErrors(validate.errors, componentPath, errors);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
// Schema not found or validation error
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// Recursively validate children
|
|
261
|
+
if (component.children && Array.isArray(component.children)) {
|
|
262
|
+
component.children.forEach((child, index) => {
|
|
263
|
+
this.validateNestedComponent(child, `${componentPath}.children[${index}]`, errors, warnings);
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
// Recursively validate props that may contain components
|
|
267
|
+
if (component.props) {
|
|
268
|
+
this.validateComponentProps(component.props, `${componentPath}.props`, errors, warnings);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Validate component props that may contain nested components
|
|
273
|
+
*/
|
|
274
|
+
validateComponentProps(props, propsPath, errors, warnings) {
|
|
275
|
+
if (!props || typeof props !== 'object') {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
// Check for nested layouts or components in props
|
|
279
|
+
for (const [key, value] of Object.entries(props)) {
|
|
280
|
+
if (value && typeof value === 'object' && value.component) {
|
|
281
|
+
this.validateNestedComponent(value, `${propsPath}.${key}`, errors, warnings);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Convert Ajv errors to our error format
|
|
287
|
+
*/
|
|
288
|
+
addAjvErrors(ajvErrors, basePath, errors) {
|
|
289
|
+
if (!ajvErrors)
|
|
290
|
+
return;
|
|
291
|
+
for (const error of ajvErrors) {
|
|
292
|
+
const errorPath = `${basePath}${error.instancePath}`;
|
|
293
|
+
errors.push({
|
|
294
|
+
type: 'schema_violation',
|
|
295
|
+
path: errorPath,
|
|
296
|
+
message: error.message || 'Schema validation failed',
|
|
297
|
+
schemaPath: error.schemaPath
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Validate routes array
|
|
303
|
+
*/
|
|
304
|
+
validateRoutes(routes, errors, warnings) {
|
|
305
|
+
routes.forEach((route, index) => {
|
|
306
|
+
const routePath = `routes[${index}]`;
|
|
307
|
+
if (!route.path) {
|
|
308
|
+
errors.push({
|
|
309
|
+
type: 'missing_property',
|
|
310
|
+
path: `${routePath}.path`,
|
|
311
|
+
message: 'Route must have a path property'
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
if (!route.component) {
|
|
315
|
+
errors.push({
|
|
316
|
+
type: 'missing_property',
|
|
317
|
+
path: `${routePath}.component`,
|
|
318
|
+
message: 'Route must have a component property'
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Validate entities array
|
|
325
|
+
*/
|
|
326
|
+
validateEntities(entities, errors, warnings) {
|
|
327
|
+
entities.forEach((entity, index) => {
|
|
328
|
+
const entityPath = `entities[${index}]`;
|
|
329
|
+
if (!entity.name) {
|
|
330
|
+
errors.push({
|
|
331
|
+
type: 'missing_property',
|
|
332
|
+
path: `${entityPath}.name`,
|
|
333
|
+
message: 'Entity must have a name property'
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Check for deprecated properties
|
|
340
|
+
*/
|
|
341
|
+
checkDeprecatedProperties(obj, path, warnings) {
|
|
342
|
+
const deprecations = {
|
|
343
|
+
key: 'Use "name" instead of "key"',
|
|
344
|
+
type: 'Use "fieldType" instead of "type" for fields'
|
|
345
|
+
};
|
|
346
|
+
for (const [oldProp, message] of Object.entries(deprecations)) {
|
|
347
|
+
if (oldProp in obj) {
|
|
348
|
+
warnings.push({
|
|
349
|
+
type: 'deprecated_property',
|
|
350
|
+
path: `${path}.${oldProp}`,
|
|
351
|
+
message
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Create validation result
|
|
358
|
+
*/
|
|
359
|
+
createResult(filePath, errors, warnings) {
|
|
360
|
+
const errorsByType = {};
|
|
361
|
+
errors.forEach(error => {
|
|
362
|
+
errorsByType[error.type] = (errorsByType[error.type] || 0) + 1;
|
|
363
|
+
});
|
|
364
|
+
return {
|
|
365
|
+
isValid: errors.length === 0,
|
|
366
|
+
errors,
|
|
367
|
+
warnings: this.options.includeWarnings ? warnings : [],
|
|
368
|
+
summary: {
|
|
369
|
+
file: filePath,
|
|
370
|
+
timestamp: new Date().toISOString(),
|
|
371
|
+
status: errors.length === 0 ? 'PASSED' : 'FAILED',
|
|
372
|
+
errorCount: errors.length,
|
|
373
|
+
warningCount: warnings.length,
|
|
374
|
+
errorsByType
|
|
375
|
+
}
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
exports.ModuleValidator = ModuleValidator;
|
|
380
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow validator for CargoXplorer YAML workflow files
|
|
3
|
+
*/
|
|
4
|
+
import { ValidationResult, WorkflowValidatorOptions } from './types';
|
|
5
|
+
export declare class WorkflowValidator {
|
|
6
|
+
private ajv;
|
|
7
|
+
private schemas;
|
|
8
|
+
private schemasDir;
|
|
9
|
+
private options;
|
|
10
|
+
constructor(options?: WorkflowValidatorOptions);
|
|
11
|
+
/**
|
|
12
|
+
* Load all workflow schemas from the schemas/workflows directory
|
|
13
|
+
*/
|
|
14
|
+
private loadWorkflowSchemas;
|
|
15
|
+
/**
|
|
16
|
+
* Recursively load schemas from a directory
|
|
17
|
+
*/
|
|
18
|
+
private loadSchemasFromDir;
|
|
19
|
+
/**
|
|
20
|
+
* Register all loaded schemas with Ajv
|
|
21
|
+
*/
|
|
22
|
+
private registerSchemas;
|
|
23
|
+
/**
|
|
24
|
+
* Validate a YAML workflow file
|
|
25
|
+
*/
|
|
26
|
+
validateWorkflow(filePath: string): Promise<ValidationResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Validate top-level workflow structure
|
|
29
|
+
*/
|
|
30
|
+
private validateWorkflowStructure;
|
|
31
|
+
/**
|
|
32
|
+
* Validate activities array recursively
|
|
33
|
+
*/
|
|
34
|
+
private validateActivities;
|
|
35
|
+
/**
|
|
36
|
+
* Validate a single activity
|
|
37
|
+
*/
|
|
38
|
+
private validateActivity;
|
|
39
|
+
/**
|
|
40
|
+
* Validate a single step (task)
|
|
41
|
+
*/
|
|
42
|
+
private validateStep;
|
|
43
|
+
/**
|
|
44
|
+
* Validate nested structures within control flow tasks
|
|
45
|
+
*/
|
|
46
|
+
private validateNestedSteps;
|
|
47
|
+
/**
|
|
48
|
+
* Convert Ajv errors to our error format
|
|
49
|
+
*/
|
|
50
|
+
private addAjvErrors;
|
|
51
|
+
/**
|
|
52
|
+
* Check for deprecated properties
|
|
53
|
+
*/
|
|
54
|
+
private checkDeprecatedProperties;
|
|
55
|
+
/**
|
|
56
|
+
* Create validation result
|
|
57
|
+
*/
|
|
58
|
+
private createResult;
|
|
59
|
+
/**
|
|
60
|
+
* Get all loaded schema keys
|
|
61
|
+
*/
|
|
62
|
+
getLoadedSchemas(): string[];
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=workflowValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflowValidator.d.ts","sourceRoot":"","sources":["../src/workflowValidator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACL,gBAAgB,EAGhB,wBAAwB,EAGzB,MAAM,SAAS,CAAC;AAEjB,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAqC;gBAExC,OAAO,GAAE,wBAA6B;IA6BlD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyC3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuDnE;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA6CjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwCxB;;OAEG;IACH,OAAO,CAAC,YAAY;IA6BpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkD3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAoBjC;;OAEG;IACH,OAAO,CAAC,YAAY;IAyBpB;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;CAG7B"}
|