schemantic 0.1.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/CHANGELOG.md +92 -0
- package/LICENSE +21 -0
- package/README.md +827 -0
- package/dist/__tests__/setup.d.ts +6 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +30 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/__tests__/test-config.d.ts +36 -0
- package/dist/__tests__/test-config.d.ts.map +1 -0
- package/dist/__tests__/test-config.js +563 -0
- package/dist/__tests__/test-config.js.map +1 -0
- package/dist/cli/index.d.ts +118 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +657 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +21 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/schemantic.d.ts +95 -0
- package/dist/core/schemantic.d.ts.map +1 -0
- package/dist/core/schemantic.js +543 -0
- package/dist/core/schemantic.js.map +1 -0
- package/dist/generators/api-client-generator.d.ts +145 -0
- package/dist/generators/api-client-generator.d.ts.map +1 -0
- package/dist/generators/api-client-generator.js +856 -0
- package/dist/generators/api-client-generator.js.map +1 -0
- package/dist/generators/base.d.ts +117 -0
- package/dist/generators/base.d.ts.map +1 -0
- package/dist/generators/base.js +232 -0
- package/dist/generators/base.js.map +1 -0
- package/dist/generators/enum-generator.d.ts +52 -0
- package/dist/generators/enum-generator.d.ts.map +1 -0
- package/dist/generators/enum-generator.js +178 -0
- package/dist/generators/enum-generator.js.map +1 -0
- package/dist/generators/factory.d.ts +59 -0
- package/dist/generators/factory.d.ts.map +1 -0
- package/dist/generators/factory.js +127 -0
- package/dist/generators/factory.js.map +1 -0
- package/dist/generators/hook-generator.d.ts +36 -0
- package/dist/generators/hook-generator.d.ts.map +1 -0
- package/dist/generators/hook-generator.js +495 -0
- package/dist/generators/hook-generator.js.map +1 -0
- package/dist/generators/index.d.ts +10 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +26 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/object-generator.d.ts +48 -0
- package/dist/generators/object-generator.d.ts.map +1 -0
- package/dist/generators/object-generator.js +280 -0
- package/dist/generators/object-generator.js.map +1 -0
- package/dist/generators/primitive-generator.d.ts +40 -0
- package/dist/generators/primitive-generator.d.ts.map +1 -0
- package/dist/generators/primitive-generator.js +150 -0
- package/dist/generators/primitive-generator.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/base.d.ts +101 -0
- package/dist/parsers/base.d.ts.map +1 -0
- package/dist/parsers/base.js +77 -0
- package/dist/parsers/base.js.map +1 -0
- package/dist/parsers/factory.d.ts +64 -0
- package/dist/parsers/factory.d.ts.map +1 -0
- package/dist/parsers/factory.js +116 -0
- package/dist/parsers/factory.js.map +1 -0
- package/dist/parsers/index.d.ts +7 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +23 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/openapi.d.ts +52 -0
- package/dist/parsers/openapi.d.ts.map +1 -0
- package/dist/parsers/openapi.js +396 -0
- package/dist/parsers/openapi.js.map +1 -0
- package/dist/plugins/branded-types.d.ts +28 -0
- package/dist/plugins/branded-types.d.ts.map +1 -0
- package/dist/plugins/branded-types.js +568 -0
- package/dist/plugins/branded-types.js.map +1 -0
- package/dist/plugins/builtin.d.ts +38 -0
- package/dist/plugins/builtin.d.ts.map +1 -0
- package/dist/plugins/builtin.js +283 -0
- package/dist/plugins/builtin.js.map +1 -0
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +23 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/loader.d.ts +92 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +245 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +99 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +233 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/performance-monitoring.d.ts +98 -0
- package/dist/plugins/performance-monitoring.d.ts.map +1 -0
- package/dist/plugins/performance-monitoring.js +596 -0
- package/dist/plugins/performance-monitoring.js.map +1 -0
- package/dist/plugins/request-deduplication.d.ts +27 -0
- package/dist/plugins/request-deduplication.d.ts.map +1 -0
- package/dist/plugins/request-deduplication.js +650 -0
- package/dist/plugins/request-deduplication.js.map +1 -0
- package/dist/plugins/zod-validation.d.ts +63 -0
- package/dist/plugins/zod-validation.d.ts.map +1 -0
- package/dist/plugins/zod-validation.js +743 -0
- package/dist/plugins/zod-validation.js.map +1 -0
- package/dist/types/core.d.ts +203 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +24 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/openapi.d.ts +250 -0
- package/dist/types/openapi.d.ts.map +1 -0
- package/dist/types/openapi.js +8 -0
- package/dist/types/openapi.js.map +1 -0
- package/dist/types/schema.d.ts +68 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +22 -0
- package/dist/types/schema.js.map +1 -0
- package/docs/ADVANCED_PLUGINS_IMPLEMENTATION.md +355 -0
- package/docs/ADVANCED_PLUGIN_DEVELOPMENT.md +309 -0
- package/docs/API.md +600 -0
- package/docs/CONFIGURATION.md +722 -0
- package/docs/FASTAPI_TUTORIAL.md +1497 -0
- package/docs/PLUGINS.md +683 -0
- package/docs/PLUGIN_DEVELOPMENT.md +720 -0
- package/package.json +90 -0
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenAPI 3.0+ schema parser implementation
|
|
4
|
+
* Handles parsing and validation of OpenAPI specifications from FastAPI applications
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.OpenAPIParser = void 0;
|
|
44
|
+
const fs = __importStar(require("fs/promises"));
|
|
45
|
+
// Removed unused path import
|
|
46
|
+
const axios_1 = __importDefault(require("axios"));
|
|
47
|
+
const base_1 = require("./base");
|
|
48
|
+
/**
|
|
49
|
+
* OpenAPI parser implementation
|
|
50
|
+
*/
|
|
51
|
+
class OpenAPIParser extends base_1.BaseSchemaParser {
|
|
52
|
+
constructor(config) {
|
|
53
|
+
super(config);
|
|
54
|
+
this.SUPPORTED_VERSIONS = [
|
|
55
|
+
"3.0.0",
|
|
56
|
+
"3.0.1",
|
|
57
|
+
"3.0.2",
|
|
58
|
+
"3.0.3",
|
|
59
|
+
"3.1.0",
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
async parse(input) {
|
|
63
|
+
let schemaData;
|
|
64
|
+
if (input.data) {
|
|
65
|
+
schemaData = input.data;
|
|
66
|
+
}
|
|
67
|
+
else if (input.string) {
|
|
68
|
+
schemaData = JSON.parse(input.string);
|
|
69
|
+
}
|
|
70
|
+
else if (input.filePath) {
|
|
71
|
+
const fileContent = await fs.readFile(input.filePath, "utf-8");
|
|
72
|
+
schemaData = JSON.parse(fileContent);
|
|
73
|
+
}
|
|
74
|
+
else if (input.url) {
|
|
75
|
+
const response = await axios_1.default.get(input.url, {
|
|
76
|
+
headers: {
|
|
77
|
+
Accept: "application/json",
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
schemaData = response.data;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
throw new Error("No valid input source provided");
|
|
84
|
+
}
|
|
85
|
+
return this.validateAndTransform(schemaData);
|
|
86
|
+
}
|
|
87
|
+
async validate(schema) {
|
|
88
|
+
const errors = [];
|
|
89
|
+
const warnings = [];
|
|
90
|
+
// Validate OpenAPI version
|
|
91
|
+
if (!this.SUPPORTED_VERSIONS.includes(schema.openapi)) {
|
|
92
|
+
errors.push({
|
|
93
|
+
code: "UNSUPPORTED_VERSION",
|
|
94
|
+
message: `Unsupported OpenAPI version: ${schema.openapi}`,
|
|
95
|
+
path: "openapi",
|
|
96
|
+
severity: "error",
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
// Validate required fields
|
|
100
|
+
if (!schema.info) {
|
|
101
|
+
errors.push({
|
|
102
|
+
code: "MISSING_REQUIRED_FIELD",
|
|
103
|
+
message: "Missing required field: info",
|
|
104
|
+
path: "info",
|
|
105
|
+
severity: "error",
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if (!schema.paths) {
|
|
109
|
+
errors.push({
|
|
110
|
+
code: "MISSING_REQUIRED_FIELD",
|
|
111
|
+
message: "Missing required field: paths",
|
|
112
|
+
path: "paths",
|
|
113
|
+
severity: "error",
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
// Validate info object
|
|
117
|
+
if (schema.info) {
|
|
118
|
+
if (!schema.info.title) {
|
|
119
|
+
errors.push({
|
|
120
|
+
code: "MISSING_REQUIRED_FIELD",
|
|
121
|
+
message: "Missing required field: info.title",
|
|
122
|
+
path: "info.title",
|
|
123
|
+
severity: "error",
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
if (!schema.info.version) {
|
|
127
|
+
errors.push({
|
|
128
|
+
code: "MISSING_REQUIRED_FIELD",
|
|
129
|
+
message: "Missing required field: info.version",
|
|
130
|
+
path: "info.version",
|
|
131
|
+
severity: "error",
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Validate paths
|
|
136
|
+
if (schema.paths) {
|
|
137
|
+
this.validatePaths(schema.paths, errors, warnings);
|
|
138
|
+
}
|
|
139
|
+
// Validate components
|
|
140
|
+
if (schema.components) {
|
|
141
|
+
this.validateComponents(schema.components, errors, warnings);
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
isValid: errors.length === 0,
|
|
145
|
+
errors,
|
|
146
|
+
warnings,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
createResolver(schema) {
|
|
150
|
+
return (ref) => {
|
|
151
|
+
return this.resolveReference(ref, schema);
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
getMetadata() {
|
|
155
|
+
return {
|
|
156
|
+
name: "OpenAPI Parser",
|
|
157
|
+
version: "1.0.0",
|
|
158
|
+
supportedFormats: ["json", "yaml"],
|
|
159
|
+
supportedVersions: this.SUPPORTED_VERSIONS,
|
|
160
|
+
description: "Parser for OpenAPI 3.0+ specifications from FastAPI applications",
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Validate and transform raw schema data
|
|
165
|
+
*/
|
|
166
|
+
validateAndTransform(data) {
|
|
167
|
+
if (typeof data !== "object" || data === null) {
|
|
168
|
+
throw new Error("Invalid schema data: expected object");
|
|
169
|
+
}
|
|
170
|
+
const schema = data;
|
|
171
|
+
// Ensure required fields exist
|
|
172
|
+
if (!schema.openapi || typeof schema.openapi !== "string") {
|
|
173
|
+
throw new Error("Invalid schema: missing or invalid openapi field");
|
|
174
|
+
}
|
|
175
|
+
if (!schema.info || typeof schema.info !== "object") {
|
|
176
|
+
throw new Error("Invalid schema: missing or invalid info field");
|
|
177
|
+
}
|
|
178
|
+
if (!schema.paths || typeof schema.paths !== "object") {
|
|
179
|
+
throw new Error("Invalid schema: missing or invalid paths field");
|
|
180
|
+
}
|
|
181
|
+
return schema;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Validate paths object
|
|
185
|
+
*/
|
|
186
|
+
validatePaths(paths, errors, warnings) {
|
|
187
|
+
for (const [pathKey, pathItem] of Object.entries(paths)) {
|
|
188
|
+
if (!pathItem || typeof pathItem !== "object") {
|
|
189
|
+
errors.push({
|
|
190
|
+
code: "INVALID_PATH_ITEM",
|
|
191
|
+
message: `Invalid path item for path: ${pathKey}`,
|
|
192
|
+
path: `paths.${pathKey}`,
|
|
193
|
+
severity: "error",
|
|
194
|
+
});
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
// Validate path parameters
|
|
198
|
+
if (pathItem.parameters) {
|
|
199
|
+
this.validateParameters(pathItem.parameters, `paths.${pathKey}.parameters`, errors, warnings);
|
|
200
|
+
}
|
|
201
|
+
// Validate operations
|
|
202
|
+
const operations = [
|
|
203
|
+
"get",
|
|
204
|
+
"put",
|
|
205
|
+
"post",
|
|
206
|
+
"delete",
|
|
207
|
+
"options",
|
|
208
|
+
"head",
|
|
209
|
+
"patch",
|
|
210
|
+
"trace",
|
|
211
|
+
];
|
|
212
|
+
for (const operation of operations) {
|
|
213
|
+
if (pathItem[operation]) {
|
|
214
|
+
this.validateOperation(pathItem[operation], `paths.${pathKey}.${operation}`, errors, warnings);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Validate operation object
|
|
221
|
+
*/
|
|
222
|
+
validateOperation(operation, path, errors, _warnings) {
|
|
223
|
+
// Validate operationId
|
|
224
|
+
if (!operation.operationId) {
|
|
225
|
+
_warnings.push({
|
|
226
|
+
code: "MISSING_OPERATION_ID",
|
|
227
|
+
message: "Operation missing operationId - will generate automatically",
|
|
228
|
+
path: `${path}.operationId`,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
// Validate parameters
|
|
232
|
+
if (operation.parameters) {
|
|
233
|
+
this.validateParameters(operation.parameters, `${path}.parameters`, errors, _warnings);
|
|
234
|
+
}
|
|
235
|
+
// Validate requestBody
|
|
236
|
+
if (operation.requestBody &&
|
|
237
|
+
typeof operation.requestBody === "object" &&
|
|
238
|
+
!("$ref" in operation.requestBody)) {
|
|
239
|
+
if (!operation.requestBody.content) {
|
|
240
|
+
errors.push({
|
|
241
|
+
code: "MISSING_REQUEST_BODY_CONTENT",
|
|
242
|
+
message: "Request body missing content",
|
|
243
|
+
path: `${path}.requestBody.content`,
|
|
244
|
+
severity: "error",
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Validate responses
|
|
249
|
+
if (!operation.responses || Object.keys(operation.responses).length === 0) {
|
|
250
|
+
errors.push({
|
|
251
|
+
code: "MISSING_RESPONSES",
|
|
252
|
+
message: "Operation missing responses",
|
|
253
|
+
path: `${path}.responses`,
|
|
254
|
+
severity: "error",
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Validate parameters array
|
|
260
|
+
*/
|
|
261
|
+
validateParameters(parameters, path, errors, _warnings) {
|
|
262
|
+
if (!Array.isArray(parameters)) {
|
|
263
|
+
errors.push({
|
|
264
|
+
code: "INVALID_PARAMETERS",
|
|
265
|
+
message: "Parameters must be an array",
|
|
266
|
+
path,
|
|
267
|
+
severity: "error",
|
|
268
|
+
});
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
for (let i = 0; i < parameters.length; i++) {
|
|
272
|
+
const param = parameters[i];
|
|
273
|
+
if (typeof param !== "object" || param === null) {
|
|
274
|
+
errors.push({
|
|
275
|
+
code: "INVALID_PARAMETER",
|
|
276
|
+
message: `Invalid parameter at index ${i}`,
|
|
277
|
+
path: `${path}[${i}]`,
|
|
278
|
+
severity: "error",
|
|
279
|
+
});
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
// Skip $ref parameters
|
|
283
|
+
if ("$ref" in param) {
|
|
284
|
+
continue;
|
|
285
|
+
}
|
|
286
|
+
const concreteParam = param;
|
|
287
|
+
if (!concreteParam.name) {
|
|
288
|
+
errors.push({
|
|
289
|
+
code: "MISSING_PARAMETER_NAME",
|
|
290
|
+
message: `Parameter missing name at index ${i}`,
|
|
291
|
+
path: `${path}[${i}].name`,
|
|
292
|
+
severity: "error",
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
if (!concreteParam.in) {
|
|
296
|
+
errors.push({
|
|
297
|
+
code: "MISSING_PARAMETER_LOCATION",
|
|
298
|
+
message: `Parameter missing 'in' field at index ${i}`,
|
|
299
|
+
path: `${path}[${i}].in`,
|
|
300
|
+
severity: "error",
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Validate components object
|
|
307
|
+
*/
|
|
308
|
+
validateComponents(components, errors, _warnings) {
|
|
309
|
+
// Validate schemas
|
|
310
|
+
if (components.schemas) {
|
|
311
|
+
this.validateSchemas(components.schemas, "components.schemas", errors, _warnings);
|
|
312
|
+
}
|
|
313
|
+
// Validate other component types
|
|
314
|
+
const componentTypes = [
|
|
315
|
+
"responses",
|
|
316
|
+
"parameters",
|
|
317
|
+
"examples",
|
|
318
|
+
"requestBodies",
|
|
319
|
+
"headers",
|
|
320
|
+
"securitySchemes",
|
|
321
|
+
"links",
|
|
322
|
+
"callbacks",
|
|
323
|
+
];
|
|
324
|
+
for (const componentType of componentTypes) {
|
|
325
|
+
const value = components[componentType];
|
|
326
|
+
if (value) {
|
|
327
|
+
this.validateComponentType(value, `components.${String(componentType)}`, errors, _warnings);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Validate schemas object
|
|
333
|
+
*/
|
|
334
|
+
validateSchemas(schemas, path, errors, _warnings) {
|
|
335
|
+
for (const [schemaName, schema] of Object.entries(schemas)) {
|
|
336
|
+
if (typeof schema !== "object" || schema === null) {
|
|
337
|
+
errors.push({
|
|
338
|
+
code: "INVALID_SCHEMA",
|
|
339
|
+
message: `Invalid schema: ${schemaName}`,
|
|
340
|
+
path: `${path}.${schemaName}`,
|
|
341
|
+
severity: "error",
|
|
342
|
+
});
|
|
343
|
+
continue;
|
|
344
|
+
}
|
|
345
|
+
// Skip $ref schemas
|
|
346
|
+
if ("$ref" in schema) {
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
// Check for circular references
|
|
350
|
+
if (this.hasCircularReference(schema, new Set())) {
|
|
351
|
+
_warnings.push({
|
|
352
|
+
code: "CIRCULAR_REFERENCE",
|
|
353
|
+
message: `Potential circular reference in schema: ${schemaName}`,
|
|
354
|
+
path: `${path}.${schemaName}`,
|
|
355
|
+
suggestion: "Consider using $ref for circular references",
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Validate component type object
|
|
362
|
+
*/
|
|
363
|
+
validateComponentType(componentType, path, errors, _warnings) {
|
|
364
|
+
for (const [componentName, component] of Object.entries(componentType)) {
|
|
365
|
+
if (typeof component !== "object" || component === null) {
|
|
366
|
+
errors.push({
|
|
367
|
+
code: "INVALID_COMPONENT",
|
|
368
|
+
message: `Invalid component: ${componentName}`,
|
|
369
|
+
path: `${path}.${componentName}`,
|
|
370
|
+
severity: "error",
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Check for circular references in schema
|
|
377
|
+
*/
|
|
378
|
+
hasCircularReference(obj, visited) {
|
|
379
|
+
if (typeof obj !== "object" || obj === null) {
|
|
380
|
+
return false;
|
|
381
|
+
}
|
|
382
|
+
const objStr = JSON.stringify(obj);
|
|
383
|
+
if (visited.has(objStr)) {
|
|
384
|
+
return true;
|
|
385
|
+
}
|
|
386
|
+
visited.add(objStr);
|
|
387
|
+
for (const value of Object.values(obj)) {
|
|
388
|
+
if (this.hasCircularReference(value, new Set(visited))) {
|
|
389
|
+
return true;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
return false;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
exports.OpenAPIParser = OpenAPIParser;
|
|
396
|
+
//# sourceMappingURL=openapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/parsers/openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advanced Branded Types Plugin
|
|
3
|
+
*
|
|
4
|
+
* Implements sophisticated branded types for compile-time safety guarantees,
|
|
5
|
+
* phantom type parameters for state management, and discriminated unions with
|
|
6
|
+
* runtime type guards for enhanced type system capabilities.
|
|
7
|
+
*
|
|
8
|
+
* Key Features:
|
|
9
|
+
* - Branded types for compile-time safety (prevents primitive obsession)
|
|
10
|
+
* - Phantom type parameters for authentication state management
|
|
11
|
+
* - Discriminated unions with exhaustive type checking
|
|
12
|
+
* - Runtime type guards with brand preservation
|
|
13
|
+
* - Type-level computations for advanced validations
|
|
14
|
+
* - Nominal typing simulation in TypeScript's structural system
|
|
15
|
+
*
|
|
16
|
+
* Architecture:
|
|
17
|
+
* - Zero-runtime-cost type safety through brands
|
|
18
|
+
* - Compile-time state tracking via phantom types
|
|
19
|
+
* - Type-level programming for validation pipelines
|
|
20
|
+
* - Integration with existing validation systems
|
|
21
|
+
*/
|
|
22
|
+
import { SchemanticPlugin } from "../types/core";
|
|
23
|
+
/**
|
|
24
|
+
* Advanced Branded Types Plugin Implementation
|
|
25
|
+
*/
|
|
26
|
+
export declare const brandedTypesPlugin: SchemanticPlugin;
|
|
27
|
+
export default brandedTypesPlugin;
|
|
28
|
+
//# sourceMappingURL=branded-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branded-types.d.ts","sourceRoot":"","sources":["../../src/plugins/branded-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,gBAAgB,EAIjB,MAAM,eAAe,CAAC;AAiCvB;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBA+IhC,CAAC;AA8gBF,eAAe,kBAAkB,CAAC"}
|