@eventvisor/core 0.0.2

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 (165) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/jest.config.js +4 -0
  4. package/lib/builder/buildProject.d.ts +21 -0
  5. package/lib/builder/buildProject.js +153 -0
  6. package/lib/builder/buildProject.js.map +1 -0
  7. package/lib/builder/hashes.d.ts +2 -0
  8. package/lib/builder/hashes.js +59 -0
  9. package/lib/builder/hashes.js.map +1 -0
  10. package/lib/builder/index.d.ts +1 -0
  11. package/lib/builder/index.js +18 -0
  12. package/lib/builder/index.js.map +1 -0
  13. package/lib/cli/cli.d.ts +26 -0
  14. package/lib/cli/cli.js +69 -0
  15. package/lib/cli/cli.js.map +1 -0
  16. package/lib/cli/index.d.ts +1 -0
  17. package/lib/cli/index.js +18 -0
  18. package/lib/cli/index.js.map +1 -0
  19. package/lib/cli/plugins.d.ts +4 -0
  20. package/lib/cli/plugins.js +12 -0
  21. package/lib/cli/plugins.js.map +1 -0
  22. package/lib/config/index.d.ts +2 -0
  23. package/lib/config/index.js +19 -0
  24. package/lib/config/index.js.map +1 -0
  25. package/lib/config/parsers.d.ts +15 -0
  26. package/lib/config/parsers.js +65 -0
  27. package/lib/config/parsers.js.map +1 -0
  28. package/lib/config/projectConfig.d.ts +42 -0
  29. package/lib/config/projectConfig.js +137 -0
  30. package/lib/config/projectConfig.js.map +1 -0
  31. package/lib/datasource/adapter.d.ts +16 -0
  32. package/lib/datasource/adapter.js +7 -0
  33. package/lib/datasource/adapter.js.map +1 -0
  34. package/lib/datasource/datasource.d.ts +48 -0
  35. package/lib/datasource/datasource.js +117 -0
  36. package/lib/datasource/datasource.js.map +1 -0
  37. package/lib/datasource/filesystemAdapter.d.ts +29 -0
  38. package/lib/datasource/filesystemAdapter.js +192 -0
  39. package/lib/datasource/filesystemAdapter.js.map +1 -0
  40. package/lib/datasource/index.d.ts +3 -0
  41. package/lib/datasource/index.js +20 -0
  42. package/lib/datasource/index.js.map +1 -0
  43. package/lib/dependencies.d.ts +11 -0
  44. package/lib/dependencies.js +3 -0
  45. package/lib/dependencies.js.map +1 -0
  46. package/lib/index.d.ts +4 -0
  47. package/lib/index.js +21 -0
  48. package/lib/index.js.map +1 -0
  49. package/lib/index.spec.d.ts +0 -0
  50. package/lib/index.spec.js +6 -0
  51. package/lib/index.spec.js.map +1 -0
  52. package/lib/init/index.d.ts +8 -0
  53. package/lib/init/index.js +90 -0
  54. package/lib/init/index.js.map +1 -0
  55. package/lib/linter/attributeSchema.d.ts +5 -0
  56. package/lib/linter/attributeSchema.js +55 -0
  57. package/lib/linter/attributeSchema.js.map +1 -0
  58. package/lib/linter/conditionsSchema.d.ts +303 -0
  59. package/lib/linter/conditionsSchema.js +106 -0
  60. package/lib/linter/conditionsSchema.js.map +1 -0
  61. package/lib/linter/destinationSchema.d.ts +5 -0
  62. package/lib/linter/destinationSchema.js +57 -0
  63. package/lib/linter/destinationSchema.js.map +1 -0
  64. package/lib/linter/effectSchema.d.ts +1257 -0
  65. package/lib/linter/effectSchema.js +77 -0
  66. package/lib/linter/effectSchema.js.map +1 -0
  67. package/lib/linter/eventSchema.d.ts +5 -0
  68. package/lib/linter/eventSchema.js +70 -0
  69. package/lib/linter/eventSchema.js.map +1 -0
  70. package/lib/linter/index.d.ts +1 -0
  71. package/lib/linter/index.js +18 -0
  72. package/lib/linter/index.js.map +1 -0
  73. package/lib/linter/jsonSchema.d.ts +25 -0
  74. package/lib/linter/jsonSchema.js +487 -0
  75. package/lib/linter/jsonSchema.js.map +1 -0
  76. package/lib/linter/jsonSchema.spec.d.ts +1 -0
  77. package/lib/linter/jsonSchema.spec.js +875 -0
  78. package/lib/linter/jsonSchema.spec.js.map +1 -0
  79. package/lib/linter/lintProject.d.ts +2 -0
  80. package/lib/linter/lintProject.js +141 -0
  81. package/lib/linter/lintProject.js.map +1 -0
  82. package/lib/linter/persistSchema.d.ts +609 -0
  83. package/lib/linter/persistSchema.js +52 -0
  84. package/lib/linter/persistSchema.js.map +1 -0
  85. package/lib/linter/printError.d.ts +9 -0
  86. package/lib/linter/printError.js +75 -0
  87. package/lib/linter/printError.js.map +1 -0
  88. package/lib/linter/sampleSchema.d.ts +331 -0
  89. package/lib/linter/sampleSchema.js +70 -0
  90. package/lib/linter/sampleSchema.js.map +1 -0
  91. package/lib/linter/sourceSchema.d.ts +11 -0
  92. package/lib/linter/sourceSchema.js +73 -0
  93. package/lib/linter/sourceSchema.js.map +1 -0
  94. package/lib/linter/tagsSchema.d.ts +3 -0
  95. package/lib/linter/tagsSchema.js +44 -0
  96. package/lib/linter/tagsSchema.js.map +1 -0
  97. package/lib/linter/testSchema.d.ts +5 -0
  98. package/lib/linter/testSchema.js +44 -0
  99. package/lib/linter/testSchema.js.map +1 -0
  100. package/lib/linter/transformsSchema.d.ts +29 -0
  101. package/lib/linter/transformsSchema.js +66 -0
  102. package/lib/linter/transformsSchema.js.map +1 -0
  103. package/lib/tester/createTestInstance.d.ts +16 -0
  104. package/lib/tester/createTestInstance.js +158 -0
  105. package/lib/tester/createTestInstance.js.map +1 -0
  106. package/lib/tester/executeTest.d.ts +24 -0
  107. package/lib/tester/executeTest.js +305 -0
  108. package/lib/tester/executeTest.js.map +1 -0
  109. package/lib/tester/index.d.ts +1 -0
  110. package/lib/tester/index.js +18 -0
  111. package/lib/tester/index.js.map +1 -0
  112. package/lib/tester/printTestResult.d.ts +10 -0
  113. package/lib/tester/printTestResult.js +80 -0
  114. package/lib/tester/printTestResult.js.map +1 -0
  115. package/lib/tester/testProject.d.ts +12 -0
  116. package/lib/tester/testProject.js +93 -0
  117. package/lib/tester/testProject.js.map +1 -0
  118. package/lib/utils/index.d.ts +1 -0
  119. package/lib/utils/index.js +18 -0
  120. package/lib/utils/index.js.map +1 -0
  121. package/lib/utils/prettyDuration.d.ts +1 -0
  122. package/lib/utils/prettyDuration.js +27 -0
  123. package/lib/utils/prettyDuration.js.map +1 -0
  124. package/package.json +42 -0
  125. package/src/builder/buildProject.ts +222 -0
  126. package/src/builder/hashes.ts +30 -0
  127. package/src/builder/index.ts +1 -0
  128. package/src/cli/cli.ts +110 -0
  129. package/src/cli/index.ts +1 -0
  130. package/src/cli/plugins.ts +13 -0
  131. package/src/config/index.ts +2 -0
  132. package/src/config/parsers.ts +40 -0
  133. package/src/config/projectConfig.ts +158 -0
  134. package/src/datasource/adapter.ts +23 -0
  135. package/src/datasource/datasource.ts +164 -0
  136. package/src/datasource/filesystemAdapter.ts +206 -0
  137. package/src/datasource/index.ts +3 -0
  138. package/src/dependencies.ts +13 -0
  139. package/src/index.spec.ts +5 -0
  140. package/src/index.ts +4 -0
  141. package/src/init/index.ts +65 -0
  142. package/src/linter/attributeSchema.ts +23 -0
  143. package/src/linter/conditionsSchema.ts +89 -0
  144. package/src/linter/destinationSchema.ts +25 -0
  145. package/src/linter/effectSchema.ts +49 -0
  146. package/src/linter/eventSchema.ts +40 -0
  147. package/src/linter/index.ts +1 -0
  148. package/src/linter/jsonSchema.spec.ts +934 -0
  149. package/src/linter/jsonSchema.ts +533 -0
  150. package/src/linter/lintProject.ts +182 -0
  151. package/src/linter/persistSchema.ts +21 -0
  152. package/src/linter/printError.ts +50 -0
  153. package/src/linter/sampleSchema.ts +45 -0
  154. package/src/linter/sourceSchema.ts +42 -0
  155. package/src/linter/tagsSchema.ts +12 -0
  156. package/src/linter/testSchema.ts +9 -0
  157. package/src/linter/transformsSchema.ts +35 -0
  158. package/src/tester/createTestInstance.ts +209 -0
  159. package/src/tester/executeTest.ts +436 -0
  160. package/src/tester/index.ts +1 -0
  161. package/src/tester/printTestResult.ts +60 -0
  162. package/src/tester/testProject.ts +129 -0
  163. package/src/utils/index.ts +1 -0
  164. package/src/utils/prettyDuration.ts +27 -0
  165. package/tsconfig.cjs.json +11 -0
