@supermodeltools/sdk 0.9.2 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/dist/apis/DefaultApi.d.ts +60 -2
  2. package/dist/apis/DefaultApi.js +241 -1
  3. package/dist/esm/apis/DefaultApi.d.ts +60 -2
  4. package/dist/esm/apis/DefaultApi.js +242 -2
  5. package/dist/esm/models/AffectedEntryPoint.d.ts +53 -0
  6. package/dist/esm/models/AffectedEntryPoint.js +57 -0
  7. package/dist/esm/models/AffectedFile.d.ts +43 -0
  8. package/dist/esm/models/AffectedFile.js +48 -0
  9. package/dist/esm/models/AffectedFunction.d.ts +78 -0
  10. package/dist/esm/models/AffectedFunction.js +73 -0
  11. package/dist/esm/models/AliveCodeItem.d.ts +68 -0
  12. package/dist/esm/models/AliveCodeItem.js +68 -0
  13. package/dist/esm/models/BlastRadius.d.ts +71 -0
  14. package/dist/esm/models/BlastRadius.js +65 -0
  15. package/dist/esm/models/CircularDependencyCycle.d.ts +65 -0
  16. package/dist/esm/models/CircularDependencyCycle.js +63 -0
  17. package/dist/esm/models/CircularDependencyMetadata.d.ts +61 -0
  18. package/dist/esm/models/CircularDependencyMetadata.js +56 -0
  19. package/dist/esm/models/CircularDependencyResponse.d.ts +46 -0
  20. package/dist/esm/models/CircularDependencyResponse.js +51 -0
  21. package/dist/esm/models/CircularDependencyResponseAsync.d.ts +66 -0
  22. package/dist/esm/models/CircularDependencyResponseAsync.js +60 -0
  23. package/dist/esm/models/CircularDependencySummary.d.ts +55 -0
  24. package/dist/esm/models/CircularDependencySummary.js +56 -0
  25. package/dist/esm/models/ClassificationStats.d.ts +1 -1
  26. package/dist/esm/models/ClassificationStats.js +1 -1
  27. package/dist/esm/models/CodeGraphEnvelope.d.ts +1 -1
  28. package/dist/esm/models/CodeGraphEnvelope.js +1 -1
  29. package/dist/esm/models/CodeGraphEnvelopeAsync.d.ts +1 -1
  30. package/dist/esm/models/CodeGraphEnvelopeAsync.js +1 -1
  31. package/dist/esm/models/CodeGraphEnvelopeGraph.d.ts +1 -1
  32. package/dist/esm/models/CodeGraphEnvelopeGraph.js +1 -1
  33. package/dist/esm/models/CodeGraphEnvelopeMetadata.d.ts +1 -1
  34. package/dist/esm/models/CodeGraphEnvelopeMetadata.js +1 -1
  35. package/dist/esm/models/CodeGraphNode.d.ts +1 -1
  36. package/dist/esm/models/CodeGraphNode.js +1 -1
  37. package/dist/esm/models/CodeGraphRelationship.d.ts +1 -1
  38. package/dist/esm/models/CodeGraphRelationship.js +1 -1
  39. package/dist/esm/models/CodeGraphStats.d.ts +1 -1
  40. package/dist/esm/models/CodeGraphStats.js +1 -1
  41. package/dist/esm/models/CoverageByDomain.d.ts +49 -0
  42. package/dist/esm/models/CoverageByDomain.js +52 -0
  43. package/dist/esm/models/CoverageByFile.d.ts +55 -0
  44. package/dist/esm/models/CoverageByFile.js +56 -0
  45. package/dist/esm/models/CriticalFile.d.ts +53 -0
  46. package/dist/esm/models/CriticalFile.js +57 -0
  47. package/dist/esm/models/CrossDomainDependency.d.ts +43 -0
  48. package/dist/esm/models/CrossDomainDependency.js +48 -0
  49. package/dist/esm/models/CycleEdge.d.ts +43 -0
  50. package/dist/esm/models/CycleEdge.js +48 -0
  51. package/dist/esm/models/DeadCodeAnalysisMetadata.d.ts +79 -0
  52. package/dist/esm/models/DeadCodeAnalysisMetadata.js +62 -0
  53. package/dist/esm/models/DeadCodeAnalysisResponse.d.ts +53 -0
  54. package/dist/esm/models/DeadCodeAnalysisResponse.js +56 -0
  55. package/dist/esm/models/DeadCodeAnalysisResponseAsync.d.ts +66 -0
  56. package/dist/esm/models/DeadCodeAnalysisResponseAsync.js +60 -0
  57. package/dist/esm/models/DeadCodeCandidate.d.ts +83 -0
  58. package/dist/esm/models/DeadCodeCandidate.js +80 -0
  59. package/dist/esm/models/DomainClassAssignment.d.ts +1 -1
  60. package/dist/esm/models/DomainClassAssignment.js +1 -1
  61. package/dist/esm/models/DomainClassificationResponse.d.ts +1 -1
  62. package/dist/esm/models/DomainClassificationResponse.js +1 -1
  63. package/dist/esm/models/DomainClassificationResponseAsync.d.ts +1 -1
  64. package/dist/esm/models/DomainClassificationResponseAsync.js +1 -1
  65. package/dist/esm/models/DomainClassificationResponseGraph.d.ts +1 -1
  66. package/dist/esm/models/DomainClassificationResponseGraph.js +1 -1
  67. package/dist/esm/models/DomainFileAssignment.d.ts +1 -1
  68. package/dist/esm/models/DomainFileAssignment.js +1 -1
  69. package/dist/esm/models/DomainFunctionAssignment.d.ts +1 -1
  70. package/dist/esm/models/DomainFunctionAssignment.js +1 -1
  71. package/dist/esm/models/DomainRelationship.d.ts +1 -1
  72. package/dist/esm/models/DomainRelationship.js +1 -1
  73. package/dist/esm/models/DomainSummary.d.ts +1 -1
  74. package/dist/esm/models/DomainSummary.js +1 -1
  75. package/dist/esm/models/EntryPoint.d.ts +68 -0
  76. package/dist/esm/models/EntryPoint.js +68 -0
  77. package/dist/esm/models/ErrorDetailsInner.d.ts +1 -1
  78. package/dist/esm/models/ErrorDetailsInner.js +1 -1
  79. package/dist/esm/models/FunctionDescription.d.ts +1 -1
  80. package/dist/esm/models/FunctionDescription.js +1 -1
  81. package/dist/esm/models/ImpactAnalysisMetadata.d.ts +61 -0
  82. package/dist/esm/models/ImpactAnalysisMetadata.js +56 -0
  83. package/dist/esm/models/ImpactAnalysisResponse.d.ts +46 -0
  84. package/dist/esm/models/ImpactAnalysisResponse.js +51 -0
  85. package/dist/esm/models/ImpactAnalysisResponseAsync.d.ts +66 -0
  86. package/dist/esm/models/ImpactAnalysisResponseAsync.js +60 -0
  87. package/dist/esm/models/ImpactGlobalMetrics.d.ts +39 -0
  88. package/dist/esm/models/ImpactGlobalMetrics.js +42 -0
  89. package/dist/esm/models/ImpactResult.d.ts +60 -0
  90. package/dist/esm/models/ImpactResult.js +61 -0
  91. package/dist/esm/models/ImpactTarget.d.ts +59 -0
  92. package/dist/esm/models/ImpactTarget.js +57 -0
  93. package/dist/esm/models/JobStatus.d.ts +1 -1
  94. package/dist/esm/models/JobStatus.js +1 -1
  95. package/dist/esm/models/ModelError.d.ts +1 -1
  96. package/dist/esm/models/ModelError.js +1 -1
  97. package/dist/esm/models/NearestTestedCaller.d.ts +43 -0
  98. package/dist/esm/models/NearestTestedCaller.js +48 -0
  99. package/dist/esm/models/SubdomainSummary.d.ts +1 -1
  100. package/dist/esm/models/SubdomainSummary.js +1 -1
  101. package/dist/esm/models/SupermodelArtifact.d.ts +1 -1
  102. package/dist/esm/models/SupermodelArtifact.js +1 -1
  103. package/dist/esm/models/SupermodelIR.d.ts +1 -1
  104. package/dist/esm/models/SupermodelIR.js +1 -1
  105. package/dist/esm/models/SupermodelIRAsync.d.ts +1 -1
  106. package/dist/esm/models/SupermodelIRAsync.js +1 -1
  107. package/dist/esm/models/SupermodelIRGraph.d.ts +1 -1
  108. package/dist/esm/models/SupermodelIRGraph.js +1 -1
  109. package/dist/esm/models/SupermodelIRStats.d.ts +1 -1
  110. package/dist/esm/models/SupermodelIRStats.js +1 -1
  111. package/dist/esm/models/TestCoverageMapMetadata.d.ts +85 -0
  112. package/dist/esm/models/TestCoverageMapMetadata.js +72 -0
  113. package/dist/esm/models/TestCoverageMapResponse.d.ts +67 -0
  114. package/dist/esm/models/TestCoverageMapResponse.js +64 -0
  115. package/dist/esm/models/TestCoverageMapResponseAsync.d.ts +66 -0
  116. package/dist/esm/models/TestCoverageMapResponseAsync.js +60 -0
  117. package/dist/esm/models/TestFileInfo.d.ts +49 -0
  118. package/dist/esm/models/TestFileInfo.js +52 -0
  119. package/dist/esm/models/TestedFunction.d.ts +80 -0
  120. package/dist/esm/models/TestedFunction.js +76 -0
  121. package/dist/esm/models/TestedSibling.d.ts +43 -0
  122. package/dist/esm/models/TestedSibling.js +48 -0
  123. package/dist/esm/models/UnassignedFunction.d.ts +1 -1
  124. package/dist/esm/models/UnassignedFunction.js +1 -1
  125. package/dist/esm/models/UntestedFunction.d.ts +103 -0
  126. package/dist/esm/models/UntestedFunction.js +88 -0
  127. package/dist/esm/models/index.d.ts +34 -0
  128. package/dist/esm/models/index.js +34 -0
  129. package/dist/esm/runtime.d.ts +1 -1
  130. package/dist/esm/runtime.js +1 -1
  131. package/dist/models/AffectedEntryPoint.d.ts +53 -0
  132. package/dist/models/AffectedEntryPoint.js +64 -0
  133. package/dist/models/AffectedFile.d.ts +43 -0
  134. package/dist/models/AffectedFile.js +54 -0
  135. package/dist/models/AffectedFunction.d.ts +78 -0
  136. package/dist/models/AffectedFunction.js +80 -0
  137. package/dist/models/AliveCodeItem.d.ts +68 -0
  138. package/dist/models/AliveCodeItem.js +75 -0
  139. package/dist/models/BlastRadius.d.ts +71 -0
  140. package/dist/models/BlastRadius.js +72 -0
  141. package/dist/models/CircularDependencyCycle.d.ts +65 -0
  142. package/dist/models/CircularDependencyCycle.js +70 -0
  143. package/dist/models/CircularDependencyMetadata.d.ts +61 -0
  144. package/dist/models/CircularDependencyMetadata.js +62 -0
  145. package/dist/models/CircularDependencyResponse.d.ts +46 -0
  146. package/dist/models/CircularDependencyResponse.js +57 -0
  147. package/dist/models/CircularDependencyResponseAsync.d.ts +66 -0
  148. package/dist/models/CircularDependencyResponseAsync.js +67 -0
  149. package/dist/models/CircularDependencySummary.d.ts +55 -0
  150. package/dist/models/CircularDependencySummary.js +62 -0
  151. package/dist/models/ClassificationStats.d.ts +1 -1
  152. package/dist/models/ClassificationStats.js +1 -1
  153. package/dist/models/CodeGraphEnvelope.d.ts +1 -1
  154. package/dist/models/CodeGraphEnvelope.js +1 -1
  155. package/dist/models/CodeGraphEnvelopeAsync.d.ts +1 -1
  156. package/dist/models/CodeGraphEnvelopeAsync.js +1 -1
  157. package/dist/models/CodeGraphEnvelopeGraph.d.ts +1 -1
  158. package/dist/models/CodeGraphEnvelopeGraph.js +1 -1
  159. package/dist/models/CodeGraphEnvelopeMetadata.d.ts +1 -1
  160. package/dist/models/CodeGraphEnvelopeMetadata.js +1 -1
  161. package/dist/models/CodeGraphNode.d.ts +1 -1
  162. package/dist/models/CodeGraphNode.js +1 -1
  163. package/dist/models/CodeGraphRelationship.d.ts +1 -1
  164. package/dist/models/CodeGraphRelationship.js +1 -1
  165. package/dist/models/CodeGraphStats.d.ts +1 -1
  166. package/dist/models/CodeGraphStats.js +1 -1
  167. package/dist/models/CoverageByDomain.d.ts +49 -0
  168. package/dist/models/CoverageByDomain.js +58 -0
  169. package/dist/models/CoverageByFile.d.ts +55 -0
  170. package/dist/models/CoverageByFile.js +62 -0
  171. package/dist/models/CriticalFile.d.ts +53 -0
  172. package/dist/models/CriticalFile.js +64 -0
  173. package/dist/models/CrossDomainDependency.d.ts +43 -0
  174. package/dist/models/CrossDomainDependency.js +54 -0
  175. package/dist/models/CycleEdge.d.ts +43 -0
  176. package/dist/models/CycleEdge.js +54 -0
  177. package/dist/models/DeadCodeAnalysisMetadata.d.ts +79 -0
  178. package/dist/models/DeadCodeAnalysisMetadata.js +68 -0
  179. package/dist/models/DeadCodeAnalysisResponse.d.ts +53 -0
  180. package/dist/models/DeadCodeAnalysisResponse.js +62 -0
  181. package/dist/models/DeadCodeAnalysisResponseAsync.d.ts +66 -0
  182. package/dist/models/DeadCodeAnalysisResponseAsync.js +67 -0
  183. package/dist/models/DeadCodeCandidate.d.ts +83 -0
  184. package/dist/models/DeadCodeCandidate.js +87 -0
  185. package/dist/models/DomainClassAssignment.d.ts +1 -1
  186. package/dist/models/DomainClassAssignment.js +1 -1
  187. package/dist/models/DomainClassificationResponse.d.ts +1 -1
  188. package/dist/models/DomainClassificationResponse.js +1 -1
  189. package/dist/models/DomainClassificationResponseAsync.d.ts +1 -1
  190. package/dist/models/DomainClassificationResponseAsync.js +1 -1
  191. package/dist/models/DomainClassificationResponseGraph.d.ts +1 -1
  192. package/dist/models/DomainClassificationResponseGraph.js +1 -1
  193. package/dist/models/DomainFileAssignment.d.ts +1 -1
  194. package/dist/models/DomainFileAssignment.js +1 -1
  195. package/dist/models/DomainFunctionAssignment.d.ts +1 -1
  196. package/dist/models/DomainFunctionAssignment.js +1 -1
  197. package/dist/models/DomainRelationship.d.ts +1 -1
  198. package/dist/models/DomainRelationship.js +1 -1
  199. package/dist/models/DomainSummary.d.ts +1 -1
  200. package/dist/models/DomainSummary.js +1 -1
  201. package/dist/models/EntryPoint.d.ts +68 -0
  202. package/dist/models/EntryPoint.js +75 -0
  203. package/dist/models/ErrorDetailsInner.d.ts +1 -1
  204. package/dist/models/ErrorDetailsInner.js +1 -1
  205. package/dist/models/FunctionDescription.d.ts +1 -1
  206. package/dist/models/FunctionDescription.js +1 -1
  207. package/dist/models/ImpactAnalysisMetadata.d.ts +61 -0
  208. package/dist/models/ImpactAnalysisMetadata.js +62 -0
  209. package/dist/models/ImpactAnalysisResponse.d.ts +46 -0
  210. package/dist/models/ImpactAnalysisResponse.js +57 -0
  211. package/dist/models/ImpactAnalysisResponseAsync.d.ts +66 -0
  212. package/dist/models/ImpactAnalysisResponseAsync.js +67 -0
  213. package/dist/models/ImpactGlobalMetrics.d.ts +39 -0
  214. package/dist/models/ImpactGlobalMetrics.js +48 -0
  215. package/dist/models/ImpactResult.d.ts +60 -0
  216. package/dist/models/ImpactResult.js +67 -0
  217. package/dist/models/ImpactTarget.d.ts +59 -0
  218. package/dist/models/ImpactTarget.js +64 -0
  219. package/dist/models/JobStatus.d.ts +1 -1
  220. package/dist/models/JobStatus.js +1 -1
  221. package/dist/models/ModelError.d.ts +1 -1
  222. package/dist/models/ModelError.js +1 -1
  223. package/dist/models/NearestTestedCaller.d.ts +43 -0
  224. package/dist/models/NearestTestedCaller.js +54 -0
  225. package/dist/models/SubdomainSummary.d.ts +1 -1
  226. package/dist/models/SubdomainSummary.js +1 -1
  227. package/dist/models/SupermodelArtifact.d.ts +1 -1
  228. package/dist/models/SupermodelArtifact.js +1 -1
  229. package/dist/models/SupermodelIR.d.ts +1 -1
  230. package/dist/models/SupermodelIR.js +1 -1
  231. package/dist/models/SupermodelIRAsync.d.ts +1 -1
  232. package/dist/models/SupermodelIRAsync.js +1 -1
  233. package/dist/models/SupermodelIRGraph.d.ts +1 -1
  234. package/dist/models/SupermodelIRGraph.js +1 -1
  235. package/dist/models/SupermodelIRStats.d.ts +1 -1
  236. package/dist/models/SupermodelIRStats.js +1 -1
  237. package/dist/models/TestCoverageMapMetadata.d.ts +85 -0
  238. package/dist/models/TestCoverageMapMetadata.js +78 -0
  239. package/dist/models/TestCoverageMapResponse.d.ts +67 -0
  240. package/dist/models/TestCoverageMapResponse.js +70 -0
  241. package/dist/models/TestCoverageMapResponseAsync.d.ts +66 -0
  242. package/dist/models/TestCoverageMapResponseAsync.js +67 -0
  243. package/dist/models/TestFileInfo.d.ts +49 -0
  244. package/dist/models/TestFileInfo.js +58 -0
  245. package/dist/models/TestedFunction.d.ts +80 -0
  246. package/dist/models/TestedFunction.js +83 -0
  247. package/dist/models/TestedSibling.d.ts +43 -0
  248. package/dist/models/TestedSibling.js +54 -0
  249. package/dist/models/UnassignedFunction.d.ts +1 -1
  250. package/dist/models/UnassignedFunction.js +1 -1
  251. package/dist/models/UntestedFunction.d.ts +103 -0
  252. package/dist/models/UntestedFunction.js +95 -0
  253. package/dist/models/index.d.ts +34 -0
  254. package/dist/models/index.js +34 -0
  255. package/dist/runtime.d.ts +1 -1
  256. package/dist/runtime.js +1 -1
  257. package/package.json +1 -1
