projscan 4.6.0 → 4.8.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.
Files changed (415) hide show
  1. package/README.md +25 -12
  2. package/dist/cli/_shared.js +12 -44
  3. package/dist/cli/_shared.js.map +1 -1
  4. package/dist/cli/changedOnly.d.ts +16 -0
  5. package/dist/cli/changedOnly.js +28 -0
  6. package/dist/cli/changedOnly.js.map +1 -0
  7. package/dist/cli/commands/start.js +5 -28
  8. package/dist/cli/commands/start.js.map +1 -1
  9. package/dist/cli/commands/startOptionsRegistration.d.ts +2 -0
  10. package/dist/cli/commands/startOptionsRegistration.js +29 -0
  11. package/dist/cli/commands/startOptionsRegistration.js.map +1 -0
  12. package/dist/cli/formatOptions.d.ts +4 -0
  13. package/dist/cli/formatOptions.js +30 -0
  14. package/dist/cli/formatOptions.js.map +1 -0
  15. package/dist/core/agentBrief.js +6 -1
  16. package/dist/core/agentBrief.js.map +1 -1
  17. package/dist/core/ast.d.ts +2 -17
  18. package/dist/core/ast.js +4 -33
  19. package/dist/core/ast.js.map +1 -1
  20. package/dist/core/astBodySignals.js +2 -3
  21. package/dist/core/astBodySignals.js.map +1 -1
  22. package/dist/core/astMembers.d.ts +1 -0
  23. package/dist/core/astMembers.js +38 -9
  24. package/dist/core/astMembers.js.map +1 -1
  25. package/dist/core/astResult.d.ts +20 -0
  26. package/dist/core/astResult.js +39 -0
  27. package/dist/core/astResult.js.map +1 -0
  28. package/dist/core/bugHunt.js +2 -142
  29. package/dist/core/bugHunt.js.map +1 -1
  30. package/dist/core/bugHuntHotspotFindings.d.ts +2 -0
  31. package/dist/core/bugHuntHotspotFindings.js +68 -0
  32. package/dist/core/bugHuntHotspotFindings.js.map +1 -0
  33. package/dist/core/bugHuntPreflightFindings.d.ts +3 -0
  34. package/dist/core/bugHuntPreflightFindings.js +115 -0
  35. package/dist/core/bugHuntPreflightFindings.js.map +1 -0
  36. package/dist/core/codeGraph.d.ts +2 -24
  37. package/dist/core/codeGraph.js +8 -119
  38. package/dist/core/codeGraph.js.map +1 -1
  39. package/dist/core/codeGraphAdapterContexts.d.ts +8 -0
  40. package/dist/core/codeGraphAdapterContexts.js +14 -0
  41. package/dist/core/codeGraphAdapterContexts.js.map +1 -0
  42. package/dist/core/codeGraphFileSelection.d.ts +7 -0
  43. package/dist/core/codeGraphFileSelection.js +19 -0
  44. package/dist/core/codeGraphFileSelection.js.map +1 -0
  45. package/dist/core/codeGraphIncremental.d.ts +17 -0
  46. package/dist/core/codeGraphIncremental.js +64 -0
  47. package/dist/core/codeGraphIncremental.js.map +1 -0
  48. package/dist/core/codeGraphQueries.d.ts +9 -0
  49. package/dist/core/codeGraphQueries.js +25 -0
  50. package/dist/core/codeGraphQueries.js.map +1 -0
  51. package/dist/core/collisionDetector.d.ts +1 -0
  52. package/dist/core/collisionDetector.js +3 -0
  53. package/dist/core/collisionDetector.js.map +1 -1
  54. package/dist/core/coordination.js +23 -5
  55. package/dist/core/coordination.js.map +1 -1
  56. package/dist/core/coordinationEvidence.d.ts +1 -0
  57. package/dist/core/coordinationEvidence.js.map +1 -1
  58. package/dist/core/dataflow.js +3 -338
  59. package/dist/core/dataflow.js.map +1 -1
  60. package/dist/core/dataflowDatabaseSinks.d.ts +8 -0
  61. package/dist/core/dataflowDatabaseSinks.js +78 -0
  62. package/dist/core/dataflowDatabaseSinks.js.map +1 -0
  63. package/dist/core/dataflowRiskAssembly.d.ts +11 -0
  64. package/dist/core/dataflowRiskAssembly.js +117 -0
  65. package/dist/core/dataflowRiskAssembly.js.map +1 -0
  66. package/dist/core/dataflowTraversal.d.ts +25 -0
  67. package/dist/core/dataflowTraversal.js +200 -0
  68. package/dist/core/dataflowTraversal.js.map +1 -0
  69. package/dist/core/fileInspectionReport.d.ts +13 -0
  70. package/dist/core/fileInspectionReport.js +49 -0
  71. package/dist/core/fileInspectionReport.js.map +1 -0
  72. package/dist/core/fileInspector.d.ts +3 -11
  73. package/dist/core/fileInspector.js +2 -46
  74. package/dist/core/fileInspector.js.map +1 -1
  75. package/dist/core/fixSuggest.d.ts +1 -9
  76. package/dist/core/fixSuggest.js +2 -58
  77. package/dist/core/fixSuggest.js.map +1 -1
  78. package/dist/core/fixSuggestDependencyNames.d.ts +1 -0
  79. package/dist/core/fixSuggestDependencyNames.js +9 -0
  80. package/dist/core/fixSuggestDependencyNames.js.map +1 -0
  81. package/dist/core/fixSuggestPreview.d.ts +10 -0
  82. package/dist/core/fixSuggestPreview.js +87 -0
  83. package/dist/core/fixSuggestPreview.js.map +1 -0
  84. package/dist/core/frameworkExpressSources.js +6 -31
  85. package/dist/core/frameworkExpressSources.js.map +1 -1
  86. package/dist/core/frameworkFastifySources.js +5 -22
  87. package/dist/core/frameworkFastifySources.js.map +1 -1
  88. package/dist/core/frameworkHonoSources.js +12 -24
  89. package/dist/core/frameworkHonoSources.js.map +1 -1
  90. package/dist/core/frameworkKoaSources.js +5 -24
  91. package/dist/core/frameworkKoaSources.js.map +1 -1
  92. package/dist/core/frameworkNextRouteSources.d.ts +6 -1
  93. package/dist/core/frameworkNextRouteSources.js +31 -1
  94. package/dist/core/frameworkNextRouteSources.js.map +1 -1
  95. package/dist/core/frameworkRemixSources.d.ts +2 -0
  96. package/dist/core/frameworkRemixSources.js +63 -0
  97. package/dist/core/frameworkRemixSources.js.map +1 -0
  98. package/dist/core/frameworkSourceContext.d.ts +15 -0
  99. package/dist/core/frameworkSourceContext.js +2 -0
  100. package/dist/core/frameworkSourceContext.js.map +1 -0
  101. package/dist/core/frameworkSourceMatching.d.ts +6 -0
  102. package/dist/core/frameworkSourceMatching.js +29 -0
  103. package/dist/core/frameworkSourceMatching.js.map +1 -0
  104. package/dist/core/frameworkSourceResolvers.d.ts +2 -0
  105. package/dist/core/frameworkSourceResolvers.js +45 -0
  106. package/dist/core/frameworkSourceResolvers.js.map +1 -0
  107. package/dist/core/frameworkSources.d.ts +3 -3
  108. package/dist/core/frameworkSources.js +17 -15
  109. package/dist/core/frameworkSources.js.map +1 -1
  110. package/dist/core/frameworkSvelteKitSources.d.ts +2 -0
  111. package/dist/core/frameworkSvelteKitSources.js +118 -0
  112. package/dist/core/frameworkSvelteKitSources.js.map +1 -0
  113. package/dist/core/intentRouter.d.ts +4 -14
  114. package/dist/core/intentRouter.js +2 -33
  115. package/dist/core/intentRouter.js.map +1 -1
  116. package/dist/core/intentRouterCatalog.js +49 -0
  117. package/dist/core/intentRouterCatalog.js.map +1 -1
  118. package/dist/core/intentRouterKeywordToolGuards.js +5 -0
  119. package/dist/core/intentRouterKeywordToolGuards.js.map +1 -1
  120. package/dist/core/intentRouterKeywordWeights.js +36 -0
  121. package/dist/core/intentRouterKeywordWeights.js.map +1 -1
  122. package/dist/core/intentRouterReleaseSignals.js +104 -39
  123. package/dist/core/intentRouterReleaseSignals.js.map +1 -1
  124. package/dist/core/intentRouterResolution.d.ts +3 -0
  125. package/dist/core/intentRouterResolution.js +11 -0
  126. package/dist/core/intentRouterResolution.js.map +1 -0
  127. package/dist/core/intentRouterResult.d.ts +16 -0
  128. package/dist/core/intentRouterResult.js +34 -0
  129. package/dist/core/intentRouterResult.js.map +1 -0
  130. package/dist/core/intentRouterWorkSignals.js +18 -0
  131. package/dist/core/intentRouterWorkSignals.js.map +1 -1
  132. package/dist/core/languages/pythonLockfiles.d.ts +4 -0
  133. package/dist/core/languages/pythonLockfiles.js +6 -2
  134. package/dist/core/languages/pythonLockfiles.js.map +1 -1
  135. package/dist/core/languages/pythonManifests.js +11 -24
  136. package/dist/core/languages/pythonManifests.js.map +1 -1
  137. package/dist/core/languages/pythonPep508.js +1 -1
  138. package/dist/core/languages/pythonPep508.js.map +1 -1
  139. package/dist/core/languages/pythonProjectEvidence.js +4 -4
  140. package/dist/core/languages/pythonProjectEvidence.js.map +1 -1
  141. package/dist/core/languages/pythonPyproject.js +1 -1
  142. package/dist/core/languages/pythonPyproject.js.map +1 -1
  143. package/dist/core/languages/pythonPyprojectEvidence.d.ts +7 -0
  144. package/dist/core/languages/pythonPyprojectEvidence.js +23 -0
  145. package/dist/core/languages/pythonPyprojectEvidence.js.map +1 -0
  146. package/dist/core/languages/pythonRequirements.d.ts +2 -0
  147. package/dist/core/languages/pythonRequirements.js +215 -24
  148. package/dist/core/languages/pythonRequirements.js.map +1 -1
  149. package/dist/core/pluginAnalyzerLoading.d.ts +3 -0
  150. package/dist/core/pluginAnalyzerLoading.js +55 -0
  151. package/dist/core/pluginAnalyzerLoading.js.map +1 -0
  152. package/dist/core/pluginAnalyzerRunning.d.ts +10 -0
  153. package/dist/core/pluginAnalyzerRunning.js +32 -0
  154. package/dist/core/pluginAnalyzerRunning.js.map +1 -0
  155. package/dist/core/pluginIssueValidation.d.ts +2 -0
  156. package/dist/core/pluginIssueValidation.js +22 -0
  157. package/dist/core/pluginIssueValidation.js.map +1 -0
  158. package/dist/core/pluginManifestDiscovery.d.ts +25 -0
  159. package/dist/core/pluginManifestDiscovery.js +80 -0
  160. package/dist/core/pluginManifestDiscovery.js.map +1 -0
  161. package/dist/core/pluginManifestValidation.d.ts +41 -0
  162. package/dist/core/pluginManifestValidation.js +179 -0
  163. package/dist/core/pluginManifestValidation.js.map +1 -0
  164. package/dist/core/pluginModuleLoading.d.ts +8 -0
  165. package/dist/core/pluginModuleLoading.js +91 -0
  166. package/dist/core/pluginModuleLoading.js.map +1 -0
  167. package/dist/core/pluginReporterLoading.d.ts +41 -0
  168. package/dist/core/pluginReporterLoading.js +105 -0
  169. package/dist/core/pluginReporterLoading.js.map +1 -0
  170. package/dist/core/pluginRuntimeTypes.d.ts +20 -0
  171. package/dist/core/pluginRuntimeTypes.js +2 -0
  172. package/dist/core/pluginRuntimeTypes.js.map +1 -0
  173. package/dist/core/plugins.d.ts +11 -126
  174. package/dist/core/plugins.js +13 -478
  175. package/dist/core/plugins.js.map +1 -1
  176. package/dist/core/preflight.d.ts +1 -2
  177. package/dist/core/preflight.js +4 -91
  178. package/dist/core/preflight.js.map +1 -1
  179. package/dist/core/preflightEvidence.js +11 -0
  180. package/dist/core/preflightEvidence.js.map +1 -1
  181. package/dist/core/preflightInputs.d.ts +1 -0
  182. package/dist/core/preflightInputs.js.map +1 -1
  183. package/dist/core/preflightReasons.d.ts +21 -0
  184. package/dist/core/preflightReasons.js +28 -0
  185. package/dist/core/preflightReasons.js.map +1 -0
  186. package/dist/core/preflightReport.d.ts +9 -0
  187. package/dist/core/preflightReport.js +67 -0
  188. package/dist/core/preflightReport.js.map +1 -0
  189. package/dist/core/regressionPlan.d.ts +2 -1
  190. package/dist/core/regressionPlan.js +7 -1
  191. package/dist/core/regressionPlan.js.map +1 -1
  192. package/dist/core/releaseEvidence.js +6 -120
  193. package/dist/core/releaseEvidence.js.map +1 -1
  194. package/dist/core/releaseEvidenceArtifacts.d.ts +3 -0
  195. package/dist/core/releaseEvidenceArtifacts.js +65 -0
  196. package/dist/core/releaseEvidenceArtifacts.js.map +1 -0
  197. package/dist/core/releaseEvidenceVerdict.d.ts +6 -0
  198. package/dist/core/releaseEvidenceVerdict.js +54 -0
  199. package/dist/core/releaseEvidenceVerdict.js.map +1 -0
  200. package/dist/core/reportPathRedaction.d.ts +4 -0
  201. package/dist/core/reportPathRedaction.js +64 -0
  202. package/dist/core/reportPathRedaction.js.map +1 -0
  203. package/dist/core/reportScope.js +2 -163
  204. package/dist/core/reportScope.js.map +1 -1
  205. package/dist/core/reportScopeFiltering.d.ts +9 -0
  206. package/dist/core/reportScopeFiltering.js +102 -0
  207. package/dist/core/reportScopeFiltering.js.map +1 -0
  208. package/dist/core/review.js +2 -47
  209. package/dist/core/review.js.map +1 -1
  210. package/dist/core/reviewChangedReport.d.ts +13 -0
  211. package/dist/core/reviewChangedReport.js +38 -0
  212. package/dist/core/reviewChangedReport.js.map +1 -0
  213. package/dist/core/reviewComputation.d.ts +9 -0
  214. package/dist/core/reviewComputation.js +14 -0
  215. package/dist/core/reviewComputation.js.map +1 -0
  216. package/dist/core/reviewContractChanges.js +22 -8
  217. package/dist/core/reviewContractChanges.js.map +1 -1
  218. package/dist/core/reviewDataflow.js +18 -0
  219. package/dist/core/reviewDataflow.js.map +1 -1
  220. package/dist/core/roadmapCatalog.js +7 -203
  221. package/dist/core/roadmapCatalog.js.map +1 -1
  222. package/dist/core/roadmapCatalogPost44.d.ts +2 -0
  223. package/dist/core/roadmapCatalogPost44.js +205 -0
  224. package/dist/core/roadmapCatalogPost44.js.map +1 -0
  225. package/dist/core/roadmapCatalogTypes.d.ts +6 -0
  226. package/dist/core/roadmapCatalogTypes.js +2 -0
  227. package/dist/core/roadmapCatalogTypes.js.map +1 -0
  228. package/dist/core/searchIndex.d.ts +2 -14
  229. package/dist/core/searchIndex.js +4 -227
  230. package/dist/core/searchIndex.js.map +1 -1
  231. package/dist/core/searchIndexFiles.d.ts +1 -0
  232. package/dist/core/searchIndexFiles.js +26 -0
  233. package/dist/core/searchIndexFiles.js.map +1 -0
  234. package/dist/core/searchIndexText.d.ts +15 -0
  235. package/dist/core/searchIndexText.js +204 -0
  236. package/dist/core/searchIndexText.js.map +1 -0
  237. package/dist/core/start.js +5 -46
  238. package/dist/core/start.js.map +1 -1
  239. package/dist/core/startClaimRouteCriteria.d.ts +7 -0
  240. package/dist/core/startClaimRouteCriteria.js +16 -0
  241. package/dist/core/startClaimRouteCriteria.js.map +1 -0
  242. package/dist/core/startCouplingRouteCriteria.d.ts +2 -0
  243. package/dist/core/startCouplingRouteCriteria.js +13 -0
  244. package/dist/core/startCouplingRouteCriteria.js.map +1 -0
  245. package/dist/core/startDependencyRouteCriteria.d.ts +2 -0
  246. package/dist/core/startDependencyRouteCriteria.js +43 -0
  247. package/dist/core/startDependencyRouteCriteria.js.map +1 -0
  248. package/dist/core/startEvidence.d.ts +1 -1
  249. package/dist/core/startEvidence.js +16 -1
  250. package/dist/core/startEvidence.js.map +1 -1
  251. package/dist/core/startFileRouteCriteria.d.ts +2 -0
  252. package/dist/core/startFileRouteCriteria.js +56 -0
  253. package/dist/core/startFileRouteCriteria.js.map +1 -0
  254. package/dist/core/startFixedRouteCriteria.d.ts +1 -0
  255. package/dist/core/startFixedRouteCriteria.js +90 -0
  256. package/dist/core/startFixedRouteCriteria.js.map +1 -0
  257. package/dist/core/startImpactRouteCriteria.d.ts +7 -0
  258. package/dist/core/startImpactRouteCriteria.js +14 -0
  259. package/dist/core/startImpactRouteCriteria.js.map +1 -0
  260. package/dist/core/startInputs.d.ts +1 -0
  261. package/dist/core/startInputs.js +4 -1
  262. package/dist/core/startInputs.js.map +1 -1
  263. package/dist/core/startIntentTargets.d.ts +1 -0
  264. package/dist/core/startIntentTargets.js +28 -0
  265. package/dist/core/startIntentTargets.js.map +1 -1
  266. package/dist/core/startMissionControl.js +8 -2
  267. package/dist/core/startMissionControl.js.map +1 -1
  268. package/dist/core/startMissionPolicy.js +12 -0
  269. package/dist/core/startMissionPolicy.js.map +1 -1
  270. package/dist/core/startMode.d.ts +1 -0
  271. package/dist/core/startMode.js +10 -2
  272. package/dist/core/startMode.js.map +1 -1
  273. package/dist/core/startPreflightRouteCriteria.d.ts +11 -0
  274. package/dist/core/startPreflightRouteCriteria.js +29 -0
  275. package/dist/core/startPreflightRouteCriteria.js.map +1 -0
  276. package/dist/core/startProductPlanningRouteCriteria.d.ts +8 -0
  277. package/dist/core/startProductPlanningRouteCriteria.js +29 -0
  278. package/dist/core/startProductPlanningRouteCriteria.js.map +1 -0
  279. package/dist/core/startRegressionRouteCriteria.d.ts +3 -0
  280. package/dist/core/startRegressionRouteCriteria.js +62 -0
  281. package/dist/core/startRegressionRouteCriteria.js.map +1 -0
  282. package/dist/core/startReportBuilder.d.ts +1 -0
  283. package/dist/core/startReportBuilder.js +1 -0
  284. package/dist/core/startReportBuilder.js.map +1 -1
  285. package/dist/core/startReportContext.d.ts +23 -0
  286. package/dist/core/startReportContext.js +51 -0
  287. package/dist/core/startReportContext.js.map +1 -0
  288. package/dist/core/startRoadmapPreview.d.ts +2 -0
  289. package/dist/core/startRoadmapPreview.js +31 -0
  290. package/dist/core/startRoadmapPreview.js.map +1 -0
  291. package/dist/core/startRouteActions.js +39 -1
  292. package/dist/core/startRouteActions.js.map +1 -1
  293. package/dist/core/startSuccessCriteria.d.ts +2 -3
  294. package/dist/core/startSuccessCriteria.js +15 -419
  295. package/dist/core/startSuccessCriteria.js.map +1 -1
  296. package/dist/core/startUnderstandRouteCriteria.d.ts +3 -0
  297. package/dist/core/startUnderstandRouteCriteria.js +97 -0
  298. package/dist/core/startUnderstandRouteCriteria.js.map +1 -0
  299. package/dist/core/taint.d.ts +2 -67
  300. package/dist/core/taint.js +41 -164
  301. package/dist/core/taint.js.map +1 -1
  302. package/dist/core/taintIndex.d.ts +20 -0
  303. package/dist/core/taintIndex.js +81 -0
  304. package/dist/core/taintIndex.js.map +1 -0
  305. package/dist/core/taintTraversal.d.ts +8 -0
  306. package/dist/core/taintTraversal.js +113 -0
  307. package/dist/core/taintTraversal.js.map +1 -0
  308. package/dist/core/taintTypes.d.ts +67 -0
  309. package/dist/core/taintTypes.js +2 -0
  310. package/dist/core/taintTypes.js.map +1 -0
  311. package/dist/core/telemetry.d.ts +9 -89
  312. package/dist/core/telemetry.js +35 -387
  313. package/dist/core/telemetry.js.map +1 -1
  314. package/dist/core/telemetryConfig.d.ts +58 -0
  315. package/dist/core/telemetryConfig.js +171 -0
  316. package/dist/core/telemetryConfig.js.map +1 -0
  317. package/dist/core/telemetryEvents.d.ts +57 -0
  318. package/dist/core/telemetryEvents.js +143 -0
  319. package/dist/core/telemetryEvents.js.map +1 -0
  320. package/dist/core/telemetryFlushing.d.ts +10 -0
  321. package/dist/core/telemetryFlushing.js +42 -0
  322. package/dist/core/telemetryFlushing.js.map +1 -0
  323. package/dist/core/telemetryRecording.d.ts +26 -0
  324. package/dist/core/telemetryRecording.js +38 -0
  325. package/dist/core/telemetryRecording.js.map +1 -0
  326. package/dist/core/telemetrySender.d.ts +9 -0
  327. package/dist/core/telemetrySender.js +22 -0
  328. package/dist/core/telemetrySender.js.map +1 -0
  329. package/dist/core/upgradePreviewPython.js +1 -1
  330. package/dist/core/upgradePreviewPython.js.map +1 -1
  331. package/dist/index.d.ts +4 -60
  332. package/dist/index.js +4 -60
  333. package/dist/index.js.map +1 -1
  334. package/dist/mcp/server.js +2 -13
  335. package/dist/mcp/server.js.map +1 -1
  336. package/dist/mcp/serverMessageHandling.d.ts +3 -0
  337. package/dist/mcp/serverMessageHandling.js +16 -0
  338. package/dist/mcp/serverMessageHandling.js.map +1 -0
  339. package/dist/mcp/toolDefinitions.d.ts +3 -0
  340. package/dist/mcp/toolDefinitions.js +15 -0
  341. package/dist/mcp/toolDefinitions.js.map +1 -0
  342. package/dist/mcp/tools.js +2 -13
  343. package/dist/mcp/tools.js.map +1 -1
  344. package/dist/projscan-sbom.cdx.json +6 -6
  345. package/dist/publicAgent.d.ts +22 -0
  346. package/dist/publicAgent.js +23 -0
  347. package/dist/publicAgent.js.map +1 -0
  348. package/dist/publicCore.d.ts +29 -0
  349. package/dist/publicCore.js +30 -0
  350. package/dist/publicCore.js.map +1 -0
  351. package/dist/publicLanguages.d.ts +1 -0
  352. package/dist/publicLanguages.js +2 -0
  353. package/dist/publicLanguages.js.map +1 -0
  354. package/dist/publicMcp.d.ts +8 -0
  355. package/dist/publicMcp.js +9 -0
  356. package/dist/publicMcp.js.map +1 -0
  357. package/dist/reporters/consoleFixReporter.d.ts +3 -0
  358. package/dist/reporters/consoleFixReporter.js +41 -0
  359. package/dist/reporters/consoleFixReporter.js.map +1 -0
  360. package/dist/reporters/consoleReporter.d.ts +1 -3
  361. package/dist/reporters/consoleReporter.js +1 -42
  362. package/dist/reporters/consoleReporter.js.map +1 -1
  363. package/dist/reporters/htmlAnalysisReporter.d.ts +3 -0
  364. package/dist/reporters/htmlAnalysisReporter.js +98 -0
  365. package/dist/reporters/htmlAnalysisReporter.js.map +1 -0
  366. package/dist/reporters/htmlCoverageReporter.d.ts +2 -0
  367. package/dist/reporters/htmlCoverageReporter.js +52 -0
  368. package/dist/reporters/htmlCoverageReporter.js.map +1 -0
  369. package/dist/reporters/htmlImpactReporter.d.ts +2 -0
  370. package/dist/reporters/htmlImpactReporter.js +41 -0
  371. package/dist/reporters/htmlImpactReporter.js.map +1 -0
  372. package/dist/reporters/htmlPrDiffReporter.d.ts +2 -0
  373. package/dist/reporters/htmlPrDiffReporter.js +84 -0
  374. package/dist/reporters/htmlPrDiffReporter.js.map +1 -0
  375. package/dist/reporters/htmlReporter.d.ts +20 -9
  376. package/dist/reporters/htmlReporter.js +7 -365
  377. package/dist/reporters/htmlReporter.js.map +1 -1
  378. package/dist/reporters/htmlReviewReporter.d.ts +2 -0
  379. package/dist/reporters/htmlReviewReporter.js +94 -0
  380. package/dist/reporters/htmlReviewReporter.js.map +1 -0
  381. package/dist/reporters/htmlShared.d.ts +7 -0
  382. package/dist/reporters/htmlShared.js +106 -0
  383. package/dist/reporters/htmlShared.js.map +1 -0
  384. package/dist/tool-manifest.json +2 -2
  385. package/dist/types/preflight.d.ts +19 -0
  386. package/dist/types/start.d.ts +7 -437
  387. package/dist/types/startCommon.d.ts +79 -0
  388. package/dist/types/startCommon.js +2 -0
  389. package/dist/types/startCommon.js.map +1 -0
  390. package/dist/types/startExecution.d.ts +44 -0
  391. package/dist/types/startExecution.js +2 -0
  392. package/dist/types/startExecution.js.map +1 -0
  393. package/dist/types/startMissionControl.d.ts +91 -0
  394. package/dist/types/startMissionControl.js +2 -0
  395. package/dist/types/startMissionControl.js.map +1 -0
  396. package/dist/types/startMissionProof.d.ts +91 -0
  397. package/dist/types/startMissionProof.js +2 -0
  398. package/dist/types/startMissionProof.js.map +1 -0
  399. package/dist/types/startMissionResume.d.ts +100 -0
  400. package/dist/types/startMissionResume.js +2 -0
  401. package/dist/types/startMissionResume.js.map +1 -0
  402. package/dist/types/startMissionReview.d.ts +45 -0
  403. package/dist/types/startMissionReview.js +2 -0
  404. package/dist/types/startMissionReview.js.map +1 -0
  405. package/dist/types/startMissionTooling.d.ts +16 -0
  406. package/dist/types/startMissionTooling.js +2 -0
  407. package/dist/types/startMissionTooling.js.map +1 -0
  408. package/dist/utils/changedFiles.d.ts +1 -0
  409. package/dist/utils/changedFiles.js +7 -4
  410. package/dist/utils/changedFiles.js.map +1 -1
  411. package/docs/GUIDE.md +9 -7
  412. package/docs/ROADMAP.md +18 -7
  413. package/docs/examples/adoption-workflows.md +12 -1
  414. package/docs/examples/swarm-coordination.md +11 -2
  415. package/package.json +1 -1