@@ -0,0 +1,487 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.JSONZodSchema = void 0;
37
+ exports.getJSONSchema = getJSONSchema;
38
+ exports.validateJSONSchema = validateJSONSchema;
39
+ const z = __importStar(require("zod"));
40
+ exports.JSONZodSchema = getJSONSchema();
41
+ /**
42
+ * Creates a Zod schema for a JSON Schema object based on the JSON Schema specification
43
+ */
44
+ function getJSONSchema() {
45
+ return z
46
+ .object({
47
+ // Basic metadata
48
+ description: z.string().optional(),
49
+ // General validation keywords
50
+ type: z
51
+ .enum(["object", "array", "string", "number", "integer", "boolean", "null"])
52
+ .optional(),
53
+ enum: z.array(createValueSchema()).optional(),
54
+ const: createValueSchema().optional(),
55
+ // Numeric validation keywords
56
+ maximum: z.number().optional(),
57
+ minimum: z.number().optional(),
58
+ // String validation keywords
59
+ maxLength: z.number().int().min(0).optional(),
60
+ minLength: z.number().int().min(0).optional(),
61
+ pattern: z.string().optional(),
62
+ // Array validation keywords
63
+ items: z.union([createJSONSchema(), z.array(createJSONSchema())]).optional(),
64
+ maxItems: z.number().int().min(0).optional(),
65
+ minItems: z.number().int().min(0).optional(),
66
+ uniqueItems: z.boolean().optional(),
67
+ // Object validation keywords
68
+ required: z.array(z.string()).optional(),
69
+ properties: z.record(z.string(), createJSONSchema()).optional(),
70
+ // Annotations
71
+ default: createValueSchema().optional(),
72
+ examples: z.array(createValueSchema()).optional(),
73
+ // project specific additional properties
74
+ defaultSource: z.string().optional(),
75
+ defaultSources: z.array(z.string()).optional(),
76
+ })
77
+ .refine((schema) => validateSchemaConstraints(schema), {
78
+ message: "Schema validation failed: schema does not conform to JSON Schema specification",
79
+ path: ["schema"],
80
+ })
81
+ .strict();
82
+ }
83
+ /**
84
+ * Creates a Zod schema for JSON Schema values
85
+ */
86
+ function createValueSchema() {
87
+ return z.union([
88
+ z.string(),
89
+ z.number(),
90
+ z.boolean(),
91
+ z.null(),
92
+ z.undefined(),
93
+ z.lazy(() => z.record(z.string(), createValueSchema())),
94
+ z.lazy(() => z.array(createValueSchema())),
95
+ ]);
96
+ }
97
+ /**
98
+ * Creates a Zod schema for JSON Schema objects
99
+ */
100
+ function createJSONSchema() {
101
+ return z.lazy(() => getJSONSchema());
102
+ }
103
+ /**
104
+ * Main validation function that validates a JSON Schema definition
105
+ */
106
+ function validateJSONSchema(schema) {
107
+ if (schema === null || typeof schema !== "object") {
108
+ return {
109
+ valid: false,
110
+ errors: [
111
+ {
112
+ code: "INVALID_SCHEMA_TYPE",
113
+ message: "Schema must be an object",
114
+ path: [],
115
+ },
116
+ ],
117
+ };
118
+ }
119
+ const errors = [];
120
+ // Validate type constraints
121
+ validateTypeConstraints(schema, errors);
122
+ // Validate numeric constraints
123
+ validateNumericConstraints(schema, errors);
124
+ // Validate string constraints
125
+ validateStringConstraints(schema, errors);
126
+ // Validate array constraints
127
+ validateArrayConstraints(schema, errors);
128
+ // Validate object constraints
129
+ validateObjectConstraints(schema, errors);
130
+ return {
131
+ valid: errors.length === 0,
132
+ errors,
133
+ };
134
+ }
135
+ function validateTypeConstraints(schema, errors, path = []) {
136
+ if (schema.type &&
137
+ !["object", "array", "string", "number", "integer", "boolean", "null"].includes(schema.type)) {
138
+ errors.push({
139
+ path: [...path, "type"],
140
+ message: `Invalid type: ${schema.type}. Must be one of: object, array, string, number, integer, boolean, null`,
141
+ code: "INVALID_TYPE",
142
+ });
143
+ }
144
+ // Validate enum values match declared type
145
+ if (schema.enum && Array.isArray(schema.enum)) {
146
+ if (schema.type === "null") {
147
+ if (!schema.enum.includes(null)) {
148
+ errors.push({
149
+ path: [...path, "enum"],
150
+ message: "Enum for null type must include null value",
151
+ code: "INVALID_ENUM_FOR_NULL_TYPE",
152
+ });
153
+ }
154
+ }
155
+ else if (schema.type === "boolean") {
156
+ if (!schema.enum.every((value) => value === true || value === false)) {
157
+ errors.push({
158
+ path: [...path, "enum"],
159
+ message: "Enum for boolean type can only contain true or false",
160
+ code: "INVALID_ENUM_FOR_BOOLEAN_TYPE",
161
+ });
162
+ }
163
+ }
164
+ else if (schema.type) {
165
+ // Check each enum value matches the declared type
166
+ schema.enum.forEach((value, index) => {
167
+ if (!isValueOfType(value, schema.type)) {
168
+ errors.push({
169
+ path: [...path, "enum", index.toString()],
170
+ message: `Enum value ${JSON.stringify(value)} does not match type ${schema.type}`,
171
+ code: "TYPE_MISMATCH_IN_ENUM",
172
+ });
173
+ }
174
+ });
175
+ }
176
+ }
177
+ // Validate const value matches declared type
178
+ if (schema.const !== undefined && schema.type && !isValueOfType(schema.const, schema.type)) {
179
+ errors.push({
180
+ path: [...path, "const"],
181
+ message: `Const value ${JSON.stringify(schema.const)} does not match type ${schema.type}`,
182
+ code: "TYPE_MISMATCH_IN_CONST",
183
+ });
184
+ }
185
+ }
186
+ /**
187
+ * Helper function to check if a value matches a declared type
188
+ */
189
+ function isValueOfType(value, declaredType) {
190
+ switch (declaredType) {
191
+ case "string":
192
+ return typeof value === "string";
193
+ case "number":
194
+ return typeof value === "number" && !isNaN(value);
195
+ case "integer":
196
+ return typeof value === "number" && Number.isInteger(value) && !isNaN(value);
197
+ case "boolean":
198
+ return typeof value === "boolean";
199
+ case "null":
200
+ return value === null;
201
+ case "array":
202
+ return Array.isArray(value);
203
+ case "object":
204
+ return typeof value === "object" && value !== null && !Array.isArray(value);
205
+ default:
206
+ return true;
207
+ }
208
+ }
209
+ /**
210
+ * Validates numeric constraints in the schema definition
211
+ */
212
+ function validateNumericConstraints(schema, errors, path = []) {
213
+ // Check that numeric constraints are only used with numeric types
214
+ const numericKeywords = ["maximum", "minimum"];
215
+ const hasNumericConstraints = numericKeywords.some((key) => schema[key] !== undefined);
216
+ if (hasNumericConstraints && schema.type && !["number", "integer"].includes(schema.type)) {
217
+ errors.push({
218
+ path: [...path, "type"],
219
+ message: "Numeric constraints can only be used with number or integer types",
220
+ code: "NUMERIC_CONSTRAINTS_ON_NON_NUMERIC_TYPE",
221
+ });
222
+ }
223
+ // Validate maximum
224
+ if (schema.maximum !== undefined) {
225
+ if (typeof schema.maximum !== "number" || isNaN(schema.maximum)) {
226
+ errors.push({
227
+ path: [...path, "maximum"],
228
+ message: "maximum must be a valid number",
229
+ code: "INVALID_MAXIMUM",
230
+ });
231
+ }
232
+ }
233
+ // Validate minimum
234
+ if (schema.minimum !== undefined) {
235
+ if (typeof schema.minimum !== "number" || isNaN(schema.minimum)) {
236
+ errors.push({
237
+ path: [...path, "minimum"],
238
+ message: "minimum must be a valid number",
239
+ code: "INVALID_MINIMUM",
240
+ });
241
+ }
242
+ }
243
+ // Check for logical inconsistencies
244
+ if (schema.maximum !== undefined && schema.minimum !== undefined) {
245
+ if (schema.maximum < schema.minimum) {
246
+ errors.push({
247
+ path: [...path, "maximum"],
248
+ message: "maximum cannot be less than minimum",
249
+ code: "MAXIMUM_LESS_THAN_MINIMUM",
250
+ });
251
+ }
252
+ }
253
+ }
254
+ /**
255
+ * Validates string constraints in the schema definition
256
+ */
257
+ function validateStringConstraints(schema, errors, path = []) {
258
+ // Check that string constraints are only used with string types
259
+ const stringKeywords = ["maxLength", "minLength", "pattern", "format"];
260
+ const hasStringConstraints = stringKeywords.some((key) => schema[key] !== undefined);
261
+ if (hasStringConstraints && schema.type && schema.type !== "string") {
262
+ errors.push({
263
+ path: [...path, "type"],
264
+ message: "String constraints can only be used with string type",
265
+ code: "STRING_CONSTRAINTS_ON_NON_STRING_TYPE",
266
+ });
267
+ }
268
+ // Validate maxLength/minLength
269
+ if (schema.maxLength !== undefined) {
270
+ if (typeof schema.maxLength !== "number" ||
271
+ !Number.isInteger(schema.maxLength) ||
272
+ schema.maxLength < 0) {
273
+ errors.push({
274
+ path: [...path, "maxLength"],
275
+ message: "maxLength must be a non-negative integer",
276
+ code: "INVALID_MAX_LENGTH",
277
+ });
278
+ }
279
+ }
280
+ if (schema.minLength !== undefined) {
281
+ if (typeof schema.minLength !== "number" ||
282
+ !Number.isInteger(schema.minLength) ||
283
+ schema.minLength < 0) {
284
+ errors.push({
285
+ path: [...path, "minLength"],
286
+ message: "minLength must be a non-negative integer",
287
+ code: "INVALID_MIN_LENGTH",
288
+ });
289
+ }
290
+ }
291
+ // Check for logical inconsistencies
292
+ if (schema.maxLength !== undefined && schema.minLength !== undefined) {
293
+ if (schema.maxLength < schema.minLength) {
294
+ errors.push({
295
+ path: [...path, "maxLength"],
296
+ message: "maxLength cannot be less than minLength",
297
+ code: "MAX_LENGTH_LESS_THAN_MIN_LENGTH",
298
+ });
299
+ }
300
+ }
301
+ // Validate pattern
302
+ if (schema.pattern !== undefined) {
303
+ if (typeof schema.pattern !== "string") {
304
+ errors.push({
305
+ path: [...path, "pattern"],
306
+ message: "pattern must be a string",
307
+ code: "INVALID_PATTERN_TYPE",
308
+ });
309
+ }
310
+ else {
311
+ try {
312
+ new RegExp(schema.pattern);
313
+ // eslint-disable-next-line
314
+ }
315
+ catch (e) {
316
+ errors.push({
317
+ path: [...path, "pattern"],
318
+ message: `Invalid regex pattern: ${schema.pattern}`,
319
+ code: "INVALID_REGEX_PATTERN",
320
+ });
321
+ }
322
+ }
323
+ }
324
+ }
325
+ /**
326
+ * Validates array constraints in the schema definition
327
+ */
328
+ function validateArrayConstraints(schema, errors, path = []) {
329
+ // Check that array constraints are only used with array types
330
+ const arrayKeywords = ["items", "maxItems", "minItems", "uniqueItems"];
331
+ const hasArrayConstraints = arrayKeywords.some((key) => schema[key] !== undefined);
332
+ if (hasArrayConstraints && schema.type && schema.type !== "array") {
333
+ errors.push({
334
+ path: [...path, "type"],
335
+ message: "Array constraints can only be used with array type",
336
+ code: "ARRAY_CONSTRAINTS_ON_NON_ARRAY_TYPE",
337
+ });
338
+ }
339
+ // Validate maxItems/minItems
340
+ if (schema.maxItems !== undefined) {
341
+ if (!Number.isInteger(schema.maxItems) || schema.maxItems < 0) {
342
+ errors.push({
343
+ path: [...path, "maxItems"],
344
+ message: "maxItems must be a non-negative integer",
345
+ code: "INVALID_MAX_ITEMS",
346
+ });
347
+ }
348
+ }
349
+ if (schema.minItems !== undefined) {
350
+ if (!Number.isInteger(schema.minItems) || schema.minItems < 0) {
351
+ errors.push({
352
+ path: [...path, "minItems"],
353
+ message: "minItems must be a non-negative integer",
354
+ code: "INVALID_MIN_ITEMS",
355
+ });
356
+ }
357
+ }
358
+ // Check for logical inconsistencies
359
+ if (schema.maxItems !== undefined && schema.minItems !== undefined) {
360
+ if (schema.maxItems < schema.minItems) {
361
+ errors.push({
362
+ path: [...path, "maxItems"],
363
+ message: "maxItems cannot be less than minItems",
364
+ code: "MAX_ITEMS_LESS_THAN_MIN_ITEMS",
365
+ });
366
+ }
367
+ }
368
+ // Validate uniqueItems
369
+ if (schema.uniqueItems !== undefined && typeof schema.uniqueItems !== "boolean") {
370
+ errors.push({
371
+ path: [...path, "uniqueItems"],
372
+ message: "uniqueItems must be a boolean",
373
+ code: "INVALID_UNIQUE_ITEMS",
374
+ });
375
+ }
376
+ // Validate items
377
+ if (schema.items !== undefined) {
378
+ if (Array.isArray(schema.items)) {
379
+ // Array of schemas - validate each item
380
+ schema.items.forEach((item, index) => {
381
+ if (typeof item !== "object" || item === null) {
382
+ errors.push({
383
+ path: [...path, "items", index.toString()],
384
+ message: "Array items must be schema objects",
385
+ code: "INVALID_ITEMS_SCHEMA",
386
+ });
387
+ }
388
+ else {
389
+ // Recursively validate the item schema
390
+ const itemResult = validateJSONSchema(item);
391
+ errors.push(...itemResult.errors.map((error) => ({
392
+ ...error,
393
+ path: [...path, "items", index.toString(), ...error.path],
394
+ })));
395
+ }
396
+ });
397
+ }
398
+ else if (typeof schema.items !== "object" || schema.items === null) {
399
+ errors.push({
400
+ path: [...path, "items"],
401
+ message: "items must be a schema object or array of schemas",
402
+ code: "INVALID_ITEMS_TYPE",
403
+ });
404
+ }
405
+ else {
406
+ // Single schema - recursively validate
407
+ const itemsResult = validateJSONSchema(schema.items);
408
+ errors.push(...itemsResult.errors.map((error) => ({
409
+ ...error,
410
+ path: [...path, "items", ...error.path],
411
+ })));
412
+ }
413
+ }
414
+ }
415
+ /**
416
+ * Validates object constraints in the schema definition
417
+ */
418
+ function validateObjectConstraints(schema, errors, path = []) {
419
+ // Check that object constraints are only used with object types
420
+ const objectKeywords = ["required", "properties"];
421
+ const hasObjectConstraints = objectKeywords.some((key) => schema[key] !== undefined);
422
+ if (hasObjectConstraints && schema.type && schema.type !== "object") {
423
+ errors.push({
424
+ path: [...path, "type"],
425
+ message: "Object constraints can only be used with object type",
426
+ code: "OBJECT_CONSTRAINTS_ON_NON_OBJECT_TYPE",
427
+ });
428
+ }
429
+ // Validate required
430
+ if (schema.required !== undefined) {
431
+ if (!Array.isArray(schema.required)) {
432
+ errors.push({
433
+ path: [...path, "required"],
434
+ message: "required must be an array",
435
+ code: "INVALID_REQUIRED_TYPE",
436
+ });
437
+ }
438
+ else {
439
+ schema.required.forEach((item, index) => {
440
+ if (typeof item !== "string") {
441
+ errors.push({
442
+ path: [...path, "required", index.toString()],
443
+ message: "Required items must be strings",
444
+ code: "INVALID_REQUIRED_ITEM",
445
+ });
446
+ }
447
+ });
448
+ }
449
+ }
450
+ // Validate properties
451
+ if (schema.properties !== undefined) {
452
+ if (typeof schema.properties !== "object" || schema.properties === null) {
453
+ errors.push({
454
+ path: [...path, "properties"],
455
+ message: "properties must be an object",
456
+ code: "INVALID_PROPERTIES_TYPE",
457
+ });
458
+ }
459
+ else {
460
+ Object.entries(schema.properties).forEach(([key, value]) => {
461
+ if (typeof value !== "object" || value === null) {
462
+ errors.push({
463
+ path: [...path, "properties", key],
464
+ message: "Property values must be schema objects",
465
+ code: "INVALID_PROPERTY_SCHEMA",
466
+ });
467
+ }
468
+ else {
469
+ // Recursively validate the property schema
470
+ const propertyResult = validateJSONSchema(value);
471
+ errors.push(...propertyResult.errors.map((error) => ({
472
+ ...error,
473
+ path: [...path, "properties", key, ...error.path],
474
+ })));
475
+ }
476
+ });
477
+ }
478
+ }
479
+ }
480
+ /**
481
+ * Validates all schema constraints
482
+ */
483
+ function validateSchemaConstraints(schema) {
484
+ const result = validateJSONSchema(schema);
485
+ return result.valid;
486
+ }
487
+ //# sourceMappingURL=jsonSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonSchema.js","sourceRoot":"","sources":["../../src/linter/jsonSchema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};