rea-agents 6.3.0 → 6.5.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 (1332) hide show
  1. package/DISCLAIMER.md +136 -0
  2. package/README.md +72 -18
  3. package/THIRD_PARTY_NOTICES.md +134 -0
  4. package/bridge/android/ReaJadxBridge.java +123 -11
  5. package/bridge/cutter/rea_bridge.py +816 -0
  6. package/bridge/ghidra/ReaGhidraAnalysisOptions.java +38 -0
  7. package/bridge/ghidra/ReaGhidraApplySeeds.java +151 -0
  8. package/bridge/ghidra/ReaGhidraBridge.java +1729 -283
  9. package/bridge/ghidra/ReaGhidraBundleActivator.java +14 -0
  10. package/bridge/ghidra/ReaGhidraMipsSoftFloat.java +176 -0
  11. package/bridge/ghidra/ReaGhidraNoReturnFix.java +123 -0
  12. package/bridge/ghidra/ReaGhidraPrepareRaw.java +49 -0
  13. package/bridge/hopper_bridge.py +103 -69
  14. package/bridge/mitmproxy/capture.py +189 -13
  15. package/bridge/native/rea_lldb_tracer.py +40 -6
  16. package/bridge/process/ProcessRunTokenReader.swift +76 -34
  17. package/bridge/pwntools/layout_impl.py +5 -0
  18. package/bridge/pwntools/recorded_crash_impl.py +31 -10
  19. package/dist/adb/AdbConfiguration.js +100 -0
  20. package/dist/adb/AdbDeviceOutput.js +208 -0
  21. package/dist/adb/AdbDirectoryListing.js +80 -0
  22. package/dist/adb/AdbHostFileName.js +34 -0
  23. package/dist/adb/AdbProvider.js +1433 -0
  24. package/dist/adb/AdbShellOutput.js +307 -0
  25. package/dist/android/AndroidTargetSnapshot.js +104 -22
  26. package/dist/android/JadxAnalysis.js +32 -7
  27. package/dist/android/JadxConfiguration.js +163 -53
  28. package/dist/android/JadxDoctor.js +115 -0
  29. package/dist/android/JadxMcpTransport.js +5 -3
  30. package/dist/android/JadxProtocol.js +14 -0
  31. package/dist/android/JadxProvider.js +63 -25
  32. package/dist/android/JadxRelease.js +12 -1
  33. package/dist/android/JadxWorkspaceRoot.js +157 -0
  34. package/dist/apktool/ApktoolConfiguration.js +227 -0
  35. package/dist/apktool/ApktoolDecodeOutput.js +142 -0
  36. package/dist/apktool/ApktoolProvider.js +543 -0
  37. package/dist/application/AnalysisContextQueries.js +5 -8
  38. package/dist/application/AnalysisProvider.js +24 -14
  39. package/dist/application/AppBundleExecutable.js +30 -25
  40. package/dist/application/BinaryTargetResolver.js +210 -33
  41. package/dist/application/BrowserEvidence.js +1 -1
  42. package/dist/application/BrowserObservationService.js +13 -2
  43. package/dist/application/BrowserScenarioCaptureService.js +0 -1
  44. package/dist/application/CallPathTracing.js +52 -13
  45. package/dist/application/CapabilityInventory.js +179 -29
  46. package/dist/application/ClaudeDesktopConfigLocation.js +152 -0
  47. package/dist/application/ClientConfigurationDocument.js +154 -7
  48. package/dist/application/ClientConfigurationFiles.js +128 -0
  49. package/dist/application/ClientRegistrationEnvironment.js +41 -0
  50. package/dist/application/ClientRegistrationIdentity.js +94 -29
  51. package/dist/application/ClientRegistrationStatus.js +223 -67
  52. package/dist/application/DirectAnalysis.js +86 -31
  53. package/dist/application/DirectAnalysisCleanup.js +1 -1
  54. package/dist/application/DirectAnalysisStatus.js +14 -2
  55. package/dist/application/Doctor.js +117 -34
  56. package/dist/application/DoctorDiagnostics.js +34 -12
  57. package/dist/application/DoctorProviderIds.js +2 -0
  58. package/dist/application/DoctorScope.js +11 -2
  59. package/dist/application/DshCordisPatch.js +355 -0
  60. package/dist/application/DshCordisYaml.js +155 -0
  61. package/dist/application/EnhancedLiteralTracing.js +30 -16
  62. package/dist/application/EnhancedToolTypes.js +0 -1
  63. package/dist/application/EnhancedTools.js +164 -54
  64. package/dist/application/EvidenceBundleCommands.js +36 -19
  65. package/dist/application/EvidenceBundleFiles.js +29 -7
  66. package/dist/application/FunctionAnalysisEvidence.js +3 -0
  67. package/dist/application/GeminiClientSettings.js +151 -0
  68. package/dist/application/HermesClientHome.js +115 -0
  69. package/dist/application/HermesConfigurationYaml.js +272 -0
  70. package/dist/application/HopperDownload.js +39 -0
  71. package/dist/application/InventoryProjectionEvidence.js +0 -1
  72. package/dist/application/InvestigationProviders.js +19 -3
  73. package/dist/application/JsonFiles.js +114 -23
  74. package/dist/application/JsonInputFile.js +410 -0
  75. package/dist/application/LinuxHopper.js +130 -60
  76. package/dist/application/MacHopper.js +177 -150
  77. package/dist/application/MacHopperPaths.js +40 -0
  78. package/dist/application/MipsElfMetadata.js +201 -0
  79. package/dist/application/MipsElfSharedLoad.js +164 -0
  80. package/dist/application/MipsGnuAttributes.js +90 -0
  81. package/dist/application/MsixPackageStorage.js +133 -0
  82. package/dist/application/ProgressReporter.js +1 -1
  83. package/dist/application/ProviderOperationExecution.js +39 -0
  84. package/dist/application/ReconstructionCoverageService.js +0 -1
  85. package/dist/application/ReconstructionObligationCandidates.js +12 -5
  86. package/dist/application/ReconstructionObligationLedgerDiagnostics.js +2 -2
  87. package/dist/application/ReconstructionObligationLedgerEvaluation.js +15 -33
  88. package/dist/application/ReconstructionObligationLedgerProjection.js +3 -72
  89. package/dist/application/ReconstructionObligationLedgerService.js +3 -1
  90. package/dist/application/ReconstructionObligationOriginalCases.js +2 -1
  91. package/dist/application/ReferenceSourceImport.js +94 -31
  92. package/dist/application/ReferenceSourceImportEntries.js +40 -30
  93. package/dist/application/ReferenceSourceImportPolicy.js +99 -23
  94. package/dist/application/ReferenceSourceImportTypes.js +30 -23
  95. package/dist/application/ReferenceSourceVcsAdapter.js +163 -31
  96. package/dist/application/RegularFileRead.js +121 -7
  97. package/dist/application/Setup.js +88 -14
  98. package/dist/application/SetupClientConfiguration.js +307 -38
  99. package/dist/application/SetupClients.js +12 -6
  100. package/dist/application/SetupHost.js +158 -38
  101. package/dist/application/SetupInstallFailure.js +42 -2
  102. package/dist/application/SetupPlan.js +83 -57
  103. package/dist/application/SetupRecoveryBackup.js +66 -0
  104. package/dist/application/SetupRegistrationEnvironment.js +2 -1
  105. package/dist/application/SetupSkill.js +354 -88
  106. package/dist/application/SupportedClients.js +429 -70
  107. package/dist/application/TypeScriptEmittedSourceCandidates.js +26 -0
  108. package/dist/application/Uninstall.js +412 -73
  109. package/dist/application/UninstallFailure.js +14 -0
  110. package/dist/application/Update.js +54 -25
  111. package/dist/application/UpdateFailure.js +17 -0
  112. package/dist/application/UpdateMaintenance.js +25 -47
  113. package/dist/application/UpdateRuntime.js +141 -27
  114. package/dist/application/Utf8JsonInput.js +7 -0
  115. package/dist/application/WebModuleTraceService.js +7 -0
  116. package/dist/application/WebNetworkCaptureService.js +16 -7
  117. package/dist/application/WebScriptExportService.js +131 -65
  118. package/dist/application/WebSourceLocationService.js +22 -3
  119. package/dist/application/WindowsCapabilities.js +18 -15
  120. package/dist/application/WorkflowEvidence.js +24 -1
  121. package/dist/application/adb/AdbDeviceAnalysisPort.js +1 -0
  122. package/dist/application/adb/AdbDeviceAnalysisService.js +13 -0
  123. package/dist/application/analysisView/AnalysisViewService.js +122 -6
  124. package/dist/application/android/AndroidPackageInspection.js +25 -0
  125. package/dist/application/android/AndroidSearchEvidenceSummary.js +100 -0
  126. package/dist/application/apktool/ApktoolResourceAnalysisPort.js +1 -0
  127. package/dist/application/apktool/ApktoolResourceAnalysisService.js +13 -0
  128. package/dist/application/binary/AnalysisClientCleanup.js +0 -24
  129. package/dist/application/binary/AnalysisProviderEvaluation.js +1 -1
  130. package/dist/application/binary/AnalysisProviderRegistry.js +36 -21
  131. package/dist/application/binary/AnalysisSnapshotCache.js +41 -20
  132. package/dist/application/binary/AnalysisSnapshotFiles.js +75 -9
  133. package/dist/application/binary/BinarySession.js +250 -97
  134. package/dist/application/binary/BinarySessionExecution.js +5 -4
  135. package/dist/application/binary/BinarySessionOpen.js +13 -6
  136. package/dist/application/binary/BinarySessionRecords.js +33 -7
  137. package/dist/application/binary/BinarySessionStatus.js +93 -23
  138. package/dist/application/binary/BinaryTargetSummary.js +9 -0
  139. package/dist/application/binary/CompositeProvider.js +71 -28
  140. package/dist/application/binary/LazyAnalysisProvider.js +3 -1
  141. package/dist/application/binary/SessionProviderRouter.js +5 -2
  142. package/dist/application/binaryDiagnostics/BinaryLayoutService.js +13 -2
  143. package/dist/application/binaryDiagnostics/PeResourcesPort.js +1 -0
  144. package/dist/application/binaryDiagnostics/PeResourcesService.js +114 -0
  145. package/dist/application/binaryDiagnostics/RecordedCrashService.js +16 -4
  146. package/dist/application/captures/PacketCaptureService.js +83 -0
  147. package/dist/application/closeOwnedWebResources.js +7 -0
  148. package/dist/application/electron/ElectronFusePort.js +1 -0
  149. package/dist/application/electron/ElectronFuseService.js +80 -0
  150. package/dist/application/evm/EvmInterfaceService.js +4 -0
  151. package/dist/application/firmware/FirmwareAnalysisService.js +3 -0
  152. package/dist/application/flutter/DartAotInspection.js +26 -0
  153. package/dist/application/flutter/FlutterBuildAnalysisPort.js +1 -0
  154. package/dist/application/flutter/FlutterBuildAnalysisService.js +13 -0
  155. package/dist/application/frida/FridaInstrumentationPort.js +8 -0
  156. package/dist/application/frida/FridaInstrumentationService.js +310 -0
  157. package/dist/application/frida/fridaInputErrors.js +17 -0
  158. package/dist/application/go/GoBinaryPort.js +1 -0
  159. package/dist/application/go/GoBinaryService.js +80 -0
  160. package/dist/application/harmony/HarmonyApplicationService.js +17 -0
  161. package/dist/application/investigation/EvidenceLedger.js +40 -14
  162. package/dist/application/investigation/InspectEvidenceBundle.js +18 -0
  163. package/dist/application/investigation/InvestigationRecords.js +12 -21
  164. package/dist/application/investigation/UnknownEvidence.js +22 -18
  165. package/dist/application/javascript/ElectronActiveObservationService.js +55 -25
  166. package/dist/application/javascript/ElectronBoundaryAnalysis.js +17 -3
  167. package/dist/application/javascript/ElectronBoundaryGraph.js +2 -0
  168. package/dist/application/javascript/ElectronBoundaryGraphCallPaths.js +144 -0
  169. package/dist/application/javascript/ElectronBoundaryGraphContext.js +3 -2
  170. package/dist/application/javascript/ElectronBoundaryGraphIpc.js +28 -9
  171. package/dist/application/javascript/ElectronBoundaryGraphNative.js +20 -7
  172. package/dist/application/javascript/ElectronBoundaryGraphWindows.js +50 -12
  173. package/dist/application/javascript/ElectronObservationService.js +0 -1
  174. package/dist/application/javascript/JavaScriptApplicationEvidence.js +15 -0
  175. package/dist/application/javascript/JavaScriptApplicationService.js +44 -18
  176. package/dist/application/javascript/JavaScriptApplicationWorkflowEvidence.js +5 -6
  177. package/dist/application/javascript/JavaScriptApplicationWorkflowService.js +0 -1
  178. package/dist/application/javascript/JavaScriptArtifactAnalysis.js +253 -60
  179. package/dist/application/javascript/JavaScriptArtifactGraphAccumulator.js +51 -23
  180. package/dist/application/javascript/JavaScriptArtifactGraphBuilder.js +93 -21
  181. package/dist/application/javascript/JavaScriptArtifactGraphBundlers.js +4 -3
  182. package/dist/application/javascript/JavaScriptArtifactGraphContext.js +35 -8
  183. package/dist/application/javascript/JavaScriptArtifactGraphDocuments.js +25 -14
  184. package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +163 -54
  185. package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +246 -15
  186. package/dist/application/javascript/JavaScriptArtifactPathResolution.js +1057 -323
  187. package/dist/application/javascript/JavaScriptArtifactReconstruction.js +134 -32
  188. package/dist/application/javascript/JavaScriptArtifactReconstructionInput.js +6 -1
  189. package/dist/application/javascript/JavaScriptModuleRelationships.js +39 -15
  190. package/dist/application/javascript/JavaScriptRecoveryService.js +32 -9
  191. package/dist/application/javascript/JavaScriptRuntimeObservationService.js +2 -1
  192. package/dist/application/javascript/JavaScriptRuntimeReconciliationService.js +0 -1
  193. package/dist/application/javascript/JavaScriptSemanticGraphAsyncProjection.js +9 -3
  194. package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +228 -74
  195. package/dist/application/javascript/JavaScriptSemanticGraphConstruction.js +12 -19
  196. package/dist/application/javascript/JavaScriptSemanticGraphDataProjection.js +4 -1
  197. package/dist/application/javascript/JavaScriptSemanticGraphElectronProjection.js +67 -0
  198. package/dist/application/javascript/JavaScriptSemanticGraphFlowProjection.js +5 -3
  199. package/dist/application/javascript/JavaScriptSemanticGraphObjectProjection.js +5 -3
  200. package/dist/application/javascript/JavaScriptSemanticGraphValueProjection.js +19 -8
  201. package/dist/application/javascript/JavaScriptSemanticTraceService.js +0 -1
  202. package/dist/application/jeb/JebAnalysisPort.js +1 -0
  203. package/dist/application/jeb/JebAnalysisService.js +13 -0
  204. package/dist/application/managed/ManagedApplicationGraphService.js +1 -2
  205. package/dist/application/managed/ManagedMemberComparisonService.js +72 -54
  206. package/dist/application/managed/ManagedNativeVerificationService.js +0 -1
  207. package/dist/application/managed/ManagedReconstructionService.js +0 -1
  208. package/dist/application/native/NativeCallRoutes.js +54 -34
  209. package/dist/application/native/NativeDispatchMetadataInspection.js +6 -2
  210. package/dist/application/native/NativeUiActionTrace.js +51 -30
  211. package/dist/application/native/NativeValueTrace.js +75 -24
  212. package/dist/application/pcap/PcapAnalysisPort.js +1 -0
  213. package/dist/application/pcap/PcapAnalysisService.js +24 -0
  214. package/dist/application/process/ProcessCli.js +57 -32
  215. package/dist/application/reverse/ReverseEngineeringCommandPort.js +1 -0
  216. package/dist/application/reverse/ReverseEngineeringService.js +688 -0
  217. package/dist/application/rust/RustBinaryPort.js +1 -0
  218. package/dist/application/rust/RustBinaryService.js +80 -0
  219. package/dist/application/signals/SignalRecordingService.js +83 -0
  220. package/dist/application/sqlite/SqliteDatabaseCapability.js +30 -0
  221. package/dist/application/sqlite/SqliteDatabasePort.js +1 -0
  222. package/dist/application/sqlite/SqliteDatabaseService.js +76 -0
  223. package/dist/application/wasm/WasmArtifactPort.js +1 -0
  224. package/dist/application/wasm/WasmArtifactService.js +77 -0
  225. package/dist/application/wasm/WasmInterfaceComparisonService.js +188 -0
  226. package/dist/artifacts/ArtifactHash.js +13 -2
  227. package/dist/artifacts/ArtifactPaths.js +133 -15
  228. package/dist/artifacts/ArtifactProvider.js +28 -19
  229. package/dist/artifacts/ArtifactReader.js +35 -0
  230. package/dist/artifacts/ArtifactResourceScope.js +109 -0
  231. package/dist/artifacts/AsarArtifactReader.js +295 -156
  232. package/dist/artifacts/AsarHeader.js +24 -0
  233. package/dist/artifacts/AsarListing.js +78 -0
  234. package/dist/artifacts/DirectoryArtifactReader.js +247 -74
  235. package/dist/artifacts/MachOSliceArtifactReader.js +198 -48
  236. package/dist/artifacts/NativeDmgArtifactReader.js +188 -78
  237. package/dist/artifacts/OrderedReads.js +57 -0
  238. package/dist/artifacts/SafeOutputTree.js +261 -71
  239. package/dist/artifacts/SafeOutputTreeCleanup.js +45 -0
  240. package/dist/artifacts/SafeOutputTreeCreationFailure.js +20 -0
  241. package/dist/artifacts/SafeOutputTreeIdentity.js +42 -0
  242. package/dist/artifacts/SafeOutputTreeReadback.js +33 -0
  243. package/dist/artifacts/ZipArtifactReader.js +186 -31
  244. package/dist/artifacts/apple/AppleAssetCatalogAnalysis.js +77 -68
  245. package/dist/artifacts/apple/DylibResolutionReader.js +11 -5
  246. package/dist/artifacts/apple/InterfaceBuilderAnalysis.js +114 -38
  247. package/dist/artifacts/apple/InterfaceBuilderDecodeBudget.js +125 -35
  248. package/dist/artifacts/apple/KeyedArchiveReader.js +35 -15
  249. package/dist/artifacts/apple/MachoLoadCommandReader.js +62 -61
  250. package/dist/artifacts/apple/NibArchive.js +11 -4
  251. package/dist/artifacts/apple/PlistNumberLiterals.js +2 -2
  252. package/dist/artifacts/extraction/ArtifactExtraction.js +115 -92
  253. package/dist/artifacts/hostExecutableMarking.js +16 -0
  254. package/dist/artifacts/inventory/ArtifactGraphConstruction.js +236 -69
  255. package/dist/artifacts/inventory/ArtifactInventory.js +7 -6
  256. package/dist/artifacts/inventory/classify.js +95 -35
  257. package/dist/artifacts/inventory/hashStableRootArtifact.js +48 -15
  258. package/dist/artifacts/inventory/reader.js +40 -17
  259. package/dist/artifacts/inventory/scanCanonical.js +84 -40
  260. package/dist/artifacts/inventory/scanReader.js +72 -19
  261. package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +177 -15
  262. package/dist/artifacts/javascript/JavaScriptSourceAnalysis.js +3 -0
  263. package/dist/artifacts/readStableArtifact.js +28 -4
  264. package/dist/browser/BrowserProcessStartup.js +20 -9
  265. package/dist/browser/BrowserScenarioPartialObservation.js +60 -38
  266. package/dist/browser/BrowserScenarioSecrets.js +193 -48
  267. package/dist/browser/CdpBrowserProvider.js +74 -98
  268. package/dist/browser/CdpCaptureDocuments.js +261 -65
  269. package/dist/browser/CdpCaptureDomSvg.js +243 -0
  270. package/dist/browser/CdpCaptureEventBodyShapes.js +12 -12
  271. package/dist/browser/CdpCaptureEventHandlers.js +49 -21
  272. package/dist/browser/CdpCaptureEvents.js +53 -19
  273. package/dist/browser/CdpCaptureStorage.js +22 -5
  274. package/dist/browser/CdpCaptureStorageFingerprints.js +54 -11
  275. package/dist/browser/CdpCaptureValues.js +0 -1
  276. package/dist/browser/CdpConnection.js +25 -9
  277. package/dist/browser/CdpElectronInspection.js +14 -4
  278. package/dist/browser/CdpElectronProvider.js +7 -2
  279. package/dist/browser/CdpElectronScripts.js +2 -1
  280. package/dist/browser/CdpElectronWorkers.js +7 -2
  281. package/dist/browser/CdpEndpoint.js +143 -17
  282. package/dist/browser/CdpObservationSession.js +24 -8
  283. package/dist/browser/CdpPageCapture.js +67 -17
  284. package/dist/browser/CdpPageCaptureScripts.js +4 -3
  285. package/dist/browser/CdpPageCaptureWorkers.js +5 -1
  286. package/dist/browser/CdpSafeMetadata.js +9 -5
  287. package/dist/browser/CdpScreenshot.js +5 -14
  288. package/dist/browser/CdpSnapshotStrings.js +21 -0
  289. package/dist/browser/CdpTargetSession.js +59 -36
  290. package/dist/browser/CdpWebMcpDiscovery.js +55 -16
  291. package/dist/browser/ElectronFileScope.js +99 -9
  292. package/dist/browser/PlaywrightBrowserScenarioProvider.js +64 -8
  293. package/dist/browser/PlaywrightElectronActiveActions.js +4 -4
  294. package/dist/browser/PlaywrightElectronActiveProjection.js +16 -4
  295. package/dist/browser/PlaywrightElectronActiveProvider.js +114 -36
  296. package/dist/browser/PlaywrightExecutionBoundary.js +2 -2
  297. package/dist/browser/PlaywrightScenarioArtifacts.js +5 -5
  298. package/dist/browser/PlaywrightScenarioBrowser.js +78 -13
  299. package/dist/browser/PlaywrightScenarioEvents.js +198 -36
  300. package/dist/browser/PlaywrightScenarioServiceWorkers.js +249 -0
  301. package/dist/browser/PlaywrightScenarioSession.js +180 -75
  302. package/dist/browser/PlaywrightScenarioStorage.js +507 -0
  303. package/dist/browser/PngVisualDiff.js +198 -29
  304. package/dist/browser/WebSourceMapFetcher.js +164 -81
  305. package/dist/browser/assets/LocalWebScriptArtifacts.js +27 -4
  306. package/dist/browser/assets/PublishWebScripts.js +88 -22
  307. package/dist/browser/assets/ScenarioScriptCapture.js +2 -1
  308. package/dist/browser/assets/WebArtifactReads.js +34 -4
  309. package/dist/browser/assets/WebSourceLocationArtifacts.js +39 -3
  310. package/dist/browser/execution/CdpExecutionCapture.js +3 -3
  311. package/dist/browser/execution/CdpPreciseCoverage.js +5 -8
  312. package/dist/browser/history/CaptureFailures.js +22 -8
  313. package/dist/browser/history/CaptureFormatError.js +2 -2
  314. package/dist/browser/history/{HarJson.js → CaptureJson.js} +14 -4
  315. package/dist/browser/history/CaptureRedaction.js +16 -3
  316. package/dist/browser/history/CaptureRelease.js +20 -2
  317. package/dist/browser/history/HarCapture.js +16 -9
  318. package/dist/browser/history/HarSchema.js +36 -36
  319. package/dist/browser/history/HistoricalCaptureDecoder.js +93 -25
  320. package/dist/browser/history/MitmproxyCaptureAdapter.js +3 -1
  321. package/dist/browser/history/NodeCaptureAdapter.js +48 -0
  322. package/dist/browser/history/{HarCaptureProcess.js → NodeCaptureProcess.js} +16 -15
  323. package/dist/browser/history/QlogCapture.js +385 -0
  324. package/dist/browser/history/SazCapture.js +130 -0
  325. package/dist/browser/history/SazHttp.js +61 -0
  326. package/dist/browser/history/SazMetadata.js +92 -0
  327. package/dist/browser/history/SazProjection.js +90 -0
  328. package/dist/browser/modules/NativeModuleResolver.js +177 -110
  329. package/dist/browser/modules/WebModuleArtifacts.js +41 -3
  330. package/dist/browser/network/PlaywrightNetworkContent.js +40 -5
  331. package/dist/browser/network/PlaywrightScenarioNetwork.js +125 -11
  332. package/dist/captures/TsharkCaptureProvider.js +370 -0
  333. package/dist/captures/parseFieldDiscovery.js +66 -0
  334. package/dist/captures/parsePacketOutput.js +21 -0
  335. package/dist/catalogIdentity.js +46 -35
  336. package/dist/cli/adbCommands.js +337 -0
  337. package/dist/cli/analysisViewCommands.js +39 -1
  338. package/dist/cli/androidCommands.js +11 -2
  339. package/dist/cli/apktoolCommands.js +52 -0
  340. package/dist/cli/applicationCommands.js +44 -17
  341. package/dist/cli/artifactCommands.js +9 -12
  342. package/dist/cli/binaryDiagnosticsCommands.js +27 -5
  343. package/dist/cli/browserAdvancedCommands.js +97 -55
  344. package/dist/cli/browserCommands.js +46 -29
  345. package/dist/cli/captureCommands.js +72 -0
  346. package/dist/cli/cliResultOutput.js +188 -0
  347. package/dist/cli/coreBinaryCommands.js +73 -32
  348. package/dist/cli/coreNativeCommands.js +54 -45
  349. package/dist/cli/cutterCommands.js +50 -0
  350. package/dist/cli/electronCommands.js +51 -4
  351. package/dist/cli/evmCommands.js +16 -8
  352. package/dist/cli/finishAnalysisCommand.js +44 -0
  353. package/dist/cli/firmwareCommands.js +21 -38
  354. package/dist/cli/flutterCommands.js +69 -0
  355. package/dist/cli/fridaCommands.js +211 -0
  356. package/dist/cli/goCommands.js +20 -0
  357. package/dist/cli/interactiveSetup.js +11 -1
  358. package/dist/cli/javascriptApplicationAnalysis.js +18 -2
  359. package/dist/cli/javascriptRecoveryCommands.js +29 -15
  360. package/dist/cli/jebCommands.js +99 -0
  361. package/dist/cli/jsonOutput.js +13 -6
  362. package/dist/cli/managedCommands.js +31 -3
  363. package/dist/cli/options.js +20 -2
  364. package/dist/cli/pcapCommands.js +47 -0
  365. package/dist/cli/processCommands.js +1 -1
  366. package/dist/cli/referenceSourceImportStatus.js +7 -0
  367. package/dist/cli/reverseEngineeringCommands.js +268 -0
  368. package/dist/cli/rustCommands.js +21 -0
  369. package/dist/cli/setupCommands.js +55 -15
  370. package/dist/cli/signalCommands.js +72 -0
  371. package/dist/cli/sqliteCommands.js +79 -0
  372. package/dist/cli/utilityCommands.js +179 -89
  373. package/dist/cli/wasmCommands.js +61 -0
  374. package/dist/cli/webModuleCommands.js +36 -32
  375. package/dist/cli/webNetworkCaptureCommands.js +8 -8
  376. package/dist/cli/webScriptCommands.js +20 -1
  377. package/dist/cli/webSourceLocationCommands.js +21 -9
  378. package/dist/cli-runtime/AbortablePromise-BVBemxbD.js +123 -0
  379. package/dist/cli-runtime/AnalysisProvider-D0Us2OTk.js +27 -0
  380. package/dist/cli-runtime/AnalysisSnapshotCache-BXS0wRd2.js +710 -0
  381. package/dist/cli-runtime/ArtifactReader-BXkffc1D.js +55 -0
  382. package/dist/cli-runtime/ArtifactResourceScope-DQWTcUwE.js +114 -0
  383. package/dist/cli-runtime/AsarHeader-CnzOzYEH.js +31 -0
  384. package/dist/cli-runtime/BinarySessionStatus-DnMxMk-r.js +211 -0
  385. package/dist/cli-runtime/BinaryTargetResolver-CVIJ_s1A.js +1308 -0
  386. package/dist/cli-runtime/BoundedFileBytes-BU30odTm.js +39 -0
  387. package/dist/cli-runtime/CdpTargetSession-DGX5pV9w.js +650 -0
  388. package/dist/cli-runtime/ClientConfigPath-c6jr6INc.js +36 -0
  389. package/dist/cli-runtime/ClientConfigurationDocument-ffQ9X0Se.js +1957 -0
  390. package/dist/cli-runtime/ClientRegistrationStatus-DszCyPEU.js +509 -0
  391. package/dist/cli-runtime/CurrentEntrypointPath-D5FRNdkq.js +14 -0
  392. package/dist/cli-runtime/DirectAnalysis-BgvAtpN3.js +528 -0
  393. package/dist/cli-runtime/Doctor-DIpf_I7N.js +588 -0
  394. package/dist/cli-runtime/ElectronFileScope-dpHm2nrS.js +1054 -0
  395. package/dist/cli-runtime/ExecFileOutput-BEQs-lDD.js +117 -0
  396. package/dist/cli-runtime/IdaConfiguration-CtGP7EKo.js +1094 -0
  397. package/dist/cli-runtime/InterfaceBuilderDecodeBudget-D4omRUe4.js +279 -0
  398. package/dist/cli-runtime/InventoryProjectionEvidence-DIsI4DJ6.js +49 -0
  399. package/dist/cli-runtime/InvestigationProviders-DoQRIHii.js +117 -0
  400. package/dist/cli-runtime/JavaScriptApplicationEvidenceGraph-D5aI_FSJ.js +160 -0
  401. package/dist/cli-runtime/JavaScriptApplicationWorkflowEvidence-Bz4-V0Ct.js +75 -0
  402. package/dist/cli-runtime/JavaScriptWorkerMemoryLimit-B1bwMM1a.js +86 -0
  403. package/dist/cli-runtime/JebMcpEndpoint-DUytrn5G.js +428 -0
  404. package/dist/cli-runtime/JsonFiles-DQa1PRKy.js +708 -0
  405. package/dist/cli-runtime/MacCodeSignature-MgYbRK_H.js +24 -0
  406. package/dist/cli-runtime/MacHopperPaths-CwL5lYPX.js +434 -0
  407. package/dist/cli-runtime/MachoLoadCommandReader-C7e074Ze.js +510 -0
  408. package/dist/cli-runtime/ManagedSnapshot-rqyBHcdL.js +4185 -0
  409. package/dist/cli-runtime/OwnedCommand-Cj9GhmPR.js +112 -0
  410. package/dist/cli-runtime/PrivateRuntimeRoot-DAy0PiBM.js +263 -0
  411. package/dist/cli-runtime/ProcessOwnership-DXC5-UWt.js +1378 -0
  412. package/dist/cli-runtime/ProviderDeadline-8m2pFRDc.js +122 -0
  413. package/dist/cli-runtime/RegularFile-B_6KPCNQ.js +139 -0
  414. package/dist/cli-runtime/RegularFileRead-DVlC5faM.js +125 -0
  415. package/dist/cli-runtime/SafeOutputTree-D6U15GXd.js +524 -0
  416. package/dist/cli-runtime/SetupHost-FkYWswsq.js +1098 -0
  417. package/dist/cli-runtime/SupportedClients-DaX6Lt2d.js +1049 -0
  418. package/dist/cli-runtime/UninstallFailure-1blyKXHE.js +22 -0
  419. package/dist/cli-runtime/Update-CbTC_eg1.js +143 -0
  420. package/dist/cli-runtime/UpdateFailure-BcFNxEZZ.js +24 -0
  421. package/dist/cli-runtime/ZipArtifactReader-B8ZgNe4D.js +248 -0
  422. package/dist/cli-runtime/analysisErrorCleanup-Do6YeeoD.js +32 -0
  423. package/dist/cli-runtime/analysisErrorPresentation-DGt7TdsH.js +497 -0
  424. package/dist/cli-runtime/appleArchiveFormat-tVoI2ykA.js +263 -0
  425. package/dist/cli-runtime/application__DirectAnalysisStatus-DpOejOf0.js +150 -0
  426. package/dist/cli-runtime/application__EnhancedTools-oFE2bOjs.js +1787 -0
  427. package/dist/cli-runtime/application__FunctionAnalysisEvidence-B6osuhvW.js +41 -0
  428. package/dist/cli-runtime/application__ReconstructionCoverageService-DN3wTFQj.js +32 -0
  429. package/dist/cli-runtime/application__ReconstructionObligationLedgerService-CKcTppX9.js +815 -0
  430. package/dist/cli-runtime/application__Setup-XpMaRNjy.js +514 -0
  431. package/dist/cli-runtime/application__Uninstall-_23pU2yB.js +427 -0
  432. package/dist/cli-runtime/application__UpdateRuntime-DPvY8ohd.js +345 -0
  433. package/dist/cli-runtime/application__android__AndroidApplicationService-CFgIFPM4.js +31 -0
  434. package/dist/cli-runtime/application__apple__AppleApplicationService-Db6QCsun.js +31 -0
  435. package/dist/cli-runtime/application__harmony__HarmonyApplicationService-CFjocHoK.js +31 -0
  436. package/dist/cli-runtime/application__javascript__ElectronActiveObservationService-CmVDUI_Z.js +118 -0
  437. package/dist/cli-runtime/application__javascript__ElectronObservationService-DEsR8KDN.js +63 -0
  438. package/dist/cli-runtime/application__javascript__JavaScriptApplicationService-CCkp8KBh.js +11450 -0
  439. package/dist/cli-runtime/application__javascript__JavaScriptApplicationWorkflowService-lPy0tzr3.js +2329 -0
  440. package/dist/cli-runtime/application__javascript__JavaScriptRuntimeReconciliationService-DWleA8K9.js +88 -0
  441. package/dist/cli-runtime/application__javascript__JavaScriptSemanticTraceService-DkALH4rL.js +299 -0
  442. package/dist/cli-runtime/artifactOperationError-B7n03FbD.js +27 -0
  443. package/dist/cli-runtime/artifacts__ArtifactProvider-zXI0QjSL.js +2187 -0
  444. package/dist/cli-runtime/binary-BVOr2mgE.js +14206 -0
  445. package/dist/cli-runtime/browserObservationError-Dx6xRTjb.js +40 -0
  446. package/dist/cli-runtime/catalogIdentity-DLoXgfIR.js +933 -0
  447. package/dist/cli-runtime/cli.js +41848 -0
  448. package/dist/cli-runtime/cliOutput-BC1BdAcB.js +122 -0
  449. package/dist/cli-runtime/cliOutput.js +5 -0
  450. package/dist/cli-runtime/cliResultOutput-DsRMI8CJ.js +780 -0
  451. package/dist/cli-runtime/cliResultOutput.js +5 -0
  452. package/dist/cli-runtime/composition__browserScenario-DHXC1a8n.js +2927 -0
  453. package/dist/cli-runtime/composition__electronObservation-GecK2EID.js +555 -0
  454. package/dist/cli-runtime/composition__electronScenario-CEZnVrAL.js +653 -0
  455. package/dist/cli-runtime/cutterToolContracts-TZH9EHr5.js +5134 -0
  456. package/dist/cli-runtime/doctorRuntime-BE5ZX8it.js +258 -0
  457. package/dist/cli-runtime/dotnet__ManagedStaticProvider-C8_yZCDc.js +5 -0
  458. package/dist/cli-runtime/errorSchemas-CTRmvMl3.js +601 -0
  459. package/dist/cli-runtime/javascriptApplicationAnalysis-HgMzVMQw.js +2068 -0
  460. package/dist/cli-runtime/javascriptExportReturnShapeProjection-Dg00g35t.js +78 -0
  461. package/dist/cli-runtime/javascriptExportShapeComparisonSchemas-BYnoIqIk.js +1242 -0
  462. package/dist/cli-runtime/javascriptRuntimeReconciliation-DNjDoL3S.js +1507 -0
  463. package/dist/cli-runtime/javascriptRuntimeReconciliationSchemas-BWpGWNcI.js +247 -0
  464. package/dist/cli-runtime/javascriptSemanticTraceSchemas-BTCNcvbc.js +126 -0
  465. package/dist/cli-runtime/lipo-DSWP6fv-.js +396 -0
  466. package/dist/cli-runtime/logger-CQQCI4a2.js +48 -0
  467. package/dist/cli-runtime/machoContainer-C8BIkkq3.js +172 -0
  468. package/dist/cli-runtime/managedApplicationGraph-B08jb3jq.js +1130 -0
  469. package/dist/cli-runtime/managedToolContracts-D60QmIYj.js +99 -0
  470. package/dist/cli-runtime/mcpDoctor.js +359 -0
  471. package/dist/cli-runtime/mcpStartupPolicy-CVVSOmRc.js +21 -0
  472. package/dist/cli-runtime/native__NativeMacOSProvider-YBTvUeJO.js +4875 -0
  473. package/dist/cli-runtime/officialToolContracts-CCFF0an9.js +1501 -0
  474. package/dist/cli-runtime/propertyListKeys-G8e74YWb.js +248 -0
  475. package/dist/cli-runtime/providerAdapterError-DAjhICdr.js +25 -0
  476. package/dist/cli-runtime/providerCleanupError-Ceq8f0wK.js +27 -0
  477. package/dist/cli-runtime/providerIdentities-Ao1XTvwx.js +31 -0
  478. package/dist/cli-runtime/providerStartupTimeout-B2tF2LtZ.js +17 -0
  479. package/dist/cli-runtime/readFileHandleChunks-dp60iZ6v.js +38 -0
  480. package/dist/cli-runtime/reconstructionObligationLedgerSchemas-Bao0xMr-.js +19478 -0
  481. package/dist/cli-runtime/rolldown-runtime-DXoylpqc.js +121 -0
  482. package/dist/cli-runtime/runtimeVersion-CMGd0bDu.js +23 -0
  483. package/dist/cli-runtime/safeJson-DKKACtdy.js +25 -0
  484. package/dist/cli-runtime/scanCanonical-KP4T9jSl.js +2724 -0
  485. package/dist/cli-runtime/snapshotEnvironment-D_tWyOub.js +813 -0
  486. package/dist/cli-runtime/toolContracts-D2FOG_Nb.js +3721 -0
  487. package/dist/cli-runtime/toolOutputSchemaGroups-DRiYs1je.js +12070 -0
  488. package/dist/cli-runtime/workflowInputError-n8Oo-bLA.js +26 -0
  489. package/dist/cli.js +44 -5
  490. package/dist/cliBrowserScenarioCommands.js +41 -5
  491. package/dist/cliCommandNames.js +80 -0
  492. package/dist/cliEvidenceCommands.js +0 -1
  493. package/dist/cliJavaScriptRuntimeCommands.js +16 -14
  494. package/dist/cliJsonInput.js +14 -6
  495. package/dist/cliLogging.js +50 -14
  496. package/dist/cliObservationOptions.js +9 -0
  497. package/dist/cliOutput.js +38 -5
  498. package/dist/composition/adb.js +3 -0
  499. package/dist/composition/apktool.js +3 -0
  500. package/dist/composition/binary.js +4 -0
  501. package/dist/composition/binaryDiagnostics.js +4 -0
  502. package/dist/composition/captures.js +3 -0
  503. package/dist/composition/directAnalysis.js +36 -11
  504. package/dist/composition/electronFuses.js +4 -0
  505. package/dist/composition/evm.js +12 -0
  506. package/dist/composition/flutter.js +3 -0
  507. package/dist/composition/go.js +4 -0
  508. package/dist/composition/javascriptAnalysisWorkerProcess.js +49 -0
  509. package/dist/composition/jeb.js +35 -0
  510. package/dist/composition/pcap.js +3 -0
  511. package/dist/composition/resolveWindowsProviderExecutable.js +61 -0
  512. package/dist/composition/reverseEngineering.js +29 -0
  513. package/dist/composition/rust.js +4 -0
  514. package/dist/composition/signals.js +3 -0
  515. package/dist/composition/sqlite.js +4 -0
  516. package/dist/composition/wasm.js +22 -0
  517. package/dist/composition/webNetworkCaptures.js +7 -2
  518. package/dist/config/environment.js +55 -4
  519. package/dist/config/ghidraDisabledAnalyzers.js +25 -0
  520. package/dist/config/ghidraLanguageOverride.js +9 -0
  521. package/dist/config/homeDirectory.js +9 -6
  522. package/dist/config/mcpInputSchemaProfile.js +31 -0
  523. package/dist/config/mcpOutputSchemaProfile.js +22 -0
  524. package/dist/config/parseConfig.js +36 -19
  525. package/dist/config/parsers.js +4 -3
  526. package/dist/config/{ghidraStartupTimeout.js → providerStartupTimeout.js} +7 -3
  527. package/dist/contracts/adb/adbToolContracts.js +353 -0
  528. package/dist/contracts/advertisedInputExamples.js +48 -0
  529. package/dist/contracts/analysisDetail.js +13 -0
  530. package/dist/contracts/analysisViewApiSurfaceExample.js +68 -0
  531. package/dist/contracts/analysisViewToolContracts.js +39 -3
  532. package/dist/contracts/android/androidToolContracts.js +17 -8
  533. package/dist/contracts/apktool/apktoolToolContracts.js +33 -0
  534. package/dist/contracts/applicationToolContracts.js +17 -2
  535. package/dist/contracts/artifactToolContracts.js +21 -6
  536. package/dist/contracts/browserToolContracts.js +2 -1
  537. package/dist/contracts/captures/captureToolContracts.js +42 -0
  538. package/dist/contracts/compactInputSchema.js +276 -0
  539. package/dist/contracts/cutterToolContracts.js +84 -0
  540. package/dist/contracts/enhancedToolContracts.js +2 -2
  541. package/dist/contracts/evm/evmToolContracts.js +30 -15
  542. package/dist/contracts/firmware/firmwareToolContracts.js +1 -1
  543. package/dist/contracts/flutter/flutterToolContracts.js +47 -0
  544. package/dist/contracts/fridaRemoteAddress.js +23 -0
  545. package/dist/contracts/fridaToolContracts.js +273 -0
  546. package/dist/contracts/functionComparisonExample.js +12 -1
  547. package/dist/contracts/functionWorkflowToolContracts.js +1 -1
  548. package/dist/contracts/gdbToolContracts.js +103 -0
  549. package/dist/contracts/go/goToolContracts.js +20 -0
  550. package/dist/contracts/hopperMemoryContracts.js +15 -0
  551. package/dist/contracts/inputSchemaPresentation.js +91 -24
  552. package/dist/contracts/investigationExamples.js +1 -0
  553. package/dist/contracts/javascript/electronToolContracts.js +40 -3
  554. package/dist/contracts/javascript/javascriptRecoveryToolContracts.js +13 -1
  555. package/dist/contracts/jeb/jebToolContracts.js +64 -0
  556. package/dist/contracts/managed/managedToolContracts.js +43 -4
  557. package/dist/contracts/managed/managedWorkflowExamples.js +7 -1
  558. package/dist/contracts/managed/managedWorkflowToolContracts.js +4 -30
  559. package/dist/contracts/mobileApplicationGraphExamples.js +12 -0
  560. package/dist/contracts/native/binaryDiagnosticsToolContracts.js +27 -4
  561. package/dist/contracts/native/nativeToolContracts.js +10 -6
  562. package/dist/contracts/officialToolContracts.js +9 -9
  563. package/dist/contracts/pcap/pcapToolContracts.js +33 -0
  564. package/dist/contracts/providerSelection.js +1 -0
  565. package/dist/contracts/reconstructionReadinessExample.js +126 -119
  566. package/dist/contracts/reverseEngineeringToolContracts.js +52 -0
  567. package/dist/contracts/rizinDebugToolContracts.js +96 -0
  568. package/dist/contracts/rust/rustToolContracts.js +20 -0
  569. package/dist/contracts/sessionLifecycleInputs.js +34 -2
  570. package/dist/contracts/sessionToolContracts.js +4 -4
  571. package/dist/contracts/sessionToolSchemas.js +20 -2
  572. package/dist/contracts/signals/signalToolContracts.js +40 -0
  573. package/dist/contracts/sqlite/sqliteToolContracts.js +36 -0
  574. package/dist/contracts/toolContractExamples.js +35 -0
  575. package/dist/contracts/toolContractTypes.js +5 -0
  576. package/dist/contracts/toolContracts.js +32 -0
  577. package/dist/contracts/toolEffects.js +414 -8
  578. package/dist/contracts/toolOutputSchemaGroups.js +78 -33
  579. package/dist/contracts/toolOutputSchemaPrimitives.js +111 -10
  580. package/dist/contracts/toolSchemaMetadata.js +98 -9
  581. package/dist/contracts/unknownContractExamples.js +1 -1
  582. package/dist/contracts/wasm/wasmComparisonContracts.js +52 -0
  583. package/dist/contracts/wasm/wasmToolContracts.js +33 -0
  584. package/dist/contracts/webNetworkCaptureToolContracts.js +15 -4
  585. package/dist/cutter/CutterBridgeClient.js +621 -0
  586. package/dist/cutter/CutterBridgeService.js +139 -0
  587. package/dist/doctorRuntime.js +20 -8
  588. package/dist/domain/adb/adbDeviceAnalysis.js +605 -0
  589. package/dist/domain/analysisErrorBase.js +20 -0
  590. package/dist/domain/analysisErrorCleanup.js +29 -0
  591. package/dist/domain/analysisErrorCore.js +19 -0
  592. package/dist/domain/analysisErrorPresentation.js +75 -22
  593. package/dist/domain/analysisErrorProjection.js +35 -13
  594. package/dist/domain/analysisProfile.js +7 -3
  595. package/dist/domain/analysisSnapshot.js +313 -185
  596. package/dist/domain/analysisView/WebNetworkApiSurfaceAccumulator.js +414 -0
  597. package/dist/domain/analysisView/analysisView.js +417 -45
  598. package/dist/domain/analysisView/analysisViewCoverage.js +32 -0
  599. package/dist/domain/analysisView/analysisViewErrors.js +4 -0
  600. package/dist/domain/analysisView/analysisViewParent.js +12 -0
  601. package/dist/domain/analysisView/analysisViewText.js +29 -0
  602. package/dist/domain/analysisView/androidPackageView.js +102 -0
  603. package/dist/domain/analysisView/artifactInventoryView.js +140 -0
  604. package/dist/domain/analysisView/binaryLayoutView.js +13 -4
  605. package/dist/domain/analysisView/dartAotView.js +93 -0
  606. package/dist/domain/analysisView/evmInterfaceView.js +105 -0
  607. package/dist/domain/analysisView/interfaceBuilderView.js +182 -0
  608. package/dist/domain/analysisView/javascriptApplicationView.js +29 -26
  609. package/dist/domain/analysisView/machoView.js +186 -0
  610. package/dist/domain/analysisView/managedArtifactView.js +108 -0
  611. package/dist/domain/analysisView/managedMemberView.js +209 -0
  612. package/dist/domain/analysisView/nativeFunctionView.js +150 -0
  613. package/dist/domain/analysisView/pcapCaptureView.js +264 -0
  614. package/dist/domain/analysisView/qlogCaptureView.js +198 -0
  615. package/dist/domain/analysisView/wasmArtifactView.js +162 -0
  616. package/dist/domain/analysisView/webNetworkApiSurfaceView.js +123 -0
  617. package/dist/domain/analysisView/webNetworkCaptureView.js +388 -0
  618. package/dist/domain/android/androidAnalysis.js +36 -2
  619. package/dist/domain/android/androidApplication.js +57 -80
  620. package/dist/domain/apktool/apktoolResourceAnalysis.js +89 -0
  621. package/dist/domain/apple/appleApplication.js +71 -52
  622. package/dist/domain/apple/appleArchiveFormat.js +184 -0
  623. package/dist/domain/apple/appleAssetCatalog.js +15 -0
  624. package/dist/domain/apple/appleBundleAnatomy.js +96 -29
  625. package/dist/domain/apple/dyldPaths.js +18 -3
  626. package/dist/domain/apple/dylibResolution.js +21 -11
  627. package/dist/domain/apple/dylibResolutionFindings.js +8 -9
  628. package/dist/domain/apple/interfaceBuilderGraph.js +72 -45
  629. package/dist/domain/apple/interfaceBuilderKeyedArchive.js +38 -9
  630. package/dist/domain/apple/machoContainer.js +120 -8
  631. package/dist/domain/apple/machoCpuIdentity.js +4 -0
  632. package/dist/domain/apple/plistValue.js +6 -1
  633. package/dist/domain/artifactComparison.js +130 -25
  634. package/dist/domain/artifactDecompressionBudget.js +26 -0
  635. package/dist/domain/artifactGraph.js +28 -9
  636. package/dist/domain/artifactIdentity.js +33 -2
  637. package/dist/domain/artifactInspection.js +47 -45
  638. package/dist/domain/artifactIntegrityPolicy.js +10 -0
  639. package/dist/domain/artifactInventoryEvidence.js +148 -51
  640. package/dist/domain/artifactPathSyntax.js +1 -1
  641. package/dist/domain/binaryTarget.js +253 -80
  642. package/dist/domain/binaryTargetTypes.js +21 -1
  643. package/dist/domain/browserNetworkEvidence.js +4 -0
  644. package/dist/domain/browserObservation.js +88 -29
  645. package/dist/domain/browserObservationSchemas.js +12 -5
  646. package/dist/domain/browserScenarioCapture.js +2 -1
  647. package/dist/domain/browserScenarioCaptureValues.js +26 -2
  648. package/dist/domain/browserScenarioDiff.js +120 -11
  649. package/dist/domain/browserScenarioDiffEvidence.js +46 -13
  650. package/dist/domain/browserScenarioDiffValues.js +10 -3
  651. package/dist/domain/browserScenarioNetworkComparison.js +158 -0
  652. package/dist/domain/browserScenarioNormalization.js +10 -13
  653. package/dist/domain/browserScenarioValues.js +2 -12
  654. package/dist/domain/browserSession.js +2 -2
  655. package/dist/domain/bundleComparison.js +1 -5
  656. package/dist/domain/callPath.js +40 -3
  657. package/dist/domain/canonicalJsonDigestSteps.js +34 -12
  658. package/dist/domain/captures/packetCapture.js +138 -0
  659. package/dist/domain/captures/packetFields.js +81 -0
  660. package/dist/domain/changedBehavior.js +43 -41
  661. package/dist/domain/compactStringIdentity.js +9 -0
  662. package/dist/domain/comparisonSourceEvidence.js +6 -0
  663. package/dist/domain/dosCom.js +2 -2
  664. package/dist/domain/dosMz.js +52 -14
  665. package/dist/domain/electron/electronFuses.js +360 -0
  666. package/dist/domain/elfFixedHeader.js +42 -0
  667. package/dist/domain/evidence.js +104 -38
  668. package/dist/domain/evidenceBundle.js +58 -20
  669. package/dist/domain/evidenceErrors.js +5 -0
  670. package/dist/domain/evidenceRecordSummary.js +144 -0
  671. package/dist/domain/evm/evmInterface.js +18 -4
  672. package/dist/domain/evm/solidityMetadata.js +70 -0
  673. package/dist/domain/explicitSensitiveFailure.js +42 -24
  674. package/dist/domain/firmware/firmwareAnalysis.js +29 -0
  675. package/dist/domain/flutter/flutterBuildAnalysis.js +141 -0
  676. package/dist/domain/functionCallCoverage.js +60 -0
  677. package/dist/domain/functionComparisonDimensions.js +101 -10
  678. package/dist/domain/functionComparisonNormalization.js +66 -10
  679. package/dist/domain/functionComparisonResults.js +7 -6
  680. package/dist/domain/functionComparisonSchemas.js +14 -3
  681. package/dist/domain/functionDossierEvidence.js +3 -0
  682. package/dist/domain/go/goBinary.js +96 -0
  683. package/dist/domain/harmony/harmonyApplication.js +156 -0
  684. package/dist/domain/hopperErrors.js +15 -16
  685. package/dist/domain/hopperPublisher.js +12 -0
  686. package/dist/domain/hopperValues.js +112 -34
  687. package/dist/domain/inputIssueProjection.js +16 -1
  688. package/dist/domain/javascript/electronObservation.js +4 -1
  689. package/dist/domain/javascript/electronStaticAnalysisBrowser.js +24 -24
  690. package/dist/domain/javascript/electronStaticAnalysisIpc.js +13 -20
  691. package/dist/domain/javascript/electronStaticAnalysisNative.js +85 -41
  692. package/dist/domain/javascript/electronStaticAnalysisValues.js +30 -8
  693. package/dist/domain/javascript/electronWrappedCallPaths.js +498 -0
  694. package/dist/domain/javascript/htmlArtifactReferences.js +94 -4
  695. package/dist/domain/javascript/javascriptAnalysisResourceControls.js +65 -0
  696. package/dist/domain/javascript/javascriptApplicationAnalysis.js +7 -1
  697. package/dist/domain/javascript/javascriptApplicationChangeGraph.js +13 -8
  698. package/dist/domain/javascript/javascriptApplicationEvidenceSchemas.js +1 -1
  699. package/dist/domain/javascript/javascriptApplicationGraph.js +96 -19
  700. package/dist/domain/javascript/javascriptApplicationGraphSchemas.js +1 -0
  701. package/dist/domain/javascript/javascriptApplicationProjectionResources.js +43 -0
  702. package/dist/domain/javascript/javascriptApplicationVersionItems.js +28 -12
  703. package/dist/domain/javascript/javascriptApplicationVersionKeys.js +40 -19
  704. package/dist/domain/javascript/javascriptArtifactFiles.js +2 -1
  705. package/dist/domain/javascript/javascriptAstFingerprint.js +100 -39
  706. package/dist/domain/javascript/javascriptAstValues.js +81 -0
  707. package/dist/domain/javascript/javascriptBootstrap.js +94 -0
  708. package/dist/domain/javascript/javascriptBootstrapIntegrity.js +372 -0
  709. package/dist/domain/javascript/javascriptBuiltinResourceMethods.js +8 -0
  710. package/dist/domain/javascript/javascriptBundledRequireOrigin.js +291 -0
  711. package/dist/domain/javascript/javascriptContextBridgeExposure.js +23 -0
  712. package/dist/domain/javascript/javascriptElectronMemberWrites.js +114 -0
  713. package/dist/domain/javascript/javascriptExportShapeComparisonSchemas.js +6 -5
  714. package/dist/domain/javascript/javascriptExportShapeVariants.js +1 -1
  715. package/dist/domain/javascript/javascriptFeatureSeed.js +33 -16
  716. package/dist/domain/javascript/javascriptFeatureTrace.js +9 -3
  717. package/dist/domain/javascript/javascriptFeatureTraceSchemas.js +42 -11
  718. package/dist/domain/javascript/javascriptIntrinsicInvocation.js +132 -0
  719. package/dist/domain/javascript/javascriptModuleDeclaration.js +28 -0
  720. package/dist/domain/javascript/javascriptModuleInterop.js +618 -0
  721. package/dist/domain/javascript/javascriptModuleResolutionMode.js +18 -0
  722. package/dist/domain/javascript/javascriptModuleSemanticIr.js +15 -0
  723. package/dist/domain/javascript/javascriptModuleSpecifier.js +5 -0
  724. package/dist/domain/javascript/javascriptNativeHandoff.js +6 -2
  725. package/dist/domain/javascript/javascriptPackageImportAliases.js +58 -0
  726. package/dist/domain/javascript/javascriptRecovery.js +12 -5
  727. package/dist/domain/javascript/javascriptRpcEndpoints.js +331 -0
  728. package/dist/domain/javascript/javascriptRuntimeLoadState.js +12 -3
  729. package/dist/domain/javascript/javascriptRuntimeObservation.js +4 -1
  730. package/dist/domain/javascript/javascriptRuntimeReconciliationCaptureParsing.js +10 -4
  731. package/dist/domain/javascript/javascriptRuntimeReconciliationGraph.js +7 -2
  732. package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +15 -2
  733. package/dist/domain/javascript/javascriptRuntimeReconciliationResult.js +0 -1
  734. package/dist/domain/javascript/javascriptRuntimeReconciliationSchemas.js +5 -4
  735. package/dist/domain/javascript/javascriptRuntimeStaticCandidates.js +121 -22
  736. package/dist/domain/javascript/javascriptSemanticAmbientWrites.js +251 -0
  737. package/dist/domain/javascript/javascriptSemanticAnalysis.js +493 -104
  738. package/dist/domain/javascript/javascriptSemanticAsyncEffects.js +17 -34
  739. package/dist/domain/javascript/javascriptSemanticCallResolution.js +4 -3
  740. package/dist/domain/javascript/javascriptSemanticCallableResults.js +42 -0
  741. package/dist/domain/javascript/javascriptSemanticCallableStack.js +52 -0
  742. package/dist/domain/javascript/javascriptSemanticCalls.js +14 -12
  743. package/dist/domain/javascript/javascriptSemanticChildProcesses.js +42 -55
  744. package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +428 -32
  745. package/dist/domain/javascript/javascriptSemanticDataEffects.js +14 -20
  746. package/dist/domain/javascript/javascriptSemanticDependencies.js +69 -0
  747. package/dist/domain/javascript/javascriptSemanticDerivedAnalysis.js +15 -4
  748. package/dist/domain/javascript/javascriptSemanticFileProjection.js +1 -0
  749. package/dist/domain/javascript/javascriptSemanticFingerprints.js +51 -53
  750. package/dist/domain/javascript/javascriptSemanticGraph.js +74 -24
  751. package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +2 -11
  752. package/dist/domain/javascript/javascriptSemanticIterationSources.js +41 -8
  753. package/dist/domain/javascript/javascriptSemanticMemberMutations.js +538 -151
  754. package/dist/domain/javascript/javascriptSemanticMutationInitializers.js +199 -3
  755. package/dist/domain/javascript/javascriptSemanticMutationValues.js +78 -35
  756. package/dist/domain/javascript/javascriptSemanticObjectReferences.js +671 -0
  757. package/dist/domain/javascript/javascriptSemanticObjects.js +27 -17
  758. package/dist/domain/javascript/javascriptSemanticProjection.js +202 -56
  759. package/dist/domain/javascript/javascriptSemanticPromises.js +6 -9
  760. package/dist/domain/javascript/javascriptSemanticPropertyPaths.js +77 -0
  761. package/dist/domain/javascript/javascriptSemanticProvenance.js +5 -1
  762. package/dist/domain/javascript/javascriptSemanticQuery.js +34 -31
  763. package/dist/domain/javascript/javascriptSemanticQueryIdentity.js +1 -3
  764. package/dist/domain/javascript/javascriptSemanticReferenceSources.js +25 -0
  765. package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +331 -8
  766. package/dist/domain/javascript/javascriptSemanticResources.js +6 -40
  767. package/dist/domain/javascript/javascriptSemanticReturnedReferences.js +233 -0
  768. package/dist/domain/javascript/javascriptSemanticReturns.js +49 -52
  769. package/dist/domain/javascript/javascriptSemanticState.js +61 -4
  770. package/dist/domain/javascript/javascriptSemanticTraversal.js +25 -5
  771. package/dist/domain/javascript/javascriptSemanticValues.js +260 -35
  772. package/dist/domain/javascript/javascriptSourceAnalysis.js +1 -0
  773. package/dist/domain/javascript/javascriptSourceMapPaths.js +44 -17
  774. package/dist/domain/javascript/javascriptSourceParser.js +72 -3
  775. package/dist/domain/javascript/javascriptSourceSelection.js +11 -0
  776. package/dist/domain/javascript/javascriptStaticAnalysis.js +72 -26
  777. package/dist/domain/javascript/javascriptStaticAnalysisBundler.js +100 -24
  778. package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +271 -47
  779. package/dist/domain/javascript/javascriptStaticAnalysisFindings.js +8 -4
  780. package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +166 -56
  781. package/dist/domain/javascript/javascriptStaticAnalysisState.js +2 -0
  782. package/dist/domain/javascript/javascriptStaticAnalysisTypes.js +2 -1
  783. package/dist/domain/javascript/javascriptSymbolicBindings.js +836 -0
  784. package/dist/domain/javascript/javascriptSymbolicControlFlow.js +40 -0
  785. package/dist/domain/javascript/javascriptSymbolicValues.js +34 -0
  786. package/dist/domain/javascript/sourceToBundleComparison.js +3 -1
  787. package/dist/domain/javascript/sourceToBundleComparisonSchemas.js +2 -0
  788. package/dist/domain/javascript/sourceToBundleSignals.js +47 -13
  789. package/dist/domain/jeb/jebAnalysis.js +114 -0
  790. package/dist/domain/jsonShape.js +63 -52
  791. package/dist/domain/jsonValue.js +40 -12
  792. package/dist/domain/localPath.js +6 -3
  793. package/dist/domain/managed/managedApplicationGraph.js +42 -0
  794. package/dist/domain/managed/managedApplicationGraphCoverage.js +12 -2
  795. package/dist/domain/managed/managedApplicationGraphNodes.js +32 -23
  796. package/dist/domain/managed/managedArtifact.js +52 -1
  797. package/dist/domain/managed/managedInspectionEvidence.js +12 -0
  798. package/dist/domain/managed/managedMemberComparison.js +3 -0
  799. package/dist/domain/managed/managedMemberComparisonCoverage.js +23 -3
  800. package/dist/domain/managed/managedMemberComparisonItems.js +23 -19
  801. package/dist/domain/managed/managedMemberComparisonMatch.js +209 -18
  802. package/dist/domain/managed/managedNativeVerificationMatch.js +49 -26
  803. package/dist/domain/managed/managedNativeVerificationSchemas.js +13 -2
  804. package/dist/domain/managed/managedReconstruction.js +5 -8
  805. package/dist/domain/mobileApplicationGraphProjection.js +80 -0
  806. package/dist/domain/native/addressCoordinate.js +11 -0
  807. package/dist/domain/native/binaryLayout.js +2 -4
  808. package/dist/domain/native/bytePattern.js +100 -0
  809. package/dist/domain/native/nativeAotPe.js +1408 -0
  810. package/dist/domain/native/nativeInspection.js +38 -4
  811. package/dist/domain/native/nativeInstruction.js +38 -2
  812. package/dist/domain/native/nativeInvestigationGraph.js +9 -5
  813. package/dist/domain/native/nativeLoadImage.js +19 -1
  814. package/dist/domain/native/nativeMetadataRecovery.js +79 -6
  815. package/dist/domain/native/nativeUiObservation.js +5 -6
  816. package/dist/domain/native/objcSwiftMetadata.js +4 -1
  817. package/dist/domain/native/peResources.js +100 -0
  818. package/dist/domain/native/recordedCrash.js +79 -10
  819. package/dist/domain/nativeConvention.js +33 -0
  820. package/dist/domain/offsetDateTime.js +60 -0
  821. package/dist/domain/pcap/pcapAnalysis.js +91 -0
  822. package/dist/domain/pcap/pcapEvidence.js +15 -0
  823. package/dist/domain/peMachine.js +36 -0
  824. package/dist/domain/pngHeader.js +18 -0
  825. package/dist/domain/process/processCapture.js +91 -1
  826. package/dist/domain/process/processCaptureCoverage.js +26 -3
  827. package/dist/domain/process/processCaptureExample.js +26 -0
  828. package/dist/domain/process/processCaptureValidation.js +112 -8
  829. package/dist/domain/process/processComparison.js +41 -13
  830. package/dist/domain/process/processScenario.js +66 -7
  831. package/dist/domain/process/processTraceEvaluation.js +54 -50
  832. package/dist/domain/process/processTraceSpecification.js +243 -89
  833. package/dist/domain/propertyListKeys.js +214 -12
  834. package/dist/domain/propertyListXmlText.js +20 -4
  835. package/dist/domain/providerAdapterError.js +0 -5
  836. package/dist/domain/providerConfigurationRefusal.js +12 -0
  837. package/dist/domain/providerSelectionError.js +2 -1
  838. package/dist/domain/qlogCapture.js +62 -0
  839. package/dist/domain/rawBinary.js +96 -0
  840. package/dist/domain/reconstructionCoverage.js +5 -1
  841. package/dist/domain/reconstructionCoverageEvaluation.js +18 -15
  842. package/dist/domain/reconstructionCoverageVerifierResults.js +35 -0
  843. package/dist/domain/reconstructionObligationLedgerIntegrity.js +114 -0
  844. package/dist/domain/reconstructionObligationLedgerSchemas.js +104 -1
  845. package/dist/domain/reconstructionReadiness.js +4 -8
  846. package/dist/domain/reconstructionReadinessJourneyFindings.js +4 -1
  847. package/dist/domain/reconstructionUnknowns.js +9 -1
  848. package/dist/domain/reconstructionVerification.js +54 -25
  849. package/dist/domain/recordedTransportUrl.js +59 -0
  850. package/dist/domain/referenceSourceClassification.js +27 -23
  851. package/dist/domain/referenceSourceGraph.js +70 -23
  852. package/dist/domain/referenceSourceImportParsing.js +29 -16
  853. package/dist/domain/referenceSourcePathIdentity.js +32 -0
  854. package/dist/domain/referenceSourceRequireBindings.js +130 -0
  855. package/dist/domain/referenceSourceSummary.js +92 -0
  856. package/dist/domain/relationshipCoverage.js +44 -0
  857. package/dist/domain/residualUnknown.js +93 -26
  858. package/dist/domain/reverseEngineering.js +31 -0
  859. package/dist/domain/runtimeVersion.js +8 -0
  860. package/dist/domain/rust/rustBinary.js +200 -0
  861. package/dist/domain/signals/annotationTextWindow.js +31 -0
  862. package/dist/domain/signals/signalDecoders.js +69 -0
  863. package/dist/domain/signals/signalRecording.js +115 -0
  864. package/dist/domain/sourceMapContents.js +10 -3
  865. package/dist/domain/sourceMapEnvelope.js +17 -11
  866. package/dist/domain/sqlite/sqliteDatabase.js +188 -0
  867. package/dist/domain/staticRuntimeCorrelation.js +7 -9
  868. package/dist/domain/swiftSymbolClassification.js +17 -0
  869. package/dist/domain/symbolAnalysis.js +16 -4
  870. package/dist/domain/urlComponents.js +6 -0
  871. package/dist/domain/wasm/wasmArtifact.js +119 -0
  872. package/dist/domain/wasm/wasmInterface.js +89 -0
  873. package/dist/domain/webBundleAnalysis.js +14 -3
  874. package/dist/domain/webBundleAnalyzerAst.js +7 -2
  875. package/dist/domain/webBundleAnalyzerInspection.js +68 -40
  876. package/dist/domain/webBundleAnalyzerResult.js +18 -6
  877. package/dist/domain/webCaptureDiff.js +233 -34
  878. package/dist/domain/webCaptureFrameComparison.js +49 -0
  879. package/dist/domain/webMcpDiscovery.js +5 -2
  880. package/dist/domain/webModuleImports.js +22 -27
  881. package/dist/domain/webModuleTrace.js +3 -8
  882. package/dist/domain/webNetworkCapture.js +101 -39
  883. package/dist/domain/webNetworkCaptureCoordinates.js +21 -0
  884. package/dist/domain/webRuntime.js +0 -1
  885. package/dist/domain/webScreenshot.js +2 -2
  886. package/dist/domain/webScriptArtifacts.js +2 -4
  887. package/dist/domain/webScriptExport.js +6 -8
  888. package/dist/domain/webScriptExportError.js +10 -4
  889. package/dist/domain/webScriptExportPlan.js +9 -15
  890. package/dist/domain/webSourceLocation.js +20 -9
  891. package/dist/domain/zipPackageFormat.js +31 -2
  892. package/dist/domain/zodCollectionSteps.js +24 -0
  893. package/dist/dotnet/ManagedArtifactInspector.js +81 -54
  894. package/dist/dotnet/ManagedDecodeBudget.js +138 -0
  895. package/dist/dotnet/ManagedMemberInspector.js +113 -26
  896. package/dist/dotnet/ManagedMemberInspectorCore.js +356 -140
  897. package/dist/dotnet/ManagedMemberInstructionDecoder.js +112 -38
  898. package/dist/dotnet/ManagedMemberOwnership.js +65 -0
  899. package/dist/dotnet/ManagedMemberPointers.js +69 -0
  900. package/dist/dotnet/ManagedMemberRows.js +182 -44
  901. package/dist/dotnet/ManagedMetadataHeaps.js +123 -27
  902. package/dist/dotnet/ManagedMetadataInventory.js +5 -5
  903. package/dist/dotnet/ManagedMetadataInventoryRows.js +56 -63
  904. package/dist/dotnet/ManagedMetadataLayout.js +19 -5
  905. package/dist/dotnet/ManagedMetadataRowSizes.js +1 -1
  906. package/dist/dotnet/ManagedMethodBodyReader.js +34 -11
  907. package/dist/dotnet/ManagedMethodSpecs.js +78 -0
  908. package/dist/dotnet/ManagedNativeBoundaryHelpers.js +5 -4
  909. package/dist/dotnet/ManagedNativeBoundaryInspector.js +52 -44
  910. package/dist/dotnet/ManagedPeReader.js +96 -52
  911. package/dist/dotnet/ManagedReaderFailure.js +11 -1
  912. package/dist/dotnet/ManagedSnapshot.js +88 -0
  913. package/dist/dotnet/ManagedStaticProvider.js +57 -35
  914. package/dist/dotnet/ManagedTypeMemberLists.js +105 -0
  915. package/dist/dotnet/ManagedTypeNames.js +98 -0
  916. package/dist/dotnet/ManagedUserStrings.js +75 -0
  917. package/dist/electron/ElectronFusePath.js +247 -0
  918. package/dist/electron/ElectronFuseProvider.js +113 -0
  919. package/dist/electron/ElectronFuseReader.js +317 -0
  920. package/dist/evaluation/AgentEvaluationFixtures.js +194 -11
  921. package/dist/evaluation/AgentEvaluationReport.js +9 -5
  922. package/dist/evaluation/CodexAgentEval.js +58 -49
  923. package/dist/evaluation/KnownAnswerEvaluation.js +126 -57
  924. package/dist/evm/EvmoleFailures.js +19 -16
  925. package/dist/evm/EvmoleInterfaceAdapter.js +5 -1
  926. package/dist/evm/EvmoleInterfaceProvider.js +198 -23
  927. package/dist/evm/EvmoleInterfaceWorker.js +2 -0
  928. package/dist/evm/SolidityMetadata.js +139 -0
  929. package/dist/filesystem/OwnedDirectoryHandle.js +29 -0
  930. package/dist/filesystem/OwnedFileHandle.js +36 -0
  931. package/dist/filesystem/OwnedStagedOutput.js +138 -0
  932. package/dist/filesystem/RegularFile.js +81 -5
  933. package/dist/filesystem/StableFileHash.js +46 -0
  934. package/dist/filesystem/readFileHandleChunks.js +35 -0
  935. package/dist/firmware/FirmwareCommand.js +27 -5
  936. package/dist/firmware/FirmwareFiles.js +18 -7
  937. package/dist/firmware/FirmwareProvider.js +158 -32
  938. package/dist/firmware/FirmwarePublication.js +242 -4
  939. package/dist/firmware/FirmwareRelease.js +1 -0
  940. package/dist/firmware/FirmwareReports.js +202 -12
  941. package/dist/flutter/DartElf.js +418 -0
  942. package/dist/flutter/ElfBuildId.js +137 -0
  943. package/dist/flutter/ElfLoadMap.js +91 -0
  944. package/dist/flutter/FlutterBuildProvider.js +826 -0
  945. package/dist/flutter/FlutterPayloadScan.js +180 -0
  946. package/dist/frida/FridaInstrumentationManager.js +1104 -0
  947. package/dist/gdb/GdbSessionManager.js +1451 -0
  948. package/dist/generatedPackageMetadata.js +2 -2
  949. package/dist/ghidra/GhidraAnalysisProfile.js +175 -6
  950. package/dist/ghidra/GhidraAnalysisSeeds.js +211 -0
  951. package/dist/ghidra/GhidraClient.js +208 -29
  952. package/dist/ghidra/GhidraDiagnostics.js +18 -8
  953. package/dist/ghidra/GhidraDoctor.js +15 -12
  954. package/dist/ghidra/GhidraFunctionValues.js +73 -2
  955. package/dist/ghidra/GhidraInstallation.js +216 -20
  956. package/dist/ghidra/GhidraInstallationPolicy.js +79 -29
  957. package/dist/ghidra/GhidraInventoryValues.js +53 -1
  958. package/dist/ghidra/GhidraJavaLaunch.js +91 -10
  959. package/dist/ghidra/GhidraJavaProperties.js +117 -0
  960. package/dist/ghidra/GhidraLanguageCatalog.js +169 -0
  961. package/dist/ghidra/GhidraLauncher.js +306 -88
  962. package/dist/ghidra/GhidraLoadImageAttest.js +74 -7
  963. package/dist/ghidra/GhidraLoadImageValues.js +72 -0
  964. package/dist/ghidra/GhidraMipsProfile.js +315 -0
  965. package/dist/ghidra/GhidraPeProfile.js +21 -0
  966. package/dist/ghidra/GhidraPowerPcProfile.js +51 -0
  967. package/dist/ghidra/GhidraProvider.js +106 -20
  968. package/dist/ghidra/GhidraProviderCapabilities.js +30 -19
  969. package/dist/ghidra/GhidraProviderClient.js +520 -56
  970. package/dist/ghidra/GhidraPspExtension.js +140 -0
  971. package/dist/ghidra/GhidraPspProfile.js +59 -0
  972. package/dist/ghidra/GhidraRawBinaryLanguage.js +40 -0
  973. package/dist/ghidra/GhidraRiscvProfile.js +100 -0
  974. package/dist/ghidra/GhidraSessionError.js +155 -11
  975. package/dist/ghidra/GhidraSessionValues.js +75 -2
  976. package/dist/ghidra/GhidraTransport.js +2 -1
  977. package/dist/go/GoBinaryContainer.js +140 -0
  978. package/dist/go/GoBinaryImage.js +210 -0
  979. package/dist/go/GoBinaryProvider.js +151 -0
  980. package/dist/go/GoElfImage.js +211 -0
  981. package/dist/go/GoMachoImage.js +164 -0
  982. package/dist/go/GoModuleText.js +217 -0
  983. package/dist/go/GoPeImage.js +124 -0
  984. package/dist/hopper/BridgeLauncher.js +35 -2
  985. package/dist/hopper/HopperAnalysisProfile.js +21 -9
  986. package/dist/hopper/HopperCleanup.js +15 -3
  987. package/dist/hopper/HopperClient.js +203 -42
  988. package/dist/hopper/HopperMacPublisher.js +29 -0
  989. package/dist/hopper/HopperMachOImage.js +61 -27
  990. package/dist/hopper/HopperProcessDiagnostic.js +27 -0
  991. package/dist/hopper/HopperProvider.js +68 -26
  992. package/dist/hopper/HopperProviderCapabilities.js +7 -3
  993. package/dist/hopper/HopperRequestQueue.js +17 -5
  994. package/dist/hopper/HopperSessionValues.js +10 -1
  995. package/dist/hopper/HopperTargetLease.js +66 -19
  996. package/dist/ida/IdaBusyHealth.js +44 -0
  997. package/dist/ida/IdaCallGraph.js +134 -0
  998. package/dist/ida/IdaConfiguration.js +7 -2
  999. package/dist/ida/IdaDiagnosticRedactor.js +199 -0
  1000. package/dist/ida/IdaDiagnosticWriter.js +62 -0
  1001. package/dist/ida/IdaDoctor.js +7 -5
  1002. package/dist/ida/IdaJsonDiagnostic.js +138 -0
  1003. package/dist/ida/IdaMcpConnection.js +297 -27
  1004. package/dist/ida/IdaNativeProtocol.js +93 -0
  1005. package/dist/ida/IdaOperationRunner.js +249 -40
  1006. package/dist/ida/IdaProtocolValues.js +86 -4
  1007. package/dist/ida/IdaProvider.js +34 -8
  1008. package/dist/ida/IdaProviderCapabilities.js +37 -8
  1009. package/dist/ida/IdaSessionClient.js +332 -53
  1010. package/dist/ida/IdaWorkspace.js +57 -7
  1011. package/dist/inspector/V8InspectorCaptureProjection.js +7 -2
  1012. package/dist/inspector/V8InspectorEndpoint.js +15 -13
  1013. package/dist/inspector/V8InspectorProvider.js +41 -7
  1014. package/dist/javascript/analysis/JavaScriptAnalysisTransfer.js +337 -0
  1015. package/dist/javascript/analysis/JavaScriptAnalysisWorker.js +594 -0
  1016. package/dist/javascript/analysis/JavaScriptAnalysisWorkerProtocol.js +65 -0
  1017. package/dist/javascript/analysis/JavaScriptAnalysisWorkerSchemas.js +590 -0
  1018. package/dist/javascript/analysis/JavaScriptAnalysisWorkerServer.js +126 -0
  1019. package/dist/javascript/recovery/RecoveryFiles.js +68 -12
  1020. package/dist/javascript/recovery/WakaruCommand.js +22 -9
  1021. package/dist/javascript/recovery/WakaruExecution.js +30 -18
  1022. package/dist/javascript/recovery/WakaruProvider.js +150 -24
  1023. package/dist/javascript/recovery/WakaruPublication.js +38 -14
  1024. package/dist/javascript/recovery/WakaruRelease.js +11 -4
  1025. package/dist/javascript/recovery/WakaruReport.js +15 -9
  1026. package/dist/javascript/recovery/WakaruVersion.js +24 -0
  1027. package/dist/javascript/sourceMaps/DecodedSourceMap.js +2 -16
  1028. package/dist/javascript/sourceMaps/SourceMapCommand.js +38 -7
  1029. package/dist/javascript/sourceMaps/SourceMapDecoder.js +84 -10
  1030. package/dist/javascript/sourceMaps/SourceMapFormat.js +26 -28
  1031. package/dist/javascript/sourceMaps/TraceSourceMap.js +34 -6
  1032. package/dist/jeb/JebMcpConnection.js +186 -0
  1033. package/dist/jeb/JebMcpEndpoint.js +45 -0
  1034. package/dist/jeb/JebProvider.js +297 -0
  1035. package/dist/logger.js +14 -1
  1036. package/dist/main/shutdown.js +3 -0
  1037. package/dist/main/transport.js +48 -4
  1038. package/dist/main.js +14 -3
  1039. package/dist/mcp/AnalysisSnapshotFiles-BAbiJQOc.js +1412 -0
  1040. package/dist/mcp/ArtifactProvider-DViCU_rn.js +2183 -0
  1041. package/dist/mcp/ArtifactProviderMetadata-b7pOK5_t.js +76 -0
  1042. package/dist/mcp/ArtifactReader-OyM03Gjn.js +55 -0
  1043. package/dist/mcp/ArtifactResourceScope-P3tq5z8Z.js +162 -0
  1044. package/dist/mcp/AsarHeader-WsPgoooH.js +31 -0
  1045. package/dist/mcp/BinarySessionStatus-B4P9gf-S.js +212 -0
  1046. package/dist/mcp/BinaryTargetResolver-BMaE_0H1.js +1427 -0
  1047. package/dist/mcp/BoundedFileBytes-DuczXiQZ.js +68 -0
  1048. package/dist/mcp/CdpCaptureDocuments-HDiF2O7k.js +746 -0
  1049. package/dist/mcp/CdpCaptureValues-M-j6CIh1.js +90 -0
  1050. package/dist/mcp/CdpConnection-BpDfz4MK.js +570 -0
  1051. package/dist/mcp/CdpOptionalCommand-BPjRD9Kz.js +120 -0
  1052. package/dist/mcp/CdpTargetSession-BsPoKhEU.js +86 -0
  1053. package/dist/mcp/DirectAnalysis-DrafbXke.js +409 -0
  1054. package/dist/mcp/DirectAnalysisStatus-CjjeDLzW.js +44 -0
  1055. package/dist/mcp/ElectronFileScope-BPG_YoyU.js +110 -0
  1056. package/dist/mcp/InterfaceBuilderDecodeBudget-5F2AkxJT.js +652 -0
  1057. package/dist/mcp/ManagedStaticProvider-BthZbKyZ.js +5028 -0
  1058. package/dist/mcp/NativeMacOSProvider-Bh79k8dI.js +4867 -0
  1059. package/dist/mcp/NativeMacOSProviderMetadata-N1lPOaY_.js +307 -0
  1060. package/dist/mcp/ProcedureAddressResolution-CQpuwm1h.js +19 -0
  1061. package/dist/mcp/ProcessOwnership-Bl_3ejLe.js +1502 -0
  1062. package/dist/mcp/ProviderDeadline-DskQ94YD.js +932 -0
  1063. package/dist/mcp/WorkflowEvidence-umWrB_wm.js +111 -0
  1064. package/dist/mcp/analysisErrorCore-DXRTvF_m.js +235 -0
  1065. package/dist/mcp/analysisErrorProjection-BN0EPM-3.js +892 -0
  1066. package/dist/mcp/artifactOperationError-CkHMMaf7.js +27 -0
  1067. package/dist/mcp/artifactToolContracts-Di4qZlEt.js +72 -0
  1068. package/dist/mcp/browserObservation-C0s4i8UI.js +4468 -0
  1069. package/dist/mcp/browserObservationError-CyLugqX4.js +40 -0
  1070. package/dist/mcp/browserObservationSchemas-tgqjH7aA.js +573 -0
  1071. package/dist/mcp/browserScenario-CAQ8Fns9.js +2929 -0
  1072. package/dist/mcp/browserScenarioCapture-CTNFN-FI.js +479 -0
  1073. package/dist/mcp/canonicalDigest-Bi_0_zGi.js +71 -0
  1074. package/dist/mcp/digests-BFoWUT_-.js +223 -0
  1075. package/dist/mcp/electronActiveObservation-lDvQTMR0.js +226 -0
  1076. package/dist/mcp/electronObservation-DFOFEood.js +112 -0
  1077. package/dist/mcp/electronObservation-i7LcILQ-.js +562 -0
  1078. package/dist/mcp/electronScenario-nCzE6IfJ.js +653 -0
  1079. package/dist/mcp/emptyArraySchema-tL6Qymyd.js +140 -0
  1080. package/dist/mcp/enhancedInputs-DgdEnzHy.js +56 -0
  1081. package/dist/mcp/javascriptRuntimeObservation-61NhCf7H.js +690 -0
  1082. package/dist/mcp/javascriptRuntimeObservation-PIUoLfX6.js +121 -0
  1083. package/dist/mcp/jsonSerialization-V-wWiFRE.js +152 -0
  1084. package/dist/mcp/lipo-Bnkoq_6W.js +502 -0
  1085. package/dist/mcp/localPath-AxvW9aPe.js +19 -0
  1086. package/dist/mcp/logger-BQY5ulYv.js +48 -0
  1087. package/dist/mcp/main-kBXHZ8S5.js +69390 -0
  1088. package/dist/mcp/main.js +6 -0
  1089. package/dist/mcp/managedToolContracts-CK--I_s7.js +101 -0
  1090. package/dist/mcp/nativeValueTrace-DR9UE62L.js +3439 -0
  1091. package/dist/mcp/officialToolContracts-B67NJ2tC.js +1413 -0
  1092. package/dist/mcp/pngHeader-DQ-ObyY2.js +147 -0
  1093. package/dist/mcp/propertyListKeys-DD25WsjI.js +553 -0
  1094. package/dist/mcp/providerAdapterError-sDxToNal.js +25 -0
  1095. package/dist/mcp/providerIdentities--ptAh481.js +31 -0
  1096. package/dist/mcp/providerIdentity-BCQ5n5tw.js +16 -0
  1097. package/dist/mcp/providerOperationHealth-CTYa3iLf.js +48 -0
  1098. package/dist/mcp/rolldown-runtime-BjeaiXFo.js +121 -0
  1099. package/dist/mcp/safeJson-NeGfpkrI.js +25 -0
  1100. package/dist/mcp/scanCanonical-CRXSpule.js +3982 -0
  1101. package/dist/mcp/serverIdentity-Cio4iFV3.js +1328 -0
  1102. package/dist/mcp/sourceMapEnvelope-C0uJlrOh.js +94 -0
  1103. package/dist/mcp/toolContracts-BW05wpcr.js +12200 -0
  1104. package/dist/mcp/toolOutputSchemaGroups-ColvNZ1r.js +17533 -0
  1105. package/dist/mcp/unicodeCodePointOrder-BezCbTpg.js +26 -0
  1106. package/dist/mcp/webContentArtifact-Dzjc1z-R.js +284 -0
  1107. package/dist/mcp/webRuntime-K__NYzXm.js +74 -0
  1108. package/dist/mcp/webSourceLocation-DbMAT2J9.js +11130 -0
  1109. package/dist/mcpDoctor.js +108 -76
  1110. package/dist/mcpStartupPolicy.js +3 -0
  1111. package/dist/native/AppleDispatchCoverage.js +81 -28
  1112. package/dist/native/AppleDispatchMetadata.js +20 -9
  1113. package/dist/native/AppleMachoFixups.js +253 -34
  1114. package/dist/native/AppleMachoSelection.js +44 -17
  1115. package/dist/native/AppleObjcCategories.js +1 -2
  1116. package/dist/native/AppleObjcDispatchFacets.js +76 -7
  1117. package/dist/native/CommandRunner.js +142 -32
  1118. package/dist/native/LldbCallTracer.js +5 -3
  1119. package/dist/native/MachoArchitectureSelection.js +50 -0
  1120. package/dist/native/NativeCallObservation.js +2 -1
  1121. package/dist/native/NativeMacOSProvider.js +173 -37
  1122. package/dist/native/NativeMachoInspection.js +142 -78
  1123. package/dist/native/NativeUiHelperRuntime.js +6 -1
  1124. package/dist/native/NativeUiObservation.js +6 -5
  1125. package/dist/native/SignatureTargetBinding.js +118 -55
  1126. package/dist/native/parsers/codesign.js +27 -10
  1127. package/dist/native/parsers/demangle.js +7 -1
  1128. package/dist/native/parsers/dyldInfo.js +73 -4
  1129. package/dist/native/parsers/lipo.js +53 -19
  1130. package/dist/native/parsers/machoUuid.js +150 -0
  1131. package/dist/native/parsers/otool.js +232 -29
  1132. package/dist/native/pe/PeResourceLayout.js +120 -0
  1133. package/dist/native/pe/PeResourceParser.js +286 -0
  1134. package/dist/native/pe/PeResourcesProvider.js +77 -0
  1135. package/dist/native/pwndbg/PwndbgCoreContext.js +20 -20
  1136. package/dist/native/pwntools/PwntoolsDecoder.js +264 -40
  1137. package/dist/native/pwntools/PwntoolsFailures.js +2 -1
  1138. package/dist/native/pwntools/PwntoolsInputLimit.js +27 -0
  1139. package/dist/native/pwntools/PwntoolsRecordedCrashProvider.js +27 -15
  1140. package/dist/native/pwntools/PwntoolsResourceLimits.js +3 -3
  1141. package/dist/native/pwntools/RecordedCrashSourceBindings.js +12 -8
  1142. package/dist/native/pwntools/RecordedCrashStructureBindings.js +3 -1
  1143. package/dist/objdump/ObjdumpCommand.js +21 -0
  1144. package/dist/pcap/PcapCommand.js +146 -0
  1145. package/dist/pcap/PcapConfiguration.js +93 -0
  1146. package/dist/pcap/PcapNativeBound.js +58 -0
  1147. package/dist/pcap/PcapOutput.js +240 -0
  1148. package/dist/pcap/PcapProvider.js +424 -0
  1149. package/dist/pcap/PcapSnapshot.js +171 -0
  1150. package/dist/process/ArtifactAnalysisResources.js +213 -0
  1151. package/dist/process/BoundedFileBytes.js +30 -7
  1152. package/dist/process/CurrentEntrypointPath.js +6 -0
  1153. package/dist/process/DarwinProcessRunTokenReader.js +125 -16
  1154. package/dist/process/ExecFileBoundedOutput.js +44 -0
  1155. package/dist/process/ExecFileOutput.js +30 -6
  1156. package/dist/process/JavaScriptWorkerMemoryLimit.js +25 -0
  1157. package/dist/process/LinuxResourceLimits.js +80 -0
  1158. package/dist/process/MacCodeSignature.js +3 -0
  1159. package/dist/process/OwnedCommand.js +40 -15
  1160. package/dist/process/PrivateRuntimeRoot.js +9 -19
  1161. package/dist/process/PrivateRuntimeRootUnavailableError.js +10 -0
  1162. package/dist/process/ProcessOwnership.js +173 -128
  1163. package/dist/process/ProcessOwnershipObservation.js +131 -43
  1164. package/dist/process/ProcessOwnershipProcessTree.js +4 -4
  1165. package/dist/process/ProcessRunTokenObservations.js +48 -0
  1166. package/dist/process/ProviderDeadline.js +58 -12
  1167. package/dist/process/ProviderDiagnosticRedaction.js +17 -0
  1168. package/dist/process/ProviderProcess.js +112 -14
  1169. package/dist/process/WindowsAuthority.js +48 -39
  1170. package/dist/process/WindowsBatchCommand.js +46 -0
  1171. package/dist/process/boundedUtf8Text.js +13 -0
  1172. package/dist/process/capture/FilesystemSnapshot.js +87 -12
  1173. package/dist/process/capture/ProcessCaptureClock.js +2 -0
  1174. package/dist/process/capture/ProcessCaptureError.js +22 -3
  1175. package/dist/process/capture/ProcessCaptureJournal.js +2 -1
  1176. package/dist/process/capture/ProcessCaptureLifecycle.js +433 -91
  1177. package/dist/process/capture/ProcessCaptureProgress.js +63 -0
  1178. package/dist/process/capture/ProcessHarness.js +209 -38
  1179. package/dist/process/capture/ProcessNormalization.js +278 -34
  1180. package/dist/process/capture/ProcessSampling.js +3 -2
  1181. package/dist/process/capture/ProcessScenarioRuntimeValidation.js +18 -15
  1182. package/dist/process/capture/TerminalRenderer.js +52 -14
  1183. package/dist/process/ownedDebuggerSession.js +203 -0
  1184. package/dist/reference/ReferenceSourceReader.js +22 -6
  1185. package/dist/reference/ReferenceSourceReaderEntries.js +182 -105
  1186. package/dist/reference/ReferenceSourceReaderErrors.js +17 -1
  1187. package/dist/reference/ReferenceSourceReaderFile.js +50 -11
  1188. package/dist/reference/ReferenceSourceReaderTypes.js +1 -2
  1189. package/dist/reference/ReferenceSourceReaderValidate.js +4 -5
  1190. package/dist/rizin/RizinCommand.js +14 -0
  1191. package/dist/rizin/RizinDebugSessionManager.js +1072 -0
  1192. package/dist/rust/RustAuditableReader.js +309 -0
  1193. package/dist/rust/RustBinaryImage.js +116 -0
  1194. package/dist/rust/RustBinaryProvider.js +162 -0
  1195. package/dist/server/EvidenceMcpServer.js +185 -27
  1196. package/dist/server/admittedToolOperation.js +14 -0
  1197. package/dist/server/contractToolHandler.js +28 -0
  1198. package/dist/server/createServer.js +238 -36
  1199. package/dist/server/externalMutationAdmission.js +50 -0
  1200. package/dist/server/mcpProgress.js +4 -2
  1201. package/dist/server/promptCompletion.js +19 -6
  1202. package/dist/server/providerEnvironment.js +3 -0
  1203. package/dist/server/registerAdbTools.js +36 -0
  1204. package/dist/server/registerAnalysisViewTool.js +9 -10
  1205. package/dist/server/registerAndroidTools.js +22 -13
  1206. package/dist/server/registerApktoolTools.js +14 -0
  1207. package/dist/server/registerApplicationTools/compareExportShapes.js +4 -6
  1208. package/dist/server/registerApplicationTools/compareSourceToBundle.js +4 -5
  1209. package/dist/server/registerApplicationTools/compareVersions.js +3 -2
  1210. package/dist/server/registerApplicationTools/coverage.js +3 -2
  1211. package/dist/server/registerApplicationTools/obligationLedger.js +3 -2
  1212. package/dist/server/registerApplicationTools/projectMobileApplicationGraph.js +11 -3
  1213. package/dist/server/registerApplicationTools/traceFeature.js +3 -2
  1214. package/dist/server/registerApplicationTools/traceSemantics.js +4 -5
  1215. package/dist/server/registerArtifactComparisonTool.js +5 -2
  1216. package/dist/server/registerArtifactTools.js +21 -1
  1217. package/dist/server/registerBinaryDiagnosticsTools.js +16 -4
  1218. package/dist/server/registerBrowserScenarioTool.js +10 -7
  1219. package/dist/server/registerBrowserTools.js +14 -13
  1220. package/dist/server/registerBundleComparisonTool.js +20 -6
  1221. package/dist/server/registerCaptureTools.js +12 -0
  1222. package/dist/server/registerCloseLifecycleTool.js +32 -3
  1223. package/dist/server/registerCutterTools.js +33 -0
  1224. package/dist/server/registerElectronTools.js +38 -17
  1225. package/dist/server/registerEnhancedTools.js +7 -6
  1226. package/dist/server/registerEvidenceTools.js +14 -10
  1227. package/dist/server/registerEvmTools.js +24 -11
  1228. package/dist/server/registerFirmwareTools.js +3 -11
  1229. package/dist/server/registerFlutterTools.js +17 -0
  1230. package/dist/server/registerFridaTools.js +205 -0
  1231. package/dist/server/registerFunctionComparisonTool.js +34 -11
  1232. package/dist/server/registerGdbTools.js +64 -0
  1233. package/dist/server/registerGoTools.js +9 -0
  1234. package/dist/server/registerInvestigationTools/helpers.js +2 -2
  1235. package/dist/server/registerInvestigationTools.js +12 -8
  1236. package/dist/server/registerJavaScriptRecoveryTool.js +4 -9
  1237. package/dist/server/registerJavaScriptRuntimeObservationTools.js +10 -11
  1238. package/dist/server/registerJebTools.js +16 -0
  1239. package/dist/server/registerManagedTools.js +11 -1
  1240. package/dist/server/registerManagedWorkflowTools/compareManagedMembers.js +4 -6
  1241. package/dist/server/registerManagedWorkflowTools/importManagedReconstruction.js +3 -2
  1242. package/dist/server/registerManagedWorkflowTools/projectManagedApplicationGraph.js +3 -2
  1243. package/dist/server/registerManagedWorkflowTools/verifyManagedNativeBoundaries.js +3 -2
  1244. package/dist/server/registerNativeTools.js +14 -0
  1245. package/dist/server/registerOfficialTools.js +5 -0
  1246. package/dist/server/registerPcapTools.js +35 -0
  1247. package/dist/server/registerPeResourcesTool.js +9 -0
  1248. package/dist/server/registerProcessComparisonTool.js +14 -4
  1249. package/dist/server/registerRecordedCrashTools.js +4 -9
  1250. package/dist/server/registerReverseEngineeringTools.js +86 -0
  1251. package/dist/server/registerRizinDebugTools.js +53 -0
  1252. package/dist/server/registerRustTools.js +9 -0
  1253. package/dist/server/registerSessionRecordTools.js +21 -14
  1254. package/dist/server/registerSessionStatusTool.js +22 -4
  1255. package/dist/server/registerSessionTools.js +78 -34
  1256. package/dist/server/registerSignalTools.js +12 -0
  1257. package/dist/server/registerSqliteTools.js +9 -0
  1258. package/dist/server/registerWasmTools.js +46 -0
  1259. package/dist/server/registerWebModuleTool.js +4 -9
  1260. package/dist/server/registerWebNetworkCaptureTool.js +26 -17
  1261. package/dist/server/registerWebRuntimeTools.js +6 -5
  1262. package/dist/server/registerWebScriptTool.js +6 -3
  1263. package/dist/server/registerWebSourceLocationTool.js +4 -9
  1264. package/dist/server/retainedSummaryDelivery.js +28 -0
  1265. package/dist/server/sessionAvailabilityPolicy.js +3 -0
  1266. package/dist/server/toolRegistrationOptions.js +8 -0
  1267. package/dist/server/toolResult.js +68 -16
  1268. package/dist/server/toolResultEncoding.js +36 -3
  1269. package/dist/serverIdentity.js +17 -8
  1270. package/dist/signals/SigrokRecordingProvider.js +339 -0
  1271. package/dist/signals/parseDecoderDiscovery.js +65 -0
  1272. package/dist/sqlite/SqliteDatabaseFailures.js +134 -0
  1273. package/dist/sqlite/SqliteDatabaseInspection.js +421 -0
  1274. package/dist/sqlite/SqliteDatabaseLimits.js +16 -0
  1275. package/dist/sqlite/SqliteDatabaseProvider.js +295 -0
  1276. package/dist/sqlite/SqliteDatabaseSnapshot.js +156 -0
  1277. package/dist/sqlite/SqliteDatabaseWorker.js +46 -0
  1278. package/dist/sqlite/SqliteDatabaseWorkerExecution.js +112 -0
  1279. package/dist/wasm/WabtArtifactProvider.js +336 -0
  1280. package/dist/wasm/WabtFailures.js +101 -0
  1281. package/dist/wasm/WabtInterface.js +309 -0
  1282. package/dist/wasm/WabtOutput.js +60 -0
  1283. package/dist/wasm/WabtRelease.js +12 -0
  1284. package/dist/wasm/WabtString.js +48 -0
  1285. package/dist/wasm/WabtWat.js +147 -0
  1286. package/dist/wasm/WasmGlueAdapter.js +53 -0
  1287. package/dist/wasm/WasmInterfaceBudget.js +11 -0
  1288. package/dist/windows/WindowsNativeLoader.js +37 -7
  1289. package/dist/windows/WindowsOwnedProcess.js +150 -17
  1290. package/dist/windows/WindowsPrivateRuntime.js +34 -6
  1291. package/install.sh +157 -95
  1292. package/licenses/Apache-2.0.txt +202 -0
  1293. package/licenses/GCC-Runtime-Library-Exception-3.1.txt +73 -0
  1294. package/licenses/GPL-3.0.txt +674 -0
  1295. package/licenses/LGPL-2.0.txt +480 -0
  1296. package/licenses/MIT-template.txt +18 -0
  1297. package/licenses/MinGW-w64-runtime.txt +240 -0
  1298. package/licenses/Node-22.19.0-LICENSE.txt +2666 -0
  1299. package/licenses/README.md +68 -0
  1300. package/licenses/cfworker-MIT.txt +21 -0
  1301. package/licenses/dotnet-runtime-MIT.txt +23 -0
  1302. package/licenses/frida-17.23.2-COPYING.txt +50 -0
  1303. package/licenses/ghidra-12.1.4-DISCLAIMER.txt +13 -0
  1304. package/licenses/ghidra-12.1.4-LICENSE.txt +201 -0
  1305. package/licenses/ghidra-12.1.4-NOTICE.txt +49 -0
  1306. package/licenses/nativeaot-parser-MIT.txt +28 -0
  1307. package/licenses/npm-dependencies.txt +3612 -0
  1308. package/licenses/npm-runtime-notices.txt +8548 -0
  1309. package/licenses/upstream-sources.json +72 -0
  1310. package/licenses/xterm-MIT.txt +21 -0
  1311. package/native/windows/README.md +92 -11
  1312. package/native/windows/build/manifest.json +2 -2
  1313. package/native/windows/build/rea-windows-x64.node +0 -0
  1314. package/package.json +117 -22
  1315. package/scripts/electron-active-hook.cjs +4 -1
  1316. package/scripts/hopper-demo-x11.py +53 -3
  1317. package/scripts/prepack.mjs +5 -0
  1318. package/scripts/rea-android-workspace-guardian.mjs +46 -0
  1319. package/scripts/rea.mjs +44 -13
  1320. package/scripts/verify-windows-native-artifact.mjs +2 -2
  1321. package/skills/reverse-engineer-anything/SKILL.md +142 -20
  1322. package/skills/reverse-engineer-anything/references/connection-and-recovery.md +127 -0
  1323. package/skills/reverse-engineer-anything/references/evidence-workflows.md +31 -0
  1324. package/skills/reverse-engineer-anything/references/javascript-applications.md +118 -13
  1325. package/skills/reverse-engineer-anything/references/native-and-artifacts.md +147 -16
  1326. package/skills/reverse-engineer-anything/references/runtime-observation.md +57 -7
  1327. package/third_party/README.md +1 -1
  1328. package/third_party/wabt/README.md +24 -0
  1329. package/dist/browser/history/HarCaptureAdapter.js +0 -20
  1330. package/dist/cli/streamedJsonOutput.js +0 -135
  1331. package/dist/cliJsonFile.js +0 -179
  1332. /package/dist/{application/binary → process}/AbortablePromise.js +0 -0
