@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.
- package/LICENSE +21 -0
- package/README.md +9 -0
- package/jest.config.js +4 -0
- package/lib/builder/buildProject.d.ts +21 -0
- package/lib/builder/buildProject.js +153 -0
- package/lib/builder/buildProject.js.map +1 -0
- package/lib/builder/hashes.d.ts +2 -0
- package/lib/builder/hashes.js +59 -0
- package/lib/builder/hashes.js.map +1 -0
- package/lib/builder/index.d.ts +1 -0
- package/lib/builder/index.js +18 -0
- package/lib/builder/index.js.map +1 -0
- package/lib/cli/cli.d.ts +26 -0
- package/lib/cli/cli.js +69 -0
- package/lib/cli/cli.js.map +1 -0
- package/lib/cli/index.d.ts +1 -0
- package/lib/cli/index.js +18 -0
- package/lib/cli/index.js.map +1 -0
- package/lib/cli/plugins.d.ts +4 -0
- package/lib/cli/plugins.js +12 -0
- package/lib/cli/plugins.js.map +1 -0
- package/lib/config/index.d.ts +2 -0
- package/lib/config/index.js +19 -0
- package/lib/config/index.js.map +1 -0
- package/lib/config/parsers.d.ts +15 -0
- package/lib/config/parsers.js +65 -0
- package/lib/config/parsers.js.map +1 -0
- package/lib/config/projectConfig.d.ts +42 -0
- package/lib/config/projectConfig.js +137 -0
- package/lib/config/projectConfig.js.map +1 -0
- package/lib/datasource/adapter.d.ts +16 -0
- package/lib/datasource/adapter.js +7 -0
- package/lib/datasource/adapter.js.map +1 -0
- package/lib/datasource/datasource.d.ts +48 -0
- package/lib/datasource/datasource.js +117 -0
- package/lib/datasource/datasource.js.map +1 -0
- package/lib/datasource/filesystemAdapter.d.ts +29 -0
- package/lib/datasource/filesystemAdapter.js +192 -0
- package/lib/datasource/filesystemAdapter.js.map +1 -0
- package/lib/datasource/index.d.ts +3 -0
- package/lib/datasource/index.js +20 -0
- package/lib/datasource/index.js.map +1 -0
- package/lib/dependencies.d.ts +11 -0
- package/lib/dependencies.js +3 -0
- package/lib/dependencies.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +21 -0
- package/lib/index.js.map +1 -0
- package/lib/index.spec.d.ts +0 -0
- package/lib/index.spec.js +6 -0
- package/lib/index.spec.js.map +1 -0
- package/lib/init/index.d.ts +8 -0
- package/lib/init/index.js +90 -0
- package/lib/init/index.js.map +1 -0
- package/lib/linter/attributeSchema.d.ts +5 -0
- package/lib/linter/attributeSchema.js +55 -0
- package/lib/linter/attributeSchema.js.map +1 -0
- package/lib/linter/conditionsSchema.d.ts +303 -0
- package/lib/linter/conditionsSchema.js +106 -0
- package/lib/linter/conditionsSchema.js.map +1 -0
- package/lib/linter/destinationSchema.d.ts +5 -0
- package/lib/linter/destinationSchema.js +57 -0
- package/lib/linter/destinationSchema.js.map +1 -0
- package/lib/linter/effectSchema.d.ts +1257 -0
- package/lib/linter/effectSchema.js +77 -0
- package/lib/linter/effectSchema.js.map +1 -0
- package/lib/linter/eventSchema.d.ts +5 -0
- package/lib/linter/eventSchema.js +70 -0
- package/lib/linter/eventSchema.js.map +1 -0
- package/lib/linter/index.d.ts +1 -0
- package/lib/linter/index.js +18 -0
- package/lib/linter/index.js.map +1 -0
- package/lib/linter/jsonSchema.d.ts +25 -0
- package/lib/linter/jsonSchema.js +487 -0
- package/lib/linter/jsonSchema.js.map +1 -0
- package/lib/linter/jsonSchema.spec.d.ts +1 -0
- package/lib/linter/jsonSchema.spec.js +875 -0
- package/lib/linter/jsonSchema.spec.js.map +1 -0
- package/lib/linter/lintProject.d.ts +2 -0
- package/lib/linter/lintProject.js +141 -0
- package/lib/linter/lintProject.js.map +1 -0
- package/lib/linter/persistSchema.d.ts +609 -0
- package/lib/linter/persistSchema.js +52 -0
- package/lib/linter/persistSchema.js.map +1 -0
- package/lib/linter/printError.d.ts +9 -0
- package/lib/linter/printError.js +75 -0
- package/lib/linter/printError.js.map +1 -0
- package/lib/linter/sampleSchema.d.ts +331 -0
- package/lib/linter/sampleSchema.js +70 -0
- package/lib/linter/sampleSchema.js.map +1 -0
- package/lib/linter/sourceSchema.d.ts +11 -0
- package/lib/linter/sourceSchema.js +73 -0
- package/lib/linter/sourceSchema.js.map +1 -0
- package/lib/linter/tagsSchema.d.ts +3 -0
- package/lib/linter/tagsSchema.js +44 -0
- package/lib/linter/tagsSchema.js.map +1 -0
- package/lib/linter/testSchema.d.ts +5 -0
- package/lib/linter/testSchema.js +44 -0
- package/lib/linter/testSchema.js.map +1 -0
- package/lib/linter/transformsSchema.d.ts +29 -0
- package/lib/linter/transformsSchema.js +66 -0
- package/lib/linter/transformsSchema.js.map +1 -0
- package/lib/tester/createTestInstance.d.ts +16 -0
- package/lib/tester/createTestInstance.js +158 -0
- package/lib/tester/createTestInstance.js.map +1 -0
- package/lib/tester/executeTest.d.ts +24 -0
- package/lib/tester/executeTest.js +305 -0
- package/lib/tester/executeTest.js.map +1 -0
- package/lib/tester/index.d.ts +1 -0
- package/lib/tester/index.js +18 -0
- package/lib/tester/index.js.map +1 -0
- package/lib/tester/printTestResult.d.ts +10 -0
- package/lib/tester/printTestResult.js +80 -0
- package/lib/tester/printTestResult.js.map +1 -0
- package/lib/tester/testProject.d.ts +12 -0
- package/lib/tester/testProject.js +93 -0
- package/lib/tester/testProject.js.map +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +18 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/prettyDuration.d.ts +1 -0
- package/lib/utils/prettyDuration.js +27 -0
- package/lib/utils/prettyDuration.js.map +1 -0
- package/package.json +42 -0
- package/src/builder/buildProject.ts +222 -0
- package/src/builder/hashes.ts +30 -0
- package/src/builder/index.ts +1 -0
- package/src/cli/cli.ts +110 -0
- package/src/cli/index.ts +1 -0
- package/src/cli/plugins.ts +13 -0
- package/src/config/index.ts +2 -0
- package/src/config/parsers.ts +40 -0
- package/src/config/projectConfig.ts +158 -0
- package/src/datasource/adapter.ts +23 -0
- package/src/datasource/datasource.ts +164 -0
- package/src/datasource/filesystemAdapter.ts +206 -0
- package/src/datasource/index.ts +3 -0
- package/src/dependencies.ts +13 -0
- package/src/index.spec.ts +5 -0
- package/src/index.ts +4 -0
- package/src/init/index.ts +65 -0
- package/src/linter/attributeSchema.ts +23 -0
- package/src/linter/conditionsSchema.ts +89 -0
- package/src/linter/destinationSchema.ts +25 -0
- package/src/linter/effectSchema.ts +49 -0
- package/src/linter/eventSchema.ts +40 -0
- package/src/linter/index.ts +1 -0
- package/src/linter/jsonSchema.spec.ts +934 -0
- package/src/linter/jsonSchema.ts +533 -0
- package/src/linter/lintProject.ts +182 -0
- package/src/linter/persistSchema.ts +21 -0
- package/src/linter/printError.ts +50 -0
- package/src/linter/sampleSchema.ts +45 -0
- package/src/linter/sourceSchema.ts +42 -0
- package/src/linter/tagsSchema.ts +12 -0
- package/src/linter/testSchema.ts +9 -0
- package/src/linter/transformsSchema.ts +35 -0
- package/src/tester/createTestInstance.ts +209 -0
- package/src/tester/executeTest.ts +436 -0
- package/src/tester/index.ts +1 -0
- package/src/tester/printTestResult.ts +60 -0
- package/src/tester/testProject.ts +129 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/prettyDuration.ts +27 -0
- 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,sCA6CC;AA2BD,gDAmCC;AAlHD,uCAAyB;AAEZ,QAAA,aAAa,GAAG,aAAa,EAAE,CAAC;AAE7C;;GAEG;AACH,SAAgB,aAAa;IAC3B,OAAO,CAAC;SACL,MAAM,CAAC;QACN,iBAAiB;QACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAElC,8BAA8B;QAC9B,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;aAC3E,QAAQ,EAAE;QACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC7C,KAAK,EAAE,iBAAiB,EAAE,CAAC,QAAQ,EAAE;QAErC,8BAA8B;QAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAE9B,6BAA6B;QAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAE9B,4BAA4B;QAC5B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC5C,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAEnC,6BAA6B;QAC7B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACxC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC,QAAQ,EAAE;QAE/D,cAAc;QACd,OAAO,EAAE,iBAAiB,EAAE,CAAC,QAAQ,EAAE;QACvC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,EAAE;QAEjD,yCAAyC;QACzC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC/C,CAAC;SACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE;QACrD,OAAO,EAAE,gFAAgF;QACzF,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB,CAAC;SACD,MAAM,EAAE,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,CAAC,CAAC,KAAK,CAAC;QACb,CAAC,CAAC,MAAM,EAAE;QACV,CAAC,CAAC,MAAM,EAAE;QACV,CAAC,CAAC,OAAO,EAAE;QACX,CAAC,CAAC,IAAI,EAAE;QACR,CAAC,CAAC,SAAS,EAAE;QACb,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,MAAW;IAC5C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,0BAA0B;oBACnC,IAAI,EAAE,EAAE;iBACT;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAgC,EAAE,CAAC;IAE/C,4BAA4B;IAC5B,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,+BAA+B;IAC/B,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3C,8BAA8B;IAC9B,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1C,6BAA6B;IAC7B,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzC,8BAA8B;IAC9B,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAW,EACX,MAAmC,EACnC,OAAiB,EAAE;IAEnB,IACE,MAAM,CAAC,IAAI;QACX,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAC5F,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,iBAAiB,MAAM,CAAC,IAAI,yEAAyE;YAC9G,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;IACL,CAAC;IAED,2CAA2C;IAC3C,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;oBACvB,OAAO,EAAE,4CAA4C;oBACrD,IAAI,EAAE,4BAA4B;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC1E,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;oBACvB,OAAO,EAAE,sDAAsD;oBAC/D,IAAI,EAAE,+BAA+B;iBACtC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACvB,kDAAkD;YAClD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,KAAa,EAAE,EAAE;gBAChD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;wBACzC,OAAO,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,IAAI,EAAE;wBACjF,IAAI,EAAE,uBAAuB;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3F,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YACxB,OAAO,EAAE,eAAe,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,IAAI,EAAE;YACzF,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAU,EAAE,YAAoB;IACrD,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,KAAK,SAAS;YACZ,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/E,KAAK,SAAS;YACZ,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;QACpC,KAAK,MAAM;YACT,OAAO,KAAK,KAAK,IAAI,CAAC;QACxB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9E;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CACjC,MAAW,EACX,MAAmC,EACnC,OAAiB,EAAE;IAEnB,kEAAkE;IAClE,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,qBAAqB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IAEvF,IAAI,qBAAqB,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACzF,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,mEAAmE;YAC5E,IAAI,EAAE,yCAAyC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;gBAC1B,OAAO,EAAE,gCAAgC;gBACzC,IAAI,EAAE,iBAAiB;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;gBAC1B,OAAO,EAAE,gCAAgC;gBACzC,IAAI,EAAE,iBAAiB;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjE,IAAI,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;gBAC1B,OAAO,EAAE,qCAAqC;gBAC9C,IAAI,EAAE,2BAA2B;aAClC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,MAAW,EACX,MAAmC,EACnC,OAAiB,EAAE;IAEnB,gEAAgE;IAChE,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvE,MAAM,oBAAoB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IAErF,IAAI,oBAAoB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,sDAAsD;YAC/D,IAAI,EAAE,uCAAuC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YACpC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;YACnC,MAAM,CAAC,SAAS,GAAG,CAAC,EACpB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC;gBAC5B,OAAO,EAAE,0CAA0C;gBACnD,IAAI,EAAE,oBAAoB;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YACpC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;YACnC,MAAM,CAAC,SAAS,GAAG,CAAC,EACpB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC;gBAC5B,OAAO,EAAE,0CAA0C;gBACnD,IAAI,EAAE,oBAAoB;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrE,IAAI,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC;gBAC5B,OAAO,EAAE,yCAAyC;gBAClD,IAAI,EAAE,iCAAiC;aACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;gBAC1B,OAAO,EAAE,0BAA0B;gBACnC,IAAI,EAAE,sBAAsB;aAC7B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3B,2BAA2B;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;oBAC1B,OAAO,EAAE,0BAA0B,MAAM,CAAC,OAAO,EAAE;oBACnD,IAAI,EAAE,uBAAuB;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAC/B,MAAW,EACX,MAAmC,EACnC,OAAiB,EAAE;IAEnB,8DAA8D;IAC9D,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACvE,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IAEnF,IAAI,mBAAmB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,oDAAoD;YAC7D,IAAI,EAAE,qCAAqC;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;gBAC3B,OAAO,EAAE,yCAAyC;gBAClD,IAAI,EAAE,mBAAmB;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;gBAC3B,OAAO,EAAE,yCAAyC;gBAClD,IAAI,EAAE,mBAAmB;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnE,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;gBAC3B,OAAO,EAAE,uCAAuC;gBAChD,IAAI,EAAE,+BAA+B;aACtC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAChF,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;YAC9B,OAAO,EAAE,+BAA+B;YACxC,IAAI,EAAE,sBAAsB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,wCAAwC;YACxC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE;gBAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAC1C,OAAO,EAAE,oCAAoC;wBAC7C,IAAI,EAAE,sBAAsB;qBAC7B,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,uCAAuC;oBACvC,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAC5C,MAAM,CAAC,IAAI,CACT,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACnC,GAAG,KAAK;wBACR,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;qBAC1D,CAAC,CAAC,CACJ,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;gBACxB,OAAO,EAAE,mDAAmD;gBAC5D,IAAI,EAAE,oBAAoB;aAC3B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACpC,GAAG,KAAK;gBACR,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;aACxC,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,MAAW,EACX,MAAmC,EACnC,OAAiB,EAAE;IAEnB,gEAAgE;IAChE,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAClD,MAAM,oBAAoB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IAErF,IAAI,oBAAoB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,sDAAsD;YAC/D,IAAI,EAAE,uCAAuC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;IACpB,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;gBAC3B,OAAO,EAAE,2BAA2B;gBACpC,IAAI,EAAE,uBAAuB;aAC9B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE;gBACnD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAC7C,OAAO,EAAE,gCAAgC;wBACzC,IAAI,EAAE,uBAAuB;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC;gBAC7B,OAAO,EAAE,8BAA8B;gBACvC,IAAI,EAAE,yBAAyB;aAChC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAChD,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC;wBAClC,OAAO,EAAE,wCAAwC;wBACjD,IAAI,EAAE,yBAAyB;qBAChC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,2CAA2C;oBAC3C,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;oBACjD,MAAM,CAAC,IAAI,CACT,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACvC,GAAG,KAAK;wBACR,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;qBAClD,CAAC,CAAC,CACJ,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,MAAW;IAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|