771 lines
20 KiB
JSON
771 lines
20 KiB
JSON
|
|
{
|
|||
|
|
"generated_at": "2026-05-11T13:38:33.090534",
|
|||
|
|
"project_root": "/home/claude/vkr/B",
|
|||
|
|
"summary": {
|
|||
|
|
"total_files": 22,
|
|||
|
|
"total_nloc": 1137,
|
|||
|
|
"total_functions": 68,
|
|||
|
|
"avg_system_ccn": 3.78,
|
|||
|
|
"system_risk_level": "HIGH",
|
|||
|
|
"recommended_system_strategy": "REENGINEER",
|
|||
|
|
"dependency_cycles_count": 1
|
|||
|
|
},
|
|||
|
|
"dependency_cycles": [
|
|||
|
|
[
|
|||
|
|
"src",
|
|||
|
|
"src/database",
|
|||
|
|
"src/error-handlers",
|
|||
|
|
"src/middlewares",
|
|||
|
|
"src/routes"
|
|||
|
|
]
|
|||
|
|
],
|
|||
|
|
"decisions": [
|
|||
|
|
{
|
|||
|
|
"module": "src/routes",
|
|||
|
|
"risk_level": "CRITICAL",
|
|||
|
|
"strategy": "REPLACE",
|
|||
|
|
"recommended_pattern": "Strangler Fig + Anti-Corruption Layer: замена с изоляцией от цикла",
|
|||
|
|
"priority": 190,
|
|||
|
|
"reasons": [
|
|||
|
|
"Критическая CCN: max=21 (порог 20)",
|
|||
|
|
"Высокая нестабильность: I=0.75 (порог 0.7)",
|
|||
|
|
"Участвует в циклических зависимостях — признак архитектурной деградации"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"module": "src",
|
|||
|
|
"risk_level": "HIGH",
|
|||
|
|
"strategy": "REENGINEER",
|
|||
|
|
"recommended_pattern": "Anti-Corruption Layer: изоляция модуля от циклических зависимостей",
|
|||
|
|
"priority": 460,
|
|||
|
|
"reasons": [
|
|||
|
|
"Участвует в циклических зависимостях — признак архитектурной деградации"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"module": "src/middlewares",
|
|||
|
|
"risk_level": "HIGH",
|
|||
|
|
"strategy": "REENGINEER",
|
|||
|
|
"recommended_pattern": "Anti-Corruption Layer: изоляция модуля от циклических зависимостей",
|
|||
|
|
"priority": 470,
|
|||
|
|
"reasons": [
|
|||
|
|
"Участвует в циклических зависимостях — признак архитектурной деградации"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"module": "src/database",
|
|||
|
|
"risk_level": "HIGH",
|
|||
|
|
"strategy": "REENGINEER",
|
|||
|
|
"recommended_pattern": "Anti-Corruption Layer: изоляция модуля от циклических зависимостей",
|
|||
|
|
"priority": 480,
|
|||
|
|
"reasons": [
|
|||
|
|
"Участвует в циклических зависимостях — признак архитектурной деградации"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"module": "src/error-handlers",
|
|||
|
|
"risk_level": "HIGH",
|
|||
|
|
"strategy": "REENGINEER",
|
|||
|
|
"recommended_pattern": "Anti-Corruption Layer: изоляция модуля от циклических зависимостей",
|
|||
|
|
"priority": 490,
|
|||
|
|
"reasons": [
|
|||
|
|
"Участвует в циклических зависимостях — признак архитектурной деградации"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"modules": {
|
|||
|
|
"src": {
|
|||
|
|
"files": [
|
|||
|
|
"/home/claude/vkr/B/src/config.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/utils.mjs"
|
|||
|
|
],
|
|||
|
|
"language": "mixed",
|
|||
|
|
"total_nloc": 166,
|
|||
|
|
"total_functions": 22,
|
|||
|
|
"avg_ccn": 1.77,
|
|||
|
|
"max_ccn": 8,
|
|||
|
|
"heavy_functions_count": 0,
|
|||
|
|
"heavy_functions_ratio": 0.0,
|
|||
|
|
"coupling_out": 4,
|
|||
|
|
"coupling_in": 4,
|
|||
|
|
"instability": 0.5,
|
|||
|
|
"has_cycles": true,
|
|||
|
|
"dependencies": [
|
|||
|
|
"src/database",
|
|||
|
|
"src/error-handlers",
|
|||
|
|
"src/middlewares",
|
|||
|
|
"src/routes"
|
|||
|
|
],
|
|||
|
|
"dependents": [
|
|||
|
|
"src/database",
|
|||
|
|
"src/error-handlers",
|
|||
|
|
"src/middlewares",
|
|||
|
|
"src/routes"
|
|||
|
|
],
|
|||
|
|
"functions": [
|
|||
|
|
{
|
|||
|
|
"name": "isPng",
|
|||
|
|
"file": "/home/claude/vkr/B/src/utils.mjs",
|
|||
|
|
"line": 10,
|
|||
|
|
"ccn": 8,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "warmupExtract",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 101,
|
|||
|
|
"ccn": 3,
|
|||
|
|
"nloc": 12,
|
|||
|
|
"params": 4
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "isJpeg",
|
|||
|
|
"file": "/home/claude/vkr/B/src/utils.mjs",
|
|||
|
|
"line": 3,
|
|||
|
|
"ccn": 3,
|
|||
|
|
"nloc": 6,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "createDbConnection",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 29,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 24,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "generateApiPrefix",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 54,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 5,
|
|||
|
|
"params": 2
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 123,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "main",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 139,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 19,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "toFixedOne",
|
|||
|
|
"file": "/home/claude/vkr/B/src/utils.mjs",
|
|||
|
|
"line": 31,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 7,
|
|||
|
|
"params": 2
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "float32ArrayFromBuffer",
|
|||
|
|
"file": "/home/claude/vkr/B/src/utils.mjs",
|
|||
|
|
"line": 43,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 9,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 26,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 1,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "sleep",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 24,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 4,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 64,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 3,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "addModuleMiddlewares",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 60,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 7,
|
|||
|
|
"params": 2
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 74,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 3,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "addModuleRoutes",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 70,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 7,
|
|||
|
|
"params": 3
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 85,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 3,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "addUknownRoute",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 80,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 8,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 95,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 3,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "addErrHandler",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 91,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 7,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "runExpressServer",
|
|||
|
|
"file": "/home/claude/vkr/B/src/index.mjs",
|
|||
|
|
"line": 116,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "float32ArrayToBuffer",
|
|||
|
|
"file": "/home/claude/vkr/B/src/utils.mjs",
|
|||
|
|
"line": 56,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 4,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "clamp",
|
|||
|
|
"file": "/home/claude/vkr/B/src/utils.mjs",
|
|||
|
|
"line": 61,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 1,
|
|||
|
|
"params": 3
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"src/database": {
|
|||
|
|
"files": [
|
|||
|
|
"/home/claude/vkr/B/src/database/dbQueries.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/database/dbRepository.mjs"
|
|||
|
|
],
|
|||
|
|
"language": "mixed",
|
|||
|
|
"total_nloc": 32,
|
|||
|
|
"total_functions": 4,
|
|||
|
|
"avg_ccn": 1.0,
|
|||
|
|
"max_ccn": 1,
|
|||
|
|
"heavy_functions_count": 0,
|
|||
|
|
"heavy_functions_ratio": 0.0,
|
|||
|
|
"coupling_out": 1,
|
|||
|
|
"coupling_in": 2,
|
|||
|
|
"instability": 0.333,
|
|||
|
|
"has_cycles": true,
|
|||
|
|
"dependencies": [
|
|||
|
|
"src"
|
|||
|
|
],
|
|||
|
|
"dependents": [
|
|||
|
|
"src",
|
|||
|
|
"src/routes"
|
|||
|
|
],
|
|||
|
|
"functions": [
|
|||
|
|
{
|
|||
|
|
"name": "addVector",
|
|||
|
|
"file": "/home/claude/vkr/B/src/database/dbRepository.mjs",
|
|||
|
|
"line": 11,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 9,
|
|||
|
|
"params": 3
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "updateVector",
|
|||
|
|
"file": "/home/claude/vkr/B/src/database/dbRepository.mjs",
|
|||
|
|
"line": 21,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 9,
|
|||
|
|
"params": 3
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "deleteVector",
|
|||
|
|
"file": "/home/claude/vkr/B/src/database/dbRepository.mjs",
|
|||
|
|
"line": 31,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 4,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "getNearestVector",
|
|||
|
|
"file": "/home/claude/vkr/B/src/database/dbRepository.mjs",
|
|||
|
|
"line": 36,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 10,
|
|||
|
|
"params": 4
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"src/error-handlers": {
|
|||
|
|
"files": [
|
|||
|
|
"/home/claude/vkr/B/src/error-handlers/errorHandler.mjs"
|
|||
|
|
],
|
|||
|
|
"language": "mixed",
|
|||
|
|
"total_nloc": 37,
|
|||
|
|
"total_functions": 3,
|
|||
|
|
"avg_ccn": 2.0,
|
|||
|
|
"max_ccn": 3,
|
|||
|
|
"heavy_functions_count": 0,
|
|||
|
|
"heavy_functions_ratio": 0.0,
|
|||
|
|
"coupling_out": 2,
|
|||
|
|
"coupling_in": 1,
|
|||
|
|
"instability": 0.667,
|
|||
|
|
"has_cycles": true,
|
|||
|
|
"dependencies": [
|
|||
|
|
"src",
|
|||
|
|
"src/middlewares"
|
|||
|
|
],
|
|||
|
|
"dependents": [
|
|||
|
|
"src"
|
|||
|
|
],
|
|||
|
|
"functions": [
|
|||
|
|
{
|
|||
|
|
"name": "generateResponse",
|
|||
|
|
"file": "/home/claude/vkr/B/src/error-handlers/errorHandler.mjs",
|
|||
|
|
"line": 90,
|
|||
|
|
"ccn": 3,
|
|||
|
|
"nloc": 16,
|
|||
|
|
"params": 2
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "handleErrorCase",
|
|||
|
|
"file": "/home/claude/vkr/B/src/error-handlers/errorHandler.mjs",
|
|||
|
|
"line": 107,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 10,
|
|||
|
|
"params": 3
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "logError",
|
|||
|
|
"file": "/home/claude/vkr/B/src/error-handlers/errorHandler.mjs",
|
|||
|
|
"line": 78,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 3
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"src/middlewares": {
|
|||
|
|
"files": [
|
|||
|
|
"/home/claude/vkr/B/src/middlewares/addLogInfo.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/middlewares/builder.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/middlewares/index.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/middlewares/logger.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/middlewares/parser.mjs"
|
|||
|
|
],
|
|||
|
|
"language": "mixed",
|
|||
|
|
"total_nloc": 267,
|
|||
|
|
"total_functions": 15,
|
|||
|
|
"avg_ccn": 3.53,
|
|||
|
|
"max_ccn": 8,
|
|||
|
|
"heavy_functions_count": 0,
|
|||
|
|
"heavy_functions_ratio": 0.0,
|
|||
|
|
"coupling_out": 1,
|
|||
|
|
"coupling_in": 3,
|
|||
|
|
"instability": 0.25,
|
|||
|
|
"has_cycles": true,
|
|||
|
|
"dependencies": [
|
|||
|
|
"src"
|
|||
|
|
],
|
|||
|
|
"dependents": [
|
|||
|
|
"src",
|
|||
|
|
"src/error-handlers",
|
|||
|
|
"src/routes"
|
|||
|
|
],
|
|||
|
|
"functions": [
|
|||
|
|
{
|
|||
|
|
"name": "findBoundary",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/parser.mjs",
|
|||
|
|
"line": 78,
|
|||
|
|
"ccn": 8,
|
|||
|
|
"nloc": 27,
|
|||
|
|
"params": 3
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "parsePart",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/parser.mjs",
|
|||
|
|
"line": 106,
|
|||
|
|
"ccn": 7,
|
|||
|
|
"nloc": 34,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "parse",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/parser.mjs",
|
|||
|
|
"line": 14,
|
|||
|
|
"ccn": 6,
|
|||
|
|
"nloc": 38,
|
|||
|
|
"params": 3
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "getNextPart",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/parser.mjs",
|
|||
|
|
"line": 159,
|
|||
|
|
"ccn": 6,
|
|||
|
|
"nloc": 39,
|
|||
|
|
"params": 3
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "parseMultipart",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/parser.mjs",
|
|||
|
|
"line": 205,
|
|||
|
|
"ccn": 6,
|
|||
|
|
"nloc": 35,
|
|||
|
|
"params": 2
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "getBoundary",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/parser.mjs",
|
|||
|
|
"line": 146,
|
|||
|
|
"ccn": 4,
|
|||
|
|
"nloc": 12,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/parser.mjs",
|
|||
|
|
"line": 42,
|
|||
|
|
"ccn": 3,
|
|||
|
|
"nloc": 6,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "boundaryValid",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/parser.mjs",
|
|||
|
|
"line": 68,
|
|||
|
|
"ccn": 3,
|
|||
|
|
"nloc": 9,
|
|||
|
|
"params": 3
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/builder.mjs",
|
|||
|
|
"line": 18,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 12,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/builder.mjs",
|
|||
|
|
"line": 40,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 15,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/parser.mjs",
|
|||
|
|
"line": 32,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 6,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "addLogInfo",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/addLogInfo.mjs",
|
|||
|
|
"line": 3,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 6,
|
|||
|
|
"params": 3
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "buildMultipart",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/builder.mjs",
|
|||
|
|
"line": 12,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 15,
|
|||
|
|
"params": 2
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "customSuccessMessage",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/logger.mjs",
|
|||
|
|
"line": 26,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 9,
|
|||
|
|
"params": 3
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/middlewares/parser.mjs",
|
|||
|
|
"line": 51,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 4,
|
|||
|
|
"params": 0
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"src/routes": {
|
|||
|
|
"files": [
|
|||
|
|
"/home/claude/vkr/B/src/routes/add.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/routes/compare.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/routes/delete.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/routes/extract.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/routes/health.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/routes/identify.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/routes/index.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/routes/match.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/routes/memory.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/routes/update.mjs",
|
|||
|
|
"/home/claude/vkr/B/src/routes/verify.mjs"
|
|||
|
|
],
|
|||
|
|
"language": "mixed",
|
|||
|
|
"total_nloc": 635,
|
|||
|
|
"total_functions": 24,
|
|||
|
|
"avg_ccn": 6.46,
|
|||
|
|
"max_ccn": 21,
|
|||
|
|
"heavy_functions_count": 5,
|
|||
|
|
"heavy_functions_ratio": 0.208,
|
|||
|
|
"coupling_out": 3,
|
|||
|
|
"coupling_in": 1,
|
|||
|
|
"instability": 0.75,
|
|||
|
|
"has_cycles": true,
|
|||
|
|
"dependencies": [
|
|||
|
|
"src",
|
|||
|
|
"src/database",
|
|||
|
|
"src/middlewares"
|
|||
|
|
],
|
|||
|
|
"dependents": [
|
|||
|
|
"src"
|
|||
|
|
],
|
|||
|
|
"functions": [
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/identify.mjs",
|
|||
|
|
"line": 19,
|
|||
|
|
"ccn": 21,
|
|||
|
|
"nloc": 79,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/add.mjs",
|
|||
|
|
"line": 13,
|
|||
|
|
"ccn": 16,
|
|||
|
|
"nloc": 65,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/match.mjs",
|
|||
|
|
"line": 13,
|
|||
|
|
"ccn": 16,
|
|||
|
|
"nloc": 71,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/update.mjs",
|
|||
|
|
"line": 11,
|
|||
|
|
"ccn": 16,
|
|||
|
|
"nloc": 61,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/verify.mjs",
|
|||
|
|
"line": 19,
|
|||
|
|
"ccn": 15,
|
|||
|
|
"nloc": 62,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/compare.mjs",
|
|||
|
|
"line": 9,
|
|||
|
|
"ccn": 9,
|
|||
|
|
"nloc": 46,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/extract.mjs",
|
|||
|
|
"line": 8,
|
|||
|
|
"ccn": 9,
|
|||
|
|
"nloc": 27,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/health.mjs",
|
|||
|
|
"line": 19,
|
|||
|
|
"ccn": 7,
|
|||
|
|
"nloc": 47,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/delete.mjs",
|
|||
|
|
"line": 8,
|
|||
|
|
"ccn": 5,
|
|||
|
|
"nloc": 21,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "verifyParams",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/identify.mjs",
|
|||
|
|
"line": 121,
|
|||
|
|
"ccn": 5,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "verifyParams",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/match.mjs",
|
|||
|
|
"line": 125,
|
|||
|
|
"ccn": 5,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "getId",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/add.mjs",
|
|||
|
|
"line": 95,
|
|||
|
|
"ccn": 4,
|
|||
|
|
"nloc": 10,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "getId",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/delete.mjs",
|
|||
|
|
"line": 44,
|
|||
|
|
"ccn": 4,
|
|||
|
|
"nloc": 10,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "getId",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/update.mjs",
|
|||
|
|
"line": 108,
|
|||
|
|
"ccn": 4,
|
|||
|
|
"nloc": 10,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/memory.mjs",
|
|||
|
|
"line": 6,
|
|||
|
|
"ccn": 3,
|
|||
|
|
"nloc": 16,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "parseTemplate",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/add.mjs",
|
|||
|
|
"line": 83,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "parseTemplate",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/delete.mjs",
|
|||
|
|
"line": 32,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "parseMeta",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/identify.mjs",
|
|||
|
|
"line": 109,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "parseMeta",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/match.mjs",
|
|||
|
|
"line": 100,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "parseVectors",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/match.mjs",
|
|||
|
|
"line": 112,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "parseTemplate",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/update.mjs",
|
|||
|
|
"line": 84,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "parseVectors",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/update.mjs",
|
|||
|
|
"line": 96,
|
|||
|
|
"ccn": 2,
|
|||
|
|
"nloc": 11,
|
|||
|
|
"params": 1
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/identify.mjs",
|
|||
|
|
"line": 87,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 6,
|
|||
|
|
"params": 0
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"name": "(anonymous)",
|
|||
|
|
"file": "/home/claude/vkr/B/src/routes/match.mjs",
|
|||
|
|
"line": 85,
|
|||
|
|
"ccn": 1,
|
|||
|
|
"nloc": 5,
|
|||
|
|
"params": 0
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|