@@ -4,7 +4,7 @@
4
4
  * Supermodel
5
5
  * Code Graphing & Analysis API
6
6
  *
7
- * The version of the OpenAPI document: 0.9.2
7
+ * The version of the OpenAPI document: 0.9.4
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -21,7 +21,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
21
21
  });
22
22
  };
23
23
  import * as runtime from '../runtime';
24
- import { CodeGraphEnvelopeAsyncFromJSON, DomainClassificationResponseAsyncFromJSON, SupermodelIRAsyncFromJSON, } from '../models/index';
24
+ import { CircularDependencyResponseAsyncFromJSON, CodeGraphEnvelopeAsyncFromJSON, DeadCodeAnalysisResponseAsyncFromJSON, DomainClassificationResponseAsyncFromJSON, ImpactAnalysisResponseAsyncFromJSON, SupermodelIRAsyncFromJSON, TestCoverageMapResponseAsyncFromJSON, } from '../models/index';
25
25
  /**
26
26
  *
27
27
  */
@@ -84,6 +84,122 @@ export class DefaultApi extends runtime.BaseAPI {
84
84
  return yield response.value();
85
85
  });
86
86
  }
87
+ /**
88
+ * Upload a zipped repository snapshot to detect circular dependencies (dependency cycles) at the file level using Tarjan\'s strongly connected components algorithm.
89
+ * Circular dependency detection
90
+ */
91
+ generateCircularDependencyAnalysisRaw(requestParameters, initOverrides) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ if (requestParameters['idempotencyKey'] == null) {
94
+ throw new runtime.RequiredError('idempotencyKey', 'Required parameter "idempotencyKey" was null or undefined when calling generateCircularDependencyAnalysis().');
95
+ }
96
+ if (requestParameters['file'] == null) {
97
+ throw new runtime.RequiredError('file', 'Required parameter "file" was null or undefined when calling generateCircularDependencyAnalysis().');
98
+ }
99
+ const queryParameters = {};
100
+ const headerParameters = {};
101
+ if (requestParameters['idempotencyKey'] != null) {
102
+ headerParameters['Idempotency-Key'] = String(requestParameters['idempotencyKey']);
103
+ }
104
+ if (this.configuration && this.configuration.apiKey) {
105
+ headerParameters["X-Api-Key"] = yield this.configuration.apiKey("X-Api-Key"); // ApiKeyAuth authentication
106
+ }
107
+ const consumes = [
108
+ { contentType: 'multipart/form-data' },
109
+ ];
110
+ // @ts-ignore: canConsumeForm may be unused
111
+ const canConsumeForm = runtime.canConsumeForm(consumes);
112
+ let formParams;
113
+ let useForm = false;
114
+ // use FormData to transmit files using content-type "multipart/form-data"
115
+ useForm = canConsumeForm;
116
+ if (useForm) {
117
+ formParams = new FormData();
118
+ }
119
+ else {
120
+ formParams = new URLSearchParams();
121
+ }
122
+ if (requestParameters['file'] != null) {
123
+ formParams.append('file', requestParameters['file']);
124
+ }
125
+ const response = yield this.request({
126
+ path: `/v1/analysis/circular-dependencies`,
127
+ method: 'POST',
128
+ headers: headerParameters,
129
+ query: queryParameters,
130
+ body: formParams,
131
+ }, initOverrides);
132
+ return new runtime.JSONApiResponse(response, (jsonValue) => CircularDependencyResponseAsyncFromJSON(jsonValue));
133
+ });
134
+ }
135
+ /**
136
+ * Upload a zipped repository snapshot to detect circular dependencies (dependency cycles) at the file level using Tarjan\'s strongly connected components algorithm.
137
+ * Circular dependency detection
138
+ */
139
+ generateCircularDependencyAnalysis(requestParameters, initOverrides) {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ const response = yield this.generateCircularDependencyAnalysisRaw(requestParameters, initOverrides);
142
+ return yield response.value();
143
+ });
144
+ }
145
+ /**
146
+ * Upload a zipped repository snapshot to identify dead (unreachable) code candidates by combining parse graph declarations with call graph relationships.
147
+ * Dead code analysis
148
+ */
149
+ generateDeadCodeAnalysisRaw(requestParameters, initOverrides) {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ if (requestParameters['idempotencyKey'] == null) {
152
+ throw new runtime.RequiredError('idempotencyKey', 'Required parameter "idempotencyKey" was null or undefined when calling generateDeadCodeAnalysis().');
153
+ }
154
+ if (requestParameters['file'] == null) {
155
+ throw new runtime.RequiredError('file', 'Required parameter "file" was null or undefined when calling generateDeadCodeAnalysis().');
156
+ }
157
+ const queryParameters = {};
158
+ const headerParameters = {};
159
+ if (requestParameters['idempotencyKey'] != null) {
160
+ headerParameters['Idempotency-Key'] = String(requestParameters['idempotencyKey']);
161
+ }
162
+ if (this.configuration && this.configuration.apiKey) {
163
+ headerParameters["X-Api-Key"] = yield this.configuration.apiKey("X-Api-Key"); // ApiKeyAuth authentication
164
+ }
165
+ const consumes = [
166
+ { contentType: 'multipart/form-data' },
167
+ ];
168
+ // @ts-ignore: canConsumeForm may be unused
169
+ const canConsumeForm = runtime.canConsumeForm(consumes);
170
+ let formParams;
171
+ let useForm = false;
172
+ // use FormData to transmit files using content-type "multipart/form-data"
173
+ useForm = canConsumeForm;
174
+ if (useForm) {
175
+ formParams = new FormData();
176
+ }
177
+ else {
178
+ formParams = new URLSearchParams();
179
+ }
180
+ if (requestParameters['file'] != null) {
181
+ formParams.append('file', requestParameters['file']);
182
+ }
183
+ const response = yield this.request({
184
+ path: `/v1/analysis/dead-code`,
185
+ method: 'POST',
186
+ headers: headerParameters,
187
+ query: queryParameters,
188
+ body: formParams,
189
+ }, initOverrides);
190
+ return new runtime.JSONApiResponse(response, (jsonValue) => DeadCodeAnalysisResponseAsyncFromJSON(jsonValue));
191
+ });
192
+ }
193
+ /**
194
+ * Upload a zipped repository snapshot to identify dead (unreachable) code candidates by combining parse graph declarations with call graph relationships.
195
+ * Dead code analysis
196
+ */
197
+ generateDeadCodeAnalysis(requestParameters, initOverrides) {
198
+ return __awaiter(this, void 0, void 0, function* () {
199
+ const response = yield this.generateDeadCodeAnalysisRaw(requestParameters, initOverrides);
200
+ return yield response.value();
201
+ });
202
+ }
87
203
  /**
88
204
  * Upload a zipped repository snapshot to generate the dependency graph.
89
205
  * Dependency graph
@@ -200,6 +316,72 @@ export class DefaultApi extends runtime.BaseAPI {
200
316
  return yield response.value();
201
317
  });
202
318
  }
319
+ /**
320
+ * Compute blast radius — what breaks if a given file or function changes. Uses reverse-reachability BFS on call graph and dependency graph, enriched with LLM-powered domain classification to detect cross-domain impact. **Three usage modes:** 1. **With diff** — upload a unified diff (`git diff` output) alongside the repo zip. Changed files are automatically extracted as targets. Best for CI/CD pipelines. 2. **With targets** — specify files or file:function pairs via query parameter. Best for ad-hoc analysis of specific functions. 3. **Neither** — analyzes the entire codebase and returns a global coupling/risk map with the most critical files ranked by dependent count. **CI Integration (GitHub Actions):** ```yaml - name: Impact Analysis run: | git diff origin/main...HEAD > changes.diff git archive --format=zip HEAD -o repo.zip curl -s -X POST \"$SUPERMODEL_API_URL/v1/analysis/impact\" \\ -H \"Idempotency-Key: ${{ github.run_id }}-impact\" \\ -H \"X-Api-Key: ${{ secrets.SUPERMODEL_API_KEY }}\" \\ -F \"file=@repo.zip;type=application/zip\" \\ -F \"diff=@changes.diff;type=text/plain\" \\ -o impact.json ``` **CI Integration (GitLab CI):** ```yaml impact_analysis: script: - git diff origin/main...HEAD > changes.diff - git archive --format=zip HEAD -o repo.zip - >- curl -s -X POST \"$SUPERMODEL_API_URL/v1/analysis/impact\" -H \"Idempotency-Key: $CI_PIPELINE_IID-impact\" -H \"X-Api-Key: $SUPERMODEL_API_KEY\" -F \"file=@repo.zip;type=application/zip\" -F \"diff=@changes.diff;type=text/plain\" -o impact.json ``` **Standalone usage (no CI):** ```bash # Analyze specific targets curl -X POST \'.../v1/analysis/impact?targets=src/services/billing.ts:calculateTotal\' \\ -H \'Idempotency-Key: my-key\' -H \'X-Api-Key: ...\' \\ -F \'file=@repo.zip;type=application/zip\' # Analyze from a diff git diff main > changes.diff && git archive --format=zip HEAD -o repo.zip curl -X POST \'.../v1/analysis/impact\' \\ -H \'Idempotency-Key: my-key\' -H \'X-Api-Key: ...\' \\ -F \'file=@repo.zip;type=application/zip\' \\ -F \'diff=@changes.diff;type=text/plain\' # Global coupling map (no targets, no diff) curl -X POST \'.../v1/analysis/impact\' \\ -H \'Idempotency-Key: my-key\' -H \'X-Api-Key: ...\' \\ -F \'file=@repo.zip;type=application/zip\' ```
321
+ * Impact analysis
322
+ */
323
+ generateImpactAnalysisRaw(requestParameters, initOverrides) {
324
+ return __awaiter(this, void 0, void 0, function* () {
325
+ if (requestParameters['idempotencyKey'] == null) {
326
+ throw new runtime.RequiredError('idempotencyKey', 'Required parameter "idempotencyKey" was null or undefined when calling generateImpactAnalysis().');
327
+ }
328
+ if (requestParameters['file'] == null) {
329
+ throw new runtime.RequiredError('file', 'Required parameter "file" was null or undefined when calling generateImpactAnalysis().');
330
+ }
331
+ const queryParameters = {};
332
+ if (requestParameters['targets'] != null) {
333
+ queryParameters['targets'] = requestParameters['targets'];
334
+ }
335
+ const headerParameters = {};
336
+ if (requestParameters['idempotencyKey'] != null) {
337
+ headerParameters['Idempotency-Key'] = String(requestParameters['idempotencyKey']);
338
+ }
339
+ if (this.configuration && this.configuration.apiKey) {
340
+ headerParameters["X-Api-Key"] = yield this.configuration.apiKey("X-Api-Key"); // ApiKeyAuth authentication
341
+ }
342
+ const consumes = [
343
+ { contentType: 'multipart/form-data' },
344
+ ];
345
+ // @ts-ignore: canConsumeForm may be unused
346
+ const canConsumeForm = runtime.canConsumeForm(consumes);
347
+ let formParams;
348
+ let useForm = false;
349
+ // use FormData to transmit files using content-type "multipart/form-data"
350
+ useForm = canConsumeForm;
351
+ // use FormData to transmit files using content-type "multipart/form-data"
352
+ useForm = canConsumeForm;
353
+ if (useForm) {
354
+ formParams = new FormData();
355
+ }
356
+ else {
357
+ formParams = new URLSearchParams();
358
+ }
359
+ if (requestParameters['file'] != null) {
360
+ formParams.append('file', requestParameters['file']);
361
+ }
362
+ if (requestParameters['diff'] != null) {
363
+ formParams.append('diff', requestParameters['diff']);
364
+ }
365
+ const response = yield this.request({
366
+ path: `/v1/analysis/impact`,
367
+ method: 'POST',
368
+ headers: headerParameters,
369
+ query: queryParameters,
370
+ body: formParams,
371
+ }, initOverrides);
372
+ return new runtime.JSONApiResponse(response, (jsonValue) => ImpactAnalysisResponseAsyncFromJSON(jsonValue));
373
+ });
374
+ }
375
+ /**
376
+ * Compute blast radius — what breaks if a given file or function changes. Uses reverse-reachability BFS on call graph and dependency graph, enriched with LLM-powered domain classification to detect cross-domain impact. **Three usage modes:** 1. **With diff** — upload a unified diff (`git diff` output) alongside the repo zip. Changed files are automatically extracted as targets. Best for CI/CD pipelines. 2. **With targets** — specify files or file:function pairs via query parameter. Best for ad-hoc analysis of specific functions. 3. **Neither** — analyzes the entire codebase and returns a global coupling/risk map with the most critical files ranked by dependent count. **CI Integration (GitHub Actions):** ```yaml - name: Impact Analysis run: | git diff origin/main...HEAD > changes.diff git archive --format=zip HEAD -o repo.zip curl -s -X POST \"$SUPERMODEL_API_URL/v1/analysis/impact\" \\ -H \"Idempotency-Key: ${{ github.run_id }}-impact\" \\ -H \"X-Api-Key: ${{ secrets.SUPERMODEL_API_KEY }}\" \\ -F \"file=@repo.zip;type=application/zip\" \\ -F \"diff=@changes.diff;type=text/plain\" \\ -o impact.json ``` **CI Integration (GitLab CI):** ```yaml impact_analysis: script: - git diff origin/main...HEAD > changes.diff - git archive --format=zip HEAD -o repo.zip - >- curl -s -X POST \"$SUPERMODEL_API_URL/v1/analysis/impact\" -H \"Idempotency-Key: $CI_PIPELINE_IID-impact\" -H \"X-Api-Key: $SUPERMODEL_API_KEY\" -F \"file=@repo.zip;type=application/zip\" -F \"diff=@changes.diff;type=text/plain\" -o impact.json ``` **Standalone usage (no CI):** ```bash # Analyze specific targets curl -X POST \'.../v1/analysis/impact?targets=src/services/billing.ts:calculateTotal\' \\ -H \'Idempotency-Key: my-key\' -H \'X-Api-Key: ...\' \\ -F \'file=@repo.zip;type=application/zip\' # Analyze from a diff git diff main > changes.diff && git archive --format=zip HEAD -o repo.zip curl -X POST \'.../v1/analysis/impact\' \\ -H \'Idempotency-Key: my-key\' -H \'X-Api-Key: ...\' \\ -F \'file=@repo.zip;type=application/zip\' \\ -F \'diff=@changes.diff;type=text/plain\' # Global coupling map (no targets, no diff) curl -X POST \'.../v1/analysis/impact\' \\ -H \'Idempotency-Key: my-key\' -H \'X-Api-Key: ...\' \\ -F \'file=@repo.zip;type=application/zip\' ```
377
+ * Impact analysis
378
+ */
379
+ generateImpactAnalysis(requestParameters, initOverrides) {
380
+ return __awaiter(this, void 0, void 0, function* () {
381
+ const response = yield this.generateImpactAnalysisRaw(requestParameters, initOverrides);
382
+ return yield response.value();
383
+ });
384
+ }
203
385
  /**
204
386
  * Upload a zipped repository snapshot to generate parse tree relationships.
205
387
  * Parse graph
@@ -316,4 +498,62 @@ export class DefaultApi extends runtime.BaseAPI {
316
498
  return yield response.value();
317
499
  });
318
500
  }
501
+ /**
502
+ * Upload a zipped repository snapshot to identify functions with zero test coverage by tracing call graph reachability from test files to production code. This is static analysis — no test execution or instrumentation required.
503
+ * Test coverage map
504
+ */
505
+ generateTestCoverageMapRaw(requestParameters, initOverrides) {
506
+ return __awaiter(this, void 0, void 0, function* () {
507
+ if (requestParameters['idempotencyKey'] == null) {
508
+ throw new runtime.RequiredError('idempotencyKey', 'Required parameter "idempotencyKey" was null or undefined when calling generateTestCoverageMap().');
509
+ }
510
+ if (requestParameters['file'] == null) {
511
+ throw new runtime.RequiredError('file', 'Required parameter "file" was null or undefined when calling generateTestCoverageMap().');
512
+ }
513
+ const queryParameters = {};
514
+ const headerParameters = {};
515
+ if (requestParameters['idempotencyKey'] != null) {
516
+ headerParameters['Idempotency-Key'] = String(requestParameters['idempotencyKey']);
517
+ }
518
+ if (this.configuration && this.configuration.apiKey) {
519
+ headerParameters["X-Api-Key"] = yield this.configuration.apiKey("X-Api-Key"); // ApiKeyAuth authentication
520
+ }
521
+ const consumes = [
522
+ { contentType: 'multipart/form-data' },
523
+ ];
524
+ // @ts-ignore: canConsumeForm may be unused
525
+ const canConsumeForm = runtime.canConsumeForm(consumes);
526
+ let formParams;
527
+ let useForm = false;
528
+ // use FormData to transmit files using content-type "multipart/form-data"
529
+ useForm = canConsumeForm;
530
+ if (useForm) {
531
+ formParams = new FormData();
532
+ }
533
+ else {
534
+ formParams = new URLSearchParams();
535
+ }
536
+ if (requestParameters['file'] != null) {
537
+ formParams.append('file', requestParameters['file']);
538
+ }
539
+ const response = yield this.request({
540
+ path: `/v1/analysis/test-coverage-map`,
541
+ method: 'POST',
542
+ headers: headerParameters,
543
+ query: queryParameters,
544
+ body: formParams,
545
+ }, initOverrides);
546
+ return new runtime.JSONApiResponse(response, (jsonValue) => TestCoverageMapResponseAsyncFromJSON(jsonValue));
547
+ });
548
+ }
549
+ /**
550
+ * Upload a zipped repository snapshot to identify functions with zero test coverage by tracing call graph reachability from test files to production code. This is static analysis — no test execution or instrumentation required.
551
+ * Test coverage map
552
+ */
553
+ generateTestCoverageMap(requestParameters, initOverrides) {
554
+ return __awaiter(this, void 0, void 0, function* () {
555
+ const response = yield this.generateTestCoverageMapRaw(requestParameters, initOverrides);
556
+ return yield response.value();
557
+ });
558
+ }
319
559
  }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Supermodel