@@ -0,0 +1,87 @@
1
+ import { parseDepName } from './fixSuggestDependencyNames.js';
2
+ const TEST_FRAMEWORK_ISSUES = new Set(['missing-test-framework', 'missing-python-test-framework']);
3
+ const FIRST_TEST_ISSUES = new Set(['no-test-files', 'no-python-test-files']);
4
+ const TOOLING_SETUP_ISSUES = new Set([
5
+ 'missing-linter',
6
+ 'missing-python-linter',
7
+ 'missing-formatter',
8
+ 'missing-python-formatter',
9
+ ]);
10
+ const PREVIEW_RULES = [
11
+ {
12
+ matches: (issue) => issue.id.startsWith('unused-dependency-'),
13
+ headline: (issue) => `Remove or wire up "${parseDepName(issue.id)}".`,
14
+ },
15
+ {
16
+ matches: (issue) => issue.id === 'dep-risk-no-lockfile',
17
+ headline: () => 'Run `npm install` and commit the lockfile.',
18
+ },
19
+ {
20
+ matches: (issue) => issue.id.startsWith('dep-risk-'),
21
+ headline: (issue) => `Audit "${issue.id.slice('dep-risk-'.length)}" or pin to an exact version.`,
22
+ },
23
+ {
24
+ matches: (issue) => issue.id.startsWith('audit-'),
25
+ headline: () => 'Try `npm audit fix`, then upgrade or pin manually.',
26
+ },
27
+ {
28
+ matches: (issue) => issue.id.startsWith('cycle-detected-'),
29
+ headline: () => 'Break the cycle by extracting a shared module.',
30
+ },
31
+ {
32
+ matches: (issue) => issue.id.startsWith('large-') && issue.id.endsWith('-dir'),
33
+ headline: () => 'Split the directory by domain.',
34
+ },
35
+ {
36
+ matches: (issue) => issue.id === 'dead-code' || issue.id.startsWith('dead-code-'),
37
+ headline: () => 'Confirm with `projscan_semantic_graph { query: { direction: "importers", file: "<file>" } }` then delete or expose.',
38
+ },
39
+ {
40
+ matches: (issue) => TEST_FRAMEWORK_ISSUES.has(issue.id),
41
+ headline: (issue) => issue.id.includes('python')
42
+ ? 'Install pytest + write one smoke test.'
43
+ : 'Install vitest + write one smoke test.',
44
+ },
45
+ {
46
+ matches: (issue) => FIRST_TEST_ISSUES.has(issue.id),
47
+ headline: () => 'Write the first test against your top hotspot.',
48
+ },
49
+ {
50
+ matches: (issue) => TOOLING_SETUP_ISSUES.has(issue.id),
51
+ headline: (issue) => issue.id.includes('python')
52
+ ? 'Add ruff and run `ruff check . --fix` once.'
53
+ : 'Add eslint + prettier; baseline with `--fix`.',
54
+ },
55
+ {
56
+ matches: (issue) => issue.id.startsWith('cross-package-violation-'),
57
+ headline: () => "Use the package's public entry, or widen the importPolicy.",
58
+ },
59
+ {
60
+ matches: (issue) => issue.id.startsWith('eslint-'),
61
+ headline: (issue) => {
62
+ const ruleName = issue.id.slice('eslint-'.length);
63
+ return `Fix per docs, or scope a disable to the line with a reason: \`${ruleName}\`.`;
64
+ },
65
+ },
66
+ {
67
+ matches: (issue) => issue.id.startsWith('python-type-error-'),
68
+ headline: () => 'Refine the annotation, narrow at the call site, or pin a `# type: ignore[code]`.',
69
+ },
70
+ ];
71
+ /**
72
+ * Synchronous one-line preview for inline use in projscan_doctor output.
73
+ * Returns the headline a template would render. We can't run the full
74
+ * template synchronously (some are async-shaped); the headline is a
75
+ * lightweight projection that doesn't need IO.
76
+ */
77
+ export function previewSuggestionForIssue(issue) {
78
+ const headline = staticHeadlineFor(issue);
79
+ if (!headline)
80
+ return null;
81
+ return { summary: headline };
82
+ }
83
+ function staticHeadlineFor(issue) {
84
+ const rule = PREVIEW_RULES.find((candidate) => candidate.matches(issue));
85
+ return rule?.headline(issue) ?? null;
86
+ }
87
+ //# sourceMappingURL=fixSuggestPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixSuggestPreview.js","sourceRoot":"","sources":["../../src/core/fixSuggestPreview.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { isKnownHandlerCall, matchingParameters, sourceFromExactMembers, sourceFromPrefixedMembers, } from './frameworkSourceMatching.js';
1
2
  const EXPRESS_REQUEST_SOURCE_BY_REFERENCE = new Map([
2
3
  ['body', 'express.req.body'],
3
4
  ['query', 'express.req.query'],
@@ -44,7 +45,7 @@ export function expressRequestSource(parameters, references, memberReferences, m
44
45
  return expressMatchedSource(requestParams, references, memberReferences, memberCallSites, enabledSources);
45
46
  }
46
47
  function expressRequestParams(parameters) {
47
- return parameters.filter((parameter) => EXPRESS_REQUEST_PARAM_NAMES.has(parameter));
48
+ return matchingParameters(parameters, EXPRESS_REQUEST_PARAM_NAMES);
48
49
  }
49
50
  function expressMatchedSource(requestParams, references, memberReferences, memberCallSites, enabledSources) {
50
51
  return (expressMemberReferenceSource(requestParams, memberReferences, enabledSources) ??
@@ -52,44 +53,18 @@ function expressMatchedSource(requestParams, references, memberReferences, membe
52
53
  expressMemberCallSource(requestParams, memberCallSites, enabledSources));
53
54
  }
54
55
  function expressReferenceSource(references, enabledSources) {
55
- const refs = new Set(references);
56
- for (const [reference, source] of EXPRESS_REQUEST_SOURCE_BY_REFERENCE) {
57
- if (enabledSources.has(source) && refs.has(reference))
58
- return source;
59
- }
60
- return null;
56
+ return sourceFromExactMembers(references, EXPRESS_REQUEST_SOURCE_BY_REFERENCE, enabledSources);
61
57
  }
62
58
  function expressMemberReferenceSource(requestParams, memberReferences, enabledSources) {
63
- const members = new Set(memberReferences);
64
- for (const parameter of requestParams) {
65
- for (const [member, source] of EXPRESS_REQUEST_SOURCE_BY_MEMBER) {
66
- if (enabledSources.has(source) && members.has(`${parameter}.${member}`))
67
- return source;
68
- }
69
- }
70
- return null;
59
+ return sourceFromPrefixedMembers(requestParams.map((parameter) => `${parameter}.`), memberReferences, EXPRESS_REQUEST_SOURCE_BY_MEMBER, enabledSources);
71
60
  }
72
61
  function expressMemberCallSource(requestParams, memberCallSites, enabledSources) {
73
- const calls = new Set(memberCallSites);
74
- for (const parameter of requestParams) {
75
- for (const [member, source] of EXPRESS_REQUEST_SOURCE_BY_MEMBER_CALL) {
76
- if (enabledSources.has(source) && calls.has(`${parameter}.${member}`))
77
- return source;
78
- }
79
- }
80
- return null;
62
+ return sourceFromPrefixedMembers(requestParams.map((parameter) => `${parameter}.`), memberCallSites, EXPRESS_REQUEST_SOURCE_BY_MEMBER_CALL, enabledSources);
81
63
  }
82
64
  function isExpressFile(imports) {
83
65
  return imports.some((imp) => imp.source === 'express');
84
66
  }
85
67
  function isExpressHandlerCall(contextualCallSite) {
86
- if (!contextualCallSite)
87
- return false;
88
- const method = bareName(contextualCallSite);
89
- return EXPRESS_HANDLER_METHODS.has(method);
90
- }
91
- function bareName(qualified) {
92
- const dot = qualified.lastIndexOf('.');
93
- return dot < 0 ? qualified : qualified.slice(dot + 1);
68
+ return isKnownHandlerCall(contextualCallSite, EXPRESS_HANDLER_METHODS);
94
69
  }
95
70
  //# sourceMappingURL=frameworkExpressSources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frameworkExpressSources.js","sourceRoot":"","sources":["../../src/core/frameworkExpressSources.ts"],"names":[],"mappings":"AAAA,MAAM,mCAAmC,GAAG,IAAI,GAAG,CAAiB;IAClE,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAC5B,CAAC,OAAO,EAAE,mBAAmB,CAAC;IAC9B,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IAChC,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAClC,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAClC,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAAiB;IAC/D,CAAC,aAAa,EAAE,yBAAyB,CAAC;IAC1C,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAC1B,CAAC,MAAM,EAAE,kBAAkB,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,qCAAqC,GAAG,IAAI,GAAG,CAAiB;IACpE,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAC1B,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IAChC,CAAC,OAAO,EAAE,mBAAmB,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;CACN,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,GAAG,mCAAmC,CAAC,MAAM,EAAE;IAC/C,GAAG,gCAAgC,CAAC,MAAM,EAAE;IAC5C,GAAG,qCAAqC,CAAC,MAAM,EAAE;CAClD,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,UAAoB,EACpB,UAAoB,EACpB,gBAA0B,EAC1B,eAAyB,EACzB,cAA2B,EAC3B,kBAAsC,EACtC,OAAkC;IAElC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,oBAAoB,CAAC,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;AAC5G,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAoB;IAChD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,oBAAoB,CAC3B,aAAuB,EACvB,UAAoB,EACpB,gBAA0B,EAC1B,eAAyB,EACzB,cAA2B;IAE3B,OAAO,CACL,4BAA4B,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,CAAC;QAC7E,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC;QAClD,uBAAuB,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC,CACxE,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAoB,EAAE,cAA2B;IAC/E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACjC,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,mCAAmC,EAAE,CAAC;QACtE,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,MAAM,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CACnC,aAAuB,EACvB,gBAA0B,EAC1B,cAA2B;IAE3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,gCAAgC,EAAE,CAAC;YAChE,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;gBAAE,OAAO,MAAM,CAAC;QACzF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAC9B,aAAuB,EACvB,eAAyB,EACzB,cAA2B;IAE3B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IACvC,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,qCAAqC,EAAE,CAAC;YACrE,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;gBAAE,OAAO,MAAM,CAAC;QACvF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,OAAkC;IACvD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,oBAAoB,CAAC,kBAAsC;IAClE,IAAI,CAAC,kBAAkB;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC5C,OAAO,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,QAAQ,CAAC,SAAiB;IACjC,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"frameworkExpressSources.js","sourceRoot":"","sources":["../../src/core/frameworkExpressSources.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { isKnownHandlerCall, matchingParameters, sourceFromExactMembers, sourceFromPrefixedMembers, } from './frameworkSourceMatching.js';
1
2
  const FASTIFY_REQUEST_SOURCE_BY_REFERENCE = new Map([
2
3
  ['body', 'fastify.request.body'],
3
4
  ['query', 'fastify.request.query'],
@@ -35,40 +36,22 @@ export function fastifyRequestSource(parameters, references, memberReferences, e
35
36
  return null;
36
37
  if (!isFastifyHandlerCall(contextualCallSite))
37
38
  return null;
38
- const requestParams = parameters.filter((parameter) => FASTIFY_REQUEST_PARAM_NAMES.has(parameter));
39
+ const requestParams = matchingParameters(parameters, FASTIFY_REQUEST_PARAM_NAMES);
39
40
  if (requestParams.length === 0)
40
41
  return null;
41
42
  return (fastifyMemberReferenceSource(requestParams, memberReferences, enabledSources) ??
42
43
  fastifyReferenceSource(references, enabledSources));
43
44
  }
44
45
  function fastifyReferenceSource(references, enabledSources) {
45
- const refs = new Set(references);
46
- for (const [reference, source] of FASTIFY_REQUEST_SOURCE_BY_REFERENCE) {
47
- if (enabledSources.has(source) && refs.has(reference))
48
- return source;
49
- }
50
- return null;
46
+ return sourceFromExactMembers(references, FASTIFY_REQUEST_SOURCE_BY_REFERENCE, enabledSources);
51
47
  }
52
48
  function fastifyMemberReferenceSource(requestParams, memberReferences, enabledSources) {
53
- const members = new Set(memberReferences);
54
- for (const parameter of requestParams) {
55
- for (const [member, source] of FASTIFY_REQUEST_SOURCE_BY_MEMBER) {
56
- if (enabledSources.has(source) && members.has(`${parameter}.${member}`))
57
- return source;
58
- }
59
- }
60
- return null;
49
+ return sourceFromPrefixedMembers(requestParams.map((parameter) => `${parameter}.`), memberReferences, FASTIFY_REQUEST_SOURCE_BY_MEMBER, enabledSources);
61
50
  }
62
51
  function isFastifyFile(imports) {
63
52
  return imports.some((imp) => imp.source === 'fastify' || imp.source.startsWith('fastify/'));
64
53
  }
65
54
  function isFastifyHandlerCall(contextualCallSite) {
66
- if (!contextualCallSite)
67
- return false;
68
- return FASTIFY_HANDLER_METHODS.has(bareName(contextualCallSite));
69
- }
70
- function bareName(qualified) {
71
- const dot = qualified.lastIndexOf('.');
72
- return dot < 0 ? qualified : qualified.slice(dot + 1);
55
+ return isKnownHandlerCall(contextualCallSite, FASTIFY_HANDLER_METHODS);
73
56
  }
74
57
  //# sourceMappingURL=frameworkFastifySources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frameworkFastifySources.js","sourceRoot":"","sources":["../../src/core/frameworkFastifySources.ts"],"names":[],"mappings":"AAAA,MAAM,mCAAmC,GAAG,IAAI,GAAG,CAAiB;IAClE,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAChC,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAClC,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IACpC,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACtC,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACtC,CAAC,IAAI,EAAE,oBAAoB,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAAiB;IAC/D,CAAC,aAAa,EAAE,6BAA6B,CAAC;IAC9C,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACtC,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAChC,CAAC,UAAU,EAAE,0BAA0B,CAAC;IACxC,CAAC,KAAK,EAAE,qBAAqB,CAAC;IAC9B,CAAC,aAAa,EAAE,6BAA6B,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,GAAG,mCAAmC,CAAC,MAAM,EAAE;IAC/C,GAAG,gCAAgC,CAAC,MAAM,EAAE;CAC7C,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,UAAoB,EACpB,UAAoB,EACpB,gBAA0B,EAC1B,cAA2B,EAC3B,kBAAsC,EACtC,OAAkC;IAElC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACnG,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,CACL,4BAA4B,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,CAAC;QAC7E,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAoB,EAAE,cAA2B;IAC/E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACjC,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,mCAAmC,EAAE,CAAC;QACtE,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,MAAM,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CACnC,aAAuB,EACvB,gBAA0B,EAC1B,cAA2B;IAE3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,gCAAgC,EAAE,CAAC;YAChE,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;gBAAE,OAAO,MAAM,CAAC;QACzF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,OAAkC;IACvD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,oBAAoB,CAAC,kBAAsC;IAClE,IAAI,CAAC,kBAAkB;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,QAAQ,CAAC,SAAiB;IACjC,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"frameworkFastifySources.js","sourceRoot":"","sources":["../../src/core/frameworkFastifySources.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,mCAAmC,GAAG,IAAI,GAAG,CAAiB;IAClE,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAChC,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAClC,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IACpC,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACtC,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACtC,CAAC,IAAI,EAAE,oBAAoB,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAAiB;IAC/D,CAAC,aAAa,EAAE,6BAA6B,CAAC;IAC9C,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACtC,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAChC,CAAC,UAAU,EAAE,0BAA0B,CAAC;IACxC,CAAC,KAAK,EAAE,qBAAqB,CAAC;IAC9B,CAAC,aAAa,EAAE,6BAA6B,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,GAAG,mCAAmC,CAAC,MAAM,EAAE;IAC/C,GAAG,gCAAgC,CAAC,MAAM,EAAE;CAC7C,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAClC,UAAoB,EACpB,UAAoB,EACpB,gBAA0B,EAC1B,cAA2B,EAC3B,kBAAsC,EACtC,OAAkC;IAElC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,aAAa,GAAG,kBAAkB,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IAClF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,CACL,4BAA4B,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,CAAC;QAC7E,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAoB,EAAE,cAA2B;IAC/E,OAAO,sBAAsB,CAAC,UAAU,EAAE,mCAAmC,EAAE,cAAc,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,4BAA4B,CACnC,aAAuB,EACvB,gBAA0B,EAC1B,cAA2B;IAE3B,OAAO,yBAAyB,CAC9B,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,EACjD,gBAAgB,EAChB,gCAAgC,EAChC,cAAc,CACf,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAkC;IACvD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,oBAAoB,CAAC,kBAAsC;IAClE,OAAO,kBAAkB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;AACzE,CAAC"}
@@ -1,15 +1,23 @@
1
+ import { isKnownHandlerCall, matchingParameters, sourceFromPrefixedMembers, } from './frameworkSourceMatching.js';
1
2
  const HONO_REQUEST_SOURCE_BY_MEMBER_CALL = new Map([
2
3
  ['json', 'hono.req.json'],
3
4
  ['parseBody', 'hono.req.parseBody'],
4
5
  ['text', 'hono.req.text'],
6
+ ['arrayBuffer', 'hono.req.arrayBuffer'],
7
+ ['blob', 'hono.req.blob'],
8
+ ['formData', 'hono.req.formData'],
5
9
  ['query', 'hono.req.query'],
10
+ ['queries', 'hono.req.queries'],
6
11
  ['param', 'hono.req.param'],
7
12
  ['header', 'hono.req.header'],
13
+ ['raw.headers.get', 'hono.req.raw.headers'],
8
14
  ['valid', 'hono.req.valid'],
9
15
  ]);
10
16
  const HONO_REQUEST_SOURCE_BY_MEMBER_REFERENCE = new Map([
11
17
  ['url', 'hono.req.url'],
12
18
  ['path', 'hono.req.path'],
19
+ ['raw.url', 'hono.req.raw.url'],
20
+ ['raw.headers', 'hono.req.raw.headers'],
13
21
  ]);
14
22
  const HONO_CONTEXT_PARAM_NAMES = new Set(['c', 'ctx', 'context']);
15
23
  const HONO_HANDLER_METHODS = new Set([
@@ -32,42 +40,22 @@ export function honoRequestSource(parameters, memberCallSites, memberReferences,
32
40
  return null;
33
41
  if (!isHonoHandlerCall(contextualCallSite))
34
42
  return null;
35
- const contextParams = parameters.filter((parameter) => HONO_CONTEXT_PARAM_NAMES.has(parameter));
43
+ const contextParams = matchingParameters(parameters, HONO_CONTEXT_PARAM_NAMES);
36
44
  if (contextParams.length === 0)
37
45
  return null;
38
46
  return (honoMemberCallSource(contextParams, memberCallSites, enabledSources) ??
39
47
  honoMemberReferenceSource(contextParams, memberReferences, enabledSources));
40
48
  }
41
49
  function honoMemberCallSource(contextParams, memberCallSites, enabledSources) {
42
- const members = new Set(memberCallSites);
43
- for (const parameter of contextParams) {
44
- for (const [callee, source] of HONO_REQUEST_SOURCE_BY_MEMBER_CALL) {
45
- if (enabledSources.has(source) && members.has(`${parameter}.req.${callee}`))
46
- return source;
47
- }
48
- }
49
- return null;
50
+ return sourceFromPrefixedMembers(contextParams.map((parameter) => `${parameter}.req.`), memberCallSites, HONO_REQUEST_SOURCE_BY_MEMBER_CALL, enabledSources);
50
51
  }
51
52
  function honoMemberReferenceSource(contextParams, memberReferences, enabledSources) {
52
- const members = new Set(memberReferences);
53
- for (const parameter of contextParams) {
54
- for (const [member, source] of HONO_REQUEST_SOURCE_BY_MEMBER_REFERENCE) {
55
- if (enabledSources.has(source) && members.has(`${parameter}.req.${member}`))
56
- return source;
57
- }
58
- }
59
- return null;
53
+ return sourceFromPrefixedMembers(contextParams.map((parameter) => `${parameter}.req.`), memberReferences, HONO_REQUEST_SOURCE_BY_MEMBER_REFERENCE, enabledSources);
60
54
  }
61
55
  function isHonoFile(imports) {
62
56
  return imports.some((imp) => imp.source === 'hono' || imp.source.startsWith('hono/'));
63
57
  }
64
58
  function isHonoHandlerCall(contextualCallSite) {
65
- if (!contextualCallSite)
66
- return false;
67
- return HONO_HANDLER_METHODS.has(bareName(contextualCallSite));
68
- }
69
- function bareName(qualified) {
70
- const dot = qualified.lastIndexOf('.');
71
- return dot < 0 ? qualified : qualified.slice(dot + 1);
59
+ return isKnownHandlerCall(contextualCallSite, HONO_HANDLER_METHODS);
72
60
  }
73
61
  //# sourceMappingURL=frameworkHonoSources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frameworkHonoSources.js","sourceRoot":"","sources":["../../src/core/frameworkHonoSources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frameworkHonoSources.js","sourceRoot":"","sources":["../../src/core/frameworkHonoSources.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { isKnownHandlerCall, matchingParameters, sourceFromPrefixedMembers, } from './frameworkSourceMatching.js';
1
2
  const KOA_REQUEST_SOURCE_BY_MEMBER = new Map([
2
3
  ['request.body', 'koa.ctx.request.body'],
3
4
  ['request.query', 'koa.ctx.request.query'],
@@ -40,42 +41,22 @@ export function koaRequestSource(parameters, memberReferences, memberCallSites,
40
41
  return null;
41
42
  if (!isKoaHandlerCall(contextualCallSite))
42
43
  return null;
43
- const contextParams = parameters.filter((parameter) => KOA_CONTEXT_PARAM_NAMES.has(parameter));
44
+ const contextParams = matchingParameters(parameters, KOA_CONTEXT_PARAM_NAMES);
44
45
  if (contextParams.length === 0)
45
46
  return null;
46
47
  return (koaMemberReferenceSource(contextParams, memberReferences, enabledSources) ??
47
48
  koaMemberCallSource(contextParams, memberCallSites, enabledSources));
48
49
  }
49
50
  function koaMemberReferenceSource(contextParams, memberReferences, enabledSources) {
50
- const members = new Set(memberReferences);
51
- for (const parameter of contextParams) {
52
- for (const [member, source] of KOA_REQUEST_SOURCE_BY_MEMBER) {
53
- if (enabledSources.has(source) && members.has(`${parameter}.${member}`))
54
- return source;
55
- }
56
- }
57
- return null;
51
+ return sourceFromPrefixedMembers(contextParams.map((parameter) => `${parameter}.`), memberReferences, KOA_REQUEST_SOURCE_BY_MEMBER, enabledSources);
58
52
  }
59
53
  function koaMemberCallSource(contextParams, memberCallSites, enabledSources) {
60
- const calls = new Set(memberCallSites);
61
- for (const parameter of contextParams) {
62
- for (const [member, source] of KOA_REQUEST_SOURCE_BY_MEMBER_CALL) {
63
- if (enabledSources.has(source) && calls.has(`${parameter}.${member}`))
64
- return source;
65
- }
66
- }
67
- return null;
54
+ return sourceFromPrefixedMembers(contextParams.map((parameter) => `${parameter}.`), memberCallSites, KOA_REQUEST_SOURCE_BY_MEMBER_CALL, enabledSources);
68
55
  }
69
56
  function isKoaFile(imports) {
70
57
  return imports.some((imp) => imp.source === 'koa' || imp.source === '@koa/router' || imp.source === 'koa-router');
71
58
  }
72
59
  function isKoaHandlerCall(contextualCallSite) {
73
- if (!contextualCallSite)
74
- return false;
75
- return KOA_HANDLER_METHODS.has(bareName(contextualCallSite));
76
- }
77
- function bareName(qualified) {
78
- const dot = qualified.lastIndexOf('.');
79
- return dot < 0 ? qualified : qualified.slice(dot + 1);
60
+ return isKnownHandlerCall(contextualCallSite, KOA_HANDLER_METHODS);
80
61
  }
81
62
  //# sourceMappingURL=frameworkKoaSources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frameworkKoaSources.js","sourceRoot":"","sources":["../../src/core/frameworkKoaSources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frameworkKoaSources.js","sourceRoot":"","sources":["../../src/core/frameworkKoaSources.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAiB;IAC3D,CAAC,cAAc,EAAE,sBAAsB,CAAC;IACxC,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAC1C,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;IAC9C,CAAC,YAAY,EAAE,oBAAoB,CAAC;IACpC,CAAC,aAAa,EAAE,qBAAqB,CAAC;IACtC,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;IACtD,CAAC,cAAc,EAAE,sBAAsB,CAAC;IACxC,CAAC,OAAO,EAAE,eAAe,CAAC;IAC1B,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAC5B,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAC9B,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,KAAK,EAAE,aAAa,CAAC;IACtB,CAAC,aAAa,EAAE,qBAAqB,CAAC;IACtC,CAAC,MAAM,EAAE,cAAc,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,iCAAiC,GAAG,IAAI,GAAG,CAAiB;IAChE,CAAC,KAAK,EAAE,aAAa,CAAC;IACtB,CAAC,aAAa,EAAE,qBAAqB,CAAC;IACtC,CAAC,aAAa,EAAE,qBAAqB,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;CACN,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,GAAG,4BAA4B,CAAC,MAAM,EAAE;IACxC,GAAG,iCAAiC,CAAC,MAAM,EAAE;CAC9C,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAC9B,UAAoB,EACpB,gBAA0B,EAC1B,eAAyB,EACzB,cAA2B,EAC3B,kBAAsC,EACtC,OAAkC;IAElC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,aAAa,GAAG,kBAAkB,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IAC9E,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,CACL,wBAAwB,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,CAAC;QACzE,mBAAmB,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC,CACpE,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,aAAuB,EACvB,gBAA0B,EAC1B,cAA2B;IAE3B,OAAO,yBAAyB,CAC9B,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,EACjD,gBAAgB,EAChB,4BAA4B,EAC5B,cAAc,CACf,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,aAAuB,EACvB,eAAyB,EACzB,cAA2B;IAE3B,OAAO,yBAAyB,CAC9B,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,EACjD,eAAe,EACf,iCAAiC,EACjC,cAAc,CACf,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,OAAkC;IACnD,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,aAAa,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,CAC7F,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,kBAAsC;IAC9D,OAAO,kBAAkB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;AACrE,CAAC"}
@@ -1,2 +1,7 @@
1
1
  export declare const NEXT_ROUTE_REQUEST_SOURCES: string[];
2
- export declare function nextRouteRequestSource(file: string, functionName: string, memberCallSites: string[], memberReferences: string[], parameters: string[], enabledSources: Set<string>): string | null;
2
+ export declare function nextRouteRequestSource(file: string, functionName: string, memberCallSites: string[], memberReferences: string[], parameters: string[], enabledSources: Set<string>, imports?: Array<{
3
+ source: string;
4
+ specifiers?: string[];
5
+ kind?: string;
6
+ typeOnly?: boolean;
7
+ }>, directCallSites?: string[]): string | null;
@@ -3,17 +3,32 @@ const NEXT_ROUTE_SOURCE_BY_CALLEE = new Map([
3
3
  ['formData', 'request.formData'],
4
4
  ['text', 'request.text'],
5
5
  ['arrayBuffer', 'request.arrayBuffer'],
6
+ ['headers.get', 'request.headers'],
7
+ ['cookies.get', 'request.cookies'],
8
+ ['cookies.getAll', 'request.cookies'],
6
9
  ]);
7
10
  const NEXT_ROUTE_SOURCE_BY_REFERENCE = new Map([
8
11
  ['url', 'request.url'],
12
+ ['headers', 'request.headers'],
13
+ ['cookies', 'request.cookies'],
14
+ ['nextUrl.pathname', 'request.nextUrl.pathname'],
9
15
  ['nextUrl.searchParams', 'request.nextUrl.searchParams'],
10
16
  ]);
17
+ const NEXT_HEADERS_MODULE_SOURCE_BY_CALLEE = new Map([
18
+ ['headers', 'next.headers'],
19
+ ['cookies', 'next.cookies'],
20
+ ]);
11
21
  const NEXT_ROUTE_HANDLERS = new Set(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS']);
12
22
  export const NEXT_ROUTE_REQUEST_SOURCES = [
13
23
  ...NEXT_ROUTE_SOURCE_BY_CALLEE.values(),
14
24
  ...NEXT_ROUTE_SOURCE_BY_REFERENCE.values(),
25
+ ...NEXT_HEADERS_MODULE_SOURCE_BY_CALLEE.values(),
15
26
  ];
16
- export function nextRouteRequestSource(file, functionName, memberCallSites, memberReferences, parameters, enabledSources) {
27
+ export function nextRouteRequestSource(file, functionName, memberCallSites, memberReferences, parameters, enabledSources, imports = [], directCallSites = []) {
28
+ return (nextHeadersHelperSource(directCallSites, imports, enabledSources) ??
29
+ nextRouteParameterSource(file, functionName, memberCallSites, memberReferences, parameters, enabledSources));
30
+ }
31
+ function nextRouteParameterSource(file, functionName, memberCallSites, memberReferences, parameters, enabledSources) {
17
32
  if (!isNextRouteHandler(file, functionName))
18
33
  return null;
19
34
  if (parameters.length === 0 || (memberCallSites.length === 0 && memberReferences.length === 0)) {
@@ -22,6 +37,21 @@ export function nextRouteRequestSource(file, functionName, memberCallSites, memb
22
37
  return (nextRouteCallSource(parameters, memberCallSites, enabledSources) ??
23
38
  nextRouteReferenceSource(parameters, memberReferences, enabledSources));
24
39
  }
40
+ function nextHeadersHelperSource(directCallSites, imports, enabledSources) {
41
+ const calls = new Set(directCallSites);
42
+ for (const [callee, source] of NEXT_HEADERS_MODULE_SOURCE_BY_CALLEE) {
43
+ if (enabledSources.has(source) && calls.has(callee) && hasNextHeadersImport(imports, callee)) {
44
+ return source;
45
+ }
46
+ }
47
+ return null;
48
+ }
49
+ function hasNextHeadersImport(imports, specifier) {
50
+ return imports.some((imp) => imp.source === 'next/headers' &&
51
+ imp.kind === 'static' &&
52
+ imp.typeOnly !== true &&
53
+ (imp.specifiers ?? []).includes(specifier));
54
+ }
25
55
  function nextRouteCallSource(parameters, memberCallSites, enabledSources) {
26
56
  const calls = new Set(memberCallSites);
27
57
  for (const parameter of parameters) {
@@ -1 +1 @@
1
- {"version":3,"file":"frameworkNextRouteSources.js","sourceRoot":"","sources":["../../src/core/frameworkNextRouteSources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frameworkNextRouteSources.js","sourceRoot":"","sources":["../../src/core/frameworkNextRouteSources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const REMIX_REQUEST_SOURCES: string[];
2
+ export declare function remixRequestSource(file: string, functionName: string, parameters: string[], memberCallSites: string[], memberReferences: string[], enabledSources: Set<string>): string | null;
@@ -0,0 +1,63 @@
1
+ const REMIX_REQUEST_SOURCE_BY_CALLEE = new Map([
2
+ ['json', 'remix.request.json'],
3
+ ['formData', 'remix.request.formData'],
4
+ ['text', 'remix.request.text'],
5
+ ['arrayBuffer', 'remix.request.arrayBuffer'],
6
+ ['headers.get', 'remix.request.headers'],
7
+ ]);
8
+ const REMIX_REQUEST_SOURCE_BY_REFERENCE = new Map([
9
+ ['url', 'remix.request.url'],
10
+ ['headers', 'remix.request.headers'],
11
+ ['signal', 'remix.request.signal'],
12
+ ]);
13
+ const REMIX_ROUTE_FUNCTIONS = new Set(['action', 'loader', 'clientAction', 'clientLoader']);
14
+ export const REMIX_REQUEST_SOURCES = [
15
+ ...REMIX_REQUEST_SOURCE_BY_CALLEE.values(),
16
+ ...REMIX_REQUEST_SOURCE_BY_REFERENCE.values(),
17
+ 'remix.params',
18
+ ];
19
+ export function remixRequestSource(file, functionName, parameters, memberCallSites, memberReferences, enabledSources) {
20
+ if (!isRemixRouteHandler(file, functionName))
21
+ return null;
22
+ return (remixRequestCallSource(parameters, memberCallSites, enabledSources) ??
23
+ remixRequestReferenceSource(parameters, memberReferences, enabledSources) ??
24
+ remixParamsSource(parameters, memberReferences, enabledSources));
25
+ }
26
+ function remixRequestCallSource(parameters, memberCallSites, enabledSources) {
27
+ if (!parameters.includes('request'))
28
+ return null;
29
+ const calls = new Set(memberCallSites);
30
+ for (const [member, source] of REMIX_REQUEST_SOURCE_BY_CALLEE) {
31
+ if (enabledSources.has(source) && calls.has(`request.${member}`))
32
+ return source;
33
+ }
34
+ return null;
35
+ }
36
+ function remixRequestReferenceSource(parameters, memberReferences, enabledSources) {
37
+ if (!parameters.includes('request'))
38
+ return null;
39
+ const references = new Set(memberReferences);
40
+ for (const [member, source] of REMIX_REQUEST_SOURCE_BY_REFERENCE) {
41
+ if (enabledSources.has(source) && references.has(`request.${member}`))
42
+ return source;
43
+ }
44
+ return null;
45
+ }
46
+ function remixParamsSource(parameters, memberReferences, enabledSources) {
47
+ if (!enabledSources.has('remix.params') || !parameters.includes('params'))
48
+ return null;
49
+ return memberReferences.some((reference) => reference.startsWith('params.'))
50
+ ? 'remix.params'
51
+ : null;
52
+ }
53
+ function isRemixRouteHandler(file, functionName) {
54
+ if (!REMIX_ROUTE_FUNCTIONS.has(bareName(functionName)))
55
+ return false;
56
+ const normalized = file.replace(/\\/g, '/');
57
+ return /(?:^|\/)app\/routes\/.+\.(?:cjs|mjs|js|jsx|ts|tsx)$/.test(normalized);
58
+ }
59
+ function bareName(qualified) {
60
+ const dot = qualified.lastIndexOf('.');
61
+ return dot < 0 ? qualified : qualified.slice(dot + 1);
62
+ }
63
+ //# sourceMappingURL=frameworkRemixSources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameworkRemixSources.js","sourceRoot":"","sources":["../../src/core/frameworkRemixSources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface FrameworkRequestSourceContext {
2
+ file: string;
3
+ functionName: string;
4
+ memberCallSites: string[];
5
+ memberReferences: string[];
6
+ parameters: string[];
7
+ enabledSources: Set<string>;
8
+ references?: string[];
9
+ contextualCallSite?: string;
10
+ imports?: Array<{
11
+ source: string;
12
+ }>;
13
+ directCallSites?: string[];
14
+ }
15
+ export type FrameworkRequestSourceResolver = (context: FrameworkRequestSourceContext) => string | null;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=frameworkSourceContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameworkSourceContext.js","sourceRoot":"","sources":["../../src/core/frameworkSourceContext.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export type FrameworkSourceMap = ReadonlyMap<string, string>;
2
+ export declare function sourceFromExactMembers(members: string[], sourceByMember: FrameworkSourceMap, enabledSources: ReadonlySet<string>): string | null;
3
+ export declare function sourceFromPrefixedMembers(prefixes: string[], members: string[], sourceByMember: FrameworkSourceMap, enabledSources: ReadonlySet<string>): string | null;
4
+ export declare function matchingParameters(parameters: string[], allowedNames: ReadonlySet<string>): string[];
5
+ export declare function isKnownHandlerCall(contextualCallSite: string | undefined, handlerMethods: ReadonlySet<string>): boolean;
6
+ export declare function bareCallName(qualified: string): string;
@@ -0,0 +1,29 @@
1
+ export function sourceFromExactMembers(members, sourceByMember, enabledSources) {
2
+ const memberSet = new Set(members);
3
+ for (const [member, source] of sourceByMember) {
4
+ if (enabledSources.has(source) && memberSet.has(member))
5
+ return source;
6
+ }
7
+ return null;
8
+ }
9
+ export function sourceFromPrefixedMembers(prefixes, members, sourceByMember, enabledSources) {
10
+ const memberSet = new Set(members);
11
+ for (const prefix of prefixes) {
12
+ for (const [member, source] of sourceByMember) {
13
+ if (enabledSources.has(source) && memberSet.has(prefix + member))
14
+ return source;
15
+ }
16
+ }
17
+ return null;
18
+ }
19
+ export function matchingParameters(parameters, allowedNames) {
20
+ return parameters.filter((parameter) => allowedNames.has(parameter));
21
+ }
22
+ export function isKnownHandlerCall(contextualCallSite, handlerMethods) {
23
+ return Boolean(contextualCallSite && handlerMethods.has(bareCallName(contextualCallSite)));
24
+ }
25
+ export function bareCallName(qualified) {
26
+ const dot = qualified.lastIndexOf('.');
27
+ return dot < 0 ? qualified : qualified.slice(dot + 1);
28
+ }
29
+ //# sourceMappingURL=frameworkSourceMatching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameworkSourceMatching.js","sourceRoot":"","sources":["../../src/core/frameworkSourceMatching.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CACpC,OAAiB,EACjB,cAAkC,EAClC,cAAmC;IAEnC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC9C,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAAkB,EAClB,OAAiB,EACjB,cAAkC,EAClC,cAAmC;IAEnC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC9C,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC;QAClF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAoB,EAAE,YAAiC;IACxF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,kBAAsC,EACtC,cAAmC;IAEnC,OAAO,OAAO,CAAC,kBAAkB,IAAI,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC"}