@@ -0,0 +1,1308 @@
1
+ import { __esmMin } from "./rolldown-runtime-DXoylpqc.js";
2
+ import { err, hasZipSignature, init_localPath, init_result, init_zipPackageFormat, isPathWithinRoot, isZipPackageFormat, ok, zipPackageFormatForPath } from "./reconstructionObligationLedgerSchemas-Bao0xMr-.js";
3
+ import { AnalysisCancelledError, BinaryTargetError, init_analysisErrorCore, init_configurationErrors } from "./errorSchemas-CTRmvMl3.js";
4
+ import { init_RegularFile, openRegularFile, sameRegularFileState } from "./RegularFile-B_6KPCNQ.js";
5
+ import { admitRawBinary, init_rawBinary, rawBinarySelectionError } from "./toolOutputSchemaGroups-DRiYs1je.js";
6
+ import { classifyFatContainerIdentity, init_machoContainer, readFatContainerHeader } from "./machoContainer-C8BIkkq3.js";
7
+ import { MAX_XML_PLIST_PROBE_BYTES, createXmlPlistSignatureProbe, hasBinaryPlistSignature, init_appleArchiveFormat, init_dosMz, observeMzWindowsHeader, parseDosMzHeader } from "./appleArchiveFormat-tVoI2ykA.js";
8
+ import { init_dosCom, validateDosComLength } from "./managedToolContracts-D60QmIYj.js";
9
+ import { decodeXmlPlistText, init_InterfaceBuilderDecodeBudget, init_propertyListXmlText, preflightPropertyListDecode } from "./InterfaceBuilderDecodeBudget-D4omRUe4.js";
10
+ import { init_propertyListKeys, omitPrototypeKeys, parseXmlPropertyList } from "./propertyListKeys-G8e74YWb.js";
11
+ import { z } from "zod";
12
+ import { extname, isAbsolute, join, resolve } from "node:path";
13
+ import { createHash } from "node:crypto";
14
+ import { access, lstat, opendir, readFile, realpath, stat } from "node:fs/promises";
15
+ import { constants } from "node:fs";
16
+ import { parseBinary } from "plist";
17
+
18
+ //#region dist/domain/elfFixedHeader.js
19
+ var readElfFixedHeader;
20
+ function init_elfFixedHeader() {
21
+ return (init_elfFixedHeader = __esmMin((() => {
22
+ init_result();
23
+ readElfFixedHeader = (bytes, totalBytes = bytes.length) => {
24
+ if (bytes.length >= 4 && bytes.toString("hex", 0, 4) !== "7f454c46") return err("not an ELF image");
25
+ if (bytes.length < 16) return err("ELF identification is truncated");
26
+ const classByte = bytes[4];
27
+ if (classByte !== 1 && classByte !== 2) return err("unsupported ELF class");
28
+ const dataByte = bytes[5];
29
+ if (dataByte !== 1 && dataByte !== 2) return err("unsupported ELF endianness");
30
+ if (bytes[6] !== 1) return err("unsupported ELF identification version");
31
+ const elfClass = classByte === 1 ? 32 : 64;
32
+ const minimumSize = elfClass === 32 ? 52 : 64;
33
+ if (!Number.isSafeInteger(totalBytes) || totalBytes < bytes.length || totalBytes < minimumSize || bytes.length < minimumSize) return err(`truncated ELF header: an ELF${elfClass} header needs ${minimumSize} bytes; the file has ${totalBytes}`);
34
+ const littleEndian = dataByte === 1;
35
+ const readU16 = (offset) => littleEndian ? bytes.readUInt16LE(offset) : bytes.readUInt16BE(offset);
36
+ const readU32 = (offset) => littleEndian ? bytes.readUInt32LE(offset) : bytes.readUInt32BE(offset);
37
+ if (readU32(20) !== 1) return err("unsupported ELF header version");
38
+ const headerSize = readU16(elfClass === 32 ? 40 : 52);
39
+ if (headerSize < minimumSize || headerSize > totalBytes) return err("invalid ELF header size");
40
+ return ok({
41
+ elfClass,
42
+ byteOrder: littleEndian ? "little" : "big",
43
+ headerSize
44
+ });
45
+ };
46
+ })))();
47
+ }
48
+
49
+ //#endregion
50
+ //#region dist/application/MipsElfSharedLoad.js
51
+ var readMipsElfSharedLoad;
52
+ function init_MipsElfSharedLoad() {
53
+ return (init_MipsElfSharedLoad = __esmMin((() => {
54
+ init_result();
55
+ readMipsElfSharedLoad = async (programHeaders, little, fileSize, read, checkCancelled, sections) => {
56
+ const u32 = (bytes, offset) => little ? bytes.readUInt32LE(offset) : bytes.readUInt32BE(offset);
57
+ const loads = [];
58
+ let dynamic;
59
+ for (let position = 0; position < programHeaders.length; position += 32) {
60
+ checkCancelled();
61
+ const type = u32(programHeaders, position);
62
+ const offset = u32(programHeaders, position + 4);
63
+ const size = u32(programHeaders, position + 16);
64
+ if (type === 1) {
65
+ const address = u32(programHeaders, position + 8);
66
+ const memorySize = u32(programHeaders, position + 20);
67
+ if (offset > fileSize - size || size > memorySize || address + memorySize > 4294967296) return err("invalid or incomplete MIPS PT_LOAD range");
68
+ loads.push({
69
+ offset,
70
+ address,
71
+ size,
72
+ memorySize
73
+ });
74
+ }
75
+ if (type === 2) {
76
+ if (dynamic !== undefined) return err("duplicate MIPS PT_DYNAMIC tables");
77
+ dynamic = {
78
+ offset,
79
+ address: u32(programHeaders, position + 8),
80
+ size
81
+ };
82
+ }
83
+ }
84
+ if (dynamic === undefined) return err("MIPS shared image has no PT_DYNAMIC table");
85
+ if (dynamic.size === 0 || dynamic.size % 8 !== 0) return err("invalid MIPS ELF32 dynamic table size");
86
+ if (dynamic.offset > fileSize - dynamic.size) return err("MIPS PT_DYNAMIC range extends beyond the file");
87
+ const ranges = loads.filter((load) => load.memorySize > 0).sort((left, right) => left.address - right.address);
88
+ for (let i = 1; i < ranges.length; i += 1) {
89
+ checkCancelled();
90
+ const previous = ranges[i - 1];
91
+ if (ranges[i].address < previous.address + previous.memorySize) return err("overlapping MIPS PT_LOAD memory ranges require separate mapping verification");
92
+ }
93
+ const mapped = (address, length, fileBacked) => {
94
+ let low = 0;
95
+ let high = ranges.length;
96
+ while (low < high) {
97
+ const middle = Math.floor((low + high) / 2);
98
+ if (ranges[middle].address <= address) low = middle + 1;
99
+ else high = middle;
100
+ }
101
+ const range = ranges[low - 1];
102
+ return range !== undefined && address - range.address <= (fileBacked ? range.size : range.memorySize) - length ? range : undefined;
103
+ };
104
+ const dynamicMapping = mapped(dynamic.address, dynamic.size, true);
105
+ if (dynamicMapping === undefined || dynamicMapping.offset + dynamic.address - dynamicMapping.address !== dynamic.offset) return err("MIPS PT_DYNAMIC has no unique matching file-backed PT_LOAD range");
106
+ const chunkBytes = 64 * 1024;
107
+ const relevant = new Set([
108
+ 2,
109
+ 7,
110
+ 8,
111
+ 9,
112
+ 17,
113
+ 18,
114
+ 19,
115
+ 20,
116
+ 23
117
+ ]);
118
+ const tags = new Map();
119
+ let terminated = false;
120
+ for (let offset = 0; offset < dynamic.size && !terminated; offset += chunkBytes) {
121
+ const chunk = await read(dynamic.offset + offset, Math.min(chunkBytes, dynamic.size - offset), "dynamic table");
122
+ if (!chunk.ok) return chunk;
123
+ for (let position = 0; position < chunk.value.length; position += 8) {
124
+ checkCancelled();
125
+ const tag = u32(chunk.value, position);
126
+ if (tag === 0) {
127
+ terminated = true;
128
+ break;
129
+ }
130
+ if (!relevant.has(tag)) continue;
131
+ if (tags.has(tag)) return err(`duplicate MIPS dynamic tag ${tag}`);
132
+ tags.set(tag, u32(chunk.value, position + 4));
133
+ }
134
+ }
135
+ if (!terminated) return err("MIPS dynamic table has no DT_NULL terminator");
136
+ if ([
137
+ 2,
138
+ 7,
139
+ 8,
140
+ 9,
141
+ 23
142
+ ].some((tag) => (tags.get(tag) ?? 0) !== 0)) return err("MIPS shared RELA or PLT relocation declarations require separate verification");
143
+ const address = tags.get(17);
144
+ const size = tags.get(18);
145
+ const stride = tags.get(19);
146
+ const checkSections = (offset, length) => {
147
+ let observed = 0;
148
+ for (const section of sections) {
149
+ checkCancelled();
150
+ if (section.size === 0) continue;
151
+ if (section.type !== 9 || section.entrySize !== 8 || section.offset !== offset || section.size !== length) return "MIPS section relocation declarations outside the dynamic REL table require separate verification";
152
+ observed += 1;
153
+ }
154
+ return observed > 1 ? "duplicate MIPS section relocation declarations require separate verification" : undefined;
155
+ };
156
+ const emptyRelocations = () => {
157
+ const reason = checkSections(0, 0);
158
+ return reason === undefined ? ok({
159
+ status: "complete",
160
+ relocationCount: 0,
161
+ relocationTypes: [],
162
+ symbolRelativeCount: 0
163
+ }) : err(reason);
164
+ };
165
+ if (address === undefined && size === undefined && stride === undefined) return emptyRelocations();
166
+ if (address === undefined || size === undefined || stride !== 8 || size % 8 !== 0) return err("incomplete or invalid MIPS DT_REL/DT_RELSZ/DT_RELENT declaration");
167
+ if (size === 0) return emptyRelocations();
168
+ const mapping = mapped(address, size, true);
169
+ if (mapping === undefined) return err("MIPS DT_REL range has no unique complete file-backed PT_LOAD mapping");
170
+ const fileOffset = mapping.offset + address - mapping.address;
171
+ const sectionReason = checkSections(fileOffset, size);
172
+ if (sectionReason !== undefined) return err(sectionReason);
173
+ let symbolRelativeCount = 0;
174
+ const types = new Set();
175
+ for (let offset = 0; offset < size; offset += chunkBytes) {
176
+ const chunk = await read(fileOffset + offset, Math.min(chunkBytes, size - offset), "dynamic REL records");
177
+ if (!chunk.ok) return chunk;
178
+ for (let position = 0; position < chunk.value.length; position += 8) {
179
+ checkCancelled();
180
+ const info = u32(chunk.value, position + 4);
181
+ const type = info & 255;
182
+ const relocationAddress = u32(chunk.value, position);
183
+ if (type === 3 && mapped(relocationAddress, 4, false) === undefined) return err("MIPS REL32 destination has no unique complete PT_LOAD memory range");
184
+ types.add(type);
185
+ if (type === 3 && info >>> 8 !== 0) symbolRelativeCount += 1;
186
+ }
187
+ }
188
+ return ok({
189
+ status: "complete",
190
+ relocationCount: size / 8,
191
+ relocationTypes: [...types].sort((left, right) => left - right),
192
+ symbolRelativeCount
193
+ });
194
+ };
195
+ })))();
196
+ }
197
+
198
+ //#endregion
199
+ //#region dist/application/MipsGnuAttributes.js
200
+ var MIPS_GNU_ATTRIBUTES_MAX_BYTES, FORMAT_VERSION, TAG_FILE, TAG_GNU_MIPS_ABI_FP, TAG_GNU_MIPS_ABI_MSA, parseMipsGnuAttributes;
201
+ function init_MipsGnuAttributes() {
202
+ return (init_MipsGnuAttributes = __esmMin((() => {
203
+ init_result();
204
+ MIPS_GNU_ATTRIBUTES_MAX_BYTES = 4096;
205
+ FORMAT_VERSION = 65;
206
+ TAG_FILE = 1;
207
+ TAG_GNU_MIPS_ABI_FP = 4;
208
+ TAG_GNU_MIPS_ABI_MSA = 8;
209
+ parseMipsGnuAttributes = (bytes, littleEndian) => {
210
+ if (bytes.length === 0 || bytes[0] !== FORMAT_VERSION) return err("unsupported MIPS GNU attribute section format version");
211
+ const readU32 = (offset) => littleEndian ? bytes.readUInt32LE(offset) : bytes.readUInt32BE(offset);
212
+ const readUleb = (offset, end) => {
213
+ let value = 0;
214
+ for (let index = 0; index < 5 && offset + index < end; index += 1) {
215
+ const byte = bytes[offset + index];
216
+ value += (byte & 127) * 2 ** (7 * index);
217
+ if ((byte & 128) === 0) return value <= 4294967295 ? {
218
+ value,
219
+ next: offset + index + 1
220
+ } : undefined;
221
+ }
222
+ return undefined;
223
+ };
224
+ let fpAbi = null;
225
+ let msa = null;
226
+ let vendorSeen = false;
227
+ let position = 1;
228
+ while (position < bytes.length) {
229
+ if (bytes.length - position < 4) return err("truncated MIPS GNU attribute subsection length");
230
+ const length = readU32(position);
231
+ if (length < 4 || length > bytes.length - position) return err("MIPS GNU attribute subsection length does not fit the section");
232
+ const end = position + length;
233
+ const vendorEnd = bytes.indexOf(0, position + 4);
234
+ if (vendorEnd < 0 || vendorEnd >= end) return err("unterminated MIPS GNU attribute vendor name");
235
+ if (bytes.toString("latin1", position + 4, vendorEnd) !== "gnu") return err("MIPS ELF declares non-GNU vendor attributes that REA does not inspect");
236
+ if (vendorSeen) return err("duplicate MIPS GNU attribute vendor subsections");
237
+ vendorSeen = true;
238
+ let cursor = vendorEnd + 1;
239
+ while (cursor < end) {
240
+ const scopeStart = cursor;
241
+ const scope = readUleb(cursor, end);
242
+ if (scope === undefined) return err("malformed MIPS GNU attribute scope tag");
243
+ if (scope.value !== TAG_FILE) return err("MIPS GNU attributes scoped to sections or symbols are not inspected by REA");
244
+ if (end - scope.next < 4) return err("truncated MIPS GNU attribute scope length");
245
+ const scopeLength = readU32(scope.next);
246
+ if (scopeLength < scope.next + 4 - scopeStart || scopeLength > end - scopeStart) return err("MIPS GNU attribute scope length does not fit its subsection");
247
+ const scopeEnd = scopeStart + scopeLength;
248
+ cursor = scope.next + 4;
249
+ while (cursor < scopeEnd) {
250
+ const tag = readUleb(cursor, scopeEnd);
251
+ if (tag === undefined) return err("malformed MIPS GNU attribute tag");
252
+ if (tag.value !== TAG_GNU_MIPS_ABI_FP && tag.value !== TAG_GNU_MIPS_ABI_MSA) return err(`MIPS ELF declares GNU attribute tag ${tag.value}, which REA does not inspect`);
253
+ const value = readUleb(tag.next, scopeEnd);
254
+ if (value === undefined) return err("malformed MIPS GNU attribute value");
255
+ if (tag.value === TAG_GNU_MIPS_ABI_FP) {
256
+ if (fpAbi !== null) return err("duplicate MIPS GNU floating-point ABI attributes");
257
+ fpAbi = value.value;
258
+ } else {
259
+ if (msa !== null) return err("duplicate MIPS GNU MSA ABI attributes");
260
+ msa = value.value;
261
+ }
262
+ cursor = value.next;
263
+ }
264
+ cursor = scopeEnd;
265
+ }
266
+ position = end;
267
+ }
268
+ return ok({
269
+ fpAbi,
270
+ msa
271
+ });
272
+ };
273
+ })))();
274
+ }
275
+
276
+ //#endregion
277
+ //#region dist/application/MipsElfMetadata.js
278
+ var SHT_GNU_ATTRIBUTES, readMipsElfMetadata;
279
+ function init_MipsElfMetadata() {
280
+ return (init_MipsElfMetadata = __esmMin((() => {
281
+ init_elfFixedHeader();
282
+ init_result();
283
+ init_MipsElfSharedLoad();
284
+ init_MipsGnuAttributes();
285
+ SHT_GNU_ATTRIBUTES = 1879048181;
286
+ readMipsElfMetadata = async (handle, metadata, checkCancelled) => {
287
+ checkCancelled();
288
+ if (metadata.elfClass !== 32) return err("MIPS ABI record inspection currently supports ELF32 only");
289
+ const fileSize = (await handle.stat()).size;
290
+ checkCancelled();
291
+ const read = async (offset, length, label) => {
292
+ checkCancelled();
293
+ if (!Number.isSafeInteger(fileSize) || offset < 0 || length < 0 || offset > fileSize - length) return err(`MIPS ${label} lies outside the file`);
294
+ const bytes = Buffer.alloc(length);
295
+ let total = 0;
296
+ while (total < length) {
297
+ checkCancelled();
298
+ const observed = await handle.read(bytes, total, length - total, offset + total);
299
+ checkCancelled();
300
+ if (observed.bytesRead === 0) return err(`truncated MIPS ${label}`);
301
+ total += observed.bytesRead;
302
+ }
303
+ return ok(bytes);
304
+ };
305
+ const header = await read(0, 52, "ELF32 header");
306
+ if (!header.ok) return header;
307
+ const bytes = header.value;
308
+ const fixedHeader = readElfFixedHeader(bytes, fileSize);
309
+ if (!fixedHeader.ok) return fixedHeader;
310
+ const little = metadata.byteOrder === "little";
311
+ const u16 = (data, offset) => little ? data.readUInt16LE(offset) : data.readUInt16BE(offset);
312
+ const u32 = (data, offset) => little ? data.readUInt32LE(offset) : data.readUInt32BE(offset);
313
+ if (fixedHeader.value.elfClass !== 32 || fixedHeader.value.byteOrder !== metadata.byteOrder || u16(bytes, 18) !== 8 || u16(bytes, 16) !== metadata.type || u32(bytes, 36) !== metadata.flags) return err("MIPS ELF header no longer matches the resolved identity");
314
+ if (fixedHeader.value.headerSize !== 52) return err("invalid MIPS ELF32 version or header size");
315
+ const tables = [{
316
+ label: "program header table",
317
+ offset: u32(bytes, 28),
318
+ count: u16(bytes, 44),
319
+ stride: u16(bytes, 42),
320
+ entrySize: 32,
321
+ typeOffset: 0,
322
+ dataOffset: 4,
323
+ sizeOffset: 16,
324
+ recordType: 1879048195,
325
+ optional: false
326
+ }, {
327
+ label: "section header table",
328
+ offset: u32(bytes, 32),
329
+ count: u16(bytes, 48),
330
+ stride: u16(bytes, 46),
331
+ entrySize: 40,
332
+ typeOffset: 4,
333
+ dataOffset: 16,
334
+ sizeOffset: 20,
335
+ recordType: 1879048234,
336
+ optional: true
337
+ }];
338
+ if (u16(bytes, 44) === 65535 || u16(bytes, 48) >= 65280) return err("extended or reserved MIPS ELF table numbering is unsupported");
339
+ let record;
340
+ let sharedLoad;
341
+ let programHeaders;
342
+ const relocationSections = [];
343
+ const limitations = [];
344
+ let gnuAttributes = null;
345
+ for (const table of tables) {
346
+ if (table.count === 0) {
347
+ if (table.offset !== 0) return err(`unsupported extended or inconsistent MIPS ${table.label}`);
348
+ continue;
349
+ }
350
+ if (table.offset < 52 || table.stride !== table.entrySize) return err(`invalid MIPS ${table.label} offset or entry size`);
351
+ const count = table.optional ? Math.min(table.count, Math.max(0, Math.floor((fileSize - table.offset) / table.entrySize))) : table.count;
352
+ if (count < table.count) limitations.push(`MIPS ${table.label} at file offset ${table.offset} extends beyond the captured file: examined ${count} of ${table.count} complete headers. ABI declarations in unavailable headers remain unknown.`);
353
+ if (count === 0) continue;
354
+ const contents = await read(table.offset, count * table.entrySize, table.label);
355
+ if (!contents.ok) return contents;
356
+ if (!table.optional && metadata.type === 3) programHeaders = contents.value;
357
+ let found = false;
358
+ for (let i = 0; i < count; i += 1) {
359
+ checkCancelled();
360
+ const position = i * table.entrySize;
361
+ const type = u32(contents.value, position + table.typeOffset);
362
+ if (table.optional && type === SHT_GNU_ATTRIBUTES) {
363
+ if (gnuAttributes !== null) return err("duplicate MIPS GNU attribute sections");
364
+ const size = u32(contents.value, position + 20);
365
+ if (size === 0 || size > 4096) return err(`MIPS GNU attribute section size ${size} is outside REA's inspected bound of ${MIPS_GNU_ATTRIBUTES_MAX_BYTES} bytes`);
366
+ const section = await read(u32(contents.value, position + 16), size, "GNU attribute section");
367
+ if (!section.ok) return section;
368
+ const parsed = parseMipsGnuAttributes(section.value, little);
369
+ if (!parsed.ok) return parsed;
370
+ gnuAttributes = parsed.value;
371
+ continue;
372
+ }
373
+ if (metadata.type === 3 && table.optional && (type === 4 || type === 9)) relocationSections.push({
374
+ type,
375
+ offset: u32(contents.value, position + 16),
376
+ size: u32(contents.value, position + 20),
377
+ entrySize: u32(contents.value, position + 36)
378
+ });
379
+ if (type !== table.recordType) continue;
380
+ if (found) return err(`duplicate MIPS ABI records in ${table.label}`);
381
+ found = true;
382
+ const offset = u32(contents.value, position + table.dataOffset);
383
+ const size = u32(contents.value, position + table.sizeOffset);
384
+ if (size !== 24) return err("unsupported MIPS ABI record size; expected 24 bytes");
385
+ const candidate = await read(offset, 24, "ABI record");
386
+ if (!candidate.ok) return candidate;
387
+ if (record !== undefined && !record.equals(candidate.value)) return err("conflicting MIPS program/section ABI declarations");
388
+ record = candidate.value;
389
+ }
390
+ }
391
+ if (metadata.type === 3 && programHeaders !== undefined) {
392
+ if (limitations.length > 0) sharedLoad = {
393
+ status: "unavailable",
394
+ reason: `MIPS shared-image relocation declaration sources are incomplete. ${limitations.join(" ")}`
395
+ };
396
+ else {
397
+ const shared = await readMipsElfSharedLoad(programHeaders, little, fileSize, read, checkCancelled, relocationSections);
398
+ sharedLoad = shared.ok ? shared.value : {
399
+ status: "unavailable",
400
+ reason: shared.error
401
+ };
402
+ }
403
+ }
404
+ const shared = metadata.type === 3 ? { sharedLoad: sharedLoad ?? {
405
+ status: "unavailable",
406
+ reason: "MIPS shared image has no inspected program header table"
407
+ } } : {};
408
+ if (record === undefined) return ok({
409
+ abiFlags: null,
410
+ gnuAttributes,
411
+ limitations,
412
+ ...shared
413
+ });
414
+ const abiFlags = {
415
+ version: u16(record, 0),
416
+ isaLevel: record.readUInt8(2),
417
+ isaRevision: record.readUInt8(3),
418
+ gprSize: record.readUInt8(4),
419
+ cpr1Size: record.readUInt8(5),
420
+ cpr2Size: record.readUInt8(6),
421
+ fpAbi: record.readUInt8(7),
422
+ isaExtension: u32(record, 8),
423
+ ases: u32(record, 12),
424
+ flags1: u32(record, 16),
425
+ flags2: u32(record, 20)
426
+ };
427
+ if (gnuAttributes !== null && gnuAttributes.fpAbi !== null && gnuAttributes.fpAbi !== 0 && gnuAttributes.fpAbi !== abiFlags.fpAbi) return err("conflicting MIPS ABI flags and GNU floating-point ABI declarations");
428
+ return ok({
429
+ abiFlags,
430
+ gnuAttributes,
431
+ limitations,
432
+ ...shared
433
+ });
434
+ };
435
+ })))();
436
+ }
437
+
438
+ //#endregion
439
+ //#region dist/application/AppBundleExecutable.js
440
+ var BINARY_PLIST_DECODE_BYTES, BUNDLE_LAYOUTS, defaultFileSystem, resolveAppBundleExecutable, presentLayout, layoutPlistPresent, isAbsence, errorCode, codeDescription, isSystemErrorCode, isPermissionDenied, errorReason, wrappedBundle, resolveLayoutExecutable, parseXmlPlistExecutable, executableName, executableEntrySchema, parseBinaryPlistExecutable, isSafeExecutableName;
441
+ function init_AppBundleExecutable() {
442
+ return (init_AppBundleExecutable = __esmMin((() => {
443
+ init_InterfaceBuilderDecodeBudget();
444
+ init_configurationErrors();
445
+ init_localPath();
446
+ init_propertyListKeys();
447
+ init_propertyListXmlText();
448
+ init_appleArchiveFormat();
449
+ init_result();
450
+ BINARY_PLIST_DECODE_BYTES = 16 * 1024 * 1024;
451
+ BUNDLE_LAYOUTS = [{
452
+ plist: ["Contents", "Info.plist"],
453
+ programs: ["Contents", "MacOS"],
454
+ programsLabel: "Contents/MacOS"
455
+ }, {
456
+ plist: ["Info.plist"],
457
+ programs: [],
458
+ programsLabel: "the bundle root"
459
+ }];
460
+ defaultFileSystem = {
461
+ readFile,
462
+ realpath
463
+ };
464
+ resolveAppBundleExecutable = async (path, fileSystem = defaultFileSystem) => {
465
+ try {
466
+ const layout = await presentLayout(path);
467
+ if (layout !== undefined) return resolveLayoutExecutable(path, layout, fileSystem);
468
+ const wrapped = await wrappedBundle(path);
469
+ if (wrapped !== undefined) {
470
+ const wrappedLayout = await presentLayout(wrapped);
471
+ if (wrappedLayout !== undefined) return resolveLayoutExecutable(wrapped, wrappedLayout, fileSystem);
472
+ }
473
+ } catch (cause) {
474
+ if (cause instanceof BinaryTargetError) return err(cause);
475
+ return err(new BinaryTargetError(path, errorReason(cause, path), { cause }));
476
+ }
477
+ return err(new BinaryTargetError(path, `app Info.plist is missing or no supported bundle layout was found: ${path}`, { cause: new Error("No Contents/Info.plist, root Info.plist, or single Wrapper/*.app bundle was found") }));
478
+ };
479
+ presentLayout = async (bundle) => {
480
+ for (const layout of BUNDLE_LAYOUTS) if (await layoutPlistPresent(join(bundle, ...layout.plist))) return layout;
481
+ return undefined;
482
+ };
483
+ layoutPlistPresent = async (path) => {
484
+ try {
485
+ return (await stat(path)).isFile();
486
+ } catch (cause) {
487
+ if (isAbsence(cause)) return false;
488
+ if (isPermissionDenied(cause)) throw new BinaryTargetError(path, `permission denied inspecting app Info.plist ${path}`, { cause });
489
+ throw cause;
490
+ }
491
+ };
492
+ isAbsence = (cause) => {
493
+ const code = errorCode(cause);
494
+ return code === "ENOENT" || code === "ENOTDIR";
495
+ };
496
+ errorCode = (cause) => cause instanceof Error ? Reflect.get(cause, "code") : undefined;
497
+ codeDescription = (cause) => {
498
+ const code = errorCode(cause);
499
+ return typeof code === "string" || typeof code === "number" ? ` (${String(code)})` : "";
500
+ };
501
+ isSystemErrorCode = (cause) => {
502
+ const code = errorCode(cause);
503
+ return typeof code === "string" && /^[A-Z][A-Z0-9_]+$/u.test(code) && !code.startsWith("ERR_");
504
+ };
505
+ isPermissionDenied = (cause) => errorCode(cause) === "EACCES" || errorCode(cause) === "EPERM";
506
+ errorReason = (cause, path) => isPermissionDenied(cause) ? `permission denied accessing app bundle path ${path}` : isAbsence(cause) ? `app bundle path is missing: ${path}` : `could not inspect app bundle path ${path}`;
507
+ wrappedBundle = async (bundle) => {
508
+ const wrapper = join(bundle, "Wrapper");
509
+ try {
510
+ if (!(await lstat(wrapper)).isDirectory()) return undefined;
511
+ } catch (cause) {
512
+ if (isAbsence(cause)) return undefined;
513
+ throw cause;
514
+ }
515
+ let app;
516
+ for await (const entry of await opendir(wrapper)) {
517
+ if (!entry.isDirectory() || !entry.name.toLowerCase().endsWith(".app")) continue;
518
+ if (app !== undefined) return undefined;
519
+ app = join(wrapper, entry.name);
520
+ }
521
+ return app;
522
+ };
523
+ resolveLayoutExecutable = async (bundle, layout, fileSystem) => {
524
+ const plistPath = join(bundle, ...layout.plist);
525
+ let plist;
526
+ try {
527
+ plist = await fileSystem.readFile(plistPath);
528
+ } catch (cause) {
529
+ return err(new BinaryTargetError(plistPath, isPermissionDenied(cause) ? `permission denied reading app Info.plist ${plistPath}` : isAbsence(cause) ? `app Info.plist is missing: ${plistPath}` : `could not read app Info.plist ${plistPath}${codeDescription(cause)}`, { cause }));
530
+ }
531
+ let name;
532
+ try {
533
+ name = hasBinaryPlistSignature(plist) ? await (fileSystem.decodeBinaryPlist?.(plistPath) ?? parseBinaryPlistExecutable(plist)) : parseXmlPlistExecutable(decodeXmlPlistText(plist));
534
+ } catch (cause) {
535
+ return err(new BinaryTargetError(plistPath, isPermissionDenied(cause) ? `permission denied decoding app Info.plist ${plistPath}${codeDescription(cause)}` : isSystemErrorCode(cause) ? `could not decode app Info.plist ${plistPath}${codeDescription(cause)}` : `app Info.plist is malformed, unsupported, or lacks CFBundleExecutable: ${plistPath}${cause instanceof Error ? ` (${cause.message})` : ""}`, { cause }));
536
+ }
537
+ if (!isSafeExecutableName(name)) return err(new BinaryTargetError(bundle, "app has an unsafe CFBundleExecutable"));
538
+ const programs = join(bundle, ...layout.programs);
539
+ const executable = join(programs, name);
540
+ try {
541
+ const [canonicalPrograms, canonicalExecutable] = await Promise.all([fileSystem.realpath(programs), fileSystem.realpath(executable)]);
542
+ if (!isPathWithinRoot(canonicalPrograms, canonicalExecutable)) return err(new BinaryTargetError(bundle, `app program file leaves ${layout.programsLabel}`));
543
+ return ok({
544
+ executable: canonicalExecutable,
545
+ infoPlist: plistPath
546
+ });
547
+ } catch (cause) {
548
+ return err(new BinaryTargetError(executable, isPermissionDenied(cause) ? `permission denied resolving app program file ${executable}` : isAbsence(cause) ? `app program file is missing: ${executable}` : `could not resolve app program file ${executable}`, { cause }));
549
+ }
550
+ };
551
+ parseXmlPlistExecutable = (plist) => {
552
+ const { value } = parseXmlPropertyList(plist);
553
+ return executableName(value);
554
+ };
555
+ executableName = (value) => {
556
+ const executable = executableEntrySchema.safeParse(value);
557
+ if (!executable.success) throw new Error("CFBundleExecutable is missing");
558
+ return executable.data.CFBundleExecutable;
559
+ };
560
+ executableEntrySchema = z.looseObject({ CFBundleExecutable: z.string() });
561
+ parseBinaryPlistExecutable = (plist) => {
562
+ preflightPropertyListDecode(plist, BINARY_PLIST_DECODE_BYTES);
563
+ return executableName(omitPrototypeKeys(parseBinary(plist)).value);
564
+ };
565
+ isSafeExecutableName = (name) => name.length > 0 && name !== "." && name !== ".." && !name.includes("\0") && !/[/\\]/u.test(name);
566
+ })))();
567
+ }
568
+
569
+ //#endregion
570
+ //#region dist/domain/peMachine.js
571
+ var architectureForMachine, NATIVE_OS_OVERRIDES, decodePeMachine;
572
+ function init_peMachine() {
573
+ return (init_peMachine = __esmMin((() => {
574
+ architectureForMachine = (machine) => {
575
+ switch (machine) {
576
+ case 332: return "x86";
577
+ case 34404: return "x86_64";
578
+ case 448:
579
+ case 450:
580
+ case 452: return "arm";
581
+ case 43620: return "arm64";
582
+ }
583
+ return undefined;
584
+ };
585
+ NATIVE_OS_OVERRIDES = [
586
+ 17988,
587
+ 44484,
588
+ 44485,
589
+ 31609,
590
+ 6547,
591
+ 6546
592
+ ];
593
+ decodePeMachine = (machine) => {
594
+ const direct = architectureForMachine(machine);
595
+ if (direct !== undefined) return {
596
+ architecture: direct,
597
+ nativeOsOverride: false
598
+ };
599
+ for (const override of NATIVE_OS_OVERRIDES) {
600
+ const architecture = architectureForMachine(machine ^ override);
601
+ if (architecture !== undefined) return {
602
+ architecture,
603
+ nativeOsOverride: true
604
+ };
605
+ }
606
+ return undefined;
607
+ };
608
+ })))();
609
+ }
610
+
611
+ //#endregion
612
+ //#region dist/domain/binaryTarget.js
613
+ var parseExecutableHeader, parseThinMachO, parseFatMachO, fatHostArchitecture, fatIdentityError, parseElf, parseMz, parsePeRecord, parseCodeViewData, peDebugDirectoryEntry, peRvaToFileOffset, parsePeCodeViewFromBuffer, peManagedStatus, machArchitecture, elfArchitecture;
614
+ function init_binaryTarget() {
615
+ return (init_binaryTarget = __esmMin((() => {
616
+ init_result();
617
+ init_elfFixedHeader();
618
+ init_dosMz();
619
+ init_peMachine();
620
+ init_machoContainer();
621
+ parseExecutableHeader = (bytes, hostArchitecture, fileSize = bytes.length, mzWindowsHeaderSignature) => {
622
+ if (bytes.length >= 4 && bytes.subarray(0, 4).equals(Buffer.from([
623
+ 127,
624
+ 69,
625
+ 76,
626
+ 70
627
+ ]))) return parseElf(bytes, fileSize);
628
+ if (bytes.length >= 2 && bytes[0] === 77 && bytes[1] === 90) return parseMz(bytes, fileSize, mzWindowsHeaderSignature);
629
+ if (bytes.length < 8) return err("truncated or unsupported binary header");
630
+ const magic = bytes.readUInt32BE(0);
631
+ if ([
632
+ 4277009102,
633
+ 4277009103,
634
+ 3472551422,
635
+ 3489328638
636
+ ].includes(magic)) return parseThinMachO(bytes, magic, fileSize);
637
+ const fatHeader = readFatContainerHeader(bytes, fileSize);
638
+ if (fatHeader.state !== "not-fat") return parseFatMachO(bytes, hostArchitecture, fatHeader);
639
+ return err("unsupported binary format");
640
+ };
641
+ parseThinMachO = (bytes, magic, fileSize) => {
642
+ const is64 = magic === 4277009103 || magic === 3489328638;
643
+ const headerSize = is64 ? 32 : 28;
644
+ if (bytes.length < headerSize) return err(`truncated Mach-O header: a ${is64 ? 64 : 32}-bit header needs ${headerSize} bytes; the file has ${fileSize}`);
645
+ const little = magic === 3472551422 || magic === 3489328638;
646
+ const read = (offset) => little ? bytes.readUInt32LE(offset) : bytes.readUInt32BE(offset);
647
+ const architecture = machArchitecture(read(4));
648
+ if (architecture === undefined) return err("unsupported Mach-O architecture");
649
+ const commandBytes = read(20);
650
+ if (headerSize + commandBytes > fileSize) return err(`truncated Mach-O load commands: the header declares ${commandBytes} bytes after its ${headerSize}-byte header; the file has ${fileSize}`);
651
+ return ok({
652
+ format: "mach-o",
653
+ architecture,
654
+ availableArchitectures: [architecture]
655
+ });
656
+ };
657
+ parseFatMachO = (bytes, host, header) => {
658
+ if (header.state === "needs-data") return err("truncated or invalid FAT architecture table");
659
+ if (header.state === "malformed") return err(header.reason);
660
+ const identityError = fatIdentityError(bytes, header);
661
+ if (identityError !== null) return err(identityError);
662
+ const architectures = [];
663
+ const slices = new Map();
664
+ for (const declaration of header.slices) {
665
+ const architecture = machArchitecture(declaration.cpuType);
666
+ if (architecture === undefined || architectures.includes(architecture)) continue;
667
+ architectures.push(architecture);
668
+ slices.set(architecture, {
669
+ offset: declaration.offset,
670
+ size: declaration.size
671
+ });
672
+ }
673
+ const preferred = fatHostArchitecture(host);
674
+ const slice = preferred === undefined ? undefined : slices.get(preferred);
675
+ if (preferred === undefined || slice === undefined) return err(`FAT binary has no host-compatible ${host} architecture`);
676
+ const minimumHeaderSize = preferred === "arm64" || preferred === "x86_64" ? 32 : 28;
677
+ if (slice.size < minimumHeaderSize) return err(`FAT slice for ${preferred} is shorter than its Mach-O header`);
678
+ return ok({
679
+ format: "mach-o-universal",
680
+ architecture: preferred,
681
+ availableArchitectures: architectures,
682
+ universalSlice: {
683
+ offset: slice.offset,
684
+ size: slice.size
685
+ }
686
+ });
687
+ };
688
+ fatHostArchitecture = (host) => {
689
+ switch (host) {
690
+ case "arm64": return "arm64";
691
+ case "x64": return "x86_64";
692
+ case "ia32": return "x86";
693
+ case "arm": return "arm";
694
+ default: return undefined;
695
+ }
696
+ };
697
+ fatIdentityError = (bytes, header) => {
698
+ const identity = classifyFatContainerIdentity(header, (offset) => {
699
+ if (offset >= bytes.length) return undefined;
700
+ if (offset + 4 > bytes.length) return null;
701
+ return bytes.readUInt32BE(offset);
702
+ });
703
+ if (identity.state === "needs-slice-header") return "FAT slice identity is outside the bounded prefix";
704
+ if (identity.state === "not-mach-o") return "FAT table does not identify a Mach-O image";
705
+ if (identity.state === "malformed") return identity.reason;
706
+ return null;
707
+ };
708
+ parseElf = (bytes, fileSize) => {
709
+ const fixedHeader = readElfFixedHeader(bytes, fileSize);
710
+ if (!fixedHeader.ok) return fixedHeader;
711
+ const { elfClass, byteOrder } = fixedHeader.value;
712
+ const little = byteOrder === "little";
713
+ const machine = little ? bytes.readUInt16LE(18) : bytes.readUInt16BE(18);
714
+ const architecture = elfArchitecture(machine);
715
+ if (architecture === undefined) return err("unsupported ELF architecture");
716
+ if (architecture === "mips" || architecture === "riscv" || architecture === "powerpc") {
717
+ const flagsOffset = elfClass === 32 ? 36 : 48;
718
+ const metadata = {
719
+ elfClass,
720
+ byteOrder: little ? "little" : "big",
721
+ type: little ? bytes.readUInt16LE(16) : bytes.readUInt16BE(16),
722
+ flags: little ? bytes.readUInt32LE(flagsOffset) : bytes.readUInt32BE(flagsOffset)
723
+ };
724
+ if (architecture === "powerpc") return ok({
725
+ format: "elf",
726
+ architecture,
727
+ availableArchitectures: [architecture],
728
+ powerpc: metadata
729
+ });
730
+ return architecture === "mips" ? ok({
731
+ format: "elf",
732
+ architecture,
733
+ availableArchitectures: [architecture],
734
+ mips: metadata
735
+ }) : ok({
736
+ format: "elf",
737
+ architecture,
738
+ availableArchitectures: [architecture],
739
+ riscv: metadata
740
+ });
741
+ }
742
+ return ok({
743
+ format: "elf",
744
+ architecture,
745
+ availableArchitectures: [architecture]
746
+ });
747
+ };
748
+ parseMz = (bytes, fileSize, signatureAtOffset) => {
749
+ const windowsHeader = observeMzWindowsHeader(bytes, fileSize, signatureAtOffset);
750
+ if (windowsHeader.state === "header-needed" || windowsHeader.state === "signature-needed") return err("Windows new-header pointer or signature is outside the bounded prefix");
751
+ if (windowsHeader.state === "declared") {
752
+ const { offset } = windowsHeader;
753
+ if (offset < 64 || offset > bytes.length - 24) return err("invalid or truncated Windows executable header in MZ image");
754
+ if ([
755
+ "NE",
756
+ "LE",
757
+ "LX"
758
+ ].includes(windowsHeader.signature)) return err(`unsupported ${windowsHeader.signature} executable in MZ image`);
759
+ if (windowsHeader.signature !== "PE") return err("invalid or truncated Windows executable header in MZ image");
760
+ const codeView = parsePeCodeViewFromBuffer(bytes, offset);
761
+ return parsePeRecord(bytes.subarray(offset), codeView);
762
+ }
763
+ const parsed = parseDosMzHeader(bytes, fileSize, signatureAtOffset);
764
+ return parsed.ok ? ok({
765
+ format: "dos-mz",
766
+ architecture: "x86",
767
+ availableArchitectures: ["x86"]
768
+ }) : parsed;
769
+ };
770
+ parsePeRecord = (record, codeView) => {
771
+ if (record.length < 24 || record.toString("binary", 0, 4) !== "PE\0\0") return err("invalid or truncated PE header");
772
+ const machineType = record.readUInt16LE(4);
773
+ const machine = decodePeMachine(machineType);
774
+ if (machine === undefined) return err(`unsupported PE architecture (COFF machine 0x${machineType.toString(16).padStart(4, "0")})`);
775
+ const { architecture } = machine;
776
+ const optionalHeaderSize = record.readUInt16LE(20);
777
+ if (optionalHeaderSize > 4096 || record.length < 24 + optionalHeaderSize) return err("invalid or truncated PE optional header");
778
+ const optionalHeader = record.subarray(24, 24 + optionalHeaderSize);
779
+ const managed = peManagedStatus(optionalHeader, architecture);
780
+ if (!managed.ok) return managed;
781
+ if (machine.nativeOsOverride && !managed.value) return err("unsupported PE architecture");
782
+ const characteristics = record.readUInt16LE(22);
783
+ return ok({
784
+ format: "pe",
785
+ architecture,
786
+ availableArchitectures: [architecture],
787
+ executableRole: (characteristics & 2) === 0 ? "non-executable" : (characteristics & 8192) === 0 ? "application" : "shared-library",
788
+ managed: managed.value,
789
+ ...codeView !== undefined ? { codeView } : {}
790
+ });
791
+ };
792
+ parseCodeViewData = (buffer, sizeOfData) => {
793
+ if (sizeOfData < 16 || buffer.length < 16) return undefined;
794
+ const magic = buffer.subarray(0, 4).toString("binary");
795
+ const pathOffset = magic === "RSDS" ? 24 : magic === "NB10" ? 16 : undefined;
796
+ if (pathOffset === undefined || sizeOfData <= pathOffset || buffer.length <= pathOffset) return undefined;
797
+ const end = buffer.indexOf(0, pathOffset);
798
+ if (end <= pathOffset || end >= sizeOfData) return undefined;
799
+ const pdbPath = buffer.toString("utf8", pathOffset, end);
800
+ const pdbFileName = pdbPath.split(/[/\\]/u).pop() ?? pdbPath;
801
+ if (magic === "RSDS" && sizeOfData >= 24 && buffer.length >= 24) {
802
+ const part1 = buffer.readUInt32LE(4).toString(16).padStart(8, "0");
803
+ const part2 = buffer.readUInt16LE(8).toString(16).padStart(4, "0");
804
+ const part3 = buffer.readUInt16LE(10).toString(16).padStart(4, "0");
805
+ const part4 = buffer.subarray(12, 14).toString("hex");
806
+ const part5 = buffer.subarray(14, 20).toString("hex");
807
+ const guid = `${part1}-${part2}-${part3}-${part4}-${part5}`;
808
+ const age = buffer.readUInt32LE(20);
809
+ return {
810
+ pdbPath,
811
+ pdbFileName,
812
+ guid,
813
+ age
814
+ };
815
+ }
816
+ if (magic === "NB10") {
817
+ const age = buffer.readUInt32LE(12);
818
+ return {
819
+ pdbPath,
820
+ pdbFileName,
821
+ guid: null,
822
+ age
823
+ };
824
+ }
825
+ return undefined;
826
+ };
827
+ peDebugDirectoryEntry = (optionalHeader) => {
828
+ if (optionalHeader.length < 2) return undefined;
829
+ const magic = optionalHeader.readUInt16LE(0);
830
+ if (magic !== 267 && magic !== 523) return undefined;
831
+ const directoryOffset = magic === 523 ? 112 : 96;
832
+ const directoryCountOffset = directoryOffset - 4;
833
+ if (optionalHeader.length < directoryCountOffset + 4) return undefined;
834
+ const directoryCount = optionalHeader.readUInt32LE(directoryCountOffset);
835
+ if (directoryCount <= 6) return undefined;
836
+ const debugEntryOffset = directoryOffset + 6 * 8;
837
+ if (optionalHeader.length < debugEntryOffset + 8) return undefined;
838
+ const debugRva = optionalHeader.readUInt32LE(debugEntryOffset);
839
+ const debugSize = optionalHeader.readUInt32LE(debugEntryOffset + 4);
840
+ if (debugRva === 0 || debugSize < 28) return undefined;
841
+ return {
842
+ debugRva,
843
+ debugSize,
844
+ sizeOfHeaders: optionalHeader.readUInt32LE(60)
845
+ };
846
+ };
847
+ peRvaToFileOffset = (rva, sectionTable, numberOfSections, sizeOfHeaders, size = 1) => {
848
+ if (rva < sizeOfHeaders && size <= sizeOfHeaders - rva) return rva;
849
+ for (let i = 0; i < numberOfSections; i++) {
850
+ const offset = i * 40;
851
+ if (sectionTable.length < offset + 40) break;
852
+ const virtualAddress = sectionTable.readUInt32LE(offset + 12);
853
+ const sizeOfRawData = sectionTable.readUInt32LE(offset + 16);
854
+ const pointerToRawData = sectionTable.readUInt32LE(offset + 20);
855
+ if (pointerToRawData > 0 && rva >= virtualAddress && rva - virtualAddress < sizeOfRawData && size <= sizeOfRawData - (rva - virtualAddress)) {
856
+ return pointerToRawData + (rva - virtualAddress);
857
+ }
858
+ }
859
+ return undefined;
860
+ };
861
+ parsePeCodeViewFromBuffer = (fileBytes, peOffset) => {
862
+ if (fileBytes.length < peOffset + 24) return undefined;
863
+ const numberOfSections = fileBytes.readUInt16LE(peOffset + 6);
864
+ const optionalHeaderSize = fileBytes.readUInt16LE(peOffset + 20);
865
+ if (optionalHeaderSize > 4096 || fileBytes.length < peOffset + 24 + optionalHeaderSize) return undefined;
866
+ const optionalHeader = fileBytes.subarray(peOffset + 24, peOffset + 24 + optionalHeaderSize);
867
+ const debugDir = peDebugDirectoryEntry(optionalHeader);
868
+ if (debugDir === undefined) return undefined;
869
+ const sectionTableOffset = peOffset + 24 + optionalHeaderSize;
870
+ const sectionTableSize = numberOfSections * 40;
871
+ if (fileBytes.length < sectionTableOffset + sectionTableSize) return undefined;
872
+ const sectionTable = fileBytes.subarray(sectionTableOffset, sectionTableOffset + sectionTableSize);
873
+ const debugFileOffset = peRvaToFileOffset(debugDir.debugRva, sectionTable, numberOfSections, debugDir.sizeOfHeaders, Math.min(debugDir.debugSize, 4096));
874
+ if (debugFileOffset === undefined || fileBytes.length < debugFileOffset + 28) return undefined;
875
+ const maxDebugBytes = Math.min(debugDir.debugSize, fileBytes.length - debugFileOffset);
876
+ const numEntries = Math.floor(maxDebugBytes / 28);
877
+ for (let j = 0; j < numEntries; j++) {
878
+ const entryOffset = debugFileOffset + j * 28;
879
+ const type = fileBytes.readUInt32LE(entryOffset + 12);
880
+ if (type !== 2) continue;
881
+ const sizeOfData = fileBytes.readUInt32LE(entryOffset + 16);
882
+ let pointerToRawData = fileBytes.readUInt32LE(entryOffset + 24);
883
+ if (pointerToRawData === 0) {
884
+ const addressOfRawData = fileBytes.readUInt32LE(entryOffset + 20);
885
+ const mapped = peRvaToFileOffset(addressOfRawData, sectionTable, numberOfSections, debugDir.sizeOfHeaders, Math.min(sizeOfData, 4096));
886
+ if (mapped === undefined) continue;
887
+ pointerToRawData = mapped;
888
+ }
889
+ if (sizeOfData < 16 || fileBytes.length < pointerToRawData + Math.min(sizeOfData, 24)) continue;
890
+ const codeViewData = fileBytes.subarray(pointerToRawData, Math.min(fileBytes.length, pointerToRawData + sizeOfData));
891
+ const parsed = parseCodeViewData(codeViewData, sizeOfData);
892
+ if (parsed !== undefined) return parsed;
893
+ }
894
+ return undefined;
895
+ };
896
+ peManagedStatus = (optionalHeader, architecture) => {
897
+ if (optionalHeader.length < 2) return err("truncated PE optional header");
898
+ const magic = optionalHeader.readUInt16LE(0);
899
+ const expectedMagic = architecture === "x86_64" || architecture === "arm64" ? 523 : 267;
900
+ if (magic !== expectedMagic) return err("PE optional-header magic does not match its architecture");
901
+ const directoryOffset = magic === 523 ? 112 : 96;
902
+ const directoryCountOffset = directoryOffset - 4;
903
+ if (optionalHeader.length < directoryCountOffset + 4) return err("truncated PE optional header");
904
+ const directoryCount = optionalHeader.readUInt32LE(directoryCountOffset);
905
+ const requiredBytes = directoryOffset + directoryCount * 8;
906
+ if (!Number.isSafeInteger(requiredBytes) || requiredBytes > optionalHeader.length) return err("truncated PE data-directory table");
907
+ if (directoryCount <= 14) return ok(false);
908
+ const cliDirectory = directoryOffset + 14 * 8;
909
+ return ok(optionalHeader.readUInt32LE(cliDirectory) !== 0 || optionalHeader.readUInt32LE(cliDirectory + 4) !== 0);
910
+ };
911
+ machArchitecture = (cpu) => {
912
+ switch (cpu) {
913
+ case 7: return "x86";
914
+ case 16777223: return "x86_64";
915
+ case 12: return "arm";
916
+ case 16777228: return "arm64";
917
+ }
918
+ return undefined;
919
+ };
920
+ elfArchitecture = (machine) => {
921
+ switch (machine) {
922
+ case 3: return "x86";
923
+ case 62: return "x86_64";
924
+ case 8: return "mips";
925
+ case 20: return "powerpc";
926
+ case 40: return "arm";
927
+ case 183: return "arm64";
928
+ case 243: return "riscv";
929
+ }
930
+ return undefined;
931
+ };
932
+ })))();
933
+ }
934
+
935
+ //#endregion
936
+ //#region dist/application/BinaryTargetResolver.js
937
+ var XML_PLIST_PROBE_CHUNK_BYTES, parseBinaryTarget, classifyBinaryTargetFilesystemFailure, filesystemErrorCode, targetFailureReason, throwIfTargetResolutionCancelled, detectArtifactFormat, namedArtifactFormat, isArchiveFormat, sha256Handle, resolveAppBundle, readExecutableMetadata, readPeMetadata, readPeCodeView;
938
+ function init_BinaryTargetResolver() {
939
+ return (init_BinaryTargetResolver = __esmMin((() => {
940
+ init_configurationErrors();
941
+ init_RegularFile();
942
+ init_analysisErrorCore();
943
+ init_result();
944
+ init_MipsElfMetadata();
945
+ init_AppBundleExecutable();
946
+ init_dosCom();
947
+ init_rawBinary();
948
+ init_dosMz();
949
+ init_appleArchiveFormat();
950
+ init_zipPackageFormat();
951
+ init_binaryTarget();
952
+ XML_PLIST_PROBE_CHUNK_BYTES = 64 * 1024;
953
+ parseBinaryTarget = async (input, options = {}) => {
954
+ const cwd = options.cwd ?? process.cwd();
955
+ const hostArchitecture = options.hostArchitecture ?? process.arch;
956
+ const { targetKind, formatHint, signal, architecture, entryPoint } = options;
957
+ const candidate = isAbsolute(input) ? input : resolve(cwd, input);
958
+ try {
959
+ throwIfTargetResolutionCancelled(signal);
960
+ await access(candidate, constants.R_OK);
961
+ throwIfTargetResolutionCancelled(signal);
962
+ const canonical = await realpath(candidate);
963
+ const sourcePath = process.platform === "win32" ? candidate : canonical;
964
+ throwIfTargetResolutionCancelled(signal);
965
+ const resolved = await resolveAppBundle(canonical);
966
+ throwIfTargetResolutionCancelled(signal);
967
+ if (!resolved.ok) return err(resolved.error);
968
+ const { executable: path, infoPlist } = resolved.value;
969
+ const bundle = infoPlist === undefined ? {} : { bundleInfoPlist: infoPlist };
970
+ const handle = await openRegularFile(path, {
971
+ symlinks: "reject",
972
+ signal
973
+ });
974
+ try {
975
+ throwIfTargetResolutionCancelled(signal);
976
+ const metadata = await handle.stat();
977
+ throwIfTargetResolutionCancelled(signal);
978
+ if (formatHint === "raw-binary") {
979
+ if (targetKind !== undefined && targetKind !== "executable") return err(new BinaryTargetError(path, "raw-binary format requires an executable target kind", { constraint: "load_selection_rejected" }));
980
+ const admitted = admitRawBinary({
981
+ architecture,
982
+ entryPoint,
983
+ fileBytes: metadata.size
984
+ });
985
+ if (!admitted.ok) return err(new BinaryTargetError(path, admitted.error.reason, { constraint: admitted.error.constraint }));
986
+ return ok({
987
+ path,
988
+ sourcePath,
989
+ sha256: await sha256Handle(handle, path, metadata, signal),
990
+ kind: "executable",
991
+ format: "raw-binary",
992
+ architecture: admitted.value.architecture,
993
+ availableArchitectures: [admitted.value.architecture],
994
+ entryPoint: admitted.value.entryPoint,
995
+ entryPointSource: admitted.value.entryPointSource
996
+ });
997
+ }
998
+ const pairing = rawBinarySelectionError({
999
+ ...formatHint === undefined ? {} : { format: formatHint },
1000
+ architecture,
1001
+ entryPoint
1002
+ });
1003
+ if (pairing !== undefined) return err(new BinaryTargetError(path, pairing, { constraint: "load_selection_rejected" }));
1004
+ if (formatHint === "dos-com") {
1005
+ if (targetKind !== undefined && targetKind !== "executable") return err(new BinaryTargetError(path, "DOS COM format requires an executable target kind", { constraint: "load_selection_rejected" }));
1006
+ const length = validateDosComLength(metadata.size);
1007
+ if (!length.ok) return err(new BinaryTargetError(path, length.error, { constraint: "file_format_rejected" }));
1008
+ return ok({
1009
+ path,
1010
+ sourcePath,
1011
+ sha256: await sha256Handle(handle, path, metadata, signal),
1012
+ kind: "executable",
1013
+ format: "dos-com",
1014
+ architecture: "x86",
1015
+ availableArchitectures: ["x86"]
1016
+ });
1017
+ }
1018
+ const artifactFormat = targetKind === "database" ? undefined : await detectArtifactFormat(path, handle, signal);
1019
+ if (targetKind === "database" || targetKind === undefined && path.toLowerCase().endsWith(".hop")) return ok({
1020
+ path,
1021
+ sourcePath,
1022
+ sha256: await sha256Handle(handle, path, metadata, signal),
1023
+ kind: "database",
1024
+ format: "analysis-database"
1025
+ });
1026
+ if (artifactFormat !== undefined) {
1027
+ const identity = {
1028
+ path,
1029
+ sourcePath,
1030
+ sha256: await sha256Handle(handle, path, metadata, signal)
1031
+ };
1032
+ return isArchiveFormat(artifactFormat) ? ok({
1033
+ ...identity,
1034
+ kind: "archive",
1035
+ format: artifactFormat
1036
+ }) : ok({
1037
+ ...identity,
1038
+ kind: "artifact",
1039
+ format: artifactFormat
1040
+ });
1041
+ }
1042
+ const detected = await readExecutableMetadata(handle, hostArchitecture, signal);
1043
+ if (!detected.ok) return err(new BinaryTargetError(path, detected.error, { constraint: "file_format_rejected" }));
1044
+ return ok({
1045
+ path,
1046
+ sourcePath,
1047
+ ...bundle,
1048
+ sha256: await sha256Handle(handle, path, metadata, signal),
1049
+ kind: "executable",
1050
+ ...detected.value
1051
+ });
1052
+ } finally {
1053
+ await handle.close();
1054
+ }
1055
+ } catch (cause) {
1056
+ if (cause instanceof AnalysisCancelledError) return err(cause);
1057
+ if (signal?.aborted === true && cause === signal.reason) return err(new AnalysisCancelledError("resolve_binary_target", { cause }));
1058
+ if (cause instanceof BinaryTargetError) return err(cause);
1059
+ if (!(cause instanceof Error)) throw cause;
1060
+ const failure = classifyBinaryTargetFilesystemFailure(candidate, cause);
1061
+ if (failure === undefined) throw cause;
1062
+ return err(failure);
1063
+ }
1064
+ };
1065
+ classifyBinaryTargetFilesystemFailure = (path, cause) => {
1066
+ if (!(cause instanceof Error)) return undefined;
1067
+ const code = filesystemErrorCode(cause);
1068
+ return code === undefined ? undefined : new BinaryTargetError(path, targetFailureReason(code, cause.message), { cause });
1069
+ };
1070
+ filesystemErrorCode = (cause) => {
1071
+ const code = Reflect.get(cause, "code");
1072
+ return typeof code === "string" ? code : undefined;
1073
+ };
1074
+ targetFailureReason = (code, detail) => {
1075
+ switch (code) {
1076
+ case "ENOENT":
1077
+ case "ENOTDIR": return `target does not exist or a path component is not a directory: ${detail}`;
1078
+ case "EACCES":
1079
+ case "EPERM": return `permission denied while reading target: ${detail}`;
1080
+ case "EISDIR": return `target is a directory, not a readable file: ${detail}`;
1081
+ case "ENOTFILE": return "target is not a regular file";
1082
+ case "ELOOP": return `target changed while being opened: ${detail}`;
1083
+ default: return `target could not be read (${code}): ${detail}`;
1084
+ }
1085
+ };
1086
+ throwIfTargetResolutionCancelled = (signal) => {
1087
+ if (signal?.aborted === true) throw new AnalysisCancelledError("resolve_binary_target");
1088
+ };
1089
+ detectArtifactFormat = async (path, handle, signal) => {
1090
+ throwIfTargetResolutionCancelled(signal);
1091
+ const lower = path.toLowerCase();
1092
+ const magic = Buffer.alloc(4096);
1093
+ const observed = await handle.read(magic, 0, magic.length, 0);
1094
+ throwIfTargetResolutionCancelled(signal);
1095
+ if (observed.bytesRead >= 8 && magic.subarray(0, 8).equals(Buffer.from([
1096
+ 0,
1097
+ 97,
1098
+ 115,
1099
+ 109,
1100
+ 1,
1101
+ 0,
1102
+ 0,
1103
+ 0
1104
+ ]))) throw new BinaryTargetError(path, "WebAssembly v1 artifacts are not supported by the native opening route", { constraint: "wasm_requires_static_inspection" });
1105
+ if (hasZipSignature(magic.subarray(0, observed.bytesRead))) {
1106
+ if (lower.endsWith(".app")) return "app-pack";
1107
+ return zipPackageFormatForPath(lower) ?? "zip";
1108
+ }
1109
+ if (hasBinaryPlistSignature(magic.subarray(0, observed.bytesRead))) return "plist";
1110
+ const named = namedArtifactFormat(lower);
1111
+ if (named !== undefined) return named;
1112
+ if (lower.endsWith(".pkg") && observed.bytesRead >= 4 && magic.subarray(0, 4).equals(Buffer.from("xar!"))) return "pkg";
1113
+ if (lower.endsWith(".dmg")) {
1114
+ throwIfTargetResolutionCancelled(signal);
1115
+ const size = (await handle.stat()).size;
1116
+ throwIfTargetResolutionCancelled(signal);
1117
+ if (size >= 512) {
1118
+ const trailer = Buffer.alloc(4);
1119
+ const read = await handle.read(trailer, 0, trailer.length, size - 512);
1120
+ throwIfTargetResolutionCancelled(signal);
1121
+ if (read.bytesRead === 4 && trailer.equals(Buffer.from("koly"))) return "dmg";
1122
+ }
1123
+ }
1124
+ const xmlProbe = createXmlPlistSignatureProbe();
1125
+ let xmlState = xmlProbe.write(magic.subarray(0, observed.bytesRead));
1126
+ if (xmlState === "matched") return "plist";
1127
+ const chunk = Buffer.alloc(XML_PLIST_PROBE_CHUNK_BYTES);
1128
+ let bytesRead = observed.bytesRead;
1129
+ while (xmlState === "pending" && bytesRead < 1048576) {
1130
+ throwIfTargetResolutionCancelled(signal);
1131
+ const read = await handle.read(chunk, 0, Math.min(chunk.length, MAX_XML_PLIST_PROBE_BYTES - bytesRead), bytesRead);
1132
+ throwIfTargetResolutionCancelled(signal);
1133
+ if (read.bytesRead === 0) break;
1134
+ bytesRead += read.bytesRead;
1135
+ xmlState = xmlProbe.write(chunk.subarray(0, read.bytesRead));
1136
+ if (xmlState === "matched") return "plist";
1137
+ }
1138
+ if (bytesRead === 1048576) {
1139
+ const { size } = await handle.stat();
1140
+ throwIfTargetResolutionCancelled(signal);
1141
+ if (size > bytesRead) throw new BinaryTargetError(path, "XML plist prolog was not found within the 1 MiB format probe limit", { constraint: "file_format_rejected" });
1142
+ }
1143
+ return undefined;
1144
+ };
1145
+ namedArtifactFormat = (lowerPath) => {
1146
+ if (lowerPath.endsWith(".asar")) return "asar";
1147
+ if (lowerPath.endsWith(".plist")) return "plist";
1148
+ if (lowerPath.endsWith(".map")) return "source-map";
1149
+ return /\.(?:m?js|cjs)$/u.test(lowerPath) ? "javascript" : undefined;
1150
+ };
1151
+ isArchiveFormat = (format) => isZipPackageFormat(format) || [
1152
+ "asar",
1153
+ "dmg",
1154
+ "pkg"
1155
+ ].includes(format);
1156
+ sha256Handle = async (handle, path, initial, signal) => {
1157
+ const hash = createHash("sha256");
1158
+ const chunk = Buffer.allocUnsafe(64 * 1024);
1159
+ let position = 0;
1160
+ while (true) {
1161
+ throwIfTargetResolutionCancelled(signal);
1162
+ const observed = await handle.read(chunk, 0, Math.min(chunk.length, initial.size - position + 1), position);
1163
+ throwIfTargetResolutionCancelled(signal);
1164
+ if (observed.bytesRead === 0) break;
1165
+ hash.update(chunk.subarray(0, observed.bytesRead));
1166
+ position += observed.bytesRead;
1167
+ if (position > initial.size) throw new BinaryTargetError(path, "target grew while being read");
1168
+ }
1169
+ throwIfTargetResolutionCancelled(signal);
1170
+ const [opened, currentPath] = await Promise.all([handle.stat(), lstat(path)]);
1171
+ if (!sameRegularFileState(initial, opened) || !sameRegularFileState(initial, currentPath) || position !== initial.size) throw new BinaryTargetError(path, "target changed while being read");
1172
+ return hash.digest("hex");
1173
+ };
1174
+ resolveAppBundle = async (path) => {
1175
+ const metadata = await stat(path);
1176
+ if (!metadata.isDirectory()) return ok({ executable: path });
1177
+ if (extname(path).toLowerCase() !== ".app") return err(new BinaryTargetError(path, "this opening route requires a file or app bundle", { constraint: "directory_requires_file" }));
1178
+ return resolveAppBundleExecutable(path);
1179
+ };
1180
+ readExecutableMetadata = async (handle, hostArchitecture, signal) => {
1181
+ throwIfTargetResolutionCancelled(signal);
1182
+ const prefix = Buffer.alloc(4096);
1183
+ const prefixRead = await handle.read(prefix, 0, prefix.length, 0);
1184
+ throwIfTargetResolutionCancelled(signal);
1185
+ const bytes = prefix.subarray(0, prefixRead.bytesRead);
1186
+ const fileSize = (await handle.stat()).size;
1187
+ throwIfTargetResolutionCancelled(signal);
1188
+ if (bytes.length >= 2 && bytes[0] === 77 && bytes[1] === 90) {
1189
+ let windowsHeader = observeMzWindowsHeader(bytes, fileSize);
1190
+ let signatureBytes;
1191
+ if (windowsHeader.state === "signature-needed") {
1192
+ const { offset } = windowsHeader;
1193
+ const signature = Buffer.alloc(Math.min(4, fileSize - offset));
1194
+ const observedSignature = await handle.read(signature, 0, signature.length, offset);
1195
+ throwIfTargetResolutionCancelled(signal);
1196
+ signatureBytes = signature.subarray(0, observedSignature.bytesRead);
1197
+ windowsHeader = observeMzWindowsHeader(bytes, fileSize, signatureBytes);
1198
+ }
1199
+ if (windowsHeader.state === "declared") {
1200
+ if (windowsHeader.offset < 64) return err("invalid Windows new-header offset in MZ image");
1201
+ return readPeMetadata(handle, windowsHeader.offset, bytes, fileSize, signal);
1202
+ }
1203
+ const tableEnd = bytes.length >= 28 ? bytes.readUInt16LE(24) + bytes.readUInt16LE(6) * 4 : 0;
1204
+ const headerBytes = bytes.length >= 28 ? bytes.readUInt16LE(8) * 16 : 0;
1205
+ if (tableEnd > bytes.length && tableEnd <= headerBytes && tableEnd <= fileSize) {
1206
+ const table = Buffer.alloc(tableEnd);
1207
+ const observed = await handle.read(table, 0, table.length, 0);
1208
+ throwIfTargetResolutionCancelled(signal);
1209
+ return parseExecutableHeader(table.subarray(0, observed.bytesRead), hostArchitecture, fileSize);
1210
+ }
1211
+ return parseExecutableHeader(bytes, hostArchitecture, fileSize, signatureBytes);
1212
+ }
1213
+ if (bytes.length >= 8) {
1214
+ const magic = bytes.readUInt32BE(0);
1215
+ if ([3405691583, 3216703178].includes(magic)) {
1216
+ const little = magic === 3216703178;
1217
+ const count = little ? bytes.readUInt32LE(4) : bytes.readUInt32BE(4);
1218
+ const required = 8 + count * 32;
1219
+ if (count <= 128 && required > bytes.length) {
1220
+ const header = Buffer.alloc(required);
1221
+ const headerRead = await handle.read(header, 0, header.length, 0);
1222
+ throwIfTargetResolutionCancelled(signal);
1223
+ return parseExecutableHeader(header.subarray(0, headerRead.bytesRead), hostArchitecture, fileSize);
1224
+ }
1225
+ }
1226
+ }
1227
+ const parsed = parseExecutableHeader(bytes, hostArchitecture, fileSize);
1228
+ if (!parsed.ok || parsed.value.architecture !== "mips" || parsed.value.mips.elfClass !== 32) return parsed;
1229
+ const declarations = await readMipsElfMetadata(handle, parsed.value.mips, () => throwIfTargetResolutionCancelled(signal));
1230
+ if (!declarations.ok) return declarations;
1231
+ return ok({
1232
+ ...parsed.value,
1233
+ mips: {
1234
+ ...parsed.value.mips,
1235
+ abiFlags: declarations.value.abiFlags,
1236
+ gnuAttributes: declarations.value.gnuAttributes,
1237
+ ...declarations.value.sharedLoad === undefined ? {} : { sharedLoad: declarations.value.sharedLoad },
1238
+ ...declarations.value.limitations.length === 0 ? {} : { limitations: declarations.value.limitations }
1239
+ }
1240
+ });
1241
+ };
1242
+ readPeMetadata = async (handle, offset, mzPrefix, fileSize, signal) => {
1243
+ throwIfTargetResolutionCancelled(signal);
1244
+ const fileHeader = Buffer.alloc(24);
1245
+ const fileHeaderRead = await handle.read(fileHeader, 0, fileHeader.length, offset);
1246
+ throwIfTargetResolutionCancelled(signal);
1247
+ if (fileHeaderRead.bytesRead !== fileHeader.length) return err("invalid or truncated PE header");
1248
+ const windowsHeader = observeMzWindowsHeader(mzPrefix, fileSize, fileHeader.subarray(0, 4));
1249
+ if (windowsHeader.state !== "declared") return err("invalid Windows new-header signature in MZ image");
1250
+ if ([
1251
+ "NE",
1252
+ "LE",
1253
+ "LX"
1254
+ ].includes(windowsHeader.signature)) return err(`unsupported ${windowsHeader.signature} executable in MZ image`);
1255
+ const optionalHeaderSize = fileHeader.readUInt16LE(20);
1256
+ if (optionalHeaderSize > 4096) return err("invalid PE optional header size");
1257
+ const numberOfSections = fileHeader.readUInt16LE(6);
1258
+ const record = Buffer.alloc(24 + optionalHeaderSize);
1259
+ const recordRead = await handle.read(record, 0, record.length, offset);
1260
+ throwIfTargetResolutionCancelled(signal);
1261
+ if (recordRead.bytesRead !== record.length) return err("invalid or truncated PE header");
1262
+ const codeView = await readPeCodeView(handle, offset, numberOfSections, record.subarray(24), optionalHeaderSize, signal);
1263
+ return parsePeRecord(record, codeView);
1264
+ };
1265
+ readPeCodeView = async (handle, peOffset, numberOfSections, optionalHeader, optionalHeaderSize, signal) => {
1266
+ throwIfTargetResolutionCancelled(signal);
1267
+ const debugDir = peDebugDirectoryEntry(optionalHeader);
1268
+ if (debugDir === undefined || numberOfSections > 96) return undefined;
1269
+ const sectionTableOffset = peOffset + 24 + optionalHeaderSize;
1270
+ const sectionTableSize = numberOfSections * 40;
1271
+ const sectionTable = Buffer.alloc(sectionTableSize);
1272
+ const sectionRead = await handle.read(sectionTable, 0, sectionTableSize, sectionTableOffset);
1273
+ throwIfTargetResolutionCancelled(signal);
1274
+ if (sectionRead.bytesRead !== sectionTableSize) return undefined;
1275
+ const debugFileOffset = peRvaToFileOffset(debugDir.debugRva, sectionTable, numberOfSections, debugDir.sizeOfHeaders, Math.min(debugDir.debugSize, 4096));
1276
+ if (debugFileOffset === undefined) return undefined;
1277
+ const maxDebugSize = Math.min(debugDir.debugSize, 4096);
1278
+ const debugDirectoryBuffer = Buffer.alloc(maxDebugSize);
1279
+ const debugDirRead = await handle.read(debugDirectoryBuffer, 0, maxDebugSize, debugFileOffset);
1280
+ throwIfTargetResolutionCancelled(signal);
1281
+ const numEntries = Math.floor(debugDirRead.bytesRead / 28);
1282
+ for (let j = 0; j < numEntries; j++) {
1283
+ const entryOffset = j * 28;
1284
+ const type = debugDirectoryBuffer.readUInt32LE(entryOffset + 12);
1285
+ if (type !== 2) continue;
1286
+ const sizeOfData = debugDirectoryBuffer.readUInt32LE(entryOffset + 16);
1287
+ let pointerToRawData = debugDirectoryBuffer.readUInt32LE(entryOffset + 24);
1288
+ if (pointerToRawData === 0) {
1289
+ const addressOfRawData = debugDirectoryBuffer.readUInt32LE(entryOffset + 20);
1290
+ const mapped = peRvaToFileOffset(addressOfRawData, sectionTable, numberOfSections, debugDir.sizeOfHeaders, Math.min(sizeOfData, 4096));
1291
+ if (mapped === undefined) continue;
1292
+ pointerToRawData = mapped;
1293
+ }
1294
+ if (sizeOfData < 16) continue;
1295
+ const maxCodeViewRead = Math.min(sizeOfData, 4096);
1296
+ const codeViewBuffer = Buffer.alloc(maxCodeViewRead);
1297
+ const codeViewRead = await handle.read(codeViewBuffer, 0, maxCodeViewRead, pointerToRawData);
1298
+ throwIfTargetResolutionCancelled(signal);
1299
+ const parsed = parseCodeViewData(codeViewBuffer.subarray(0, codeViewRead.bytesRead), sizeOfData);
1300
+ if (parsed !== undefined) return parsed;
1301
+ }
1302
+ return undefined;
1303
+ };
1304
+ })))();
1305
+ }
1306
+
1307
+ //#endregion
1308
+ export { classifyBinaryTargetFilesystemFailure, decodePeMachine, init_BinaryTargetResolver, init_binaryTarget, init_elfFixedHeader, init_peMachine, parseBinaryTarget, parseExecutableHeader, readElfFixedHeader };