3
+ * Code Graphing & Analysis API
4
+ *
5
+ * The version of the OpenAPI document: 0.9.4
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * An entry point affected by changes to the target.
14
+ * @export
15
+ * @interface AffectedEntryPoint
16
+ */
17
+ export interface AffectedEntryPoint {
18
+ /**
19
+ * File path relative to repository root.
20
+ * @type {string}
21
+ * @memberof AffectedEntryPoint
22
+ */
23
+ file: string;
24
+ /**
25
+ * Name or route of the entry point.
26
+ * @type {string}
27
+ * @memberof AffectedEntryPoint
28
+ */
29
+ name: string;
30
+ /**
31
+ * Type of entry point.
32
+ * @type {string}
33
+ * @memberof AffectedEntryPoint
34
+ */
35
+ type: AffectedEntryPointTypeEnum;
36
+ }
37
+ /**
38
+ * @export
39
+ */
40
+ export declare const AffectedEntryPointTypeEnum: {
41
+ readonly RouteHandler: "route_handler";
42
+ readonly ModuleExport: "module_export";
43
+ readonly MainFunction: "main_function";
44
+ readonly EventHandler: "event_handler";
45
+ };
46
+ export type AffectedEntryPointTypeEnum = typeof AffectedEntryPointTypeEnum[keyof typeof AffectedEntryPointTypeEnum];
47
+ /**
48
+ * Check if a given object implements the AffectedEntryPoint interface.
49
+ */
50
+ export declare function instanceOfAffectedEntryPoint(value: object): value is AffectedEntryPoint;
51
+ export declare function AffectedEntryPointFromJSON(json: any): AffectedEntryPoint;
52
+ export declare function AffectedEntryPointFromJSONTyped(json: any, ignoreDiscriminator: boolean): AffectedEntryPoint;
53
+ export declare function AffectedEntryPointToJSON(value?: AffectedEntryPoint | null): any;
@@ -0,0 +1,57 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Supermodel
5
+ * Code Graphing & Analysis API
6
+ *
7
+ * The version of the OpenAPI document: 0.9.4
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * @export
16
+ */
17
+ export const AffectedEntryPointTypeEnum = {
18
+ RouteHandler: 'route_handler',
19
+ ModuleExport: 'module_export',
20
+ MainFunction: 'main_function',
21
+ EventHandler: 'event_handler'
22
+ };
23
+ /**
24
+ * Check if a given object implements the AffectedEntryPoint interface.
25
+ */
26
+ export function instanceOfAffectedEntryPoint(value) {
27
+ if (!('file' in value) || value['file'] === undefined)
28
+ return false;
29
+ if (!('name' in value) || value['name'] === undefined)
30
+ return false;
31
+ if (!('type' in value) || value['type'] === undefined)
32
+ return false;
33
+ return true;
34
+ }
35
+ export function AffectedEntryPointFromJSON(json) {
36
+ return AffectedEntryPointFromJSONTyped(json, false);
37
+ }
38
+ export function AffectedEntryPointFromJSONTyped(json, ignoreDiscriminator) {
39
+ if (json == null) {
40
+ return json;
41
+ }
42
+ return {
43
+ 'file': json['file'],
44
+ 'name': json['name'],
45
+ 'type': json['type'],
46
+ };
47
+ }
48
+ export function AffectedEntryPointToJSON(value) {
49
+ if (value == null) {
50
+ return value;
51
+ }
52
+ return {
53
+ 'file': value['file'],
54
+ 'name': value['name'],
55
+ 'type': value['type'],
56
+ };
57
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Supermodel
3
+ * Code Graphing & Analysis API
4
+ *
5
+ * The version of the OpenAPI document: 0.9.4
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * A file affected by changes to the target.
14
+ * @export
15
+ * @interface AffectedFile
16
+ */
17
+ export interface AffectedFile {
18
+ /**
19
+ * File path relative to repository root.
20
+ * @type {string}
21
+ * @memberof AffectedFile
22
+ */
23
+ file: string;
24
+ /**
25
+ * Number of direct dependencies in this file.
26
+ * @type {number}
27
+ * @memberof AffectedFile
28
+ */
29
+ directDependencies: number;
30
+ /**
31
+ * Number of transitive dependencies in this file.
32
+ * @type {number}
33
+ * @memberof AffectedFile
34
+ */
35
+ transitiveDependencies: number;
36
+ }
37
+ /**
38
+ * Check if a given object implements the AffectedFile interface.
39
+ */
40
+ export declare function instanceOfAffectedFile(value: object): value is AffectedFile;
41
+ export declare function AffectedFileFromJSON(json: any): AffectedFile;
42
+ export declare function AffectedFileFromJSONTyped(json: any, ignoreDiscriminator: boolean): AffectedFile;
43
+ export declare function AffectedFileToJSON(value?: AffectedFile | null): any;
@@ -0,0 +1,48 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Supermodel
5
+ * Code Graphing & Analysis API
6
+ *
7
+ * The version of the OpenAPI document: 0.9.4
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the AffectedFile interface.
16
+ */
17
+ export function instanceOfAffectedFile(value) {
18
+ if (!('file' in value) || value['file'] === undefined)
19
+ return false;
20
+ if (!('directDependencies' in value) || value['directDependencies'] === undefined)
21
+ return false;
22
+ if (!('transitiveDependencies' in value) || value['transitiveDependencies'] === undefined)
23
+ return false;
24
+ return true;
25
+ }
26
+ export function AffectedFileFromJSON(json) {
27
+ return AffectedFileFromJSONTyped(json, false);
28
+ }
29
+ export function AffectedFileFromJSONTyped(json, ignoreDiscriminator) {
30
+ if (json == null) {
31
+ return json;
32
+ }
33
+ return {
34
+ 'file': json['file'],
35
+ 'directDependencies': json['directDependencies'],
36
+ 'transitiveDependencies': json['transitiveDependencies'],
37
+ };
38
+ }
39
+ export function AffectedFileToJSON(value) {
40
+ if (value == null) {
41
+ return value;
42
+ }
43
+ return {
44
+ 'file': value['file'],
45
+ 'directDependencies': value['directDependencies'],
46
+ 'transitiveDependencies': value['transitiveDependencies'],
47
+ };
48
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Supermodel
3
+ * Code Graphing & Analysis API
4
+ *
5
+ * The version of the OpenAPI document: 0.9.4
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * A function affected by changes to the target.
14
+ * @export
15
+ * @interface AffectedFunction
16
+ */
17
+ export interface AffectedFunction {
18
+ /**
19
+ * File path relative to repository root.
20
+ * @type {string}
21
+ * @memberof AffectedFunction
22
+ */
23
+ file: string;
24
+ /**
25
+ * Name of the affected function.
26
+ * @type {string}
27
+ * @memberof AffectedFunction
28
+ */
29
+ name: string;
30
+ /**
31
+ * Line number of the function declaration.
32
+ * @type {number}
33
+ * @memberof AffectedFunction
34
+ */
35
+ line?: number;
36
+ /**
37
+ * Type of code element.
38
+ * @type {string}
39
+ * @memberof AffectedFunction
40
+ */
41
+ type: AffectedFunctionTypeEnum;
42
+ /**
43
+ * Number of hops from the target in the call graph.
44
+ * @type {number}
45
+ * @memberof AffectedFunction
46
+ */
47
+ distance: number;
48
+ /**
49
+ * Relationship type to the target.
50
+ * @type {string}
51
+ * @memberof AffectedFunction
52
+ */
53
+ relationship: AffectedFunctionRelationshipEnum;
54
+ }
55
+ /**
56
+ * @export
57
+ */
58
+ export declare const AffectedFunctionTypeEnum: {
59
+ readonly Function: "function";
60
+ readonly Method: "method";
61
+ readonly Class: "class";
62
+ };
63
+ export type AffectedFunctionTypeEnum = typeof AffectedFunctionTypeEnum[keyof typeof AffectedFunctionTypeEnum];
64
+ /**
65
+ * @export
66
+ */
67
+ export declare const AffectedFunctionRelationshipEnum: {
68
+ readonly DirectCaller: "direct_caller";
69
+ readonly TransitiveCaller: "transitive_caller";
70
+ };
71
+ export type AffectedFunctionRelationshipEnum = typeof AffectedFunctionRelationshipEnum[keyof typeof AffectedFunctionRelationshipEnum];
72
+ /**
73
+ * Check if a given object implements the AffectedFunction interface.
74
+ */
75
+ export declare function instanceOfAffectedFunction(value: object): value is AffectedFunction;
76
+ export declare function AffectedFunctionFromJSON(json: any): AffectedFunction;
77
+ export declare function AffectedFunctionFromJSONTyped(json: any, ignoreDiscriminator: boolean): AffectedFunction;
78
+ export declare function AffectedFunctionToJSON(value?: AffectedFunction | null): any;
@@ -0,0 +1,73 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Supermodel
5
+ * Code Graphing & Analysis API
6
+ *
7
+ * The version of the OpenAPI document: 0.9.4
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * @export
16
+ */
17
+ export const AffectedFunctionTypeEnum = {
18
+ Function: 'function',
19
+ Method: 'method',
20
+ Class: 'class'
21
+ };
22
+ /**
23
+ * @export
24
+ */
25
+ export const AffectedFunctionRelationshipEnum = {
26
+ DirectCaller: 'direct_caller',
27
+ TransitiveCaller: 'transitive_caller'
28
+ };
29
+ /**
30
+ * Check if a given object implements the AffectedFunction interface.
31
+ */
32
+ export function instanceOfAffectedFunction(value) {
33
+ if (!('file' in value) || value['file'] === undefined)
34
+ return false;
35
+ if (!('name' in value) || value['name'] === undefined)
36
+ return false;
37
+ if (!('type' in value) || value['type'] === undefined)
38
+ return false;
39
+ if (!('distance' in value) || value['distance'] === undefined)
40
+ return false;
41
+ if (!('relationship' in value) || value['relationship'] === undefined)
42
+ return false;
43
+ return true;
44
+ }
45
+ export function AffectedFunctionFromJSON(json) {
46
+ return AffectedFunctionFromJSONTyped(json, false);
47
+ }
48
+ export function AffectedFunctionFromJSONTyped(json, ignoreDiscriminator) {
49
+ if (json == null) {
50
+ return json;
51
+ }
52
+ return {
53
+ 'file': json['file'],
54
+ 'name': json['name'],
55
+ 'line': json['line'] == null ? undefined : json['line'],
56
+ 'type': json['type'],
57
+ 'distance': json['distance'],
58
+ 'relationship': json['relationship'],
59
+ };
60
+ }
61
+ export function AffectedFunctionToJSON(value) {
62
+ if (value == null) {
63
+ return value;
64
+ }
65
+ return {
66
+ 'file': value['file'],
67
+ 'name': value['name'],
68
+ 'line': value['line'],
69
+ 'type': value['type'],
70
+ 'distance': value['distance'],
71
+ 'relationship': value['relationship'],
72
+ };
73
+ }