codeguardian-mcp 1.1.7 → 1.1.9
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/dist/agent/autoValidator.d.ts +7 -0
- package/dist/agent/autoValidator.d.ts.map +1 -1
- package/dist/agent/autoValidator.js +29 -6
- package/dist/agent/autoValidator.js.map +1 -1
- package/dist/api-contract/detector.d.ts.map +1 -1
- package/dist/api-contract/detector.js +107 -9
- package/dist/api-contract/detector.js.map +1 -1
- package/dist/api-contract/extractors/tsAstUtils.d.ts.map +1 -1
- package/dist/api-contract/extractors/tsAstUtils.js +34 -9
- package/dist/api-contract/extractors/tsAstUtils.js.map +1 -1
- package/dist/api-contract/validators/index.d.ts.map +1 -1
- package/dist/api-contract/validators/index.js +451 -0
- package/dist/api-contract/validators/index.js.map +1 -1
- package/dist/context/apiContractContext.js +64 -25
- package/dist/context/apiContractContext.js.map +1 -1
- package/dist/context/projectContext.d.ts.map +1 -1
- package/dist/context/projectContext.js +9 -0
- package/dist/context/projectContext.js.map +1 -1
- package/dist/tools/validation/validation.d.ts.map +1 -1
- package/dist/tools/validation/validation.js +93 -2
- package/dist/tools/validation/validation.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @format
|
|
8
8
|
*/
|
|
9
|
+
import * as fsSync from "fs";
|
|
10
|
+
import { getParser } from "../../tools/validation/parser.js";
|
|
9
11
|
// ============================================================================
|
|
10
12
|
// Main Validation Function
|
|
11
13
|
// ============================================================================
|
|
@@ -289,8 +291,457 @@ function validateRequestResponseTypes(mapping, apiContract, endpoint) {
|
|
|
289
291
|
// Validate query parameters
|
|
290
292
|
const queryParamIssues = validateQueryParameters(mapping, endpoint);
|
|
291
293
|
issues.push(...queryParamIssues);
|
|
294
|
+
// Validate inline request/response field usage when types/models are missing.
|
|
295
|
+
// This catches common vibecoding errors like `data.username` when backend returns `name`.
|
|
296
|
+
issues.push(...validateInlineRequestResponseFields(mapping, endpoint));
|
|
292
297
|
return issues;
|
|
293
298
|
}
|
|
299
|
+
function validateInlineRequestResponseFields(mapping, endpoint) {
|
|
300
|
+
const issues = [];
|
|
301
|
+
const frontendFile = mapping?.frontend?.file;
|
|
302
|
+
const backendFile = mapping?.backend?.file;
|
|
303
|
+
const method = mapping?.backend?.method || mapping?.frontend?.method;
|
|
304
|
+
const backendPath = mapping?.backend?.path;
|
|
305
|
+
if (!frontendFile || !backendFile || !method || !backendPath)
|
|
306
|
+
return issues;
|
|
307
|
+
if (!fsSync.existsSync(frontendFile) || !fsSync.existsSync(backendFile))
|
|
308
|
+
return issues;
|
|
309
|
+
let feContent = "";
|
|
310
|
+
let beContent = "";
|
|
311
|
+
try {
|
|
312
|
+
feContent = fsSync.readFileSync(frontendFile, "utf-8");
|
|
313
|
+
beContent = fsSync.readFileSync(backendFile, "utf-8");
|
|
314
|
+
}
|
|
315
|
+
catch {
|
|
316
|
+
return issues;
|
|
317
|
+
}
|
|
318
|
+
// Best-effort TypeScript parsing. If parsers aren't ready, skip instead of failing the whole run.
|
|
319
|
+
let feTree;
|
|
320
|
+
let beTree;
|
|
321
|
+
try {
|
|
322
|
+
feTree = getParser("typescript").parse(feContent);
|
|
323
|
+
beTree = getParser("typescript").parse(beContent);
|
|
324
|
+
}
|
|
325
|
+
catch {
|
|
326
|
+
return issues;
|
|
327
|
+
}
|
|
328
|
+
const frontendFnName = mapping?.frontend?.name;
|
|
329
|
+
const feFnNode = frontendFnName ? findFunctionLikeByName(feTree.rootNode, feContent, frontendFnName) : null;
|
|
330
|
+
const feResponseFields = feFnNode ? extractResponseFieldsUsed(feFnNode, feContent) : new Set();
|
|
331
|
+
const feRequestFields = feFnNode ? extractRequestBodyFieldsUsed(feFnNode, feContent) : new Set();
|
|
332
|
+
const beRouteNode = findExpressRouteHandler(beTree.rootNode, beContent, method, backendPath);
|
|
333
|
+
const beResponseFields = beRouteNode ? extractBackendResponseFields(beRouteNode, beContent) : new Set();
|
|
334
|
+
const beRequestFields = beRouteNode ? extractBackendRequestFields(beRouteNode, beContent) : new Set();
|
|
335
|
+
// Response field mismatches
|
|
336
|
+
if (feResponseFields.size > 0 && beResponseFields.size > 0) {
|
|
337
|
+
for (const field of feResponseFields) {
|
|
338
|
+
if (!beResponseFields.has(field)) {
|
|
339
|
+
issues.push({
|
|
340
|
+
type: "apiMissingRequiredField",
|
|
341
|
+
severity: "high",
|
|
342
|
+
message: `Response field mismatch: frontend uses '${field}', but backend response for ${method.toUpperCase()} ${backendPath} does not include it`,
|
|
343
|
+
file: frontendFile,
|
|
344
|
+
line: mapping.frontend.line,
|
|
345
|
+
endpoint,
|
|
346
|
+
suggestion: `Update frontend to use one of: ${Array.from(beResponseFields).sort().join(", ")}`,
|
|
347
|
+
confidence: 80,
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
// Request body extra fields
|
|
353
|
+
if (feRequestFields.size > 0 && beRequestFields.size > 0) {
|
|
354
|
+
for (const field of feRequestFields) {
|
|
355
|
+
if (!beRequestFields.has(field)) {
|
|
356
|
+
issues.push({
|
|
357
|
+
type: "apiExtraField",
|
|
358
|
+
severity: "medium",
|
|
359
|
+
message: `Request field mismatch: frontend sends '${field}', but backend handler for ${method.toUpperCase()} ${backendPath} does not read/expect it`,
|
|
360
|
+
file: frontendFile,
|
|
361
|
+
line: mapping.frontend.line,
|
|
362
|
+
endpoint,
|
|
363
|
+
suggestion: `Remove '${field}' from request payload or update backend to accept it`,
|
|
364
|
+
confidence: 75,
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
return issues;
|
|
370
|
+
}
|
|
371
|
+
function findFunctionLikeByName(root, content, name) {
|
|
372
|
+
let found = null;
|
|
373
|
+
const target = name.trim();
|
|
374
|
+
const visit = (node) => {
|
|
375
|
+
if (!node || found)
|
|
376
|
+
return;
|
|
377
|
+
if (node.type === "function_declaration") {
|
|
378
|
+
const nameNode = node.childForFieldName?.("name");
|
|
379
|
+
if (nameNode && content.slice(nameNode.startIndex, nameNode.endIndex) === target) {
|
|
380
|
+
found = node;
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
// const foo = async (...) => {}
|
|
385
|
+
if (node.type === "variable_declarator") {
|
|
386
|
+
const nameNode = node.childForFieldName?.("name");
|
|
387
|
+
const valueNode = node.childForFieldName?.("value");
|
|
388
|
+
const nodeName = nameNode ? content.slice(nameNode.startIndex, nameNode.endIndex) : "";
|
|
389
|
+
if (nodeName === target && (valueNode?.type === "arrow_function" || valueNode?.type === "function")) {
|
|
390
|
+
found = valueNode;
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
// { getUser: async (...) => {} }
|
|
395
|
+
if (node.type === "pair") {
|
|
396
|
+
const keyNode = node.childForFieldName?.("key");
|
|
397
|
+
const valueNode = node.childForFieldName?.("value");
|
|
398
|
+
if (keyNode && valueNode && (valueNode.type === "arrow_function" || valueNode.type === "function")) {
|
|
399
|
+
const keyText = content
|
|
400
|
+
.slice(keyNode.startIndex, keyNode.endIndex)
|
|
401
|
+
.replace(/^['"`]/, "")
|
|
402
|
+
.replace(/['"`]$/, "");
|
|
403
|
+
if (keyText === target) {
|
|
404
|
+
found = valueNode;
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
// { async getUser(...) { ... } }
|
|
410
|
+
if (node.type === "method_definition") {
|
|
411
|
+
const nameNode = node.childForFieldName?.("name");
|
|
412
|
+
if (nameNode) {
|
|
413
|
+
const nodeName = content
|
|
414
|
+
.slice(nameNode.startIndex, nameNode.endIndex)
|
|
415
|
+
.replace(/^['"`]/, "")
|
|
416
|
+
.replace(/['"`]$/, "");
|
|
417
|
+
if (nodeName === target) {
|
|
418
|
+
found = node;
|
|
419
|
+
return;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
for (const child of node.children || [])
|
|
424
|
+
visit(child);
|
|
425
|
+
};
|
|
426
|
+
visit(root);
|
|
427
|
+
return found;
|
|
428
|
+
}
|
|
429
|
+
function extractResponseFieldsUsed(functionNode, content) {
|
|
430
|
+
const fields = new Set();
|
|
431
|
+
const jsonVars = new Set();
|
|
432
|
+
const visit = (node) => {
|
|
433
|
+
if (!node)
|
|
434
|
+
return;
|
|
435
|
+
// const data = await response.json()
|
|
436
|
+
if (node.type === "variable_declarator") {
|
|
437
|
+
const nameNode = node.childForFieldName?.("name");
|
|
438
|
+
const valueNode = node.childForFieldName?.("value");
|
|
439
|
+
if (nameNode && valueNode) {
|
|
440
|
+
const varName = content.slice(nameNode.startIndex, nameNode.endIndex);
|
|
441
|
+
if (isAwaitedJsonCall(valueNode, content)) {
|
|
442
|
+
jsonVars.add(varName);
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
// data.username
|
|
447
|
+
if (node.type === "member_expression") {
|
|
448
|
+
const objectNode = node.childForFieldName?.("object");
|
|
449
|
+
const propertyNode = node.childForFieldName?.("property");
|
|
450
|
+
if (objectNode?.type === "identifier" && propertyNode?.type === "property_identifier") {
|
|
451
|
+
const obj = content.slice(objectNode.startIndex, objectNode.endIndex);
|
|
452
|
+
const prop = content.slice(propertyNode.startIndex, propertyNode.endIndex);
|
|
453
|
+
if (jsonVars.has(obj))
|
|
454
|
+
fields.add(prop);
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
for (const child of node.children || [])
|
|
458
|
+
visit(child);
|
|
459
|
+
};
|
|
460
|
+
visit(functionNode);
|
|
461
|
+
return fields;
|
|
462
|
+
}
|
|
463
|
+
function isAwaitedJsonCall(node, content) {
|
|
464
|
+
const awaited = node.type === "await_expression"
|
|
465
|
+
? node.childForFieldName?.("argument") ||
|
|
466
|
+
node.childForFieldName?.("expression") ||
|
|
467
|
+
(node.namedChildren ? node.namedChildren[0] : null)
|
|
468
|
+
: node;
|
|
469
|
+
const n = awaited;
|
|
470
|
+
if (!n || n.type !== "call_expression")
|
|
471
|
+
return false;
|
|
472
|
+
const fn = n.childForFieldName?.("function");
|
|
473
|
+
if (!fn || fn.type !== "member_expression")
|
|
474
|
+
return false;
|
|
475
|
+
const prop = fn.childForFieldName?.("property");
|
|
476
|
+
if (!prop)
|
|
477
|
+
return false;
|
|
478
|
+
const propText = content.slice(prop.startIndex, prop.endIndex);
|
|
479
|
+
return propText === "json";
|
|
480
|
+
}
|
|
481
|
+
function extractRequestBodyFieldsUsed(functionNode, content) {
|
|
482
|
+
const fields = new Set();
|
|
483
|
+
// Find request body identifier used in `body: JSON.stringify(x)`.
|
|
484
|
+
const bodyVars = new Set();
|
|
485
|
+
const visit = (node) => {
|
|
486
|
+
if (!node)
|
|
487
|
+
return;
|
|
488
|
+
if (node.type === "call_expression") {
|
|
489
|
+
const fn = node.childForFieldName?.("function");
|
|
490
|
+
const args = node.childForFieldName?.("arguments");
|
|
491
|
+
if (fn?.type === "identifier" && content.slice(fn.startIndex, fn.endIndex) === "fetch" && args) {
|
|
492
|
+
// Find an object arg that contains `body:`
|
|
493
|
+
for (const child of args.children || []) {
|
|
494
|
+
if (child.type !== "object")
|
|
495
|
+
continue;
|
|
496
|
+
for (const pair of child.children || []) {
|
|
497
|
+
if (pair.type !== "pair")
|
|
498
|
+
continue;
|
|
499
|
+
const keyNode = pair.childForFieldName?.("key");
|
|
500
|
+
const valNode = pair.childForFieldName?.("value");
|
|
501
|
+
if (!keyNode || !valNode)
|
|
502
|
+
continue;
|
|
503
|
+
const keyText = content.slice(keyNode.startIndex, keyNode.endIndex);
|
|
504
|
+
if (keyText !== "body")
|
|
505
|
+
continue;
|
|
506
|
+
const id = extractJsonStringifyIdentifier(valNode, content);
|
|
507
|
+
if (id)
|
|
508
|
+
bodyVars.add(id);
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
for (const child of node.children || [])
|
|
514
|
+
visit(child);
|
|
515
|
+
};
|
|
516
|
+
visit(functionNode);
|
|
517
|
+
if (bodyVars.size === 0)
|
|
518
|
+
return fields;
|
|
519
|
+
// If body var is a function parameter with an inline object type, extract fields from its type literal.
|
|
520
|
+
const paramsNode = functionNode.childForFieldName?.("parameters");
|
|
521
|
+
if (!paramsNode)
|
|
522
|
+
return fields;
|
|
523
|
+
for (const param of paramsNode.children || []) {
|
|
524
|
+
const nameNode = param.childForFieldName?.("pattern") ||
|
|
525
|
+
param.childForFieldName?.("name") ||
|
|
526
|
+
(param.namedChildren ? param.namedChildren.find((c) => c.type === "identifier") : null);
|
|
527
|
+
if (!nameNode)
|
|
528
|
+
continue;
|
|
529
|
+
const paramName = content.slice(nameNode.startIndex, nameNode.endIndex);
|
|
530
|
+
if (!bodyVars.has(paramName))
|
|
531
|
+
continue;
|
|
532
|
+
const typeNode = param.childForFieldName?.("type") ||
|
|
533
|
+
(param.namedChildren ? param.namedChildren.find((c) => c.type === "type_annotation") : null);
|
|
534
|
+
if (!typeNode)
|
|
535
|
+
continue;
|
|
536
|
+
const astKeys = extractKeysFromInlineObjectTypeNode(typeNode, content);
|
|
537
|
+
if (astKeys.length > 0) {
|
|
538
|
+
for (const key of astKeys)
|
|
539
|
+
fields.add(key);
|
|
540
|
+
}
|
|
541
|
+
else {
|
|
542
|
+
const typeText = content.slice(typeNode.startIndex, typeNode.endIndex);
|
|
543
|
+
for (const key of extractKeysFromInlineObjectType(typeText))
|
|
544
|
+
fields.add(key);
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
return fields;
|
|
548
|
+
}
|
|
549
|
+
function extractKeysFromInlineObjectTypeNode(typeNode, content) {
|
|
550
|
+
const keys = [];
|
|
551
|
+
let objectType = null;
|
|
552
|
+
const findObjectType = (node) => {
|
|
553
|
+
if (!node || objectType)
|
|
554
|
+
return;
|
|
555
|
+
if (node.type === "object_type") {
|
|
556
|
+
objectType = node;
|
|
557
|
+
return;
|
|
558
|
+
}
|
|
559
|
+
for (const child of node.children || [])
|
|
560
|
+
findObjectType(child);
|
|
561
|
+
};
|
|
562
|
+
findObjectType(typeNode);
|
|
563
|
+
if (!objectType)
|
|
564
|
+
return keys;
|
|
565
|
+
for (const child of objectType.children || []) {
|
|
566
|
+
if (child.type !== "property_signature")
|
|
567
|
+
continue;
|
|
568
|
+
const nameNode = child.childForFieldName?.("name") ||
|
|
569
|
+
(child.namedChildren ? child.namedChildren.find((c) => c.type === "property_identifier" || c.type === "identifier" || c.type === "string") : null);
|
|
570
|
+
if (!nameNode)
|
|
571
|
+
continue;
|
|
572
|
+
const raw = content.slice(nameNode.startIndex, nameNode.endIndex);
|
|
573
|
+
const cleaned = raw.replace(/^['"`]/, "").replace(/['"`]$/, "");
|
|
574
|
+
if (cleaned)
|
|
575
|
+
keys.push(cleaned);
|
|
576
|
+
}
|
|
577
|
+
return keys;
|
|
578
|
+
}
|
|
579
|
+
function extractJsonStringifyIdentifier(node, content) {
|
|
580
|
+
// JSON.stringify(userData)
|
|
581
|
+
if (node?.type !== "call_expression")
|
|
582
|
+
return null;
|
|
583
|
+
const fn = node.childForFieldName?.("function");
|
|
584
|
+
if (!fn || fn.type !== "member_expression")
|
|
585
|
+
return null;
|
|
586
|
+
const obj = fn.childForFieldName?.("object");
|
|
587
|
+
const prop = fn.childForFieldName?.("property");
|
|
588
|
+
if (!obj || !prop)
|
|
589
|
+
return null;
|
|
590
|
+
const objText = content.slice(obj.startIndex, obj.endIndex);
|
|
591
|
+
const propText = content.slice(prop.startIndex, prop.endIndex);
|
|
592
|
+
if (objText !== "JSON" || propText !== "stringify")
|
|
593
|
+
return null;
|
|
594
|
+
const args = node.childForFieldName?.("arguments");
|
|
595
|
+
if (!args)
|
|
596
|
+
return null;
|
|
597
|
+
const firstArg = (args.children || []).find((c) => c.type === "identifier");
|
|
598
|
+
if (!firstArg)
|
|
599
|
+
return null;
|
|
600
|
+
return content.slice(firstArg.startIndex, firstArg.endIndex);
|
|
601
|
+
}
|
|
602
|
+
function extractKeysFromInlineObjectType(typeText) {
|
|
603
|
+
// Very small heuristic parser for inline object types like:
|
|
604
|
+
// { name: string; email: string; phone: string; }
|
|
605
|
+
const keys = [];
|
|
606
|
+
let inside = typeText.trim();
|
|
607
|
+
// Tree-sitter may include a leading ':' in type annotations.
|
|
608
|
+
if (inside.startsWith(":"))
|
|
609
|
+
inside = inside.slice(1).trim();
|
|
610
|
+
if (!inside.startsWith("{") || !inside.endsWith("}"))
|
|
611
|
+
return keys;
|
|
612
|
+
const body = inside.slice(1, -1);
|
|
613
|
+
const re = /\b([A-Za-z_][A-Za-z0-9_]*)\s*\??\s*:/g;
|
|
614
|
+
let m;
|
|
615
|
+
while ((m = re.exec(body))) {
|
|
616
|
+
keys.push(m[1]);
|
|
617
|
+
}
|
|
618
|
+
return keys;
|
|
619
|
+
}
|
|
620
|
+
function findExpressRouteHandler(root, content, method, backendPath) {
|
|
621
|
+
let found = null;
|
|
622
|
+
const targetMethod = method.toLowerCase();
|
|
623
|
+
const targetPath = normalizePathForComparison(backendPath);
|
|
624
|
+
const visit = (node) => {
|
|
625
|
+
if (!node || found)
|
|
626
|
+
return;
|
|
627
|
+
if (node.type === "call_expression") {
|
|
628
|
+
const fn = node.childForFieldName?.("function");
|
|
629
|
+
const args = node.childForFieldName?.("arguments");
|
|
630
|
+
if (fn?.type === "member_expression" && args) {
|
|
631
|
+
const obj = fn.childForFieldName?.("object");
|
|
632
|
+
const prop = fn.childForFieldName?.("property");
|
|
633
|
+
const propText = prop ? content.slice(prop.startIndex, prop.endIndex).toLowerCase() : "";
|
|
634
|
+
if (propText === targetMethod && (obj?.type === "identifier")) {
|
|
635
|
+
const firstArg = (args.children || []).find((c) => c.type === "string" || c.type === "template_string");
|
|
636
|
+
if (firstArg && firstArg.type === "string") {
|
|
637
|
+
const raw = content.slice(firstArg.startIndex, firstArg.endIndex).trim().replace(/^['"`]/, "").replace(/['"`]$/, "");
|
|
638
|
+
if (normalizePathForComparison(raw) === targetPath) {
|
|
639
|
+
// Find the first function-like arg after the path
|
|
640
|
+
const fnArg = (args.children || []).find((c) => c.type === "arrow_function" || c.type === "function");
|
|
641
|
+
if (fnArg) {
|
|
642
|
+
found = fnArg;
|
|
643
|
+
return;
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
for (const child of node.children || [])
|
|
651
|
+
visit(child);
|
|
652
|
+
};
|
|
653
|
+
visit(root);
|
|
654
|
+
return found;
|
|
655
|
+
}
|
|
656
|
+
function extractBackendResponseFields(handlerFnNode, content) {
|
|
657
|
+
const fields = new Set();
|
|
658
|
+
const visit = (node) => {
|
|
659
|
+
if (!node)
|
|
660
|
+
return;
|
|
661
|
+
if (node.type === "call_expression") {
|
|
662
|
+
const fn = node.childForFieldName?.("function");
|
|
663
|
+
const args = node.childForFieldName?.("arguments");
|
|
664
|
+
if (fn?.type === "member_expression" && args) {
|
|
665
|
+
const obj = fn.childForFieldName?.("object");
|
|
666
|
+
const prop = fn.childForFieldName?.("property");
|
|
667
|
+
const objText = obj ? content.slice(obj.startIndex, obj.endIndex) : "";
|
|
668
|
+
const propText = prop ? content.slice(prop.startIndex, prop.endIndex) : "";
|
|
669
|
+
if (objText === "res" && propText === "json") {
|
|
670
|
+
const objArg = (args.children || []).find((c) => c.type === "object");
|
|
671
|
+
if (objArg) {
|
|
672
|
+
for (const child of objArg.children || []) {
|
|
673
|
+
if (child.type === "pair") {
|
|
674
|
+
const keyNode = child.childForFieldName?.("key");
|
|
675
|
+
if (!keyNode)
|
|
676
|
+
continue;
|
|
677
|
+
const keyText = content
|
|
678
|
+
.slice(keyNode.startIndex, keyNode.endIndex)
|
|
679
|
+
.replace(/^['"`]/, "")
|
|
680
|
+
.replace(/['"`]$/, "");
|
|
681
|
+
if (keyText)
|
|
682
|
+
fields.add(keyText);
|
|
683
|
+
}
|
|
684
|
+
// Shorthand properties: { name, email }
|
|
685
|
+
if (child.type === "shorthand_property_identifier" || child.type === "shorthand_property_identifier_pattern") {
|
|
686
|
+
const keyText = content.slice(child.startIndex, child.endIndex);
|
|
687
|
+
if (keyText)
|
|
688
|
+
fields.add(keyText);
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
for (const child of node.children || [])
|
|
696
|
+
visit(child);
|
|
697
|
+
};
|
|
698
|
+
visit(handlerFnNode);
|
|
699
|
+
return fields;
|
|
700
|
+
}
|
|
701
|
+
function extractBackendRequestFields(handlerFnNode, content) {
|
|
702
|
+
const fields = new Set();
|
|
703
|
+
const visit = (node) => {
|
|
704
|
+
if (!node)
|
|
705
|
+
return;
|
|
706
|
+
// const { name, email } = req.body
|
|
707
|
+
if (node.type === "variable_declarator") {
|
|
708
|
+
const nameNode = node.childForFieldName?.("name");
|
|
709
|
+
const valueNode = node.childForFieldName?.("value");
|
|
710
|
+
if (nameNode?.type === "object_pattern" && valueNode?.type === "member_expression") {
|
|
711
|
+
const obj = valueNode.childForFieldName?.("object");
|
|
712
|
+
const prop = valueNode.childForFieldName?.("property");
|
|
713
|
+
const objText = obj ? content.slice(obj.startIndex, obj.endIndex) : "";
|
|
714
|
+
const propText = prop ? content.slice(prop.startIndex, prop.endIndex) : "";
|
|
715
|
+
if (objText === "req" && propText === "body") {
|
|
716
|
+
const patternText = content.slice(nameNode.startIndex, nameNode.endIndex);
|
|
717
|
+
const re = /\b([A-Za-z_][A-Za-z0-9_]*)\b/g;
|
|
718
|
+
let m;
|
|
719
|
+
while ((m = re.exec(patternText))) {
|
|
720
|
+
fields.add(m[1]);
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
// req.body.phone
|
|
726
|
+
if (node.type === "member_expression") {
|
|
727
|
+
const objectNode = node.childForFieldName?.("object");
|
|
728
|
+
const propertyNode = node.childForFieldName?.("property");
|
|
729
|
+
if (propertyNode?.type === "property_identifier" && objectNode?.type === "member_expression") {
|
|
730
|
+
const innerObj = objectNode.childForFieldName?.("object");
|
|
731
|
+
const innerProp = objectNode.childForFieldName?.("property");
|
|
732
|
+
const innerObjText = innerObj ? content.slice(innerObj.startIndex, innerObj.endIndex) : "";
|
|
733
|
+
const innerPropText = innerProp ? content.slice(innerProp.startIndex, innerProp.endIndex) : "";
|
|
734
|
+
if (innerObjText === "req" && innerPropText === "body") {
|
|
735
|
+
fields.add(content.slice(propertyNode.startIndex, propertyNode.endIndex));
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
for (const child of node.children || [])
|
|
740
|
+
visit(child);
|
|
741
|
+
};
|
|
742
|
+
visit(handlerFnNode);
|
|
743
|
+
return fields;
|
|
744
|
+
}
|
|
294
745
|
/**
|
|
295
746
|
* Validate query parameters between frontend and backend
|
|
296
747
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api-contract/validators/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api-contract/validators/index.ts"],"names":[],"mappings":"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"}
|