rea-agents 6.5.0 → 6.7.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.
- package/README.md +12 -3
- package/THIRD_PARTY_NOTICES.md +1 -0
- package/bridge/android/ReaJadxBridge.java +167 -23
- package/bridge/cutter/rea_bridge.py +19 -10
- package/bridge/ghidra/ReaGhidraBridge.java +98 -66
- package/bridge/hopper_bridge.py +9 -1
- package/bridge/native/rea_lldb_tracer.py +48 -4
- package/bridge/pwndbg/core_context.py +15 -2
- package/dist/adb/AdbCommand.js +148 -0
- package/dist/adb/AdbConfiguration.js +26 -4
- package/dist/adb/AdbInputSnapshot.js +126 -0
- package/dist/adb/AdbProvider.js +765 -248
- package/dist/adb/AdbShellOutput.js +92 -21
- package/dist/android/AndroidTargetSnapshot.js +7 -7
- package/dist/android/JadxAnalysis.js +27 -32
- package/dist/android/JadxConfiguration.js +173 -125
- package/dist/android/JadxDoctor.js +11 -3
- package/dist/android/JadxFailure.js +154 -0
- package/dist/android/JadxInterruption.js +13 -0
- package/dist/android/JadxJavaProbe.js +246 -0
- package/dist/android/JadxMcpTransport.js +48 -15
- package/dist/android/JadxProtocol.js +29 -2
- package/dist/android/JadxProvider.js +171 -96
- package/dist/android/JadxRelease.js +5 -1
- package/dist/android/JadxSession.js +35 -14
- package/dist/apktool/ApktoolCommandCleanup.js +134 -0
- package/dist/apktool/ApktoolCommandOutput.js +22 -0
- package/dist/apktool/ApktoolConfiguration.js +162 -44
- package/dist/apktool/ApktoolDecodeOutput.js +29 -23
- package/dist/apktool/ApktoolDecodedInventory.js +52 -0
- package/dist/apktool/ApktoolProvider.js +254 -335
- package/dist/apktool/ApktoolStringTables.js +178 -0
- package/dist/apktool/ApktoolWorkspace.js +162 -0
- package/dist/application/AnalysisDocument.js +19 -4
- package/dist/application/AnalysisProvider.js +15 -1
- package/dist/application/AppBundleExecutable.js +11 -4
- package/dist/application/BinaryTargetResolver.js +9 -2
- package/dist/application/BrowserObservationService.js +54 -20
- package/dist/application/BrowserScenarioCaptureService.js +26 -6
- package/dist/application/CapabilityInventory.js +14 -8
- package/dist/application/ClaudeDesktopConfigLocation.js +5 -5
- package/dist/application/ClientConfigurationCleanup.js +73 -0
- package/dist/application/ClientConfigurationDocument.js +170 -128
- package/dist/application/ClientConfigurationPublication.js +167 -0
- package/dist/application/ClientRegistrationEnvironment.js +31 -1
- package/dist/application/ClientRegistrationIdentity.js +54 -39
- package/dist/application/ClientRegistrationStatus.js +123 -48
- package/dist/application/DirectAnalysis.js +15 -2
- package/dist/application/DirectAnalysisCleanup.js +5 -1
- package/dist/application/DirectAnalysisStatus.js +1 -1
- package/dist/application/Doctor.js +83 -9
- package/dist/application/DoctorDiagnostics.js +25 -4
- package/dist/application/DoctorProviderIds.js +7 -1
- package/dist/application/DshCordisPatch.js +1 -1
- package/dist/application/EnhancedTools.js +9 -21
- package/dist/application/HermesClientHome.js +20 -0
- package/dist/application/HermesConfigurationYaml.js +43 -3
- package/dist/application/HopperDownload.js +11 -3
- package/dist/application/HopperReleaseFeed.js +71 -0
- package/dist/application/InvestigationProviders.js +4 -3
- package/dist/application/JsonFiles.js +1 -1
- package/dist/application/LinuxHopper.js +96 -71
- package/dist/application/LinuxHopperPublisher.js +656 -0
- package/dist/application/MacHopper.js +182 -66
- package/dist/application/MipsElfMetadata.js +1 -1
- package/dist/application/MsixPackageStorage.js +13 -6
- package/dist/application/ProviderOperationExecution.js +13 -20
- package/dist/application/ReconstructionObligationCandidates.js +17 -2
- package/dist/application/ReconstructionObligationLedgerEvaluation.js +4 -0
- package/dist/application/ReconstructionObligationLedgerService.js +5 -3
- package/dist/application/ReconstructionObligationOriginalCases.js +8 -0
- package/dist/application/ReferenceSourceImportEntries.js +160 -18
- package/dist/application/ReferenceSourceImportPolicy.js +5 -3
- package/dist/application/ReferenceSourceVcsAdapter.js +3 -1
- package/dist/application/RegularFileRead.js +107 -88
- package/dist/application/Setup.js +23 -11
- package/dist/application/SetupClientConfiguration.js +155 -89
- package/dist/application/SetupClients.js +22 -13
- package/dist/application/SetupHost.js +90 -34
- package/dist/application/SetupInstallFailure.js +18 -3
- package/dist/application/SetupPlan.js +15 -5
- package/dist/application/SetupRecoveryBackup.js +40 -13
- package/dist/application/SetupRegistrationEnvironment.js +12 -0
- package/dist/application/SetupSkill.js +10 -30
- package/dist/application/SourceLimitations.js +35 -0
- package/dist/application/SupportedClients.js +4 -4
- package/dist/application/Uninstall.js +91 -36
- package/dist/application/UpdateCommandProgress.js +66 -0
- package/dist/application/UpdateMaintenance.js +7 -2
- package/dist/application/UpdateRuntime.js +60 -30
- package/dist/application/WebModuleTraceService.js +35 -22
- package/dist/application/WebNetworkCaptureService.js +8 -5
- package/dist/application/WebRuntimeService.js +41 -8
- package/dist/application/WebScriptExportService.js +6 -4
- package/dist/application/WebSourceLocationService.js +3 -4
- package/dist/application/WorkflowEvidence.js +11 -4
- package/dist/application/analysisView/AnalysisViewService.js +9 -52
- package/dist/application/android/AndroidAnalysisService.js +5 -4
- package/dist/application/android/AndroidSearchEvidenceSummary.js +6 -8
- package/dist/application/artifacts/ArtifactComparisonEvidence.js +32 -0
- package/dist/application/binary/AnalysisProviderEvaluation.js +14 -11
- package/dist/application/binary/AnalysisProviderRegistry.js +340 -50
- package/dist/application/binary/BinarySession.js +73 -34
- package/dist/application/binary/BinarySessionRecords.js +3 -0
- package/dist/application/binary/BinarySessionStatus.js +3 -4
- package/dist/application/binary/CompositeProvider.js +75 -30
- package/dist/application/binary/LazyAnalysisProvider.js +6 -68
- package/dist/application/binary/SessionProviderRouter.js +11 -2
- package/dist/application/binaryDiagnostics/BinaryLayoutService.js +3 -4
- package/dist/application/binaryDiagnostics/PeResourcesService.js +22 -5
- package/dist/application/binaryDiagnostics/RecordedCrashService.js +3 -4
- package/dist/application/captures/PacketCaptureService.js +3 -2
- package/dist/application/closeOwnedWebResources.js +32 -2
- package/dist/application/electron/ElectronFuseService.js +8 -43
- package/dist/application/evm/EvmInterfaceEvidence.js +11 -0
- package/dist/application/evm/EvmInterfaceService.js +4 -15
- package/dist/application/firmware/FirmwareAnalysisService.js +4 -3
- package/dist/application/go/GoBinaryService.js +4 -5
- package/dist/application/investigation/EvidenceLedger.js +3 -4
- package/dist/application/javascript/ElectronBoundaryGraphWindows.js +14 -2
- package/dist/application/javascript/ElectronEvidence.js +1 -2
- package/dist/application/javascript/ElectronObservationService.js +41 -7
- package/dist/application/javascript/JavaScriptApplicationEvidence.js +6 -0
- package/dist/application/javascript/JavaScriptArtifactAnalysis.js +35 -17
- package/dist/application/javascript/JavaScriptArtifactAnalysisTypes.js +30 -1
- package/dist/application/javascript/JavaScriptArtifactGraphContext.js +3 -2
- package/dist/application/javascript/JavaScriptArtifactGraphEvidence.js +3 -3
- package/dist/application/javascript/JavaScriptArtifactGraphFindings.js +41 -11
- package/dist/application/javascript/JavaScriptArtifactGraphStructure.js +18 -8
- package/dist/application/javascript/JavaScriptArtifactPathResolution.js +84 -24
- package/dist/application/javascript/JavaScriptArtifactReconstruction.js +15 -3
- package/dist/application/javascript/JavaScriptModuleRelationships.js +1 -1
- package/dist/application/javascript/JavaScriptRuntimeObservationEvidence.js +1 -2
- package/dist/application/javascript/JavaScriptRuntimeObservationService.js +33 -10
- package/dist/application/javascript/JavaScriptSemanticGraphAsyncProjection.js +4 -5
- package/dist/application/javascript/JavaScriptSemanticGraphBuilder.js +103 -24
- package/dist/application/javascript/JavaScriptSemanticGraphChildProcessProjection.js +13 -4
- package/dist/application/javascript/JavaScriptSemanticGraphConstruction.js +23 -3
- package/dist/application/javascript/JavaScriptSemanticGraphDataProjection.js +18 -5
- package/dist/application/javascript/JavaScriptSemanticGraphFlowProjection.js +4 -6
- package/dist/application/javascript/JavaScriptSemanticGraphObjectProjection.js +2 -3
- package/dist/application/javascript/JavaScriptSemanticGraphResourceProjection.js +2 -3
- package/dist/application/javascript/JavaScriptSemanticGraphValueProjection.js +5 -8
- package/dist/application/native/NativeCallRoutes.js +40 -23
- package/dist/application/native/NativeUiActionTrace.js +8 -0
- package/dist/application/native/NativeValueTrace.js +8 -0
- package/dist/application/reverse/ReverseEngineeringService.js +2 -2
- package/dist/application/rust/RustBinaryService.js +6 -4
- package/dist/application/signals/SignalRecordingService.js +3 -2
- package/dist/application/wasm/WasmArtifactService.js +4 -5
- package/dist/artifacts/AnalysisCleanupLease.js +119 -0
- package/dist/artifacts/ArtifactFileOperation.js +150 -0
- package/dist/artifacts/ArtifactHash.js +2 -1
- package/dist/artifacts/ArtifactProvider.js +16 -5
- package/dist/artifacts/ArtifactReader.js +50 -4
- package/dist/artifacts/ArtifactResourceScope.js +80 -6
- package/dist/artifacts/AsarArtifactReader.js +12 -11
- package/dist/artifacts/AsarEntryStream.js +49 -17
- package/dist/artifacts/DirectoryArtifactReader.js +28 -7
- package/dist/artifacts/MachOSliceArtifactReader.js +70 -13
- package/dist/artifacts/NativeDmgArtifactReader.js +112 -13
- package/dist/artifacts/SafeOutputTree.js +5 -3
- package/dist/artifacts/SafeOutputTreeCreationFailure.js +1 -0
- package/dist/artifacts/SafeOutputTreeReadback.js +10 -16
- package/dist/artifacts/ZipArtifactReader.js +34 -14
- package/dist/artifacts/apple/AppleAssetCatalogAnalysis.js +3 -1
- package/dist/artifacts/apple/DylibFileAccess.js +106 -0
- package/dist/artifacts/apple/DylibResolutionReader.js +64 -155
- package/dist/artifacts/apple/InterfaceBuilderAnalysis.js +52 -9
- package/dist/artifacts/apple/InterfaceBuilderDecodeBudget.js +25 -24
- package/dist/artifacts/apple/KeyedArchiveReader.js +20 -11
- package/dist/artifacts/apple/MachoLoadCommandReader.js +17 -2
- package/dist/artifacts/apple/PlistNumberLiterals.js +104 -116
- package/dist/artifacts/extraction/ArtifactExtraction.js +15 -12
- package/dist/artifacts/inventory/ArtifactGraphConstruction.js +9 -11
- package/dist/artifacts/inventory/ArtifactInventory.js +2 -2
- package/dist/artifacts/inventory/classify.js +4 -2
- package/dist/artifacts/inventory/hashStableRootArtifact.js +14 -7
- package/dist/artifacts/inventory/scanCanonical.js +3 -4
- package/dist/artifacts/javascript/JavaScriptArtifactFiles.js +3 -1
- package/dist/artifacts/readArtifactFileChunks.js +9 -0
- package/dist/artifacts/readStableArtifact.js +12 -34
- package/dist/browser/BrowserScenarioPartialObservation.js +14 -48
- package/dist/browser/CdpBrowserProvider.js +81 -30
- package/dist/browser/CdpCaptureDocuments.js +99 -131
- package/dist/browser/CdpCaptureDomSvg.js +31 -60
- package/dist/browser/CdpCaptureValues.js +12 -0
- package/dist/browser/CdpConnection.js +133 -27
- package/dist/browser/CdpElectronInspection.js +60 -60
- package/dist/browser/CdpElectronProvider.js +56 -4
- package/dist/browser/CdpElectronScriptEvents.js +4 -1
- package/dist/browser/CdpElectronScripts.js +2 -5
- package/dist/browser/CdpElectronWorkers.js +13 -2
- package/dist/browser/CdpPageCapture.js +2 -1
- package/dist/browser/CdpPageCaptureScripts.js +14 -10
- package/dist/browser/CdpPageCaptureWorkers.js +45 -14
- package/dist/browser/CdpSafeMetadata.js +23 -19
- package/dist/browser/CdpSnapshotNodes.js +103 -0
- package/dist/browser/CdpSnapshotStrings.js +0 -6
- package/dist/browser/CdpTargetSession.js +52 -10
- package/dist/browser/CdpTargetSessionOwner.js +198 -0
- package/dist/browser/ElectronCaptureCleanup.js +82 -0
- package/dist/browser/ElectronProcessCleanup.js +91 -0
- package/dist/browser/PlaywrightBrowserScenarioProvider.js +71 -16
- package/dist/browser/PlaywrightElectronActiveActions.js +53 -5
- package/dist/browser/PlaywrightElectronActiveFuses.js +86 -0
- package/dist/browser/PlaywrightElectronActiveProjection.js +5 -0
- package/dist/browser/PlaywrightElectronActiveProvider.js +140 -151
- package/dist/browser/PlaywrightExecutionBoundary.js +4 -2
- package/dist/browser/PlaywrightScenarioBrowser.js +236 -90
- package/dist/browser/PlaywrightScenarioEvents.js +135 -48
- package/dist/browser/PlaywrightScenarioServiceWorkers.js +121 -34
- package/dist/browser/PlaywrightScenarioSession.js +95 -22
- package/dist/browser/PlaywrightScenarioStorage.js +15 -7
- package/dist/browser/StructuredFieldToken.js +53 -0
- package/dist/browser/WebArtifactCleanup.js +53 -0
- package/dist/browser/WebSourceMapFetcher.js +19 -10
- package/dist/browser/assets/WebArtifactReads.js +6 -2
- package/dist/browser/assets/WebSourceLocationArtifacts.js +12 -3
- package/dist/browser/execution/CdpRuntimeSession.js +36 -7
- package/dist/browser/execution/CdpWebRuntimeProvider.js +22 -4
- package/dist/browser/history/CaptureFailures.js +7 -2
- package/dist/browser/history/HarCapture.js +42 -11
- package/dist/browser/history/SazMetadata.js +10 -47
- package/dist/browser/modules/NativeModuleResolver.js +108 -58
- package/dist/browser/modules/WebModuleArtifacts.js +12 -3
- package/dist/browser/network/PlaywrightNetworkContent.js +40 -17
- package/dist/browser/network/PlaywrightScenarioNetwork.js +182 -73
- package/dist/captures/TsharkCaptureProvider.js +13 -6
- package/dist/catalogIdentity.js +19 -14
- package/dist/cli/adbCommands.js +18 -19
- package/dist/cli/androidCommands.js +2 -14
- package/dist/cli/apktoolCommands.js +4 -14
- package/dist/cli/binaryDiagnosticsCommands.js +5 -5
- package/dist/cli/browserAdvancedCommands.js +11 -4
- package/dist/cli/browserCommands.js +21 -12
- package/dist/cli/captureCommands.js +4 -4
- package/dist/cli/cliResultOutput.js +175 -89
- package/dist/cli/coreBinaryCommands.js +4 -3
- package/dist/cli/cutterCommands.js +51 -13
- package/dist/cli/electronCommands.js +34 -13
- package/dist/cli/evmCommands.js +6 -15
- package/dist/cli/finishAnalysisCommand.js +10 -2
- package/dist/cli/firmwareCommands.js +6 -14
- package/dist/cli/flutterCommands.js +2 -18
- package/dist/cli/fridaCommands.js +8 -0
- package/dist/cli/goCommands.js +2 -2
- package/dist/cli/javascriptRecoveryCommands.js +14 -26
- package/dist/cli/jebCommands.js +2 -14
- package/dist/cli/options.js +6 -0
- package/dist/cli/pcapCommands.js +2 -20
- package/dist/cli/rustCommands.js +6 -7
- package/dist/cli/setupCommands.js +4 -3
- package/dist/cli/signalCommands.js +4 -4
- package/dist/cli/sqliteCommands.js +17 -44
- package/dist/cli/wasmCommands.js +7 -18
- package/dist/cli/webModuleCommands.js +19 -34
- package/dist/cli/webNetworkCaptureCommands.js +3 -2
- package/dist/cli/webRuntimeCommands.js +15 -6
- package/dist/cli/webSourceLocationCommands.js +14 -33
- package/dist/cli-runtime/AnalysisCleanupLease-CWfTGYKd.js +103 -0
- package/dist/cli-runtime/{AnalysisProvider-D0Us2OTk.js → AnalysisProvider-BGrYaMVo.js} +14 -3
- package/dist/cli-runtime/{AnalysisSnapshotCache-BXS0wRd2.js → AnalysisSnapshotCache-BjRlXeUS.js} +14 -13
- package/dist/cli-runtime/ArtifactFileOperation-Dg4BcoEM.js +122 -0
- package/dist/cli-runtime/{ArtifactReader-BXkffc1D.js → ArtifactReader-DMwm42bk.js} +29 -6
- package/dist/cli-runtime/ArtifactResourceScope-CokZGcII.js +175 -0
- package/dist/cli-runtime/{AsarHeader-CnzOzYEH.js → AsarHeader-BxwU17DJ.js} +1 -1
- package/dist/cli-runtime/{BinarySessionStatus-DnMxMk-r.js → BinarySessionStatus-DRhjr7Vb.js} +4 -3
- package/dist/cli-runtime/{BinaryTargetResolver-CVIJ_s1A.js → BinaryTargetResolver-tuCTjBlQ.js} +38 -108
- package/dist/cli-runtime/{BoundedFileBytes-BU30odTm.js → BoundedFileBytes-DRtiQNAQ.js} +7 -3
- package/dist/cli-runtime/{CdpTargetSession-DGX5pV9w.js → CdpTargetSession-CQ08KHbh.js} +318 -43
- package/dist/cli-runtime/ClientConfigPath-Dn-V_GUf.js +255 -0
- package/dist/cli-runtime/{ClientConfigurationDocument-ffQ9X0Se.js → ClientConfigurationDocument-C9T8MNGc.js} +206 -142
- package/dist/cli-runtime/{ClientRegistrationStatus-DszCyPEU.js → ClientRegistrationStatus-PnD29RTX.js} +112 -36
- package/dist/cli-runtime/{CurrentEntrypointPath-D5FRNdkq.js → CurrentEntrypointPath-m7QCIVN0.js} +1 -1
- package/dist/cli-runtime/{DirectAnalysis-BgvAtpN3.js → DirectAnalysis-C5NyUryV.js} +76 -23
- package/dist/cli-runtime/DirectoryArtifactReader-CokAJ8vo.js +448 -0
- package/dist/cli-runtime/{Doctor-DIpf_I7N.js → Doctor-DrkWsav4.js} +105 -25
- package/dist/cli-runtime/{ElectronFileScope-dpHm2nrS.js → ElectronFileScope-AP7VoVr7.js} +204 -149
- package/dist/cli-runtime/ElectronFuseFailures-DsjXR7Xp.js +609 -0
- package/dist/cli-runtime/{ExecFileOutput-BEQs-lDD.js → ExecFileOutput-D6KLYTve.js} +11 -9
- package/dist/cli-runtime/{InterfaceBuilderDecodeBudget-D4omRUe4.js → InterfaceBuilderDecodeBudget-CW1IO3dG.js} +40 -21
- package/dist/cli-runtime/{InventoryProjectionEvidence-DIsI4DJ6.js → InventoryProjectionEvidence-DTH5QAqL.js} +3 -3
- package/dist/cli-runtime/{InvestigationProviders-DoQRIHii.js → InvestigationProviders-CFh4a64d.js} +3 -2
- package/dist/cli-runtime/{JavaScriptApplicationEvidenceGraph-D5aI_FSJ.js → JavaScriptApplicationEvidenceGraph-gOmPB2L6.js} +6 -6
- package/dist/cli-runtime/{JavaScriptApplicationWorkflowEvidence-Bz4-V0Ct.js → JavaScriptApplicationWorkflowEvidence-WZgtK_Ok.js} +2 -2
- package/dist/cli-runtime/JebMcpEndpoint-BEalGZh9.js +710 -0
- package/dist/cli-runtime/{JsonFiles-DQa1PRKy.js → JsonFiles-uvd6ZyQi.js} +10 -118
- package/dist/cli-runtime/KunaInstallation-P0j3x851.js +1781 -0
- package/dist/cli-runtime/MacHopperPaths-bGzqjF1Z.js +34 -0
- package/dist/cli-runtime/{MachoLoadCommandReader-C7e074Ze.js → MachoLoadCommandReader-CZm6N5vF.js} +12 -192
- package/dist/cli-runtime/{ManagedSnapshot-rqyBHcdL.js → ManagedSnapshot-CPE9C3OD.js} +406 -110
- package/dist/cli-runtime/OwnedCommandCleanup-BN_V6Erc.js +187 -0
- package/dist/cli-runtime/OwnedRegularFile-D1f5nUCx.js +256 -0
- package/dist/cli-runtime/OwnedStagedOutput-D31dOozz.js +126 -0
- package/dist/cli-runtime/{PrivateRuntimeRoot-DAy0PiBM.js → PrivateRuntimeRoot-Cd23u6jd.js} +39 -6
- package/dist/cli-runtime/ProcessOwnership-CtrNr6ee.js +545 -0
- package/dist/cli-runtime/{ProcessOwnership-DXC5-UWt.js → ProcessOwnershipObservation-C006iCtZ.js} +149 -607
- package/dist/cli-runtime/{ProviderDeadline-8m2pFRDc.js → ProviderDeadline-rSuH4Pm8.js} +27 -1
- package/dist/cli-runtime/ProviderOperationExecution-CmU-XrQr.js +38 -0
- package/dist/cli-runtime/{snapshotEnvironment-D_tWyOub.js → ProviderProcess-D87A7ctp.js} +117 -160
- package/dist/cli-runtime/RegularFileRead-mbgGYtxe.js +125 -0
- package/dist/cli-runtime/{SafeOutputTree-D6U15GXd.js → SafeOutputTree-i904hd_2.js} +21 -20
- package/dist/cli-runtime/{SetupHost-FkYWswsq.js → SetupHost-CMPmPraB.js} +365 -195
- package/dist/cli-runtime/SharedStartupAttempt-BxKyf3Uv.js +1424 -0
- package/dist/cli-runtime/StableFileHash-Ame_h3lY.js +61 -0
- package/dist/cli-runtime/{SupportedClients-DaX6Lt2d.js → SupportedClients-DMafjitv.js} +89 -72
- package/dist/cli-runtime/{Update-CbTC_eg1.js → Update-DAsASWlE.js} +1 -1
- package/dist/cli-runtime/{AbortablePromise-BVBemxbD.js → WindowsBatchCommand-Cx9kaVNf.js} +2 -28
- package/dist/cli-runtime/WindowsNativeLoader-BqyZO0ZD.js +142 -0
- package/dist/cli-runtime/{ZipArtifactReader-B8ZgNe4D.js → ZipArtifactReader-Jed69LEL.js} +20 -16
- package/dist/cli-runtime/{analysisErrorCleanup-Do6YeeoD.js → analysisErrorCleanup-COdAmDsb.js} +4 -3
- package/dist/cli-runtime/{appleArchiveFormat-tVoI2ykA.js → appleArchiveFormat-Bb3G5CCI.js} +13 -7
- package/dist/cli-runtime/{application__DirectAnalysisStatus-DpOejOf0.js → application__DirectAnalysisStatus-F74bu9oy.js} +10 -10
- package/dist/cli-runtime/{application__EnhancedTools-oFE2bOjs.js → application__EnhancedTools-Bg51b0Yp.js} +84 -51
- package/dist/cli-runtime/{application__FunctionAnalysisEvidence-B6osuhvW.js → application__FunctionAnalysisEvidence-DBWIaYCh.js} +3 -3
- package/dist/cli-runtime/{application__ReconstructionCoverageService-DN3wTFQj.js → application__ReconstructionCoverageService-AEPNpZqJ.js} +3 -3
- package/dist/cli-runtime/{application__ReconstructionObligationLedgerService-CKcTppX9.js → application__ReconstructionObligationLedgerService-Cl9cPEZf.js} +22 -9
- package/dist/cli-runtime/{application__Setup-XpMaRNjy.js → application__Setup-DwQzEewK.js} +30 -18
- package/dist/cli-runtime/{application__Uninstall-_23pU2yB.js → application__Uninstall-BOf9oyvQ.js} +78 -37
- package/dist/cli-runtime/{application__UpdateRuntime-DPvY8ohd.js → application__UpdateRuntime-CzWkRJHa.js} +119 -29
- package/dist/cli-runtime/{application__android__AndroidApplicationService-CFgIFPM4.js → application__android__AndroidApplicationService-shW_aKlj.js} +3 -3
- package/dist/cli-runtime/{application__apple__AppleApplicationService-Db6QCsun.js → application__apple__AppleApplicationService-DIv6d3wB.js} +3 -3
- package/dist/cli-runtime/{application__harmony__HarmonyApplicationService-CFjocHoK.js → application__harmony__HarmonyApplicationService-OIUFVQFV.js} +3 -3
- package/dist/cli-runtime/{application__javascript__ElectronActiveObservationService-CmVDUI_Z.js → application__javascript__ElectronActiveObservationService-wvCh72hK.js} +3 -3
- package/dist/cli-runtime/application__javascript__ElectronObservationService-SydXPCwM.js +88 -0
- package/dist/cli-runtime/{application__javascript__JavaScriptApplicationService-CCkp8KBh.js → application__javascript__JavaScriptApplicationService-o0uEsjEc.js} +1120 -316
- package/dist/cli-runtime/{application__javascript__JavaScriptApplicationWorkflowService-lPy0tzr3.js → application__javascript__JavaScriptApplicationWorkflowService-BAheG_71.js} +51 -44
- package/dist/cli-runtime/{application__javascript__JavaScriptRuntimeReconciliationService-DWleA8K9.js → application__javascript__JavaScriptRuntimeReconciliationService-Cnn4GP8q.js} +5 -5
- package/dist/cli-runtime/{application__javascript__JavaScriptSemanticTraceService-DkALH4rL.js → application__javascript__JavaScriptSemanticTraceService-CmvLfV1A.js} +6 -6
- package/dist/cli-runtime/{artifacts__ArtifactProvider-zXI0QjSL.js → artifacts__ArtifactProvider-wx2K0F2I.js} +377 -359
- package/dist/cli-runtime/{binary-BVOr2mgE.js → binary-CWVNJhAC.js} +8561 -3159
- package/dist/cli-runtime/{catalogIdentity-DLoXgfIR.js → catalogIdentity-DAEEsOdX.js} +260 -81
- package/dist/cli-runtime/cli.js +6177 -3556
- package/dist/cli-runtime/{cliOutput-BC1BdAcB.js → cliOutput-CgSuw782.js} +47 -6
- package/dist/cli-runtime/cliOutput.js +2 -2
- package/dist/cli-runtime/cliResultOutput-10sd6xGx.js +1453 -0
- package/dist/cli-runtime/cliResultOutput.js +2 -1
- package/dist/cli-runtime/{composition__browserScenario-DHXC1a8n.js → composition__browserScenario-BtPb1c1y.js} +843 -356
- package/dist/cli-runtime/{composition__electronObservation-GecK2EID.js → composition__electronObservation-Bk8R6DJo.js} +128 -69
- package/dist/cli-runtime/{composition__electronScenario-CEZnVrAL.js → composition__electronScenario-BVF0qStH.js} +398 -135
- package/dist/cli-runtime/{cutterToolContracts-TZH9EHr5.js → cutterToolContracts-BQtG_Nzo.js} +195 -62
- package/dist/cli-runtime/{doctorRuntime-BE5ZX8it.js → doctorRuntime-B__SIpm-.js} +241 -21
- package/dist/cli-runtime/{dotnet__ManagedStaticProvider-C8_yZCDc.js → dotnet__ManagedStaticProvider-DO5Yzcp4.js} +1 -1
- package/dist/cli-runtime/{errorSchemas-CTRmvMl3.js → errorSchemas-Ixz_q7qt.js} +58 -4
- package/dist/cli-runtime/homeDirectory-DC_DeJIg.js +18 -0
- package/dist/cli-runtime/{javascriptApplicationAnalysis-HgMzVMQw.js → javascriptApplicationAnalysis-Dk6yBV8g.js} +688 -668
- package/dist/cli-runtime/{javascriptExportReturnShapeProjection-Dg00g35t.js → javascriptExportReturnShapeProjection-CObOIiQ6.js} +3 -3
- package/dist/cli-runtime/{javascriptExportShapeComparisonSchemas-BYnoIqIk.js → javascriptExportShapeComparisonSchemas-DpwuBenh.js} +5 -3
- package/dist/cli-runtime/{javascriptRuntimeReconciliation-DNjDoL3S.js → javascriptRuntimeReconciliation-C6ZgWMys.js} +61 -59
- package/dist/cli-runtime/{javascriptRuntimeReconciliationSchemas-BWpGWNcI.js → javascriptRuntimeReconciliationSchemas-D6tZKUQs.js} +2 -2
- package/dist/cli-runtime/{javascriptSemanticTraceSchemas-BTCNcvbc.js → javascriptSemanticTraceSchemas-C7m0b6_w.js} +3 -3
- package/dist/cli-runtime/{lipo-DSWP6fv-.js → lipo-DPQ6qurH.js} +9 -11
- package/dist/cli-runtime/{logger-CQQCI4a2.js → logger-BuDJ9xxO.js} +2 -2
- package/dist/cli-runtime/{machoContainer-C8BIkkq3.js → machoContainer-Cy98bkFm.js} +180 -0
- package/dist/cli-runtime/{managedApplicationGraph-B08jb3jq.js → managedApplicationGraph-BazVqpJv.js} +16 -10
- package/dist/cli-runtime/{managedToolContracts-D60QmIYj.js → managedToolContracts-BuFkMBH5.js} +2 -2
- package/dist/cli-runtime/mcpDoctor.js +8 -6
- package/dist/cli-runtime/mcpStartupPolicy-imCbM3qo.js +28 -0
- package/dist/cli-runtime/{native__NativeMacOSProvider-YBTvUeJO.js → native__NativeMacOSProvider-DTcRhuGA.js} +1384 -757
- package/dist/cli-runtime/{officialToolContracts-CCFF0an9.js → officialToolContracts-CzzVLx8I.js} +74 -53
- package/dist/cli-runtime/peMachine-B9ggfSJJ.js +95 -0
- package/dist/cli-runtime/propertyListKeys-D5dSASEy.js +355 -0
- package/dist/cli-runtime/{providerCleanupError-Ceq8f0wK.js → providerCleanupError-BhsJyAhk.js} +3 -5
- package/dist/cli-runtime/readArtifactFileChunks-BbTL_PtB.js +129 -0
- package/dist/cli-runtime/{reconstructionObligationLedgerSchemas-Bao0xMr-.js → reconstructionObligationLedgerSchemas-Bi6sect1.js} +6329 -3651
- package/dist/cli-runtime/{scanCanonical-KP4T9jSl.js → scanCanonical-CcDFUr-w.js} +233 -363
- package/dist/cli-runtime/snapshotEnvironment-Yvx5qwsl.js +196 -0
- package/dist/cli-runtime/{toolContracts-D2FOG_Nb.js → toolContracts-CJzEyZ38.js} +126 -52
- package/dist/cli-runtime/{toolOutputSchemaGroups-DRiYs1je.js → toolOutputSchemaGroups-BqdSzySu.js} +768 -589
- package/dist/cli-runtime/{workflowInputError-n8Oo-bLA.js → workflowInputError-BP8z9Wxl.js} +2 -2
- package/dist/cli.js +10 -0
- package/dist/cliBrowserScenarioCommands.js +2 -3
- package/dist/cliLogging.js +22 -7
- package/dist/cliObservationOptions.js +3 -0
- package/dist/cliOutput.js +68 -3
- package/dist/composition/binary.js +15 -2
- package/dist/composition/directAnalysis.js +8 -0
- package/dist/composition/javascriptAnalysisWorkerProcess.js +4 -5
- package/dist/composition/jeb.js +32 -21
- package/dist/config/environment.js +36 -2
- package/dist/config/mcpInputSchemaProfile.js +1 -1
- package/dist/config/parseConfig.js +7 -3
- package/dist/contracts/adb/adbToolContracts.js +2 -2
- package/dist/contracts/analysisViewApiSurfaceExample.js +4 -4
- package/dist/contracts/analysisViewToolContracts.js +42 -1
- package/dist/contracts/android/androidToolContracts.js +1 -1
- package/dist/contracts/apktool/apktoolToolContracts.js +5 -1
- package/dist/contracts/artifactComparisonExample.js +18 -14
- package/dist/contracts/artifactToolContracts.js +2 -1
- package/dist/contracts/browserScenarioToolContracts.js +1 -1
- package/dist/contracts/browserToolContracts.js +12 -1
- package/dist/contracts/compactInputSchema.js +13 -6
- package/dist/contracts/fridaToolContracts.js +5 -4
- package/dist/contracts/gdbToolContracts.js +2 -3
- package/dist/contracts/inputSchemaPresentation.js +173 -79
- package/dist/contracts/javascript/javascriptExportShapeComparisonExample.js +1 -0
- package/dist/contracts/javascript/javascriptRuntimeReconciliationExample.js +1 -0
- package/dist/contracts/jsonSchemaKeywords.js +29 -0
- package/dist/contracts/managed/managedWorkflowExamples.js +3 -0
- package/dist/contracts/managed/managedWorkflowToolContracts.js +1 -1
- package/dist/contracts/mobileApplicationGraphExamples.js +15 -12
- package/dist/contracts/officialToolContracts.js +2 -2
- package/dist/contracts/rizinDebugToolContracts.js +3 -2
- package/dist/contracts/sessionToolContracts.js +3 -3
- package/dist/contracts/toolEffects.js +6 -2
- package/dist/contracts/toolOutputSchemaGroups.js +7 -4
- package/dist/contracts/toolOutputSchemaPrimitives.js +7 -0
- package/dist/contracts/toolSchemaMetadata.js +99 -27
- package/dist/cutter/CutterBridgeClient.js +206 -67
- package/dist/cutter/CutterBridgeService.js +52 -4
- package/dist/doctorRuntime.js +25 -4
- package/dist/domain/adb/adbDeviceAnalysis.js +19 -1
- package/dist/domain/analysisErrorBase.js +59 -2
- package/dist/domain/analysisErrorCleanup.js +3 -1
- package/dist/domain/analysisErrorCore.js +13 -0
- package/dist/domain/analysisErrorPresentation.js +23 -4
- package/dist/domain/analysisErrorProjection.js +44 -28
- package/dist/domain/analysisSearch.js +26 -0
- package/dist/domain/analysisSnapshot.js +11 -11
- package/dist/domain/analysisView/WebNetworkApiSurfaceAccumulator.js +4 -65
- package/dist/domain/analysisView/analysisView.js +25 -0
- package/dist/domain/analysisView/analysisViewDataAdmission.js +86 -0
- package/dist/domain/analysisView/artifactInventoryView.js +4 -18
- package/dist/domain/analysisView/javascriptApplicationCoverage.js +27 -0
- package/dist/domain/analysisView/javascriptApplicationView.js +100 -27
- package/dist/domain/analysisView/javascriptFactsView.js +92 -0
- package/dist/domain/analysisView/javascriptModuleReferences.js +37 -0
- package/dist/domain/analysisView/managedMemberView.js +6 -0
- package/dist/domain/android/androidApplication.js +8 -7
- package/dist/domain/apktool/apktoolResourceAnalysis.js +52 -2
- package/dist/domain/apple/appleApplication.js +41 -60
- package/dist/domain/apple/appleBundleAnatomy.js +56 -68
- package/dist/domain/apple/dylibResolution.js +5 -1
- package/dist/domain/apple/interfaceBuilderGraph.js +29 -8
- package/dist/domain/apple/interfaceBuilderKeyedArchive.js +11 -4
- package/dist/domain/apple/jvmClassFile.js +226 -0
- package/dist/domain/apple/keyedArchive.js +39 -17
- package/dist/domain/apple/machoContainer.js +3 -0
- package/dist/domain/apple/plistNumbers.js +67 -5
- package/dist/domain/apple/plistValue.js +89 -18
- package/dist/domain/artifactComparison.js +7 -5
- package/dist/domain/artifactGraph.js +4 -12
- package/dist/domain/artifactInspection.js +6 -17
- package/dist/domain/artifactInventoryEvidence.js +68 -60
- package/dist/domain/binaryTarget.js +11 -26
- package/dist/domain/binaryTargetTypes.js +10 -0
- package/dist/domain/browserNetworkEvidence.js +20 -3
- package/dist/domain/browserObservation.js +5 -28
- package/dist/domain/browserObservationError.js +4 -4
- package/dist/domain/browserScenarioCapture.js +11 -2
- package/dist/domain/browserScenarioCaptureLimits.js +34 -0
- package/dist/domain/browserScenarioCaptureValues.js +50 -0
- package/dist/domain/browserScenarioDiffEvidence.js +1 -3
- package/dist/domain/browserScenarioValues.js +5 -1
- package/dist/domain/captures/packetCapture.js +2 -1
- package/dist/domain/dosMz.js +14 -5
- package/dist/domain/electron/electronFuseEvidence.js +42 -0
- package/dist/domain/elfFixedHeader.js +24 -0
- package/dist/domain/evidence.js +7 -6
- package/dist/domain/evidenceBundle.js +9 -2
- package/dist/domain/explicitSensitiveFailure.js +3 -0
- package/dist/domain/fileSnapshotObservation.js +25 -0
- package/dist/domain/fixedTupleSchema.js +9 -0
- package/dist/domain/functionCallCoverage.js +6 -6
- package/dist/domain/functionComparisonDimensions.js +38 -11
- package/dist/domain/functionComparisonNormalization.js +17 -9
- package/dist/domain/functionDossierEvidence.js +4 -3
- package/dist/domain/harmony/harmonyApplication.js +8 -8
- package/dist/domain/hopperErrors.js +4 -2
- package/dist/domain/hopperValues.js +27 -4
- package/dist/domain/javascript/electronActiveObservation.js +1 -0
- package/dist/domain/javascript/electronStaticAnalysisBrowser.js +80 -20
- package/dist/domain/javascript/electronStaticAnalysisValues.js +0 -20
- package/dist/domain/javascript/electronStaticOptionObjects.js +45 -0
- package/dist/domain/javascript/electronWrappedCallPaths.js +70 -17
- package/dist/domain/javascript/javascriptAnalysisResourceControls.js +20 -4
- package/dist/domain/javascript/javascriptApplicationAnalysis.js +4 -0
- package/dist/domain/javascript/javascriptApplicationChangeGraph.js +3 -0
- package/dist/domain/javascript/javascriptApplicationVersionComparisonSchemas.js +3 -1
- package/dist/domain/javascript/javascriptApplicationVersionItems.js +49 -21
- package/dist/domain/javascript/javascriptAstFingerprint.js +41 -10
- package/dist/domain/javascript/javascriptAstValues.js +83 -5
- package/dist/domain/javascript/javascriptBundledRequireOrigin.js +23 -36
- package/dist/domain/javascript/javascriptCommonJsExportReceivers.js +231 -0
- package/dist/domain/javascript/javascriptElectronMemberWrites.js +14 -4
- package/dist/domain/javascript/javascriptFeatureSeed.js +1 -1
- package/dist/domain/javascript/javascriptGraphqlOperations.js +382 -0
- package/dist/domain/javascript/javascriptModuleDeclaration.js +20 -0
- package/dist/domain/javascript/javascriptNativeHandoff.js +7 -11
- package/dist/domain/javascript/javascriptRpcEndpoints.js +7 -171
- package/dist/domain/javascript/javascriptRuntimeLoadState.js +9 -4
- package/dist/domain/javascript/javascriptRuntimeReconciliationCaptureParsing.js +35 -12
- package/dist/domain/javascript/javascriptRuntimeReconciliationMatching.js +50 -45
- package/dist/domain/javascript/javascriptSemanticAmbientWrites.js +284 -24
- package/dist/domain/javascript/javascriptSemanticAnalysis.js +452 -182
- package/dist/domain/javascript/javascriptSemanticAsyncEffects.js +37 -20
- package/dist/domain/javascript/javascriptSemanticCallResolution.js +55 -27
- package/dist/domain/javascript/javascriptSemanticCalls.js +4 -4
- package/dist/domain/javascript/javascriptSemanticChildProcesses.js +134 -50
- package/dist/domain/javascript/javascriptSemanticCoverage.js +5 -1
- package/dist/domain/javascript/javascriptSemanticDataEffectHelpers.js +7 -13
- package/dist/domain/javascript/javascriptSemanticDataEffects.js +33 -10
- package/dist/domain/javascript/javascriptSemanticDerivedAnalysis.js +1 -1
- package/dist/domain/javascript/javascriptSemanticEvaluationOrder.js +126 -0
- package/dist/domain/javascript/javascriptSemanticExpressionShapes.js +111 -0
- package/dist/domain/javascript/javascriptSemanticGetterQueries.js +147 -0
- package/dist/domain/javascript/javascriptSemanticGetterResults.js +264 -0
- package/dist/domain/javascript/javascriptSemanticGraph.js +18 -1
- package/dist/domain/javascript/javascriptSemanticGraphSchemas.js +13 -0
- package/dist/domain/javascript/javascriptSemanticIterationSources.js +3 -2
- package/dist/domain/javascript/javascriptSemanticMapOperations.js +51 -0
- package/dist/domain/javascript/javascriptSemanticMemberMutations.js +215 -81
- package/dist/domain/javascript/javascriptSemanticMutationInitializers.js +395 -118
- package/dist/domain/javascript/javascriptSemanticObjectReferences.js +241 -328
- package/dist/domain/javascript/javascriptSemanticObjects.js +33 -27
- package/dist/domain/javascript/javascriptSemanticOpaqueEffects.js +163 -0
- package/dist/domain/javascript/javascriptSemanticPrimitives.js +11 -1
- package/dist/domain/javascript/javascriptSemanticProjection.js +44 -67
- package/dist/domain/javascript/javascriptSemanticQueryIdentity.js +2 -1
- package/dist/domain/javascript/javascriptSemanticQuerySchemas.js +1 -1
- package/dist/domain/javascript/javascriptSemanticRequireOrigin.js +45 -7
- package/dist/domain/javascript/javascriptSemanticResourceLimits.js +3 -19
- package/dist/domain/javascript/javascriptSemanticResources.js +27 -4
- package/dist/domain/javascript/javascriptSemanticReturnedReferences.js +78 -37
- package/dist/domain/javascript/javascriptSemanticReturns.js +2 -2
- package/dist/domain/javascript/javascriptSemanticState.js +191 -42
- package/dist/domain/javascript/javascriptSemanticValues.js +167 -41
- package/dist/domain/javascript/javascriptSourceParser.js +54 -9
- package/dist/domain/javascript/javascriptStaticAnalysis.js +24 -13
- package/dist/domain/javascript/javascriptStaticAnalysisCalls.js +276 -16
- package/dist/domain/javascript/javascriptStaticAnalysisHelpers.js +33 -25
- package/dist/domain/javascript/javascriptStaticAnalysisState.js +3 -0
- package/dist/domain/javascript/javascriptStaticAnalysisTypes.js +1 -1
- package/dist/domain/javascript/javascriptSymbolicBindings.js +424 -142
- package/dist/domain/javascript/javascriptSymbolicControlFlow.js +4 -0
- package/dist/domain/javascript/javascriptSymbolicValues.js +12 -1
- package/dist/domain/javascript/sourceToBundleSignals.js +3 -0
- package/dist/domain/managed/managedApplicationGraphNodes.js +14 -9
- package/dist/domain/managed/managedArtifact.js +26 -0
- package/dist/domain/managed/managedMemberComparison.js +3 -0
- package/dist/domain/managed/managedMemberComparisonCoverage.js +14 -1
- package/dist/domain/managed/managedMemberComparisonItems.js +124 -52
- package/dist/domain/managed/managedMemberComparisonMatch.js +76 -72
- package/dist/domain/managed/managedMemberSignatureIdentity.js +40 -0
- package/dist/domain/managed/managedNativeVerificationMatch.js +5 -5
- package/dist/domain/managed/managedNativeVerificationSchemas.js +2 -2
- package/dist/domain/mobileApplicationGraphProjection.js +33 -18
- package/dist/domain/native/bytePattern.js +21 -0
- package/dist/domain/native/nativeAotPe.js +29 -2
- package/dist/domain/native/nativeAotSnapshotObservation.js +18 -0
- package/dist/domain/native/nativeCallPartialObservation.js +14 -12
- package/dist/domain/native/nativeLoadImage.js +13 -0
- package/dist/domain/native/objcSwiftMetadata.js +15 -8
- package/dist/domain/native/peResources.js +6 -2
- package/dist/domain/peMachine.js +2 -0
- package/dist/domain/process/processComparison.js +3 -3
- package/dist/domain/process/processTraceDimensionProjection.js +1 -1
- package/dist/domain/process/processTraceEvaluation.js +65 -24
- package/dist/domain/propertyListKeys.js +84 -69
- package/dist/domain/propertyListXml.js +149 -0
- package/dist/domain/providerAdapterError.js +2 -0
- package/dist/domain/providerCleanupError.js +2 -4
- package/dist/domain/rawBinary.js +11 -2
- package/dist/domain/reconstructionCoverage.js +35 -23
- package/dist/domain/reconstructionCoverageEvaluation.js +36 -36
- package/dist/domain/reconstructionCoverageEvidence.js +26 -0
- package/dist/domain/reconstructionVerification.js +40 -26
- package/dist/domain/referenceSourceImportParsing.js +4 -0
- package/dist/domain/referenceSourcePathIdentity.js +2 -0
- package/dist/domain/referenceSourceRequireBindings.js +40 -101
- package/dist/domain/relationshipCoverage.js +4 -5
- package/dist/domain/sqlite/sqliteDatabase.js +2 -1
- package/dist/domain/symbolAnalysis.js +9 -8
- package/dist/domain/webBundleAnalyzerInspection.js +65 -25
- package/dist/domain/webCaptureDiff.js +124 -41
- package/dist/domain/webInventory.js +28 -14
- package/dist/domain/webModuleTrace.js +22 -0
- package/dist/domain/webScriptExportError.js +2 -3
- package/dist/domain/xmlDocument.js +41 -0
- package/dist/domain/zipPackageFormat.js +0 -4
- package/dist/dotnet/ManagedArtifactInspector.js +2 -4
- package/dist/dotnet/ManagedDecodeBudget.js +21 -1
- package/dist/dotnet/ManagedMemberInspector.js +31 -6
- package/dist/dotnet/ManagedMemberInspectorCore.js +63 -12
- package/dist/dotnet/ManagedMemberRows.js +8 -8
- package/dist/dotnet/ManagedMetadataHeaps.js +0 -1
- package/dist/dotnet/ManagedMetadataLayout.js +17 -15
- package/dist/dotnet/ManagedNativeBoundaryHelpers.js +20 -19
- package/dist/dotnet/ManagedNativeBoundaryInspector.js +7 -8
- package/dist/dotnet/ManagedPeReader.js +5 -0
- package/dist/dotnet/ManagedSnapshot.js +25 -20
- package/dist/dotnet/ManagedTypeNameDigests.js +177 -0
- package/dist/dotnet/ManagedTypeNames.js +6 -46
- package/dist/dotnet/ManagedTypeNesting.js +25 -0
- package/dist/dotnet/ManagedTypeReferences.js +94 -0
- package/dist/electron/ElectronFuseFailures.js +105 -0
- package/dist/electron/ElectronFusePath.js +4 -3
- package/dist/electron/ElectronFuseProvider.js +67 -92
- package/dist/electron/ElectronFuseReader.js +46 -30
- package/dist/evm/EvmoleFailures.js +1 -0
- package/dist/evm/EvmoleInterfaceProvider.js +13 -16
- package/dist/filesystem/OwnedRegularFile.js +116 -0
- package/dist/filesystem/OwnedStagedOutput.js +28 -11
- package/dist/filesystem/RegularFile.js +20 -8
- package/dist/filesystem/StableFileHash.js +56 -38
- package/dist/filesystem/callerPath.js +26 -0
- package/dist/filesystem/readFileHandleChunks.js +55 -5
- package/dist/filesystem/readStableFileBytes.js +85 -0
- package/dist/firmware/FirmwareCommand.js +13 -7
- package/dist/firmware/FirmwareFailures.js +56 -0
- package/dist/firmware/FirmwareFiles.js +128 -98
- package/dist/firmware/FirmwareProvider.js +120 -65
- package/dist/firmware/FirmwarePublication.js +26 -11
- package/dist/flutter/DartElf.js +27 -0
- package/dist/flutter/FlutterBuildProvider.js +44 -4
- package/dist/gdb/GdbSessionManager.js +202 -14
- package/dist/generatedPackageMetadata.js +1 -1
- package/dist/ghidra/GhidraAnalysisProfile.js +24 -10
- package/dist/ghidra/GhidraAnalysisSeeds.js +39 -55
- package/dist/ghidra/GhidraBridgeSources.js +12 -0
- package/dist/ghidra/GhidraClient.js +362 -148
- package/dist/ghidra/GhidraClientStartup.js +5 -3
- package/dist/ghidra/GhidraClientWire.js +5 -2
- package/dist/ghidra/GhidraDiagnostics.js +16 -5
- package/dist/ghidra/GhidraDoctor.js +45 -14
- package/dist/ghidra/GhidraDosSnapshot.js +83 -0
- package/dist/ghidra/GhidraExecutableHeader.js +54 -0
- package/dist/ghidra/GhidraFileArtifacts.js +93 -0
- package/dist/ghidra/GhidraFunctionValues.js +1 -0
- package/dist/ghidra/GhidraInstallation.js +143 -142
- package/dist/ghidra/GhidraInstallationPolicy.js +20 -79
- package/dist/ghidra/GhidraInstallationProperties.js +57 -0
- package/dist/ghidra/GhidraInventoryValues.js +22 -6
- package/dist/ghidra/GhidraJavaLaunch.js +11 -4
- package/dist/ghidra/GhidraJavaProbe.js +267 -0
- package/dist/ghidra/GhidraJavaProperties.js +9 -7
- package/dist/ghidra/GhidraLanguageCatalog.js +12 -7
- package/dist/ghidra/GhidraLauncher.js +128 -65
- package/dist/ghidra/GhidraLoadImageAttest.js +75 -78
- package/dist/ghidra/GhidraLoadImageValues.js +39 -29
- package/dist/ghidra/GhidraMipsProfile.js +13 -5
- package/dist/ghidra/GhidraNativeAotSnapshotOwner.js +221 -0
- package/dist/ghidra/GhidraPeProfile.js +88 -18
- package/dist/ghidra/GhidraProvider.js +219 -32
- package/dist/ghidra/GhidraProviderCapabilities.js +17 -4
- package/dist/ghidra/GhidraProviderClient.js +199 -239
- package/dist/ghidra/GhidraPspExtension.js +104 -34
- package/dist/ghidra/GhidraPspProfile.js +4 -1
- package/dist/ghidra/GhidraRawBinaryLanguage.js +13 -4
- package/dist/ghidra/GhidraReleasePolicy.js +93 -0
- package/dist/ghidra/GhidraRequestQueue.js +64 -40
- package/dist/ghidra/GhidraSessionError.js +152 -19
- package/dist/ghidra/GhidraSessionValues.js +13 -3
- package/dist/ghidra/GhidraSocketConnection.js +25 -11
- package/dist/ghidra/GhidraTargetSnapshot.js +67 -50
- package/dist/ghidra/GhidraTransport.js +86 -63
- package/dist/ghidra/extensions/GhidraExtensions.js +30 -45
- package/dist/go/GoBinaryProvider.js +89 -60
- package/dist/go/GoElfImage.js +3 -3
- package/dist/hopper/BridgeLauncher.js +43 -4
- package/dist/hopper/HopperAnalysisProfile.js +4 -2
- package/dist/hopper/HopperCleanup.js +14 -1
- package/dist/hopper/HopperClient.js +135 -63
- package/dist/hopper/HopperProvider.js +4 -7
- package/dist/hopper/HopperProviderCapabilities.js +2 -1
- package/dist/hopper/HopperRegexSearch.js +21 -60
- package/dist/ida/IdaBusyHealth.js +36 -2
- package/dist/ida/IdaMcpConnection.js +17 -11
- package/dist/ida/IdaNativeProtocol.js +1 -9
- package/dist/ida/IdaOperationRunner.js +8 -26
- package/dist/ida/IdaProtocolValues.js +2 -1
- package/dist/ida/IdaProvider.js +18 -2
- package/dist/ida/IdaSessionClient.js +54 -12
- package/dist/inspector/V8InspectorCaptureProjection.js +7 -0
- package/dist/inspector/V8InspectorProvider.js +2 -0
- package/dist/javascript/analysis/JavaScriptAnalysisTransfer.js +25 -4
- package/dist/javascript/analysis/JavaScriptAnalysisWorker.js +4 -3
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerProtocol.js +3 -2
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerSchemas.js +7 -1
- package/dist/javascript/analysis/JavaScriptAnalysisWorkerServer.js +1 -1
- package/dist/javascript/recovery/RecoveryFiles.js +57 -8
- package/dist/jeb/JebMcpConnection.js +129 -70
- package/dist/jeb/JebMcpConnectionOwner.js +116 -0
- package/dist/jeb/JebMcpDeadline.js +46 -0
- package/dist/jeb/JebProvider.js +77 -51
- package/dist/kuna/KunaAddress.js +11 -0
- package/dist/kuna/KunaCommand.js +217 -0
- package/dist/kuna/KunaConfiguration.js +90 -0
- package/dist/kuna/KunaDoctor.js +198 -0
- package/dist/kuna/KunaInstallation.js +137 -0
- package/dist/kuna/KunaJson.js +23 -0
- package/dist/kuna/KunaJsonStream.js +433 -0
- package/dist/kuna/KunaLimits.js +5 -0
- package/dist/kuna/KunaProjectCache.js +804 -0
- package/dist/kuna/KunaProjectExport.js +202 -0
- package/dist/kuna/KunaProjectFiles.js +191 -0
- package/dist/kuna/KunaProjectReader.js +115 -0
- package/dist/kuna/KunaProvider.js +217 -0
- package/dist/kuna/KunaProviderCapabilities.js +102 -0
- package/dist/kuna/KunaQueryErrors.js +12 -0
- package/dist/kuna/KunaQueryWork.js +113 -0
- package/dist/kuna/KunaReferenceFiles.js +258 -0
- package/dist/kuna/KunaReferenceQueries.js +211 -0
- package/dist/kuna/KunaRelease.js +10 -0
- package/dist/kuna/KunaRunSlots.js +56 -0
- package/dist/kuna/KunaSessionClient.js +1162 -0
- package/dist/kuna/KunaStringInventory.js +145 -0
- package/dist/kuna/KunaStringQueries.js +133 -0
- package/dist/kuna/KunaTargetCommands.js +205 -0
- package/dist/kuna/KunaUnavailable.js +11 -0
- package/dist/main/processShutdown.js +17 -0
- package/dist/main/transport.js +21 -1
- package/dist/main.js +2 -12
- package/dist/mcp/AnalysisProvider-BABWbLoM.js +38 -0
- package/dist/mcp/{AnalysisSnapshotFiles-BAbiJQOc.js → AnalysisSnapshotFiles-BXz0c37-.js} +39 -28
- package/dist/mcp/{ProcessOwnership-Bl_3ejLe.js → ArtifactFileOperation-64cQKI7B.js} +274 -72
- package/dist/mcp/{ArtifactProvider-DViCU_rn.js → ArtifactProvider-Dx6pmil1.js} +371 -354
- package/dist/mcp/ArtifactProviderMetadata-UCJr2oZW.js +167 -0
- package/dist/mcp/{ArtifactReader-OyM03Gjn.js → ArtifactReader-BrnwNaKY.js} +29 -6
- package/dist/mcp/ArtifactResourceScope-zi3Dkqzy.js +175 -0
- package/dist/mcp/{AsarHeader-WsPgoooH.js → AsarHeader-B_IbppTz.js} +1 -1
- package/dist/mcp/{BinarySessionStatus-B4P9gf-S.js → BinarySessionStatus-CZ9nnXMt.js} +5 -4
- package/dist/mcp/{BinaryTargetResolver-BMaE_0H1.js → BinaryTargetResolver-BUncASDP.js} +146 -215
- package/dist/mcp/BoundedFileBytes-DYt5q9G2.js +43 -0
- package/dist/mcp/{CdpCaptureDocuments-HDiF2O7k.js → CdpCaptureDocuments-Y2uFcBpl.js} +194 -145
- package/dist/mcp/{CdpCaptureValues-M-j6CIh1.js → CdpCaptureValues-tNIg-gQK.js} +12 -5
- package/dist/mcp/{CdpConnection-BpDfz4MK.js → CdpEndpoint-BrhMhpSi.js} +352 -281
- package/dist/mcp/{CdpOptionalCommand-BPjRD9Kz.js → CdpOptionalCommand-PZZhlqxv.js} +2 -2
- package/dist/mcp/CdpTargetSession-BmmDC3XO.js +290 -0
- package/dist/mcp/{DirectAnalysis-DrafbXke.js → DirectAnalysis-B9KuCHTG.js} +29 -21
- package/dist/mcp/{DirectAnalysisStatus-CjjeDLzW.js → DirectAnalysisStatus-BgzopkIt.js} +7 -7
- package/dist/mcp/{ElectronFileScope-BPG_YoyU.js → ElectronFileScope-FXtK0d6I.js} +1 -1
- package/dist/mcp/ElectronFuseFailures-uZ_wOV6T.js +610 -0
- package/dist/mcp/MachoLoadCommandReader-C2VGgHA3.js +330 -0
- package/dist/mcp/{ManagedStaticProvider-BthZbKyZ.js → ManagedStaticProvider-CZuoPme2.js} +429 -131
- package/dist/mcp/{NativeMacOSProvider-Bh79k8dI.js → NativeMacOSProvider-CMguKrvN.js} +1376 -748
- package/dist/mcp/{NativeMacOSProviderMetadata-N1lPOaY_.js → NativeMacOSProviderMetadata-B_RH4KXF.js} +97 -7
- package/dist/mcp/{ProviderDeadline-DskQ94YD.js → OwnedCommand-BW1jBSt9.js} +436 -127
- package/dist/mcp/ProcedureAddressResolution-H6Qwpb_Y.js +59 -0
- package/dist/mcp/{WorkflowEvidence-umWrB_wm.js → WorkflowEvidence-CO4C7ALz.js} +16 -9
- package/dist/mcp/analysisErrorCleanup-Q344SnTO.js +34 -0
- package/dist/mcp/analysisErrorCore-BIEP7tvF.js +509 -0
- package/dist/mcp/{analysisErrorProjection-BN0EPM-3.js → analysisErrorProjection-B8teQwwD.js} +80 -30
- package/dist/mcp/{artifactToolContracts-Di4qZlEt.js → artifactToolContracts-C9dRDo-D.js} +6 -4
- package/dist/mcp/{browserObservation-C0s4i8UI.js → browserObservation-DUraZs62.js} +272 -107
- package/dist/mcp/{browserObservationError-CyLugqX4.js → browserObservationError-C5okJ5el.js} +27 -4
- package/dist/mcp/{browserObservationSchemas-tgqjH7aA.js → browserObservationSchemas-DwGGxBpu.js} +3 -3
- package/dist/mcp/{browserScenario-CAQ8Fns9.js → browserScenario-BRUz7yN0.js} +844 -358
- package/dist/mcp/{browserScenarioCapture-CTNFN-FI.js → browserScenarioCapture-CiMAsMx8.js} +127 -11
- package/dist/mcp/{InterfaceBuilderDecodeBudget-5F2AkxJT.js → callerPath-CpPnMZyN.js} +91 -65
- package/dist/mcp/{electronActiveObservation-lDvQTMR0.js → electronActiveObservation-DV0Ffy9X.js} +1 -0
- package/dist/mcp/electronFuses-D5SS7XXw.js +367 -0
- package/dist/mcp/{electronObservation-i7LcILQ-.js → electronObservation-DsN-NqY1.js} +134 -75
- package/dist/mcp/{electronObservation-DFOFEood.js → electronObservation-wOYWwqgF.js} +3 -3
- package/dist/mcp/{electronScenario-nCzE6IfJ.js → electronScenario-CYrt2zBK.js} +395 -135
- package/dist/mcp/{emptyArraySchema-tL6Qymyd.js → emptyArraySchema-C0o2Sxwp.js} +2 -2
- package/dist/mcp/{enhancedInputs-DgdEnzHy.js → enhancedInputs-6CCgB3VB.js} +1 -1
- package/dist/mcp/{javascriptRuntimeObservation-61NhCf7H.js → javascriptRuntimeObservation-BVbhkO2-.js} +12 -9
- package/dist/mcp/{javascriptRuntimeObservation-PIUoLfX6.js → javascriptRuntimeObservation-Cu0Yedqq.js} +2 -2
- package/dist/mcp/{lipo-Bnkoq_6W.js → lipo-DSTgUqL1.js} +11 -118
- package/dist/mcp/{logger-BQY5ulYv.js → logger-BGdGHadX.js} +2 -2
- package/dist/mcp/machoContainer-CMSxUBlK.js +605 -0
- package/dist/mcp/{main-kBXHZ8S5.js → main-Cx-Z7m_n.js} +16788 -5902
- package/dist/mcp/main.js +1 -1
- package/dist/mcp/{managedToolContracts-CK--I_s7.js → managedToolContracts-CSlbKJP-.js} +3 -3
- package/dist/mcp/{nativeValueTrace-DR9UE62L.js → nativeValueTrace-BEZbDieM.js} +2630 -2468
- package/dist/mcp/{officialToolContracts-B67NJ2tC.js → officialToolContracts-CauCcSsc.js} +74 -55
- package/dist/mcp/peMachine-aP1iYnHq.js +95 -0
- package/dist/mcp/propertyListKeys-BfCo0k4w.js +356 -0
- package/dist/mcp/providerCleanupError-DIRHxzWo.js +125 -0
- package/dist/mcp/{providerOperationHealth-CTYa3iLf.js → providerOperationHealth-9DRSGM8N.js} +24 -1
- package/dist/mcp/{scanCanonical-CRXSpule.js → scanCanonical-CF3ATd1V.js} +269 -463
- package/dist/mcp/{serverIdentity-Cio4iFV3.js → serverIdentity-BK0Ejd_Y.js} +262 -83
- package/dist/mcp/{sourceMapEnvelope-C0uJlrOh.js → sourceMapEnvelope-DAaRUIGj.js} +4 -4
- package/dist/mcp/{toolContracts-BW05wpcr.js → toolContracts-BPoHQdlC.js} +541 -327
- package/dist/mcp/{toolOutputSchemaGroups-ColvNZ1r.js → toolOutputSchemaGroups-MJ_f-PMK.js} +2551 -2354
- package/dist/mcp/{webContentArtifact-Dzjc1z-R.js → webContentArtifact-DfGkgDcI.js} +2 -17
- package/dist/mcp/{webRuntime-K__NYzXm.js → webRuntime-ccyhkRru.js} +2 -2
- package/dist/mcp/{webSourceLocation-DbMAT2J9.js → webSourceLocation-DKIum0vJ.js} +6451 -4414
- package/dist/mcpDoctor.js +4 -2
- package/dist/mcpStartupPolicy.js +18 -3
- package/dist/native/AppleDispatchMetadata.js +76 -27
- package/dist/native/AppleMachoFixups.js +20 -10
- package/dist/native/AppleObjcCategories.js +12 -1
- package/dist/native/AppleObjcDispatchFacets.js +21 -12
- package/dist/native/AppleObjcProperties.js +61 -17
- package/dist/native/AppleObjcProtocols.js +25 -7
- package/dist/native/AppleSwiftVtables.js +2 -0
- package/dist/native/CommandRunner.js +13 -9
- package/dist/native/LldbCallTracer.js +232 -178
- package/dist/native/LldbReadbackFiles.js +70 -0
- package/dist/native/LldbRetainedObservations.js +28 -56
- package/dist/native/NativeCallObservation.js +53 -52
- package/dist/native/NativeCallTarget.js +95 -0
- package/dist/native/NativeMacOSProvider.js +240 -171
- package/dist/native/NativeMachoInspection.js +21 -7
- package/dist/native/NativePlistSource.js +179 -0
- package/dist/native/NativeUiCleanupError.js +30 -0
- package/dist/native/NativeUiHelperRuntime.js +48 -35
- package/dist/native/NativeUiObservation.js +67 -45
- package/dist/native/SignatureTargetBinding.js +72 -53
- package/dist/native/parsers/demangle.js +16 -12
- package/dist/native/parsers/machoUuid.js +4 -4
- package/dist/native/parsers/otool.js +57 -17
- package/dist/native/parsers/plist.js +40 -25
- package/dist/native/pe/PeResourceLayout.js +22 -7
- package/dist/native/pe/PeResourceParser.js +10 -9
- package/dist/native/pe/PeResourcesProvider.js +63 -16
- package/dist/native/pwndbg/CoreFileMappingAuthority.js +51 -0
- package/dist/native/pwndbg/PwndbgCoreContext.js +26 -15
- package/dist/native/pwntools/PwntoolsDecoder.js +116 -53
- package/dist/native/pwntools/PwntoolsFailures.js +17 -3
- package/dist/native/pwntools/PwntoolsRecordedCrashProvider.js +11 -1
- package/dist/objdump/ObjdumpCommand.js +5 -2
- package/dist/pcap/PcapOutput.js +38 -2
- package/dist/pcap/PcapProvider.js +45 -15
- package/dist/pcap/PcapSnapshot.js +24 -4
- package/dist/process/ArtifactAnalysisResources.js +145 -52
- package/dist/process/BoundedFileBytes.js +8 -3
- package/dist/process/CurrentEntrypointPath.js +3 -1
- package/dist/process/DarwinProcessRunTokenReader.js +174 -63
- package/dist/process/DetachedPgpSignature.js +57 -0
- package/dist/process/ExecFileOutput.js +14 -11
- package/dist/{hopper/HopperTargetLease.js → process/HopperLease.js} +10 -0
- package/dist/process/LinuxResourceLimits.js +4 -24
- package/dist/process/OwnedCommand.js +109 -14
- package/dist/process/ProviderProcess.js +129 -10
- package/dist/process/RegexMatcher.js +96 -0
- package/dist/process/SharedStartupAttempt.js +59 -0
- package/dist/process/WindowsAuthority.js +1 -1
- package/dist/process/capture/FilesystemSnapshot.js +3 -2
- package/dist/process/capture/ProcessCaptureError.js +55 -17
- package/dist/process/capture/ProcessCaptureLifecycle.js +17 -20
- package/dist/process/capture/ProcessCaptureProgress.js +5 -3
- package/dist/process/capture/ProcessHarness.js +17 -3
- package/dist/process/snapshotEnvironment.js +8 -8
- package/dist/{application/binary → providers}/AnalysisClientCleanup.js +3 -3
- package/dist/providers/AnalysisClientCreation.js +193 -0
- package/dist/providers/AnalysisClientFailure.js +191 -0
- package/dist/providers/DeferredAnalysisClient.js +48 -0
- package/dist/providers/OwnedCommandCleanup.js +65 -0
- package/dist/providers/ProviderInspectionScope.js +10 -0
- package/dist/recordedCatalogDigests.js +2 -0
- package/dist/reference/ReferenceSourceReader.js +64 -0
- package/dist/reference/ReferenceSourceReaderEntries.js +12 -3
- package/dist/reference/ReferenceSourceReaderFile.js +2 -1
- package/dist/rizin/RizinCommand.js +2 -2
- package/dist/rizin/RizinDebugSessionManager.js +249 -210
- package/dist/rust/RustBinaryProvider.js +55 -23
- package/dist/server/EvidenceMcpServer.js +2 -2
- package/dist/server/contractToolHandler.js +17 -11
- package/dist/server/createServer.js +27 -8
- package/dist/server/promptCompletion.js +24 -22
- package/dist/server/registerArtifactComparisonTool.js +13 -2
- package/dist/server/registerBrowserScenarioTool.js +7 -5
- package/dist/server/registerBrowserTools.js +2 -4
- package/dist/server/registerCutterTools.js +2 -3
- package/dist/server/registerElectronTools.js +2 -13
- package/dist/server/registerFridaTools.js +8 -12
- package/dist/server/registerInvestigationTools.js +20 -20
- package/dist/server/registerJavaScriptRuntimeObservationTools.js +2 -4
- package/dist/server/registerManagedWorkflowTools/evidence.js +14 -7
- package/dist/server/registerProcessComparisonTool.js +3 -0
- package/dist/server/registerSessionStatusTool.js +13 -6
- package/dist/server/registerSessionTools.js +16 -29
- package/dist/server/runDerivedOperation.js +2 -0
- package/dist/signals/SigrokRecordingProvider.js +13 -6
- package/dist/sqlite/SqliteDatabaseFailures.js +25 -12
- package/dist/sqlite/SqliteDatabaseInspection.js +27 -12
- package/dist/sqlite/SqliteDatabaseSnapshot.js +58 -32
- package/dist/sqlite/SqliteDatabaseWorkerExecution.js +18 -3
- package/dist/wasm/WabtArtifactProvider.js +64 -42
- package/dist/wasm/WabtFailures.js +19 -1
- package/dist/wasm/WabtRuntime.js +58 -0
- package/dist/wasm/WasmGlueAdapter.js +20 -7
- package/dist/windows/WindowsNativeLoader.js +16 -2
- package/dist/windows/WindowsPrivateRuntime.js +44 -1
- package/licenses/npm-dependencies.txt +146 -1
- package/licenses/npm-runtime-notices.txt +175 -1
- package/native/windows/README.md +44 -7
- package/native/windows/build/manifest.json +2 -2
- package/native/windows/build/rea-windows-x64.node +0 -0
- package/package.json +11 -3
- package/scripts/electron-active-hook-boundaries.cjs +15 -2
- package/scripts/electron-active-hook.cjs +408 -46
- package/scripts/hopper-demo-x11.py +12 -10
- package/scripts/rea.mjs +62 -15
- package/skills/reverse-engineer-anything/SKILL.md +21 -7
- package/skills/reverse-engineer-anything/references/android-applications.md +3 -1
- package/skills/reverse-engineer-anything/references/javascript-applications.md +44 -1
- package/skills/reverse-engineer-anything/references/native-and-artifacts.md +30 -10
- package/dist/cli-runtime/ArtifactResourceScope-DQWTcUwE.js +0 -114
- package/dist/cli-runtime/ClientConfigPath-c6jr6INc.js +0 -36
- package/dist/cli-runtime/IdaConfiguration-CtGP7EKo.js +0 -1094
- package/dist/cli-runtime/JebMcpEndpoint-DUytrn5G.js +0 -428
- package/dist/cli-runtime/MacHopperPaths-CwL5lYPX.js +0 -434
- package/dist/cli-runtime/OwnedCommand-Cj9GhmPR.js +0 -112
- package/dist/cli-runtime/RegularFile-B_6KPCNQ.js +0 -139
- package/dist/cli-runtime/RegularFileRead-DVlC5faM.js +0 -125
- package/dist/cli-runtime/analysisErrorPresentation-DGt7TdsH.js +0 -497
- package/dist/cli-runtime/application__javascript__ElectronObservationService-DEsR8KDN.js +0 -63
- package/dist/cli-runtime/artifactOperationError-B7n03FbD.js +0 -27
- package/dist/cli-runtime/browserObservationError-Dx6xRTjb.js +0 -40
- package/dist/cli-runtime/cliResultOutput-DsRMI8CJ.js +0 -780
- package/dist/cli-runtime/mcpStartupPolicy-CVVSOmRc.js +0 -21
- package/dist/cli-runtime/propertyListKeys-G8e74YWb.js +0 -248
- package/dist/cli-runtime/providerAdapterError-DAjhICdr.js +0 -25
- package/dist/cli-runtime/readFileHandleChunks-dp60iZ6v.js +0 -38
- package/dist/hopper/HopperRegexWorker.js +0 -27
- package/dist/mcp/ArtifactProviderMetadata-b7pOK5_t.js +0 -76
- package/dist/mcp/ArtifactResourceScope-P3tq5z8Z.js +0 -162
- package/dist/mcp/BoundedFileBytes-DuczXiQZ.js +0 -68
- package/dist/mcp/CdpTargetSession-BsPoKhEU.js +0 -86
- package/dist/mcp/ProcedureAddressResolution-CQpuwm1h.js +0 -19
- package/dist/mcp/analysisErrorCore-DXRTvF_m.js +0 -235
- package/dist/mcp/artifactOperationError-CkHMMaf7.js +0 -27
- package/dist/mcp/digests-BFoWUT_-.js +0 -223
- package/dist/mcp/propertyListKeys-DD25WsjI.js +0 -553
- package/dist/mcp/providerAdapterError-sDxToNal.js +0 -25
- package/dist/mcp/unicodeCodePointOrder-BezCbTpg.js +0 -26
package/dist/cli-runtime/{toolOutputSchemaGroups-DRiYs1je.js → toolOutputSchemaGroups-BqdSzySu.js}
RENAMED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { __esmMin } from "./rolldown-runtime-DXoylpqc.js";
|
|
2
|
-
import { BINARY_ARCHITECTURES as BINARY_ARCHITECTURES$1, CANONICAL_BASE64_PATTERN, IDENTIFIER_PATTERN, addressCoordinate, addressList, addressedEntry, addressedValue, analysisBookmarkSchema, analysisInputErrorFromIssues, analysisStringSchema, artifactEdgeSchema, artifactExtractionResultSchema, artifactGraphManifestSchema,
|
|
3
|
-
import { AnalysisInputError, AnalysisOutputError, AnalysisResourceConstraintError, AnalysisUnsupportedTargetError, MAX_JSON_DEPTH, analysisErrorProjectionSchema, init_analysisErrorCore, init_errorSchemas, init_jsonValue, jsonObjectSchema, jsonValueSchema } from "./errorSchemas-
|
|
4
|
-
import { init_javascriptApplicationAnalysis, init_javascriptSourceSelection, javaScriptSourceSelectionSchema, parseOwnedJavaScriptApplicationAnalysisSteps } from "./javascriptApplicationAnalysis-
|
|
5
|
-
import { cliMetadataGuidSchema, init_managedApplicationGraph, init_managedArtifact, init_managedInspectionEvidence, managedApplicationGraphResultSchema, managedArtifactInspectionSchema, managedMemberInspectionSchema, managedNativeBoundaryInspectionSchema, parseManagedInspectionEvidence } from "./managedApplicationGraph-
|
|
2
|
+
import { BINARY_ARCHITECTURES as BINARY_ARCHITECTURES$1, CANONICAL_BASE64_PATTERN, IDENTIFIER_PATTERN, RAW_ONLY_ARCHITECTURES, UnknownPlistReal, addressCoordinate, addressList, addressedEntry, addressedValue, analysisBookmarkSchema, analysisInputErrorFromIssues, analysisStringSchema, artifactEdgeSchema, artifactExtractionResultSchema, artifactGraphManifestSchema, artifactInspectionResultSchema, artifactNodeSchema, artifactOccurrenceSchema, canonicalJson as canonicalJson$1, compareUnicodeCodePoints, compositeKey, containingProcedureResolution, decodeCanonicalBase64, digestCanonicalValue, digestSchema, electronFuseReportSchema, emptyArraySchema, err, evidenceBundleSchema, evidenceResultOf, evidenceSchema, functionComparisonResultSchema, functionDossierOutput, functionDossierSchema, functionInstructionWindowSchema, graphNode, hasCompleteInventoryCoverage, init_addressCoordinate, init_artifactGraph, init_artifactInspection, init_artifactInventoryEvidence, init_binaryTargetTypes, init_canonicalDigest, init_canonicalOrdering, init_comparisonSemantics, init_digests, init_electronFuses, init_emptyArraySchema, init_evidence, init_evidenceBundle, init_functionComparisonSchemas, init_hopperValues, init_inputIssueProjection, init_interfaceBuilderGraph, init_localPath, init_machoCpuIdentity, init_nativeApiBoundary, init_nativeInstruction, init_nativeInvestigationGraph, init_nativeValueTrace, init_objcSwiftMetadata, init_plistNumbers, init_processCapture, init_processCaptureCoverage, init_recordedTransportUrl, init_relationshipCoverage, init_residualUnknown, init_result, init_stringPatterns, init_toolOutputSchemaPrimitives, init_unicodeCodePointOrder, init_webScreenshot, integrityContradictionSchema, interfaceBuilderAnalysisSchema, interfaceBuilderDocumentSchema, isMachOFormat, lifecycleResultOf, localPathStringSchema, machoCpuSubtypeBase, nativeApiInspectionResultSchema, nativeCallTargetsSchema, nativeDispatchMetadataResultSchema, nativeInstructionSchema, nativeInvestigationCoverageSchema, nativeInvestigationEdgeSchema, nativeInvestigationNodeSchema, nativeInvestigationTraceSchema, nativeValueTraceSchema, nullableText, ok, parseArtifactInspectionInventoryResult, parseArtifactInventoryEvidence, parseArtifactInventoryResult, parseEvidence, parseEvidenceBundle, parseRecordedTransportUrl, parseUrlQueryParameterNames, prefixedDigestSchema, procedureIdentitySchema, procedureInfoOutput, processCaptureSchema, processSourceTruncated, referenceEdgeSchema, relationshipCoverageSchema, residualUnknownSchema, segmentOutput, serializeEvidenceBundle, sessionProvider, symbolDiscoveryOutput, targetFormatSchema, targetKindSchema, uniqueSorted, unresolvedCallSchema } from "./reconstructionObligationLedgerSchemas-Bi6sect1.js";
|
|
3
|
+
import { AnalysisCancelledError, AnalysisInputError, AnalysisOutputError, AnalysisResourceConstraintError, AnalysisUnsupportedTargetError, MAX_JSON_DEPTH, analysisErrorProjectionSchema, init_analysisErrorCore, init_errorSchemas, init_jsonValue, jsonObjectSchema, jsonValueSchema } from "./errorSchemas-Ixz_q7qt.js";
|
|
4
|
+
import { applicationCoverageSchema, applicationGraphEvidenceSchema, applicationNodeIdentitySchema, applicationNodeObservationSchema, applicationNodeSchema, init_javascriptApplicationAnalysis, init_javascriptApplicationEvidenceSchemas, init_javascriptApplicationGraphSchemas, init_javascriptSemanticGraphSchemas, init_javascriptSourceSelection, javaScriptSemanticGraphInputSchema, javaScriptSourceSelectionSchema, parseOwnedJavaScriptApplicationAnalysisSteps } from "./javascriptApplicationAnalysis-Dk6yBV8g.js";
|
|
5
|
+
import { cliMetadataGuidSchema, init_managedApplicationGraph, init_managedArtifact, init_managedInspectionEvidence, managedApplicationGraphResultSchema, managedArtifactInspectionSchema, managedMemberInspectionSchema, managedNativeBoundaryInspectionSchema, parseManagedInspectionEvidence } from "./managedApplicationGraph-BazVqpJv.js";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import { createHash } from "node:crypto";
|
|
8
8
|
import canonicalize from "canonicalize";
|
|
9
|
+
import { types } from "node:util";
|
|
10
|
+
import { isProxy } from "node:util/types";
|
|
9
11
|
|
|
10
12
|
//#region dist/domain/wasm/wasmInterface.js
|
|
11
13
|
var kind, valueType, limit, signature, wasmInterfaceSchema, WASM_INTERFACE_REPRESENTATION_BYTES, wasmInterfaceEntryRepresentationBytes;
|
|
@@ -313,7 +315,7 @@ function init_toolEffects() {
|
|
|
313
315
|
accessesNetwork: true,
|
|
314
316
|
idempotent: false
|
|
315
317
|
}),
|
|
316
|
-
frida_session_status:
|
|
318
|
+
frida_session_status: evidence,
|
|
317
319
|
close_frida_session: effects({
|
|
318
320
|
mutatesTarget: true,
|
|
319
321
|
mutatesSession: true,
|
|
@@ -740,7 +742,11 @@ function init_toolEffects() {
|
|
|
740
742
|
}),
|
|
741
743
|
list_javascript_runtime_targets: browserEvidence,
|
|
742
744
|
observe_javascript_runtime: browserEvidence,
|
|
743
|
-
analyze_javascript_application:
|
|
745
|
+
analyze_javascript_application: effects({
|
|
746
|
+
mutatesSession: true,
|
|
747
|
+
writesFilesystem: true,
|
|
748
|
+
launchesProcess: true
|
|
749
|
+
}),
|
|
744
750
|
inspect_electron_fuses: evidence,
|
|
745
751
|
export_web_scripts: effects({
|
|
746
752
|
mutatesSession: true,
|
|
@@ -966,6 +972,150 @@ function init_analysisDetail() {
|
|
|
966
972
|
})))();
|
|
967
973
|
}
|
|
968
974
|
|
|
975
|
+
//#endregion
|
|
976
|
+
//#region dist/domain/analysisView/javascriptModuleReferences.js
|
|
977
|
+
var moduleKindSchema, javascriptModuleReferencesRequestSchema, basisSchema, javascriptModuleReferenceSchema;
|
|
978
|
+
function init_javascriptModuleReferences() {
|
|
979
|
+
return (init_javascriptModuleReferences = __esmMin((() => {
|
|
980
|
+
init_digests();
|
|
981
|
+
init_javascriptApplicationEvidenceSchemas();
|
|
982
|
+
moduleKindSchema = z.enum([
|
|
983
|
+
"javascript-asset",
|
|
984
|
+
"javascript-module",
|
|
985
|
+
"source-module"
|
|
986
|
+
]);
|
|
987
|
+
javascriptModuleReferencesRequestSchema = z.strictObject({
|
|
988
|
+
kind: z.literal("javascript"),
|
|
989
|
+
collection: z.literal("modules"),
|
|
990
|
+
projection: z.literal("references"),
|
|
991
|
+
where: z.strictObject({
|
|
992
|
+
path: z.string().nullable().optional(),
|
|
993
|
+
kind: moduleKindSchema.optional()
|
|
994
|
+
}).default({}),
|
|
995
|
+
offset: z.number().int().nonnegative().default(0),
|
|
996
|
+
limit: z.number().int().positive().default(64)
|
|
997
|
+
});
|
|
998
|
+
basisSchema = z.strictObject({
|
|
999
|
+
authority: applicationGraphEvidenceSchema.shape.authority,
|
|
1000
|
+
state: applicationGraphEvidenceSchema.shape.state,
|
|
1001
|
+
confidence: applicationGraphEvidenceSchema.shape.confidence
|
|
1002
|
+
});
|
|
1003
|
+
javascriptModuleReferenceSchema = z.strictObject({
|
|
1004
|
+
node_id: prefixedDigestSchema("jag_node"),
|
|
1005
|
+
kind: moduleKindSchema,
|
|
1006
|
+
path: z.string().nullable(),
|
|
1007
|
+
identity: applicationNodeIdentitySchema,
|
|
1008
|
+
retained_source_range_count: z.number().int().nonnegative(),
|
|
1009
|
+
basis: z.array(basisSchema).min(1)
|
|
1010
|
+
});
|
|
1011
|
+
})))();
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
//#endregion
|
|
1015
|
+
//#region dist/domain/analysisView/javascriptApplicationCoverage.js
|
|
1016
|
+
var javascriptApplicationSourceCoverageSchema, javascriptApplicationSourceCoverage;
|
|
1017
|
+
function init_javascriptApplicationCoverage() {
|
|
1018
|
+
return (init_javascriptApplicationCoverage = __esmMin((() => {
|
|
1019
|
+
init_javascriptApplicationEvidenceSchemas();
|
|
1020
|
+
init_javascriptSemanticGraphSchemas();
|
|
1021
|
+
init_javascriptSourceSelection();
|
|
1022
|
+
javascriptApplicationSourceCoverageSchema = z.strictObject({
|
|
1023
|
+
source_selection: javaScriptSourceSelectionSchema.exactOptional(),
|
|
1024
|
+
application: applicationCoverageSchema,
|
|
1025
|
+
semantic: javaScriptSemanticGraphInputSchema.shape.coverage.omit({ families: true }),
|
|
1026
|
+
application_unknown_count: z.number().int().nonnegative(),
|
|
1027
|
+
semantic_unknown_count: z.number().int().nonnegative()
|
|
1028
|
+
});
|
|
1029
|
+
javascriptApplicationSourceCoverage = (analysis) => {
|
|
1030
|
+
const { families: _families, ...semantic } = analysis.semantic_graph.coverage;
|
|
1031
|
+
return {
|
|
1032
|
+
...analysis.source_selection === undefined ? {} : { source_selection: analysis.source_selection },
|
|
1033
|
+
application: analysis.graph.coverage,
|
|
1034
|
+
semantic,
|
|
1035
|
+
application_unknown_count: analysis.graph.nodes.reduce((count, node) => count + Number(node.kind === "unknown"), 0),
|
|
1036
|
+
semantic_unknown_count: analysis.semantic_graph.unknowns.length
|
|
1037
|
+
};
|
|
1038
|
+
};
|
|
1039
|
+
})))();
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
//#endregion
|
|
1043
|
+
//#region dist/domain/analysisView/javascriptFactsView.js
|
|
1044
|
+
var propertyKeySchema, javascriptFactsViewRequestSchema, javascriptFactRowSchema, observationPath, projectJavaScriptFacts;
|
|
1045
|
+
function init_javascriptFactsView() {
|
|
1046
|
+
return (init_javascriptFactsView = __esmMin((() => {
|
|
1047
|
+
init_javascriptApplicationGraphSchemas();
|
|
1048
|
+
propertyKeySchema = applicationNodeObservationSchema.shape.properties.keyType;
|
|
1049
|
+
javascriptFactsViewRequestSchema = z.strictObject({
|
|
1050
|
+
kind: z.literal("javascript-facts"),
|
|
1051
|
+
where: z.strictObject({
|
|
1052
|
+
paths: z.array(z.string()).optional().describe("Exact Evidence artifact-path or source-range source strings. Omitted includes unknown locations; [] matches none. No filesystem lookup or path normalization."),
|
|
1053
|
+
kinds: z.array(applicationNodeSchema.shape.kind).optional()
|
|
1054
|
+
}).default({}),
|
|
1055
|
+
property_keys: z.array(propertyKeySchema).describe("Exact retained observation-property names to read; [] requests identities/provenance only. Missing properties remain omitted, distinct from retained null. No cross-observation merging or inferred values."),
|
|
1056
|
+
include_available_property_keys: z.boolean().default(false).describe("Opt into original property names for each returned observation, without unselected values. Use with property_keys: [] to discover fields before reading them."),
|
|
1057
|
+
offset: z.number().int().nonnegative().default(0),
|
|
1058
|
+
limit: z.number().int().positive().default(64)
|
|
1059
|
+
});
|
|
1060
|
+
javascriptFactRowSchema = applicationNodeSchema.pick({
|
|
1061
|
+
node_id: true,
|
|
1062
|
+
kind: true,
|
|
1063
|
+
identity: true
|
|
1064
|
+
}).extend(applicationNodeObservationSchema.pick({
|
|
1065
|
+
observation_id: true,
|
|
1066
|
+
source_map_reference: true,
|
|
1067
|
+
properties: true,
|
|
1068
|
+
evidence: true
|
|
1069
|
+
}).shape).extend({ available_property_keys: z.array(propertyKeySchema).exactOptional() });
|
|
1070
|
+
observationPath = (observation) => {
|
|
1071
|
+
const { location } = observation.evidence;
|
|
1072
|
+
if (!location.available) return null;
|
|
1073
|
+
if (location.value.kind === "artifact-path") return location.value.path;
|
|
1074
|
+
if (location.value.kind === "source-range") return location.value.source;
|
|
1075
|
+
return null;
|
|
1076
|
+
};
|
|
1077
|
+
projectJavaScriptFacts = (nodes, view) => {
|
|
1078
|
+
const paths = view.where.paths === undefined ? null : new Set(view.where.paths);
|
|
1079
|
+
const kinds = view.where.kinds === undefined ? null : new Set(view.where.kinds);
|
|
1080
|
+
if (paths?.size === 0 || kinds?.size === 0) return {
|
|
1081
|
+
rows: [],
|
|
1082
|
+
total: 0
|
|
1083
|
+
};
|
|
1084
|
+
const keys = [...new Set(view.property_keys)];
|
|
1085
|
+
const rows = [];
|
|
1086
|
+
let total = 0;
|
|
1087
|
+
for (const node of nodes) {
|
|
1088
|
+
if (kinds !== null && !kinds.has(node.kind)) continue;
|
|
1089
|
+
for (const observation of node.observations) {
|
|
1090
|
+
if (paths !== null) {
|
|
1091
|
+
const path = observationPath(observation);
|
|
1092
|
+
if (path === null || !paths.has(path)) continue;
|
|
1093
|
+
}
|
|
1094
|
+
total += 1;
|
|
1095
|
+
if (total <= view.offset || rows.length >= view.limit) continue;
|
|
1096
|
+
rows.push({
|
|
1097
|
+
node_id: node.node_id,
|
|
1098
|
+
kind: node.kind,
|
|
1099
|
+
identity: node.identity,
|
|
1100
|
+
observation_id: observation.observation_id,
|
|
1101
|
+
source_map_reference: observation.source_map_reference,
|
|
1102
|
+
...view.include_available_property_keys ? { available_property_keys: Object.keys(observation.properties).sort() } : {},
|
|
1103
|
+
properties: Object.fromEntries(keys.flatMap((key) => {
|
|
1104
|
+
const value = observation.properties[key];
|
|
1105
|
+
return value !== undefined && Object.hasOwn(observation.properties, key) ? [[key, value]] : [];
|
|
1106
|
+
})),
|
|
1107
|
+
evidence: observation.evidence
|
|
1108
|
+
});
|
|
1109
|
+
}
|
|
1110
|
+
}
|
|
1111
|
+
return {
|
|
1112
|
+
rows,
|
|
1113
|
+
total
|
|
1114
|
+
};
|
|
1115
|
+
};
|
|
1116
|
+
})))();
|
|
1117
|
+
}
|
|
1118
|
+
|
|
969
1119
|
//#endregion
|
|
970
1120
|
//#region dist/domain/analysisView/analysisViewErrors.js
|
|
971
1121
|
var INSPECT_ANALYSIS_VIEW_OPERATION, analysisViewInputError;
|
|
@@ -1533,12 +1683,23 @@ function init_binaryLayoutView() {
|
|
|
1533
1683
|
|
|
1534
1684
|
//#endregion
|
|
1535
1685
|
//#region dist/domain/analysisView/javascriptApplicationView.js
|
|
1536
|
-
|
|
1686
|
+
/** One owner for the module kinds and path semantics of every module view. */
|
|
1687
|
+
function* moduleEntries(nodes) {
|
|
1688
|
+
for (const node of nodes) {
|
|
1689
|
+
if (isModuleNode(node)) yield {
|
|
1690
|
+
node,
|
|
1691
|
+
path: javascriptModulePath(node)
|
|
1692
|
+
};
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
var OPERATION$1, inputError$1, jsIncompatible, javascriptModulePath, isModuleNode, modulePage, exportNames, nodeHashes, sourceRanges, moduleItem, moduleReference, javascriptCoverageUnknowns, parentFields$1, selectModule, projectJavaScriptApplicationView;
|
|
1537
1696
|
function init_javascriptApplicationView() {
|
|
1538
1697
|
return (init_javascriptApplicationView = __esmMin((() => {
|
|
1539
1698
|
init_analysisErrorCore();
|
|
1540
1699
|
init_jsonValue();
|
|
1541
1700
|
init_result();
|
|
1701
|
+
init_javascriptApplicationCoverage();
|
|
1702
|
+
init_javascriptFactsView();
|
|
1542
1703
|
init_analysisViewCoverage();
|
|
1543
1704
|
OPERATION$1 = "inspect_analysis_view";
|
|
1544
1705
|
inputError$1 = (issues) => new AnalysisInputError(OPERATION$1, undefined, issues);
|
|
@@ -1559,10 +1720,21 @@ function init_javascriptApplicationView() {
|
|
|
1559
1720
|
}
|
|
1560
1721
|
return null;
|
|
1561
1722
|
};
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1723
|
+
isModuleNode = (node) => node.kind === "javascript-asset" || node.kind === "javascript-module" || node.kind === "source-module";
|
|
1724
|
+
modulePage = (nodes, view) => {
|
|
1725
|
+
const entries = [];
|
|
1726
|
+
let total = 0;
|
|
1727
|
+
for (const entry of moduleEntries(nodes)) {
|
|
1728
|
+
if (view.where?.kind !== undefined && entry.node.kind !== view.where.kind) continue;
|
|
1729
|
+
if (view.where?.path !== undefined && entry.path !== view.where.path) continue;
|
|
1730
|
+
if (total >= view.offset && entries.length < view.limit) entries.push(entry);
|
|
1731
|
+
total += 1;
|
|
1732
|
+
}
|
|
1733
|
+
return {
|
|
1734
|
+
entries,
|
|
1735
|
+
total
|
|
1736
|
+
};
|
|
1737
|
+
};
|
|
1566
1738
|
exportNames = (node) => {
|
|
1567
1739
|
const names = new Set();
|
|
1568
1740
|
for (const observation of node.observations) {
|
|
@@ -1616,17 +1788,37 @@ function init_javascriptApplicationView() {
|
|
|
1616
1788
|
}
|
|
1617
1789
|
}))
|
|
1618
1790
|
});
|
|
1619
|
-
|
|
1620
|
-
|
|
1791
|
+
moduleReference = ({ node, path }) => {
|
|
1792
|
+
let ranges = 0;
|
|
1793
|
+
const support = new Map();
|
|
1794
|
+
for (const { evidence } of node.observations) {
|
|
1795
|
+
if (evidence.location.available && evidence.location.value.kind === "source-range") ranges += 1;
|
|
1796
|
+
const { authority, state, confidence } = evidence;
|
|
1797
|
+
support.set(`${authority}:${state}:${confidence}`, {
|
|
1798
|
+
authority,
|
|
1799
|
+
state,
|
|
1800
|
+
confidence
|
|
1801
|
+
});
|
|
1802
|
+
}
|
|
1803
|
+
return {
|
|
1804
|
+
node_id: node.node_id,
|
|
1805
|
+
kind: node.kind,
|
|
1806
|
+
path,
|
|
1807
|
+
identity: node.identity,
|
|
1808
|
+
retained_source_range_count: ranges,
|
|
1809
|
+
basis: [...support.values()]
|
|
1810
|
+
};
|
|
1811
|
+
};
|
|
1812
|
+
javascriptCoverageUnknowns = (coverage) => {
|
|
1621
1813
|
const unknowns = [];
|
|
1622
|
-
if (
|
|
1623
|
-
if (
|
|
1624
|
-
const applicationUnknowns =
|
|
1814
|
+
if (coverage.application.status !== "complete") unknowns.push(`graph.coverage.status is ${coverage.application.status}`);
|
|
1815
|
+
if (coverage.semantic.status !== "complete") unknowns.push(`semantic_graph.coverage.status is ${coverage.semantic.status}`);
|
|
1816
|
+
const applicationUnknowns = coverage.application_unknown_count;
|
|
1625
1817
|
if (applicationUnknowns > 0) unknowns.push(`${String(applicationUnknowns)} application graph unknowns remain in the parent Evidence.`);
|
|
1626
|
-
if (
|
|
1818
|
+
if (coverage.semantic_unknown_count > 0) unknowns.push(`${String(coverage.semantic_unknown_count)} semantic graph unknowns remain in the parent Evidence.`);
|
|
1627
1819
|
return unknowns;
|
|
1628
1820
|
};
|
|
1629
|
-
parentFields$1 = (parent, analysis) => {
|
|
1821
|
+
parentFields$1 = (parent, analysis, sourceCoverage) => {
|
|
1630
1822
|
const limitations = [
|
|
1631
1823
|
...analysis.limitations,
|
|
1632
1824
|
...analysis.graph.limitations,
|
|
@@ -1641,7 +1833,7 @@ function init_javascriptApplicationView() {
|
|
|
1641
1833
|
sha256: analysis.root_artifact_sha256
|
|
1642
1834
|
},
|
|
1643
1835
|
limitations: boundedViewMessages([...parent.limitations, ...limitations], parent.evidenceId, "limitations"),
|
|
1644
|
-
unknowns: boundedViewMessages(limitations, parent.evidenceId, "unknowns", javascriptCoverageUnknowns(
|
|
1836
|
+
unknowns: boundedViewMessages(limitations, parent.evidenceId, "unknowns", javascriptCoverageUnknowns(sourceCoverage))
|
|
1645
1837
|
};
|
|
1646
1838
|
};
|
|
1647
1839
|
selectModule = (modules, selector) => {
|
|
@@ -1690,38 +1882,65 @@ function init_javascriptApplicationView() {
|
|
|
1690
1882
|
return err(jsIncompatible("Module items are selected by exact path or node_id."));
|
|
1691
1883
|
};
|
|
1692
1884
|
projectJavaScriptApplicationView = (parent, analysis, view) => {
|
|
1693
|
-
if (view.kind !== "summary" && view.kind !== "item" && view.kind !== "page") return err(jsIncompatible("JavaScript application Evidence supports summary, module item
|
|
1694
|
-
const
|
|
1695
|
-
const
|
|
1696
|
-
if (view.kind === "
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1885
|
+
if (view.kind !== "summary" && view.kind !== "item" && view.kind !== "page" && view.kind !== "javascript" && view.kind !== "javascript-facts") return err(jsIncompatible("JavaScript application Evidence supports summary, module item/page, typed module references or selected JavaScript facts."));
|
|
1886
|
+
const sourceCoverage = javascriptApplicationSourceCoverage(analysis);
|
|
1887
|
+
const shared = parentFields$1(parent, analysis, sourceCoverage);
|
|
1888
|
+
if (view.kind === "javascript-facts") {
|
|
1889
|
+
const { rows, total } = projectJavaScriptFacts(analysis.graph.nodes, view);
|
|
1890
|
+
return ok({
|
|
1891
|
+
...shared,
|
|
1892
|
+
kind: "javascript-facts",
|
|
1893
|
+
view,
|
|
1894
|
+
rows,
|
|
1895
|
+
source_coverage: sourceCoverage,
|
|
1896
|
+
coverage: pageViewCoverage(view.offset, rows.length, total)
|
|
1897
|
+
});
|
|
1898
|
+
}
|
|
1899
|
+
if (view.kind === "javascript") {
|
|
1900
|
+
const { entries, total } = modulePage(analysis.graph.nodes, view);
|
|
1901
|
+
const rows = entries.map(moduleReference);
|
|
1902
|
+
return ok({
|
|
1903
|
+
...shared,
|
|
1904
|
+
kind: "javascript",
|
|
1905
|
+
view,
|
|
1906
|
+
rows,
|
|
1907
|
+
source_coverage: sourceCoverage,
|
|
1908
|
+
coverage: pageViewCoverage(view.offset, rows.length, total)
|
|
1909
|
+
});
|
|
1910
|
+
}
|
|
1911
|
+
if (view.kind === "summary") {
|
|
1912
|
+
const moduleCount = analysis.graph.nodes.reduce((count, node) => count + Number(isModuleNode(node)), 0);
|
|
1913
|
+
return ok({
|
|
1914
|
+
kind: "summary",
|
|
1915
|
+
view,
|
|
1916
|
+
summary: {
|
|
1917
|
+
input_path: analysis.input_path,
|
|
1918
|
+
format: analysis.format,
|
|
1919
|
+
root_artifact_sha256: analysis.root_artifact_sha256,
|
|
1920
|
+
...analysis.source_selection === undefined ? {} : { source_selection: analysis.source_selection },
|
|
1921
|
+
statistics: jsonObjectSchema.parse(analysis.statistics),
|
|
1922
|
+
electron: jsonObjectSchema.parse(analysis.summary),
|
|
1923
|
+
coverage: jsonObjectSchema.parse({
|
|
1924
|
+
application: analysis.graph.coverage,
|
|
1925
|
+
semantic: {
|
|
1926
|
+
...analysis.semantic_graph.coverage,
|
|
1927
|
+
families: analysis.semantic_graph.coverage.families.map(({ unknown_ids, ...family }) => ({
|
|
1928
|
+
...family,
|
|
1929
|
+
unknown_count: unknown_ids.length
|
|
1930
|
+
}))
|
|
1931
|
+
},
|
|
1932
|
+
application_unknowns: sourceCoverage.application_unknown_count,
|
|
1933
|
+
semantic_unknowns: sourceCoverage.semantic_unknown_count
|
|
1934
|
+
}),
|
|
1935
|
+
limitation_count: analysis.limitations.length
|
|
1936
|
+
},
|
|
1937
|
+
coverage: completeWithinViewCoverage(moduleCount, analysis.graph.nodes.length),
|
|
1938
|
+
...shared
|
|
1939
|
+
});
|
|
1940
|
+
}
|
|
1723
1941
|
if (view.kind === "item") {
|
|
1724
1942
|
if (view.collection !== "modules") return err(jsIncompatible("Section and symbol collections apply to inspect_binary_layout Evidence."));
|
|
1943
|
+
const modules = [...moduleEntries(analysis.graph.nodes)];
|
|
1725
1944
|
const selected = selectModule(modules, view.selector);
|
|
1726
1945
|
if (!selected.ok) return selected;
|
|
1727
1946
|
return ok({
|
|
@@ -1733,7 +1952,8 @@ function init_javascriptApplicationView() {
|
|
|
1733
1952
|
});
|
|
1734
1953
|
}
|
|
1735
1954
|
if (view.kind !== "page" || view.collection !== "modules") return err(jsIncompatible("Section and symbol collections apply to inspect_binary_layout Evidence."));
|
|
1736
|
-
const
|
|
1955
|
+
const { entries, total } = modulePage(analysis.graph.nodes, view);
|
|
1956
|
+
const items = entries.map(({ node, path }) => ({
|
|
1737
1957
|
node_id: node.node_id,
|
|
1738
1958
|
kind: node.kind,
|
|
1739
1959
|
path
|
|
@@ -1742,7 +1962,7 @@ function init_javascriptApplicationView() {
|
|
|
1742
1962
|
kind: "page",
|
|
1743
1963
|
view,
|
|
1744
1964
|
items,
|
|
1745
|
-
coverage: pageViewCoverage(view.offset, items.length,
|
|
1965
|
+
coverage: pageViewCoverage(view.offset, items.length, total),
|
|
1746
1966
|
...shared
|
|
1747
1967
|
});
|
|
1748
1968
|
};
|
|
@@ -1980,16 +2200,73 @@ function init_webNetworkCapture() {
|
|
|
1980
2200
|
})))();
|
|
1981
2201
|
}
|
|
1982
2202
|
|
|
2203
|
+
//#endregion
|
|
2204
|
+
//#region dist/domain/analysisView/analysisViewDataAdmission.js
|
|
2205
|
+
var MEMBER_BYTES, CONTAINER_BYTES, textBytes$1, admitAnalysisViewData;
|
|
2206
|
+
function init_analysisViewDataAdmission() {
|
|
2207
|
+
return (init_analysisViewDataAdmission = __esmMin((() => {
|
|
2208
|
+
init_analysisErrorCore();
|
|
2209
|
+
init_jsonValue();
|
|
2210
|
+
init_result();
|
|
2211
|
+
MEMBER_BYTES = 256;
|
|
2212
|
+
CONTAINER_BYTES = 512;
|
|
2213
|
+
textBytes$1 = (length) => 32 + length * 14;
|
|
2214
|
+
admitAnalysisViewData = (value, inline, reserve) => {
|
|
2215
|
+
const ancestors = new Set();
|
|
2216
|
+
const path = inline ? ["source", "evidence"] : ["source"];
|
|
2217
|
+
const invalid = () => err(new AnalysisInputError("inspect_analysis_view", undefined, [{
|
|
2218
|
+
path: [...path],
|
|
2219
|
+
reason: "invalid_value",
|
|
2220
|
+
message: "Parent data must contain bounded ordinary JSON data without cycles or accessors."
|
|
2221
|
+
}]));
|
|
2222
|
+
const visit = (item, depth) => {
|
|
2223
|
+
if (isProxy(item) || typeof item === "function") return invalid();
|
|
2224
|
+
if (depth > 1e3 + (inline ? 4 : 3) || typeof item === "object" && item !== null && ancestors.has(item)) return invalid();
|
|
2225
|
+
const member = reserve?.(MEMBER_BYTES + (inline && typeof item === "string" ? textBytes$1(item.length) : 0) + (typeof item === "object" && item !== null ? CONTAINER_BYTES : 0));
|
|
2226
|
+
if (member !== undefined && !member.ok) return member;
|
|
2227
|
+
if (typeof item !== "object" || item === null) return ok(undefined);
|
|
2228
|
+
ancestors.add(item);
|
|
2229
|
+
const child = (key) => {
|
|
2230
|
+
path.push(key);
|
|
2231
|
+
const descriptor = Object.getOwnPropertyDescriptor(item, key);
|
|
2232
|
+
const admitted = descriptor === undefined || !Object.hasOwn(descriptor, "value") ? invalid() : visit(descriptor.value, depth + 1);
|
|
2233
|
+
path.pop();
|
|
2234
|
+
return admitted;
|
|
2235
|
+
};
|
|
2236
|
+
if (Array.isArray(item)) {
|
|
2237
|
+
if (Object.getPrototypeOf(item) !== Array.prototype || Object.hasOwn(item, Symbol.iterator) || Object.hasOwn(item, "map") || Object.hasOwn(item, "constructor")) return invalid();
|
|
2238
|
+
for (let index = 0; index < item.length; index += 1) {
|
|
2239
|
+
const admitted = child(index);
|
|
2240
|
+
if (!admitted.ok) return admitted;
|
|
2241
|
+
}
|
|
2242
|
+
} else {
|
|
2243
|
+
const prototype = Object.getPrototypeOf(item);
|
|
2244
|
+
if (prototype !== Object.prototype && prototype !== null) return invalid();
|
|
2245
|
+
for (const key of Object.getOwnPropertyNames(item)) {
|
|
2246
|
+
const keyAdmission = inline ? reserve?.(textBytes$1(key.length)) : undefined;
|
|
2247
|
+
if (keyAdmission !== undefined && !keyAdmission.ok) return keyAdmission;
|
|
2248
|
+
const admitted = child(key);
|
|
2249
|
+
if (!admitted.ok) return admitted;
|
|
2250
|
+
}
|
|
2251
|
+
}
|
|
2252
|
+
ancestors.delete(item);
|
|
2253
|
+
return ok(undefined);
|
|
2254
|
+
};
|
|
2255
|
+
return visit(value, 0);
|
|
2256
|
+
};
|
|
2257
|
+
})))();
|
|
2258
|
+
}
|
|
2259
|
+
|
|
1983
2260
|
//#endregion
|
|
1984
2261
|
//#region dist/domain/analysisView/WebNetworkApiSurfaceAccumulator.js
|
|
1985
|
-
var requestSchema, responseSchema, contentSchema, MEDIA_TYPE_ESSENCE, mediaTypeEssence, GROUP_BYTES, SEGMENT_BYTES, ENTRY_BYTES, RECORD_SCRATCH_BYTES, SEGMENT_SCRATCH_BYTES, CAPTURE_CONTAINER_BYTES,
|
|
2262
|
+
var requestSchema, responseSchema, contentSchema, MEDIA_TYPE_ESSENCE, mediaTypeEssence, GROUP_BYTES, SEGMENT_BYTES, ENTRY_BYTES, RECORD_SCRATCH_BYTES, SEGMENT_SCRATCH_BYTES, CAPTURE_CONTAINER_BYTES, textBytes, segmentRule, WebNetworkApiSurfaceAccumulator;
|
|
1986
2263
|
function init_WebNetworkApiSurfaceAccumulator() {
|
|
1987
2264
|
return (init_WebNetworkApiSurfaceAccumulator = __esmMin((() => {
|
|
1988
2265
|
init_analysisErrorCore();
|
|
1989
2266
|
init_unicodeCodePointOrder();
|
|
1990
2267
|
init_recordedTransportUrl();
|
|
1991
2268
|
init_result();
|
|
1992
|
-
|
|
2269
|
+
init_analysisViewDataAdmission();
|
|
1993
2270
|
init_webNetworkCapture();
|
|
1994
2271
|
init_analysisViewCoverage();
|
|
1995
2272
|
requestSchema = z.object({ request: z.object({
|
|
@@ -2017,7 +2294,6 @@ function init_WebNetworkApiSurfaceAccumulator() {
|
|
|
2017
2294
|
RECORD_SCRATCH_BYTES = 512;
|
|
2018
2295
|
SEGMENT_SCRATCH_BYTES = 512;
|
|
2019
2296
|
CAPTURE_CONTAINER_BYTES = 512;
|
|
2020
|
-
CAPTURE_MEMBER_BYTES = 256;
|
|
2021
2297
|
textBytes = (length) => 32 + length * 14;
|
|
2022
2298
|
segmentRule = (value) => {
|
|
2023
2299
|
if (/^[0-9]+$/u.test(value)) return "numeric";
|
|
@@ -2058,46 +2334,11 @@ function init_WebNetworkApiSurfaceAccumulator() {
|
|
|
2058
2334
|
}
|
|
2059
2335
|
/** Reserve schema output and validation scratch while the borrowed parent stays live. */
|
|
2060
2336
|
admitCaptureClone(value) {
|
|
2061
|
-
return
|
|
2337
|
+
return admitAnalysisViewData(value, false, (bytes) => this.#retain(bytes) ? ok(undefined) : this.#overBudget());
|
|
2062
2338
|
}
|
|
2063
2339
|
/** Admit the complete portable envelope before cloning or authenticating it. */
|
|
2064
2340
|
admitInlineEvidence(value) {
|
|
2065
|
-
return
|
|
2066
|
-
}
|
|
2067
|
-
#admitCaptureValue(value, ancestors, depth, inline) {
|
|
2068
|
-
if (depth > 1e3 + (inline ? 4 : 3) || typeof value === "object" && value !== null && ancestors.has(value)) return this.#invalidCapture();
|
|
2069
|
-
if (!this.#retain(CAPTURE_MEMBER_BYTES)) return this.#overBudget();
|
|
2070
|
-
if (inline && typeof value === "string" && !this.#retain(textBytes(value.length))) return this.#overBudget();
|
|
2071
|
-
if (typeof value !== "object" || value === null) return ok(undefined);
|
|
2072
|
-
if (!this.#retain(CAPTURE_CONTAINER_BYTES)) return this.#overBudget();
|
|
2073
|
-
ancestors.add(value);
|
|
2074
|
-
if (Array.isArray(value)) {
|
|
2075
|
-
for (let index = 0; index < value.length; index += 1) {
|
|
2076
|
-
const descriptor = Object.getOwnPropertyDescriptor(value, index);
|
|
2077
|
-
if (descriptor === undefined || !Object.hasOwn(descriptor, "value")) return this.#invalidCapture();
|
|
2078
|
-
const admitted = this.#admitCaptureValue(descriptor.value, ancestors, depth + 1, inline);
|
|
2079
|
-
if (!admitted.ok) return admitted;
|
|
2080
|
-
}
|
|
2081
|
-
} else {
|
|
2082
|
-
const prototype = Object.getPrototypeOf(value);
|
|
2083
|
-
if (prototype !== Object.prototype && prototype !== null) return this.#invalidCapture();
|
|
2084
|
-
for (const key of Object.getOwnPropertyNames(value)) {
|
|
2085
|
-
if (inline && !this.#retain(textBytes(key.length))) return this.#overBudget();
|
|
2086
|
-
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
2087
|
-
if (descriptor === undefined || !Object.hasOwn(descriptor, "value")) return this.#invalidCapture();
|
|
2088
|
-
const admitted = this.#admitCaptureValue(descriptor.value, ancestors, depth + 1, inline);
|
|
2089
|
-
if (!admitted.ok) return admitted;
|
|
2090
|
-
}
|
|
2091
|
-
}
|
|
2092
|
-
ancestors.delete(value);
|
|
2093
|
-
return ok(undefined);
|
|
2094
|
-
}
|
|
2095
|
-
#invalidCapture() {
|
|
2096
|
-
return err(new AnalysisInputError("inspect_analysis_view", undefined, [{
|
|
2097
|
-
path: ["source"],
|
|
2098
|
-
reason: "invalid_value",
|
|
2099
|
-
message: "Parent capture must contain bounded ordinary JSON data without cycles or accessors."
|
|
2100
|
-
}]));
|
|
2341
|
+
return admitAnalysisViewData(value, true, (bytes) => this.#retain(bytes) ? ok(undefined) : this.#overBudget());
|
|
2101
2342
|
}
|
|
2102
2343
|
addLimitations(limitations) {
|
|
2103
2344
|
for (const limitation of limitations) {
|
|
@@ -2861,7 +3102,6 @@ function init_artifactInventoryView() {
|
|
|
2861
3102
|
init_canonicalOrdering();
|
|
2862
3103
|
init_result();
|
|
2863
3104
|
init_artifactInventoryEvidence();
|
|
2864
|
-
init_artifactInspection();
|
|
2865
3105
|
init_analysisViewCoverage();
|
|
2866
3106
|
inputError = (message) => new AnalysisInputError("inspect_analysis_view", undefined, [{
|
|
2867
3107
|
path: ["source"],
|
|
@@ -2875,18 +3115,11 @@ function init_artifactInventoryView() {
|
|
|
2875
3115
|
evidenceIds: [parent.evidenceId],
|
|
2876
3116
|
inspection: null
|
|
2877
3117
|
});
|
|
2878
|
-
const
|
|
2879
|
-
for (const step of inspection.substeps) {
|
|
2880
|
-
if (step.evidence_id !== step.evidence.evidence_id || step.evidence.operation !== step.operation) throw new TypeError("Inspection substep identity differs from its source Evidence");
|
|
2881
|
-
}
|
|
2882
|
-
const parsed = parseArtifactInventoryEvidence(inspection.substeps.map(({ evidence }) => evidence));
|
|
2883
|
-
const manifest = parsed.inventory.manifest;
|
|
2884
|
-
validateArtifactInventorySubject(parent.subject ?? null, manifest);
|
|
2885
|
-
if (inspection.subject.manifest_id !== manifest.manifest_id || inspection.subject.root_artifact_id !== manifest.root_artifact_id || inspection.subject.root_sha256 !== manifest.root_sha256 || inspection.subject.root_format !== manifest.root_format) throw new TypeError("Inspection subject differs from its inventory manifest");
|
|
3118
|
+
const parsed = parseArtifactInspectionInventoryResult(parent.normalizedResult, parent.subject ?? null);
|
|
2886
3119
|
return ok({
|
|
2887
3120
|
inventory: parsed.inventory,
|
|
2888
|
-
evidenceIds: parsed.
|
|
2889
|
-
inspection
|
|
3121
|
+
evidenceIds: parsed.evidenceIds,
|
|
3122
|
+
inspection: parsed.inspection
|
|
2890
3123
|
});
|
|
2891
3124
|
} catch (cause) {
|
|
2892
3125
|
if (!(cause instanceof TypeError) && !(cause instanceof z.ZodError)) throw cause;
|
|
@@ -3119,6 +3352,8 @@ function init_managedMemberView() {
|
|
|
3119
3352
|
]);
|
|
3120
3353
|
nullableCount = z.number().int().nonnegative().nullable();
|
|
3121
3354
|
managedMemberSummarySchema = z.strictObject({
|
|
3355
|
+
signature_resolution: member.signature_resolution,
|
|
3356
|
+
nesting_read: member.nesting_read,
|
|
3122
3357
|
artifact: member.artifact,
|
|
3123
3358
|
module: member.module,
|
|
3124
3359
|
metadata: member.metadata,
|
|
@@ -3142,6 +3377,8 @@ function init_managedMemberView() {
|
|
|
3142
3377
|
})
|
|
3143
3378
|
});
|
|
3144
3379
|
managedMembersViewContextSchema = z.strictObject({
|
|
3380
|
+
signature_resolution: member.signature_resolution,
|
|
3381
|
+
nesting_read: member.nesting_read,
|
|
3145
3382
|
identity_scope: member.identity_scope,
|
|
3146
3383
|
selection: member.selection.unwrap(),
|
|
3147
3384
|
source_metadata_status: member.metadata.shape.status,
|
|
@@ -3244,6 +3481,8 @@ function init_managedMemberView() {
|
|
|
3244
3481
|
view,
|
|
3245
3482
|
page,
|
|
3246
3483
|
...shared,
|
|
3484
|
+
signature_resolution: report.signature_resolution,
|
|
3485
|
+
nesting_read: report.nesting_read,
|
|
3247
3486
|
identity_scope: report.identity_scope,
|
|
3248
3487
|
selection: report.selection,
|
|
3249
3488
|
source_metadata_status: report.metadata.status,
|
|
@@ -5115,9 +5354,12 @@ function init_dartAotView() {
|
|
|
5115
5354
|
|
|
5116
5355
|
//#endregion
|
|
5117
5356
|
//#region dist/domain/analysisView/analysisView.js
|
|
5118
|
-
var summaryViewSchema, facetViewSchema, indexSelectorSchema, nameSelectorSchema, pathSelectorSchema, nodeIdSelectorSchema, moduleItemViewSchema, sectionOrSymbolItemViewSchema, itemViewSchema, pageViewSchema, nativeViewSchema, inventoryViewSchema, analysisViewRequestSchema, inlineEvidenceInputSchema, analysisViewSourceSchema, inspectAnalysisViewInputSchema, coverageSchema, artifactSchema, layoutSummarySchema, javascriptSummarySchema, inventorySummarySchema, viewResultBase, summaryViewResultBase, binaryLayoutSummaryViewResultSchema, javascriptApplicationSummaryViewResultSchema, artifactInventorySummaryViewResultSchema, wasmArtifactSummaryViewResultSchema, machoSummaryViewResultSchema, interfaceBuilderSummaryViewResultSchema, evmInterfaceSummaryViewResultSchema, managedArtifactSummaryViewResultSchema, managedMemberSummaryViewResultSchema, webNetworkCaptureSummaryViewResultSchema, androidPackageSummaryViewResultSchema, pcapCaptureSummaryViewResultSchema, dartAotSummaryViewResultSchema, analysisViewResultSchema, sealAnalysisView, parentDigest, parseJavaScriptParent, unsupportedParent, parentArtifactPath, retainedViewProjectors, projectAnalysisView;
|
|
5357
|
+
var summaryViewSchema, facetViewSchema, indexSelectorSchema, nameSelectorSchema, pathSelectorSchema, nodeIdSelectorSchema, moduleItemViewSchema, sectionOrSymbolItemViewSchema, itemViewSchema, pageViewSchema, nativeViewSchema, inventoryViewSchema, analysisViewRequestSchema, inlineEvidenceInputSchema, analysisViewSourceSchema, inspectAnalysisViewInputSchema, coverageSchema, artifactSchema, layoutSummarySchema, javascriptSummarySchema, inventorySummarySchema, viewResultBase, summaryViewResultBase, binaryLayoutSummaryViewResultSchema, javascriptApplicationSummaryViewResultSchema, javascriptModuleReferencesViewResultSchema, javascriptFactsViewResultSchema, artifactInventorySummaryViewResultSchema, wasmArtifactSummaryViewResultSchema, machoSummaryViewResultSchema, interfaceBuilderSummaryViewResultSchema, evmInterfaceSummaryViewResultSchema, managedArtifactSummaryViewResultSchema, managedMemberSummaryViewResultSchema, webNetworkCaptureSummaryViewResultSchema, androidPackageSummaryViewResultSchema, pcapCaptureSummaryViewResultSchema, dartAotSummaryViewResultSchema, analysisViewResultSchema, sealAnalysisView, parentDigest, parseJavaScriptParent, unsupportedParent, parentArtifactPath, retainedViewProjectors, projectAnalysisView;
|
|
5119
5358
|
function init_analysisView() {
|
|
5120
5359
|
return (init_analysisView = __esmMin((() => {
|
|
5360
|
+
init_javascriptModuleReferences();
|
|
5361
|
+
init_javascriptApplicationCoverage();
|
|
5362
|
+
init_javascriptFactsView();
|
|
5121
5363
|
init_javascriptSourceSelection();
|
|
5122
5364
|
init_analysisErrorCore();
|
|
5123
5365
|
init_analysisViewErrors();
|
|
@@ -5227,6 +5469,8 @@ function init_analysisView() {
|
|
|
5227
5469
|
facetViewSchema,
|
|
5228
5470
|
itemViewSchema,
|
|
5229
5471
|
pageViewSchema,
|
|
5472
|
+
javascriptModuleReferencesRequestSchema,
|
|
5473
|
+
javascriptFactsViewRequestSchema,
|
|
5230
5474
|
nativeViewSchema,
|
|
5231
5475
|
inventoryViewSchema,
|
|
5232
5476
|
wasmViewRequestSchema,
|
|
@@ -5373,6 +5617,22 @@ function init_analysisView() {
|
|
|
5373
5617
|
summary: javascriptSummarySchema,
|
|
5374
5618
|
parent_operation: z.literal("analyze_javascript_application")
|
|
5375
5619
|
});
|
|
5620
|
+
javascriptModuleReferencesViewResultSchema = z.strictObject({
|
|
5621
|
+
...viewResultBase,
|
|
5622
|
+
kind: z.literal("javascript"),
|
|
5623
|
+
view: javascriptModuleReferencesRequestSchema,
|
|
5624
|
+
parent_operation: z.literal("analyze_javascript_application"),
|
|
5625
|
+
rows: z.array(javascriptModuleReferenceSchema),
|
|
5626
|
+
source_coverage: javascriptApplicationSourceCoverageSchema
|
|
5627
|
+
});
|
|
5628
|
+
javascriptFactsViewResultSchema = z.strictObject({
|
|
5629
|
+
...viewResultBase,
|
|
5630
|
+
kind: z.literal("javascript-facts"),
|
|
5631
|
+
view: javascriptFactsViewRequestSchema,
|
|
5632
|
+
parent_operation: z.literal("analyze_javascript_application"),
|
|
5633
|
+
rows: z.array(javascriptFactRowSchema),
|
|
5634
|
+
source_coverage: javascriptApplicationSourceCoverageSchema
|
|
5635
|
+
});
|
|
5376
5636
|
artifactInventorySummaryViewResultSchema = z.strictObject({
|
|
5377
5637
|
...summaryViewResultBase,
|
|
5378
5638
|
parent_operation: z.enum(["inspect_artifact", "inventory_artifact"]),
|
|
@@ -5499,6 +5759,8 @@ function init_analysisView() {
|
|
|
5499
5759
|
items: z.array(jsonValueSchema),
|
|
5500
5760
|
...viewResultBase
|
|
5501
5761
|
}),
|
|
5762
|
+
javascriptModuleReferencesViewResultSchema,
|
|
5763
|
+
javascriptFactsViewResultSchema,
|
|
5502
5764
|
z.strictObject({
|
|
5503
5765
|
kind: z.literal("native"),
|
|
5504
5766
|
view: nativeViewSchema,
|
|
@@ -6425,7 +6687,8 @@ function init_rawBinary() {
|
|
|
6425
6687
|
"x86_64",
|
|
6426
6688
|
"arm",
|
|
6427
6689
|
"arm64",
|
|
6428
|
-
"6502"
|
|
6690
|
+
"6502",
|
|
6691
|
+
"m68k"
|
|
6429
6692
|
];
|
|
6430
6693
|
binaryArchitectureSchema = z.enum(BINARY_ARCHITECTURES);
|
|
6431
6694
|
RAW_BINARY_ENTRY_POINT = /^0x[0-9A-Fa-f]{1,16}$/u;
|
|
@@ -6440,11 +6703,11 @@ function init_rawBinary() {
|
|
|
6440
6703
|
});
|
|
6441
6704
|
};
|
|
6442
6705
|
validateRawBinaryLength = (length) => Number.isSafeInteger(length) && length >= 1 ? ok(null) : err("raw-binary requires at least one file byte");
|
|
6443
|
-
addressWidth = (architecture) => architecture === "6502" ? 65535n : architecture === "x86" || architecture === "arm" ? 4294967295n : 18446744073709551615n;
|
|
6706
|
+
addressWidth = (architecture) => architecture === "6502" ? 65535n : architecture === "x86" || architecture === "arm" || architecture === "m68k" ? 4294967295n : 18446744073709551615n;
|
|
6444
6707
|
admitRawBinary = (input) => {
|
|
6445
6708
|
const architecture = binaryArchitectureSchema.safeParse(input.architecture);
|
|
6446
6709
|
if (!architecture.success) return err({
|
|
6447
|
-
reason: "raw-binary format requires architecture (x86, x86_64, arm, arm64, or
|
|
6710
|
+
reason: "raw-binary format requires architecture (x86, x86_64, arm, arm64, 6502, or m68k)",
|
|
6448
6711
|
constraint: "load_selection_rejected"
|
|
6449
6712
|
});
|
|
6450
6713
|
if (typeof input.entryPoint !== "string") return err({
|
|
@@ -6460,6 +6723,10 @@ function init_rawBinary() {
|
|
|
6460
6723
|
reason: `raw-binary ${architecture.data} entry_point ${entry.value.canonical} must be 4-byte aligned`,
|
|
6461
6724
|
constraint: "load_selection_rejected"
|
|
6462
6725
|
});
|
|
6726
|
+
if (architecture.data === "m68k" && entry.value.value % 2n !== 0n) return err({
|
|
6727
|
+
reason: `raw-binary m68k entry_point ${entry.value.canonical} must be 2-byte aligned`,
|
|
6728
|
+
constraint: "load_selection_rejected"
|
|
6729
|
+
});
|
|
6463
6730
|
const length = validateRawBinaryLength(input.fileBytes);
|
|
6464
6731
|
if (!length.ok) return err({
|
|
6465
6732
|
reason: length.error,
|
|
@@ -6848,6 +7115,23 @@ function init_bytePattern() {
|
|
|
6848
7115
|
code: "custom",
|
|
6849
7116
|
message: "Byte search coverage and continuation disagree"
|
|
6850
7117
|
});
|
|
7118
|
+
const ranges = value.searched.blocks.map((block) => ({
|
|
7119
|
+
segment: block.segment,
|
|
7120
|
+
start: addressCoordinate(block.start),
|
|
7121
|
+
end: addressCoordinate(block.end)
|
|
7122
|
+
}));
|
|
7123
|
+
for (const [index, match] of value.matches.entries()) {
|
|
7124
|
+
const address = addressCoordinate(match.address);
|
|
7125
|
+
if (address === null || !ranges.some((range) => range.segment === match.segment && range.start !== null && range.end !== null && range.start.space === address.space && range.end.space === address.space && range.start.offset <= address.offset && address.offset <= range.end.offset)) context.addIssue({
|
|
7126
|
+
code: "custom",
|
|
7127
|
+
path: [
|
|
7128
|
+
"matches",
|
|
7129
|
+
index,
|
|
7130
|
+
"address"
|
|
7131
|
+
],
|
|
7132
|
+
message: "Byte match must lie within reported searched coverage in the same segment and address space"
|
|
7133
|
+
});
|
|
7134
|
+
}
|
|
6851
7135
|
});
|
|
6852
7136
|
})))();
|
|
6853
7137
|
}
|
|
@@ -7004,7 +7288,7 @@ function init_nativeMetadataRecovery() {
|
|
|
7004
7288
|
|
|
7005
7289
|
//#endregion
|
|
7006
7290
|
//#region dist/domain/native/nativeLoadImage.js
|
|
7007
|
-
var integer, digest, hexBytes, address, nativeLoadImageObservationSchema, nativeLoadImageCheckSchema, nativeLoadImageSchema;
|
|
7291
|
+
var integer, digest, hexBytes, address, nativeLoadImageObservationSchema, nativeLoadImageCheckSchema, nativeLoadImageSchema, nativeLoadImagePartialObservationSchema;
|
|
7008
7292
|
function init_nativeLoadImage() {
|
|
7009
7293
|
return (init_nativeLoadImage = __esmMin((() => {
|
|
7010
7294
|
init_nativeMetadataRecovery();
|
|
@@ -7109,6 +7393,15 @@ function init_nativeLoadImage() {
|
|
|
7109
7393
|
limitations: z.array(z.string().min(1))
|
|
7110
7394
|
})
|
|
7111
7395
|
]);
|
|
7396
|
+
nativeLoadImagePartialObservationSchema = z.discriminatedUnion("stage", [z.strictObject({
|
|
7397
|
+
kind: z.literal("native-load-image"),
|
|
7398
|
+
stage: z.literal("measured"),
|
|
7399
|
+
observations: nativeLoadImageObservationSchema
|
|
7400
|
+
}), z.strictObject({
|
|
7401
|
+
kind: z.literal("native-load-image"),
|
|
7402
|
+
stage: z.literal("completed"),
|
|
7403
|
+
result: nativeLoadImageSchema
|
|
7404
|
+
})]);
|
|
7112
7405
|
})))();
|
|
7113
7406
|
}
|
|
7114
7407
|
|
|
@@ -7249,25 +7542,65 @@ function init_processTraceEvaluation() {
|
|
|
7249
7542
|
locations: [...input.locations]
|
|
7250
7543
|
}
|
|
7251
7544
|
});
|
|
7252
|
-
evaluateFiniteTrace = (ids,
|
|
7253
|
-
|
|
7254
|
-
|
|
7545
|
+
evaluateFiniteTrace = (ids, language) => {
|
|
7546
|
+
let bestPrefix = -1;
|
|
7547
|
+
const bestEventIds = new Set();
|
|
7548
|
+
const bestLocationIndexes = new Set();
|
|
7549
|
+
const recordMismatch = (offset, missing, unexpected) => {
|
|
7550
|
+
if (offset > bestPrefix) {
|
|
7551
|
+
bestPrefix = offset;
|
|
7552
|
+
bestEventIds.clear();
|
|
7553
|
+
bestLocationIndexes.clear();
|
|
7554
|
+
}
|
|
7555
|
+
if (offset !== bestPrefix) return;
|
|
7556
|
+
for (const eventId of missing) bestEventIds.add(eventId);
|
|
7557
|
+
for (const { id, index } of unexpected) {
|
|
7558
|
+
bestEventIds.add(id);
|
|
7559
|
+
bestLocationIndexes.add(index);
|
|
7560
|
+
}
|
|
7561
|
+
};
|
|
7562
|
+
for (const variant of language.variants) {
|
|
7255
7563
|
let offset = 0;
|
|
7256
|
-
let
|
|
7564
|
+
let mismatched = false;
|
|
7257
7565
|
for (const token of variant.trace) {
|
|
7258
|
-
|
|
7259
|
-
|
|
7260
|
-
|
|
7261
|
-
|
|
7566
|
+
const expected = typeof token === "string" ? [token] : token.unordered;
|
|
7567
|
+
const actual = ids.slice(offset, offset + expected.length);
|
|
7568
|
+
const remaining = new Map();
|
|
7569
|
+
for (const eventId of expected) remaining.set(eventId, (remaining.get(eventId) ?? 0) + 1);
|
|
7570
|
+
const unexpected = [];
|
|
7571
|
+
for (const [index, eventId] of actual.entries()) {
|
|
7572
|
+
const count = remaining.get(eventId) ?? 0;
|
|
7573
|
+
if (count === 0) unexpected.push({
|
|
7574
|
+
id: eventId,
|
|
7575
|
+
index: offset + index
|
|
7576
|
+
});
|
|
7577
|
+
else if (count === 1) remaining.delete(eventId);
|
|
7578
|
+
else remaining.set(eventId, count - 1);
|
|
7262
7579
|
}
|
|
7263
|
-
const
|
|
7264
|
-
|
|
7265
|
-
|
|
7266
|
-
|
|
7580
|
+
const missing = [...remaining].flatMap(([eventId, count]) => Array.from({ length: count }, () => eventId));
|
|
7581
|
+
if (missing.length > 0 || unexpected.length > 0 || actual.length < expected.length) {
|
|
7582
|
+
recordMismatch(offset, missing, unexpected);
|
|
7583
|
+
mismatched = true;
|
|
7584
|
+
break;
|
|
7585
|
+
}
|
|
7586
|
+
offset += expected.length;
|
|
7267
7587
|
}
|
|
7268
|
-
if (
|
|
7588
|
+
if (mismatched) continue;
|
|
7589
|
+
if (offset === ids.length) return {
|
|
7590
|
+
status: "pass",
|
|
7591
|
+
variant: variant.id
|
|
7592
|
+
};
|
|
7593
|
+
const unexpected = ids[offset];
|
|
7594
|
+
recordMismatch(offset, [], unexpected === undefined ? [] : [{
|
|
7595
|
+
id: unexpected,
|
|
7596
|
+
index: offset
|
|
7597
|
+
}]);
|
|
7269
7598
|
}
|
|
7270
|
-
return
|
|
7599
|
+
return {
|
|
7600
|
+
status: "fail",
|
|
7601
|
+
eventIds: [...bestEventIds],
|
|
7602
|
+
locationIndexes: [...bestLocationIndexes]
|
|
7603
|
+
};
|
|
7271
7604
|
};
|
|
7272
7605
|
collectRecords = (capture, sources) => {
|
|
7273
7606
|
const records = [];
|
|
@@ -7427,18 +7760,21 @@ function init_processTraceEvaluation() {
|
|
|
7427
7760
|
if (invalidCardinality !== null) return invalidCardinality;
|
|
7428
7761
|
if (specification.language.kind === "partial_order") return evaluatePartialOrder(trace, specification.language);
|
|
7429
7762
|
const ids = trace.rawTrace.map(({ event_id }) => event_id);
|
|
7430
|
-
const
|
|
7431
|
-
return
|
|
7763
|
+
const evaluation = evaluateFiniteTrace(ids, specification.language);
|
|
7764
|
+
return evaluation.status === "fail" ? failure({
|
|
7432
7765
|
kind: "trace",
|
|
7433
7766
|
message: "Observed events do not match any finite trace variant.",
|
|
7434
|
-
eventIds:
|
|
7435
|
-
locations:
|
|
7767
|
+
eventIds: evaluation.eventIds,
|
|
7768
|
+
locations: evaluation.locationIndexes.flatMap((index) => {
|
|
7769
|
+
const location = trace.rawTrace[index]?.location;
|
|
7770
|
+
return location === undefined ? [] : [location];
|
|
7771
|
+
}),
|
|
7436
7772
|
rawTrace: trace.rawTrace
|
|
7437
7773
|
}) : {
|
|
7438
7774
|
result: {
|
|
7439
7775
|
status: "pass",
|
|
7440
|
-
matched_variant: variant,
|
|
7441
|
-
satisfied_constraints: [`variant:${variant}`],
|
|
7776
|
+
matched_variant: evaluation.variant,
|
|
7777
|
+
satisfied_constraints: [`variant:${evaluation.variant}`],
|
|
7442
7778
|
raw_trace: trace.rawTrace
|
|
7443
7779
|
},
|
|
7444
7780
|
diagnostic: null
|
|
@@ -7489,7 +7825,7 @@ function init_processTraceDimensionProjection() {
|
|
|
7489
7825
|
case "terminal": return (!any(left.frames, right.frames) || sources.has("terminal_raw")) && (!any(left.rendered_frames, right.rendered_frames) || sources.has("terminal_rendered"));
|
|
7490
7826
|
case "interaction": return sources.has("interaction");
|
|
7491
7827
|
case "exit": return sources.has("lifecycle");
|
|
7492
|
-
case "filesystem": return
|
|
7828
|
+
case "filesystem": return sources.has("filesystem");
|
|
7493
7829
|
case "process": return sources.has("process");
|
|
7494
7830
|
}
|
|
7495
7831
|
};
|
|
@@ -7720,7 +8056,7 @@ function init_processComparison() {
|
|
|
7720
8056
|
const exact = dimensions[dimension];
|
|
7721
8057
|
if (!covered.has(dimension)) return exact;
|
|
7722
8058
|
if (trace.verdict === "nonconforming") return exact;
|
|
7723
|
-
if (trace.verdict === "different") return traceShowsDifference &&
|
|
8059
|
+
if (trace.verdict === "different") return traceShowsDifference && attributed.has(dimension) ? "changed" : exact;
|
|
7724
8060
|
if (trace.verdict === "unknown" && [
|
|
7725
8061
|
"changed",
|
|
7726
8062
|
"added",
|
|
@@ -8022,6 +8358,7 @@ function init_dylibResolutionFindings() {
|
|
|
8022
8358
|
var ROOT_RELATIVE_PATH, rootRelativePathSchema, dylibResolutionInputSchema, dependencyCommandSchema, dependencySchema, machoSliceSchema, candidateSchema, edgeSchema, findingSchema$1, imageSchema, dylibResolutionResultSchema, candidateTemplates, evaluateCandidate, platformLoadability, imageLoadabilityForPlatform, isKnownPlatform, imageFacts, resolution, resolveDependency, traceProcess, traceDylibLoading, withoutDependencies, compare;
|
|
8023
8359
|
function init_dylibResolution() {
|
|
8024
8360
|
return (init_dylibResolution = __esmMin((() => {
|
|
8361
|
+
init_analysisErrorCore();
|
|
8025
8362
|
init_dyldPaths();
|
|
8026
8363
|
init_digests();
|
|
8027
8364
|
init_dyldEnvironment();
|
|
@@ -8347,7 +8684,7 @@ function init_dylibResolution() {
|
|
|
8347
8684
|
if (rootSlice.install_name !== null && rootSlice.install_name.startsWith("@rpath/")) context.byInstallName.set(rootSlice.install_name, context.root);
|
|
8348
8685
|
const pending = [context.root];
|
|
8349
8686
|
while (pending.length > 0) {
|
|
8350
|
-
signal?.
|
|
8687
|
+
if (signal?.aborted) throw new AnalysisCancelledError("trace_dylib_resolution", { cause: signal.reason });
|
|
8351
8688
|
const loader = pending.pop() ?? "";
|
|
8352
8689
|
const current = context.loaded.get(loader);
|
|
8353
8690
|
if (current === undefined) continue;
|
|
@@ -8459,6 +8796,109 @@ function init_dylibResolution() {
|
|
|
8459
8796
|
})))();
|
|
8460
8797
|
}
|
|
8461
8798
|
|
|
8799
|
+
//#endregion
|
|
8800
|
+
//#region dist/domain/apple/plistValue.js
|
|
8801
|
+
var MAX_PLIST_DEPTH, unknownDateLimitation, nonFiniteRealLimitation, unknownRealLimitation, negativeZeroReal, negativeZeroRealLimitation, projectPlistValue;
|
|
8802
|
+
function init_plistValue() {
|
|
8803
|
+
return (init_plistValue = __esmMin((() => {
|
|
8804
|
+
init_plistNumbers();
|
|
8805
|
+
MAX_PLIST_DEPTH = 128;
|
|
8806
|
+
unknownDateLimitation = (count) => `${String(count)} date value(s) are reported as { "$plist_type": "date", "iso8601": null } because the decoder could not represent them, such as XML dates with years beyond 9999 or negative years, or dates outside the JavaScript date range.`;
|
|
8807
|
+
nonFiniteRealLimitation = (count) => `${String(count)} non-finite real value(s) are reported as { "$plist_type": "real", "value": "<spelling>" } using canonical numeric labels nan, +infinity or -infinity because a JSON number cannot carry them.`;
|
|
8808
|
+
unknownRealLimitation = (count) => `${String(count)} numeric value(s) are reported as { "$plist_type": "real", "value": null } because XML numeric decoding could not establish their value identity.`;
|
|
8809
|
+
negativeZeroReal = () => ({
|
|
8810
|
+
$plist_type: "real",
|
|
8811
|
+
value: "-0"
|
|
8812
|
+
});
|
|
8813
|
+
negativeZeroRealLimitation = (count) => `${String(count)} negative-zero real value(s) are reported as { "$plist_type": "real", "value": "-0" } because a JSON number cannot carry the sign of zero.`;
|
|
8814
|
+
projectPlistValue = (value, onWrappedScalar) => {
|
|
8815
|
+
let nonFiniteRealCount = 0;
|
|
8816
|
+
let unknownRealCount = 0;
|
|
8817
|
+
let negativeZeroRealCount = 0;
|
|
8818
|
+
let unknownDateCount = 0;
|
|
8819
|
+
const scalar = (value) => {
|
|
8820
|
+
onWrappedScalar?.(value);
|
|
8821
|
+
return value;
|
|
8822
|
+
};
|
|
8823
|
+
const project = (item, depth) => {
|
|
8824
|
+
if (depth > 128) throw new RangeError(`Plist exceeds ${String(128)} nesting levels`);
|
|
8825
|
+
if (item !== null && typeof item === "object" && types.isProxy(item)) throw new TypeError("Plist values cannot contain proxies");
|
|
8826
|
+
if (item instanceof Uint8Array) return scalar({
|
|
8827
|
+
$plist_type: "data",
|
|
8828
|
+
base64: Buffer.from(item).toString("base64")
|
|
8829
|
+
});
|
|
8830
|
+
if (item instanceof UnknownPlistReal) {
|
|
8831
|
+
unknownRealCount += 1;
|
|
8832
|
+
return scalar({
|
|
8833
|
+
$plist_type: "real",
|
|
8834
|
+
value: null
|
|
8835
|
+
});
|
|
8836
|
+
}
|
|
8837
|
+
if (item instanceof Date) {
|
|
8838
|
+
if (!Number.isNaN(Date.prototype.getTime.call(item))) return scalar({
|
|
8839
|
+
$plist_type: "date",
|
|
8840
|
+
iso8601: Date.prototype.toISOString.call(item)
|
|
8841
|
+
});
|
|
8842
|
+
unknownDateCount += 1;
|
|
8843
|
+
return scalar({
|
|
8844
|
+
$plist_type: "date",
|
|
8845
|
+
iso8601: null
|
|
8846
|
+
});
|
|
8847
|
+
}
|
|
8848
|
+
if (typeof item === "number" && !Number.isFinite(item)) {
|
|
8849
|
+
nonFiniteRealCount += 1;
|
|
8850
|
+
const label = Number.isNaN(item) ? "nan" : item > 0 ? "+infinity" : "-infinity";
|
|
8851
|
+
return scalar({
|
|
8852
|
+
$plist_type: "real",
|
|
8853
|
+
value: label
|
|
8854
|
+
});
|
|
8855
|
+
}
|
|
8856
|
+
if (typeof item === "number" && Object.is(item, -0)) {
|
|
8857
|
+
negativeZeroRealCount += 1;
|
|
8858
|
+
return scalar(negativeZeroReal());
|
|
8859
|
+
}
|
|
8860
|
+
if (typeof item === "bigint") return scalar({
|
|
8861
|
+
$plist_type: "integer",
|
|
8862
|
+
decimal: item.toString()
|
|
8863
|
+
});
|
|
8864
|
+
if (Array.isArray(item)) {
|
|
8865
|
+
const result = [];
|
|
8866
|
+
for (let index = 0; index < item.length; index++) {
|
|
8867
|
+
const descriptor = Object.getOwnPropertyDescriptor(item, index);
|
|
8868
|
+
if (descriptor === undefined || !Object.hasOwn(descriptor, "value")) throw new TypeError("Plist arrays require dense data properties without accessors");
|
|
8869
|
+
result.push(project(descriptor.value, depth + 1));
|
|
8870
|
+
}
|
|
8871
|
+
return result;
|
|
8872
|
+
}
|
|
8873
|
+
if (item !== null && typeof item === "object") {
|
|
8874
|
+
const entries = [];
|
|
8875
|
+
for (const key of Reflect.ownKeys(item)) {
|
|
8876
|
+
const descriptor = Object.getOwnPropertyDescriptor(item, key);
|
|
8877
|
+
if (descriptor?.enumerable !== true) continue;
|
|
8878
|
+
if (typeof key !== "string" || !Object.hasOwn(descriptor, "value")) throw new TypeError("Plist dictionary entries require string keys and data properties");
|
|
8879
|
+
entries.push([key, project(descriptor.value, depth + 1)]);
|
|
8880
|
+
}
|
|
8881
|
+
return Object.fromEntries(entries);
|
|
8882
|
+
}
|
|
8883
|
+
return z.union([
|
|
8884
|
+
z.string(),
|
|
8885
|
+
z.number(),
|
|
8886
|
+
z.boolean(),
|
|
8887
|
+
z.null()
|
|
8888
|
+
]).parse(item);
|
|
8889
|
+
};
|
|
8890
|
+
const projected = project(value, 0);
|
|
8891
|
+
return {
|
|
8892
|
+
value: projected,
|
|
8893
|
+
nonFiniteRealCount,
|
|
8894
|
+
unknownRealCount,
|
|
8895
|
+
negativeZeroRealCount,
|
|
8896
|
+
unknownDateCount
|
|
8897
|
+
};
|
|
8898
|
+
};
|
|
8899
|
+
})))();
|
|
8900
|
+
}
|
|
8901
|
+
|
|
8462
8902
|
//#endregion
|
|
8463
8903
|
//#region dist/domain/apple/keyedArchive.js
|
|
8464
8904
|
var KeyedArchiveKindError, keyedArchiveInputSchema, linkSchema, keyedArchiveResultSchema, record, uid, archiverMismatch, projectKeyedArchive;
|
|
@@ -8466,6 +8906,8 @@ function init_keyedArchive() {
|
|
|
8466
8906
|
return (init_keyedArchive = __esmMin((() => {
|
|
8467
8907
|
init_analysisErrorCore();
|
|
8468
8908
|
init_jsonValue();
|
|
8909
|
+
init_localPath();
|
|
8910
|
+
init_plistValue();
|
|
8469
8911
|
KeyedArchiveKindError = class extends TypeError {
|
|
8470
8912
|
kind;
|
|
8471
8913
|
name = "KeyedArchiveKindError";
|
|
@@ -8475,7 +8917,7 @@ function init_keyedArchive() {
|
|
|
8475
8917
|
}
|
|
8476
8918
|
};
|
|
8477
8919
|
keyedArchiveInputSchema = z.strictObject({
|
|
8478
|
-
path:
|
|
8920
|
+
path: localPathStringSchema.default("."),
|
|
8479
8921
|
root: z.string().optional(),
|
|
8480
8922
|
offset: z.number().int().min(0).default(0),
|
|
8481
8923
|
limit: z.number().int().min(1).max(2e4).default(2e4)
|
|
@@ -8526,9 +8968,9 @@ function init_keyedArchive() {
|
|
|
8526
8968
|
truncated: z.boolean(),
|
|
8527
8969
|
limitations: z.array(z.string())
|
|
8528
8970
|
});
|
|
8529
|
-
record = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : undefined;
|
|
8530
|
-
uid = (value) => {
|
|
8531
|
-
const object = record(value);
|
|
8971
|
+
record = (value, wrappedScalars) => value !== null && typeof value === "object" && !Array.isArray(value) && !wrappedScalars.has(value) ? value : undefined;
|
|
8972
|
+
uid = (value, wrappedScalars) => {
|
|
8973
|
+
const object = record(value, wrappedScalars);
|
|
8532
8974
|
if (object === undefined || Object.keys(object).length !== 1) return undefined;
|
|
8533
8975
|
const marker = Object.hasOwn(object, "UID") ? object.UID : object["CF$UID"];
|
|
8534
8976
|
return typeof marker === "number" ? marker : undefined;
|
|
@@ -8539,12 +8981,14 @@ function init_keyedArchive() {
|
|
|
8539
8981
|
return typeof archive.$archiver === "string" ? `its $archiver is ${JSON.stringify(archive.$archiver)}` : "its $archiver is not a string";
|
|
8540
8982
|
};
|
|
8541
8983
|
projectKeyedArchive = (value, selection) => {
|
|
8542
|
-
const
|
|
8984
|
+
const wrappedScalars = new WeakSet();
|
|
8985
|
+
const projected = projectPlistValue(value, (scalar) => wrappedScalars.add(scalar));
|
|
8986
|
+
const archive = record(projected.value, wrappedScalars);
|
|
8543
8987
|
if (archive?.$archiver !== "NSKeyedArchiver") throw new KeyedArchiveKindError(`Selected property list is not an NSKeyedArchiver archive: ${archiverMismatch(archive)}`, "property-list");
|
|
8544
8988
|
if (!Array.isArray(archive.$objects)) throw new TypeError("Expected NSKeyedArchiver with an $objects array");
|
|
8545
8989
|
const table = archive.$objects;
|
|
8546
8990
|
if (table.length > 2e5) throw new RangeError("Archive exceeds 200000 object-table entries");
|
|
8547
|
-
const top = record(archive.$top);
|
|
8991
|
+
const top = record(archive.$top, wrappedScalars);
|
|
8548
8992
|
if (top === undefined || Object.keys(top).length === 0) throw new TypeError("Keyed archive has no $top roots");
|
|
8549
8993
|
if (selection.root !== undefined && !Object.hasOwn(top, selection.root)) throw new AnalysisInputError("inspect_keyed_archive", undefined, [{
|
|
8550
8994
|
path: ["root"],
|
|
@@ -8555,16 +8999,13 @@ function init_keyedArchive() {
|
|
|
8555
8999
|
const roots = selection.root === undefined ? top : { [selection.root]: top[selection.root] ?? null };
|
|
8556
9000
|
const references = [];
|
|
8557
9001
|
const scan = (source, initial) => {
|
|
8558
|
-
const pending =
|
|
8559
|
-
value: initial,
|
|
8560
|
-
path: []
|
|
8561
|
-
}];
|
|
9002
|
+
const pending = initial;
|
|
8562
9003
|
let visited = 0;
|
|
8563
9004
|
while (pending.length > 0) {
|
|
8564
9005
|
const item = pending.pop();
|
|
8565
9006
|
if (item === undefined) break;
|
|
8566
9007
|
if (++visited > 2e5 || item.path.length > 128) throw new RangeError("Archive exceeds 200000 values per object or 128 nesting levels");
|
|
8567
|
-
const target = uid(item.value);
|
|
9008
|
+
const target = uid(item.value, wrappedScalars);
|
|
8568
9009
|
if (target !== undefined) {
|
|
8569
9010
|
const index = Number.isSafeInteger(target) && target >= 0 ? target : null;
|
|
8570
9011
|
references.push({
|
|
@@ -8583,7 +9024,7 @@ function init_keyedArchive() {
|
|
|
8583
9024
|
});
|
|
8584
9025
|
}
|
|
8585
9026
|
} else {
|
|
8586
|
-
const fields = record(item.value);
|
|
9027
|
+
const fields = record(item.value, wrappedScalars);
|
|
8587
9028
|
if (fields !== undefined) for (const key of Object.keys(fields).sort().reverse()) {
|
|
8588
9029
|
const child = fields[key];
|
|
8589
9030
|
if (child !== undefined) pending.push({
|
|
@@ -8595,13 +9036,22 @@ function init_keyedArchive() {
|
|
|
8595
9036
|
if (references.length > 2e5) throw new RangeError("Archive exceeds 200000 reference edges");
|
|
8596
9037
|
}
|
|
8597
9038
|
};
|
|
8598
|
-
scan(null, roots)
|
|
9039
|
+
scan(null, Object.keys(roots).sort().reverse().flatMap((key) => {
|
|
9040
|
+
const value = roots[key];
|
|
9041
|
+
return value === undefined ? [] : [{
|
|
9042
|
+
value,
|
|
9043
|
+
path: [key]
|
|
9044
|
+
}];
|
|
9045
|
+
}));
|
|
8599
9046
|
const objects = table.map((value, id) => {
|
|
8600
|
-
scan(id,
|
|
8601
|
-
|
|
8602
|
-
|
|
9047
|
+
scan(id, [{
|
|
9048
|
+
value,
|
|
9049
|
+
path: []
|
|
9050
|
+
}]);
|
|
9051
|
+
const fields = record(value, wrappedScalars);
|
|
9052
|
+
const classUid = uid(fields?.$class, wrappedScalars);
|
|
8603
9053
|
const classId = classUid !== undefined && Number.isSafeInteger(classUid) && classUid >= 0 ? classUid : null;
|
|
8604
|
-
const descriptor = classId === null ? undefined : record(table[classId]);
|
|
9054
|
+
const descriptor = classId === null ? undefined : record(table[classId], wrappedScalars);
|
|
8605
9055
|
const className = typeof descriptor?.$classname === "string" ? descriptor.$classname : null;
|
|
8606
9056
|
const isNil = id === 0 && value === "$null";
|
|
8607
9057
|
return {
|
|
@@ -8617,6 +9067,10 @@ function init_keyedArchive() {
|
|
|
8617
9067
|
const page = objects.slice(selection.offset, end);
|
|
8618
9068
|
const ids = new Set(page.map(({ id }) => id));
|
|
8619
9069
|
return {
|
|
9070
|
+
nonFiniteRealCount: projected.nonFiniteRealCount,
|
|
9071
|
+
unknownRealCount: projected.unknownRealCount,
|
|
9072
|
+
negativeZeroRealCount: projected.negativeZeroRealCount,
|
|
9073
|
+
unknownDateCount: projected.unknownDateCount,
|
|
8620
9074
|
roots,
|
|
8621
9075
|
objects: page,
|
|
8622
9076
|
references: references.filter(({ source }) => source === null || ids.has(source)),
|
|
@@ -8766,11 +9220,41 @@ function init_appleAssetCatalog() {
|
|
|
8766
9220
|
})))();
|
|
8767
9221
|
}
|
|
8768
9222
|
|
|
9223
|
+
//#endregion
|
|
9224
|
+
//#region dist/domain/managed/managedMemberSignatureIdentity.js
|
|
9225
|
+
var signatureIdentity, hasSignatureResolution, withoutResolution, comparableSides;
|
|
9226
|
+
function init_managedMemberSignatureIdentity() {
|
|
9227
|
+
return (init_managedMemberSignatureIdentity = __esmMin((() => {
|
|
9228
|
+
signatureIdentity = ({ raw_sha256, resolved_sha256 }) => resolved_sha256 === null ? `raw:${raw_sha256}` : `resolved:${resolved_sha256}`;
|
|
9229
|
+
hasSignatureResolution = (result) => result.signature_resolution !== null || result.methods.length === 0 && result.fields.length === 0;
|
|
9230
|
+
withoutResolution = (members) => members.map((member) => ({
|
|
9231
|
+
...member,
|
|
9232
|
+
signature: {
|
|
9233
|
+
...member.signature,
|
|
9234
|
+
resolved_sha256: null
|
|
9235
|
+
}
|
|
9236
|
+
}));
|
|
9237
|
+
comparableSides = (left, right) => {
|
|
9238
|
+
if (hasSignatureResolution(left.result) && hasSignatureResolution(right.result)) return [left, right];
|
|
9239
|
+
const raw = (side) => ({
|
|
9240
|
+
...side,
|
|
9241
|
+
result: {
|
|
9242
|
+
...side.result,
|
|
9243
|
+
methods: withoutResolution(side.result.methods),
|
|
9244
|
+
fields: withoutResolution(side.result.fields)
|
|
9245
|
+
}
|
|
9246
|
+
});
|
|
9247
|
+
return [raw(left), raw(right)];
|
|
9248
|
+
};
|
|
9249
|
+
})))();
|
|
9250
|
+
}
|
|
9251
|
+
|
|
8769
9252
|
//#endregion
|
|
8770
9253
|
//#region dist/domain/managed/managedMemberComparisonCoverage.js
|
|
8771
9254
|
var buildComparisonCoverage, sameSelection, sideCoverageStatus, sideManifest, buildComparisonSummary, buildComparisonMatching, comparisonLimitations;
|
|
8772
9255
|
function init_managedMemberComparisonCoverage() {
|
|
8773
9256
|
return (init_managedMemberComparisonCoverage = __esmMin((() => {
|
|
9257
|
+
init_managedMemberSignatureIdentity();
|
|
8774
9258
|
buildComparisonCoverage = ({ left, right }) => {
|
|
8775
9259
|
const leftStatus = sideCoverageStatus(left);
|
|
8776
9260
|
const rightStatus = sideCoverageStatus(right);
|
|
@@ -8815,11 +9299,15 @@ function init_managedMemberComparisonCoverage() {
|
|
|
8815
9299
|
const limitations = [
|
|
8816
9300
|
"Metadata tokens are build-local coordinates; matched pairs are remaps, not persistent identities.",
|
|
8817
9301
|
"Methods pair within one declared type and name by exact CIL/signature, then signature, then structural shape; only then may exact CIL/signature or structural shape alone remap across declared types or names, never taking a member whose own declared type and name remain unpaired on the other side or whose declaring type is unresolved. Names alone are never a matching basis.",
|
|
8818
|
-
"Fields pair by declared type, name, and signature, then remap by exact decoded signature alone under the same rule; an undecoded signature is compared only
|
|
9302
|
+
"Fields pair by declared type, name, and signature, then remap by exact decoded signature alone under the same rule; an undecoded signature is compared only for an exact signature match, and an unmatched member with one stays unknown."
|
|
8819
9303
|
];
|
|
9304
|
+
const namesTypes = (result) => result.methods.some(({ signature }) => signature.resolved_sha256 !== null && signature.resolved_sha256 !== signature.raw_sha256) || result.fields.some(({ signature }) => signature.resolved_sha256 !== null && signature.resolved_sha256 !== signature.raw_sha256);
|
|
9305
|
+
if (hasSignatureResolution(left) && hasSignatureResolution(right) && (namesTypes(left) || namesTypes(right))) limitations.push("Signature type operands compare by namespace, name, and enclosing names only; defining assemblies and CLR type identity are not established by this comparison.");
|
|
8820
9306
|
if (left.coverage.state !== "complete" || right.coverage.state !== "complete") limitations.push("At least one managed member observation is partial.");
|
|
8821
9307
|
if (!sameSelection(left, right)) limitations.push("The observations select different declaring types; a member outside the other side's selection is unknown, not added or removed.");
|
|
8822
9308
|
else if (left.selection !== null) limitations.push(`Both observations cover only the selected declaring types (${left.selection.type_names.join(", ")}); member totals and statuses describe those types, not the whole assembly.`);
|
|
9309
|
+
if (!hasSignatureResolution(left) || !hasSignatureResolution(right)) limitations.push("At least one managed member observation does not attest signature type-name resolution, so signatures compare by raw bytes, which name types by build-local metadata row.");
|
|
9310
|
+
if (left.nesting_read === null || right.nesting_read === null) limitations.push("At least one managed member observation predates enclosing-name identity. The legacy bare-name comparison does not establish the enclosing owner of a nested type.");
|
|
8823
9311
|
if (left.exported_types === null || right.exported_types === null) limitations.push("At least one managed member observation predates ExportedType inspection; its exported and forwarded types are unknown.");
|
|
8824
9312
|
if ((left.exported_types?.length ?? 0) > 0 || (right.exported_types?.length ?? 0) > 0) limitations.push("ExportedType rows, including type forwarders, are observed but not compared; an unchanged comparison does not establish an unchanged exported or forwarded type set.");
|
|
8825
9313
|
limitations.push("ldstr literals are not compared; normalized CIL keeps #US tokens rather than decoded text, so an unchanged method does not establish unchanged string literals.");
|
|
@@ -8830,40 +9318,40 @@ function init_managedMemberComparisonCoverage() {
|
|
|
8830
9318
|
|
|
8831
9319
|
//#endregion
|
|
8832
9320
|
//#region dist/domain/managed/managedMemberComparisonMatch.js
|
|
8833
|
-
var sha256$1, keyMethod, keyField, matchMethods, matchFields, identityOf, declaredAs, matchByKeys, unresolvedSignatureAmbiguities, unpairedOf, competitionIdentityKey, ownerlessContested, remappable,
|
|
9321
|
+
var sha256$1, keyMethod, keyField, matchMethods, matchFields, identityOf, declaredAs, matchByKeys, unresolvedSignatureAmbiguities, unpairedOf, competitionIdentityKey, ownerlessContested, remappable, declaredCandidates, groupBy, observedBy, matchObserved, keyMembers, parseManagedMemberEvidence;
|
|
8834
9322
|
function init_managedMemberComparisonMatch() {
|
|
8835
9323
|
return (init_managedMemberComparisonMatch = __esmMin((() => {
|
|
8836
9324
|
init_managedArtifact();
|
|
8837
9325
|
init_managedInspectionEvidence();
|
|
9326
|
+
init_managedMemberSignatureIdentity();
|
|
8838
9327
|
sha256$1 = (value) => {
|
|
8839
9328
|
const serialized = canonicalize(value);
|
|
8840
9329
|
if (serialized === undefined) throw new TypeError("Managed comparison canonicalization failed");
|
|
8841
9330
|
return createHash("sha256").update(serialized).digest("hex");
|
|
8842
9331
|
};
|
|
8843
|
-
keyMethod = (item) => ({
|
|
9332
|
+
keyMethod = (item, declared) => ({
|
|
8844
9333
|
item,
|
|
8845
|
-
identity: identityOf(
|
|
8846
|
-
|
|
9334
|
+
identity: identityOf({
|
|
9335
|
+
declaring_type: declared(item),
|
|
9336
|
+
name: item.name
|
|
9337
|
+
}),
|
|
9338
|
+
identityUnavailable: declared(item) === null,
|
|
9339
|
+
signatureId: signatureIdentity(item.signature),
|
|
8847
9340
|
exactKey: item.body.status === "present" && item.body.il_sha256 !== null && item.body.normalized_il_sha256 !== null ? sha256$1([
|
|
8848
9341
|
"method-exact",
|
|
8849
|
-
item.signature
|
|
9342
|
+
signatureIdentity(item.signature),
|
|
8850
9343
|
item.body.il_sha256,
|
|
8851
9344
|
item.body.normalized_il_sha256
|
|
8852
9345
|
]) : null,
|
|
8853
|
-
signatureKey: sha256$1([
|
|
9346
|
+
signatureKey: declared(item) === null ? null : sha256$1([
|
|
8854
9347
|
"method-signature",
|
|
8855
|
-
item
|
|
9348
|
+
declared(item),
|
|
8856
9349
|
item.name,
|
|
8857
|
-
item.signature
|
|
9350
|
+
signatureIdentity(item.signature)
|
|
8858
9351
|
]),
|
|
8859
9352
|
structuralKey: item.signature.parse_status === "decoded" && item.body.status === "present" ? sha256$1([
|
|
8860
9353
|
"method-structural",
|
|
8861
|
-
item.signature
|
|
8862
|
-
item.signature.calling_convention,
|
|
8863
|
-
item.signature.generic_parameter_count,
|
|
8864
|
-
item.signature.parameter_count,
|
|
8865
|
-
item.signature.return_type,
|
|
8866
|
-
item.signature.parameter_types,
|
|
9354
|
+
signatureIdentity(item.signature),
|
|
8867
9355
|
item.body.status,
|
|
8868
9356
|
item.body.header_format,
|
|
8869
9357
|
item.body.il_size,
|
|
@@ -8884,16 +9372,20 @@ function init_managedMemberComparisonMatch() {
|
|
|
8884
9372
|
])
|
|
8885
9373
|
]) : null
|
|
8886
9374
|
});
|
|
8887
|
-
keyField = (item) => ({
|
|
9375
|
+
keyField = (item, declared) => ({
|
|
8888
9376
|
item,
|
|
8889
|
-
identity: identityOf(
|
|
8890
|
-
|
|
8891
|
-
|
|
8892
|
-
|
|
9377
|
+
identity: identityOf({
|
|
9378
|
+
declaring_type: declared(item),
|
|
9379
|
+
name: item.name
|
|
9380
|
+
}),
|
|
9381
|
+
identityUnavailable: declared(item) === null,
|
|
9382
|
+
signatureId: signatureIdentity(item.signature),
|
|
9383
|
+
exactKey: item.signature.parse_status === "decoded" ? sha256$1(["field-exact", signatureIdentity(item.signature)]) : null,
|
|
9384
|
+
signatureKey: declared(item) === null ? null : sha256$1([
|
|
8893
9385
|
"field-signature",
|
|
8894
|
-
item
|
|
9386
|
+
declared(item),
|
|
8895
9387
|
item.name,
|
|
8896
|
-
item.signature
|
|
9388
|
+
signatureIdentity(item.signature)
|
|
8897
9389
|
]),
|
|
8898
9390
|
structuralKey: sha256$1([
|
|
8899
9391
|
"field-structural",
|
|
@@ -8913,11 +9405,11 @@ function init_managedMemberComparisonMatch() {
|
|
|
8913
9405
|
{
|
|
8914
9406
|
basis: "exact-signature",
|
|
8915
9407
|
key: ({ signatureKey }) => signatureKey,
|
|
8916
|
-
competitionKey: ({
|
|
9408
|
+
competitionKey: ({ signatureId }) => signatureId
|
|
8917
9409
|
},
|
|
8918
9410
|
{
|
|
8919
9411
|
basis: "structural-method-shape",
|
|
8920
|
-
key: declaredAs((keyed) => keyed.
|
|
9412
|
+
key: declaredAs((keyed) => keyed.identityUnavailable ? null : keyed.structuralKey),
|
|
8921
9413
|
competitionKey: ({ structuralKey }) => structuralKey
|
|
8922
9414
|
},
|
|
8923
9415
|
{
|
|
@@ -8944,7 +9436,7 @@ function init_managedMemberComparisonMatch() {
|
|
|
8944
9436
|
{
|
|
8945
9437
|
basis: "exact-signature",
|
|
8946
9438
|
key: ({ signatureKey }) => signatureKey,
|
|
8947
|
-
competitionKey: ({
|
|
9439
|
+
competitionKey: ({ signatureId }) => signatureId
|
|
8948
9440
|
},
|
|
8949
9441
|
{
|
|
8950
9442
|
basis: "field-signature",
|
|
@@ -8956,7 +9448,7 @@ function init_managedMemberComparisonMatch() {
|
|
|
8956
9448
|
identityOf = ({ declaring_type, name }) => sha256$1([declaring_type, name]);
|
|
8957
9449
|
declaredAs = (key) => (item) => {
|
|
8958
9450
|
const value = key(item);
|
|
8959
|
-
return value === null ? null : sha256$1([item.identity, value]);
|
|
9451
|
+
return value === null || item.identityUnavailable ? null : sha256$1([item.identity, value]);
|
|
8960
9452
|
};
|
|
8961
9453
|
matchByKeys = ({ left, right, rounds }) => {
|
|
8962
9454
|
const usedLeft = new Set();
|
|
@@ -8969,7 +9461,7 @@ function init_managedMemberComparisonMatch() {
|
|
|
8969
9461
|
const competitionKey = round.competitionKey ?? ((item) => item.exactKey);
|
|
8970
9462
|
const unpairedLeft = unpairedOf(left, pairedLeft);
|
|
8971
9463
|
const unpairedRight = unpairedOf(right, pairedRight);
|
|
8972
|
-
const declarable =
|
|
9464
|
+
const declarable = declaredCandidates(unpairedLeft, unpairedRight, competitionKey);
|
|
8973
9465
|
const openLeft = left.filter((item) => !usedLeft.has(item));
|
|
8974
9466
|
const openRight = right.filter((item) => !usedRight.has(item));
|
|
8975
9467
|
const remapContested = round.remap === true ? ownerlessContested([openLeft, openRight], competitionKey) : new Set();
|
|
@@ -8978,7 +9470,7 @@ function init_managedMemberComparisonMatch() {
|
|
|
8978
9470
|
for (const [key, leftItems] of leftGroups) {
|
|
8979
9471
|
const rightItems = rightGroups.get(key);
|
|
8980
9472
|
if (rightItems === undefined) continue;
|
|
8981
|
-
const refused = round.remap === true && [...leftItems, ...rightItems].some(({
|
|
9473
|
+
const refused = round.remap === true && [...leftItems, ...rightItems].some(({ identityUnavailable }) => identityUnavailable);
|
|
8982
9474
|
if (!refused && leftItems.length === 1 && rightItems.length === 1) {
|
|
8983
9475
|
const [leftItem] = leftItems;
|
|
8984
9476
|
const [rightItem] = rightItems;
|
|
@@ -9004,7 +9496,7 @@ function init_managedMemberComparisonMatch() {
|
|
|
9004
9496
|
}
|
|
9005
9497
|
}
|
|
9006
9498
|
}
|
|
9007
|
-
for (const group of unresolvedSignatureAmbiguities(left.filter((item) => !usedLeft.has(item)), right.filter((item) => !usedRight.has(item)), ownerlessContested([unpairedOf(left, pairedLeft), unpairedOf(right, pairedRight)], (member) => member.
|
|
9499
|
+
for (const group of unresolvedSignatureAmbiguities(left.filter((item) => !usedLeft.has(item)), right.filter((item) => !usedRight.has(item)), ownerlessContested([unpairedOf(left, pairedLeft), unpairedOf(right, pairedRight)], (member) => member.signatureId))) {
|
|
9008
9500
|
for (const item of group.left) usedLeft.add(item);
|
|
9009
9501
|
for (const item of group.right) usedRight.add(item);
|
|
9010
9502
|
ambiguous.push(group);
|
|
@@ -9017,7 +9509,7 @@ function init_managedMemberComparisonMatch() {
|
|
|
9017
9509
|
};
|
|
9018
9510
|
};
|
|
9019
9511
|
unresolvedSignatureAmbiguities = (left, right, contested) => {
|
|
9020
|
-
const key = (member) => competitionIdentityKey(member, member.
|
|
9512
|
+
const key = (member) => competitionIdentityKey(member, member.signatureId) ?? "";
|
|
9021
9513
|
const leftGroups = groupBy(left, key);
|
|
9022
9514
|
const rightGroups = groupBy(right, key);
|
|
9023
9515
|
const groups = [];
|
|
@@ -9043,7 +9535,7 @@ function init_managedMemberComparisonMatch() {
|
|
|
9043
9535
|
const key = competitionIdentityKey(member, keyOf(member));
|
|
9044
9536
|
if (key === null) continue;
|
|
9045
9537
|
seen.set(key, (seen.get(key) ?? 0) + 1);
|
|
9046
|
-
if (member.
|
|
9538
|
+
if (member.identityUnavailable) ownerless.add(key);
|
|
9047
9539
|
}
|
|
9048
9540
|
for (const key of ownerless) if ((seen.get(key) ?? 0) > 1) contested.add(key);
|
|
9049
9541
|
}
|
|
@@ -9053,24 +9545,15 @@ function init_managedMemberComparisonMatch() {
|
|
|
9053
9545
|
const kept = new Set(others.map(({ identity }) => identity));
|
|
9054
9546
|
return items.filter((member) => {
|
|
9055
9547
|
const key = keyOf(member);
|
|
9056
|
-
return key !== null && contested.has(competitionIdentityKey(member, key) ?? "") || member.
|
|
9548
|
+
return key !== null && contested.has(competitionIdentityKey(member, key) ?? "") || member.identityUnavailable || !kept.has(member.identity);
|
|
9057
9549
|
});
|
|
9058
9550
|
};
|
|
9059
|
-
|
|
9060
|
-
const count = (side) => {
|
|
9061
|
-
const seen = new Map();
|
|
9062
|
-
for (const member of side) {
|
|
9063
|
-
const key = keyOf(member);
|
|
9064
|
-
if (key !== null) seen.set(key, (seen.get(key) ?? 0) + 1);
|
|
9065
|
-
}
|
|
9066
|
-
return seen;
|
|
9067
|
-
};
|
|
9068
|
-
const leftSeen = count(left);
|
|
9069
|
-
const rightSeen = count(right);
|
|
9551
|
+
declaredCandidates = (left, right, keyOf) => {
|
|
9070
9552
|
const contested = ownerlessContested([left, right], keyOf);
|
|
9071
9553
|
return (member) => {
|
|
9072
|
-
|
|
9073
|
-
|
|
9554
|
+
if (member.identityUnavailable) return false;
|
|
9555
|
+
const key = competitionIdentityKey(member, keyOf(member));
|
|
9556
|
+
return key === null || !contested.has(key);
|
|
9074
9557
|
};
|
|
9075
9558
|
};
|
|
9076
9559
|
groupBy = (items, keyOf) => {
|
|
@@ -9085,22 +9568,36 @@ function init_managedMemberComparisonMatch() {
|
|
|
9085
9568
|
return grouped;
|
|
9086
9569
|
};
|
|
9087
9570
|
observedBy = (side) => ({ declaring_type }) => side.result.selection === null || declaring_type !== null && side.result.selection.type_names.includes(declaring_type);
|
|
9088
|
-
matchObserved = (left, right, sides, match,
|
|
9089
|
-
const matched = match(left.filter(sides.inRight).map(
|
|
9571
|
+
matchObserved = (left, right, sides, match, keyLeft, keyRight) => {
|
|
9572
|
+
const matched = match(left.filter(sides.inRight).map(keyLeft), right.filter(sides.inLeft).map(keyRight));
|
|
9090
9573
|
return {
|
|
9091
9574
|
...matched,
|
|
9092
|
-
leftOnly: [...matched.leftOnly, ...left.filter((item) => !sides.inRight(item)).map(
|
|
9093
|
-
rightOnly: [...matched.rightOnly, ...right.filter((item) => !sides.inLeft(item)).map(
|
|
9575
|
+
leftOnly: [...matched.leftOnly, ...left.filter((item) => !sides.inRight(item)).map(keyLeft)],
|
|
9576
|
+
rightOnly: [...matched.rightOnly, ...right.filter((item) => !sides.inLeft(item)).map(keyRight)]
|
|
9094
9577
|
};
|
|
9095
9578
|
};
|
|
9096
|
-
keyMembers = (
|
|
9579
|
+
keyMembers = (observedLeft, observedRight) => {
|
|
9580
|
+
const [left, right] = comparableSides(observedLeft, observedRight);
|
|
9097
9581
|
const sides = {
|
|
9098
9582
|
inLeft: observedBy(left),
|
|
9099
9583
|
inRight: observedBy(right)
|
|
9100
9584
|
};
|
|
9585
|
+
const modern = left.result.nesting_read !== null && right.result.nesting_read !== null;
|
|
9586
|
+
const declared = (inspection) => {
|
|
9587
|
+
const names = new Map(inspection.types.map((type) => [type.token, type.name_sha256]));
|
|
9588
|
+
return (item) => {
|
|
9589
|
+
if (inspection.nesting_read === false) return null;
|
|
9590
|
+
const digest = names.get(item.declaring_type_token ?? "");
|
|
9591
|
+
if (inspection.nesting_read !== null && digest == null) return null;
|
|
9592
|
+
if (!modern) return item.declaring_type;
|
|
9593
|
+
return digest == null ? null : ["nominal-name-sha256", digest];
|
|
9594
|
+
};
|
|
9595
|
+
};
|
|
9596
|
+
const declaredLeft = declared(left.result);
|
|
9597
|
+
const declaredRight = declared(right.result);
|
|
9101
9598
|
return {
|
|
9102
|
-
methodMatches: matchObserved(left.result.methods, right.result.methods, sides, matchMethods, keyMethod),
|
|
9103
|
-
fieldMatches: matchObserved(left.result.fields, right.result.fields, sides, matchFields, keyField)
|
|
9599
|
+
methodMatches: matchObserved(left.result.methods, right.result.methods, sides, matchMethods, (item) => keyMethod(item, declaredLeft), (item) => keyMethod(item, declaredRight)),
|
|
9600
|
+
fieldMatches: matchObserved(left.result.fields, right.result.fields, sides, matchFields, (item) => keyField(item, declaredLeft), (item) => keyField(item, declaredRight))
|
|
9104
9601
|
};
|
|
9105
9602
|
};
|
|
9106
9603
|
parseManagedMemberEvidence = (evidence) => {
|
|
@@ -9115,15 +9612,16 @@ function init_managedMemberComparisonMatch() {
|
|
|
9115
9612
|
|
|
9116
9613
|
//#endregion
|
|
9117
9614
|
//#region dist/domain/managed/managedMemberComparisonItems.js
|
|
9118
|
-
var inventoryCovers, methodDimensions, callShape, fieldShape, methodIdentity, fieldIdentity, unmatchedComparison, methodOnlyItem, absenceLimitations, undecodedOneSidedNames, fieldOnlyItem, ambiguityLimitation, buildMethodItems, buildFieldItems;
|
|
9615
|
+
var inventoryCovers, methodDimensions, callShape, fieldShape, methodIdentity, fieldIdentity, unmatchedComparison, methodOnlyItem, absenceLimitations, unresolved, pairedSignatureLimitations, undecodedOneSidedNames, fieldOnlyItem, ambiguityLimitation, buildMethodItems, buildFieldItems;
|
|
9119
9616
|
function init_managedMemberComparisonItems() {
|
|
9120
9617
|
return (init_managedMemberComparisonItems = __esmMin((() => {
|
|
9121
9618
|
init_managedMemberComparisonMatch();
|
|
9619
|
+
init_managedMemberSignatureIdentity();
|
|
9122
9620
|
inventoryCovers = (complete, selection, member) => complete && (selection === null || member.declaring_type !== null && selection.has(member.declaring_type));
|
|
9123
9621
|
methodDimensions = (left, right) => {
|
|
9124
9622
|
const dimensions = [];
|
|
9125
9623
|
if (left.flags !== right.flags || left.impl_flags !== right.impl_flags) dimensions.push("metadata");
|
|
9126
|
-
if (left.signature
|
|
9624
|
+
if (signatureIdentity(left.signature) !== signatureIdentity(right.signature)) dimensions.push("signature");
|
|
9127
9625
|
const leftBodyComplete = left.body.status === "present" && left.body.truncated_instructions === 0;
|
|
9128
9626
|
const rightBodyComplete = right.body.status === "present" && right.body.truncated_instructions === 0;
|
|
9129
9627
|
const bothAbsent = left.body.status === "absent" && right.body.status === "absent";
|
|
@@ -9168,11 +9666,12 @@ function init_managedMemberComparisonItems() {
|
|
|
9168
9666
|
candidate_left_tokens: [],
|
|
9169
9667
|
candidate_right_tokens: []
|
|
9170
9668
|
});
|
|
9171
|
-
methodOnlyItem = (member, context, undecoded) => {
|
|
9669
|
+
methodOnlyItem = (member, identity, identityUnavailable, context, undecoded) => {
|
|
9172
9670
|
if (member.left !== undefined) {
|
|
9173
|
-
const limitations = absenceLimitations(member.left, {
|
|
9671
|
+
const limitations = absenceLimitations(member.left, identity, {
|
|
9174
9672
|
oppositeComplete: inventoryCovers(context.rightComplete, context.rightSelection, member.left),
|
|
9175
|
-
|
|
9673
|
+
unpaired: undecoded,
|
|
9674
|
+
ownIdentityUnavailable: identityUnavailable,
|
|
9176
9675
|
opposite: "right",
|
|
9177
9676
|
inventory: "method"
|
|
9178
9677
|
});
|
|
@@ -9190,9 +9689,10 @@ function init_managedMemberComparisonItems() {
|
|
|
9190
9689
|
limitations
|
|
9191
9690
|
};
|
|
9192
9691
|
}
|
|
9193
|
-
const limitations = absenceLimitations(member.right, {
|
|
9692
|
+
const limitations = absenceLimitations(member.right, identity, {
|
|
9194
9693
|
oppositeComplete: inventoryCovers(context.leftComplete, context.leftSelection, member.right),
|
|
9195
|
-
|
|
9694
|
+
unpaired: undecoded,
|
|
9695
|
+
ownIdentityUnavailable: identityUnavailable,
|
|
9196
9696
|
opposite: "left",
|
|
9197
9697
|
inventory: "method"
|
|
9198
9698
|
});
|
|
@@ -9210,23 +9710,47 @@ function init_managedMemberComparisonItems() {
|
|
|
9210
9710
|
limitations
|
|
9211
9711
|
};
|
|
9212
9712
|
};
|
|
9213
|
-
absenceLimitations = (member, opposite) => [
|
|
9713
|
+
absenceLimitations = (member, identity, opposite) => [
|
|
9714
|
+
...opposite.ownIdentityUnavailable ? ["declaring-type-name-not-resolved: Declared type identity could not be resolved; a bare display name cannot establish a counterpart or absence."] : [],
|
|
9715
|
+
...opposite.unpaired.unknownOwners[opposite.opposite].has(member.name) ? [`counterpart-declaring-type-name-not-resolved: The ${opposite.opposite} ${opposite.inventory} inventory has an unpaired same-named member with unresolved enclosing-name identity, so absence was not established.`] : [],
|
|
9214
9716
|
...opposite.oppositeComplete ? [] : [`unknown-within-incomplete-metadata: The ${opposite.opposite} ${opposite.inventory} inventory is incomplete, so absence was not observed.`],
|
|
9215
|
-
...member.signature.parse_status === "decoded" ? [] : [`signature-not-decoded: The member's ${member.signature.parse_status} signature was compared only by exact declared type, name, and
|
|
9216
|
-
...member.signature.parse_status === "decoded" && opposite.
|
|
9717
|
+
...member.signature.parse_status === "decoded" ? [] : [`signature-not-decoded: The member's ${member.signature.parse_status} signature was compared only by exact declared type, name, and signature bytes, so a changed or renamed counterpart could not be sought.`],
|
|
9718
|
+
...member.signature.parse_status === "decoded" && opposite.unpaired.undecoded[opposite.opposite].has(identity) ? [`counterpart-signature-not-decoded: The ${opposite.opposite} ${opposite.inventory} inventory has an unpaired member with the same declared type and name whose signature was not decoded, so it may be this member with a changed signature.`] : [],
|
|
9719
|
+
...unresolved(member, opposite.unpaired.resolved) ? [`signature-not-resolved: The member's signature names a type REA could not name, so it was compared by raw bytes, which name types by build-local metadata row; a counterpart whose referenced type moved rows could not be found.`] : [],
|
|
9720
|
+
...member.signature.parse_status === "decoded" && !unresolved(member, opposite.unpaired.resolved) && opposite.unpaired.unresolved[opposite.opposite].has(identity) ? [`counterpart-signature-not-resolved: The ${opposite.opposite} ${opposite.inventory} inventory has an unpaired member with the same declared type and name whose signature names a type REA could not name, so it may be this member.`] : []
|
|
9217
9721
|
];
|
|
9218
|
-
|
|
9219
|
-
|
|
9722
|
+
unresolved = (member, resolved) => resolved && member.signature.kind !== "unknown" && member.signature.resolved_sha256 === null;
|
|
9723
|
+
pairedSignatureLimitations = (left, right, examined) => unresolved(left, examined) || unresolved(right, examined) ? ["signature-not-resolved: At least one signature names a type REA could not resolve; equal build-local row bytes do not establish equivalent signature types."] : [];
|
|
9724
|
+
undecodedOneSidedNames = (members, resolved) => {
|
|
9725
|
+
const sides = {
|
|
9726
|
+
left: [...members.leftOnly, ...members.ambiguous.flatMap(({ left }) => left)],
|
|
9727
|
+
right: [...members.rightOnly, ...members.ambiguous.flatMap(({ right }) => right)]
|
|
9728
|
+
};
|
|
9729
|
+
const names = (side, keep) => new Set(side.filter(({ item }) => keep(item)).map(({ identity }) => identity));
|
|
9730
|
+
const undecoded = (item) => item.signature.parse_status !== "decoded";
|
|
9731
|
+
const notResolved = (item) => unresolved(item, resolved);
|
|
9220
9732
|
return {
|
|
9221
|
-
|
|
9222
|
-
|
|
9733
|
+
resolved,
|
|
9734
|
+
unknownOwners: {
|
|
9735
|
+
left: new Set(sides.left.filter((x) => x.identityUnavailable).map((x) => x.item.name)),
|
|
9736
|
+
right: new Set(sides.right.filter((x) => x.identityUnavailable).map((x) => x.item.name))
|
|
9737
|
+
},
|
|
9738
|
+
undecoded: {
|
|
9739
|
+
left: names(sides.left, undecoded),
|
|
9740
|
+
right: names(sides.right, undecoded)
|
|
9741
|
+
},
|
|
9742
|
+
unresolved: {
|
|
9743
|
+
left: names(sides.left, notResolved),
|
|
9744
|
+
right: names(sides.right, notResolved)
|
|
9745
|
+
}
|
|
9223
9746
|
};
|
|
9224
9747
|
};
|
|
9225
|
-
fieldOnlyItem = (member, context, undecoded) => {
|
|
9748
|
+
fieldOnlyItem = (member, identity, identityUnavailable, context, undecoded) => {
|
|
9226
9749
|
if (member.left !== undefined) {
|
|
9227
|
-
const limitations = absenceLimitations(member.left, {
|
|
9750
|
+
const limitations = absenceLimitations(member.left, identity, {
|
|
9228
9751
|
oppositeComplete: inventoryCovers(context.rightComplete, context.rightSelection, member.left),
|
|
9229
|
-
|
|
9752
|
+
unpaired: undecoded,
|
|
9753
|
+
ownIdentityUnavailable: identityUnavailable,
|
|
9230
9754
|
opposite: "right",
|
|
9231
9755
|
inventory: "field"
|
|
9232
9756
|
});
|
|
@@ -9243,9 +9767,10 @@ function init_managedMemberComparisonItems() {
|
|
|
9243
9767
|
limitations
|
|
9244
9768
|
};
|
|
9245
9769
|
}
|
|
9246
|
-
const limitations = absenceLimitations(member.right, {
|
|
9770
|
+
const limitations = absenceLimitations(member.right, identity, {
|
|
9247
9771
|
oppositeComplete: inventoryCovers(context.leftComplete, context.leftSelection, member.right),
|
|
9248
|
-
|
|
9772
|
+
unpaired: undecoded,
|
|
9773
|
+
ownIdentityUnavailable: identityUnavailable,
|
|
9249
9774
|
opposite: "left",
|
|
9250
9775
|
inventory: "field"
|
|
9251
9776
|
});
|
|
@@ -9262,10 +9787,11 @@ function init_managedMemberComparisonItems() {
|
|
|
9262
9787
|
limitations
|
|
9263
9788
|
};
|
|
9264
9789
|
};
|
|
9265
|
-
ambiguityLimitation = (members, basis) => basis === "exact-signature" ? `Multiple managed ${members} share the same
|
|
9790
|
+
ambiguityLimitation = (members, basis, identityUnavailable) => identityUnavailable ? "declaring-type-name-not-resolved: Declared type identity remains unresolved; REA did not guess a counterpart from display names, signatures or CIL." : basis === "exact-signature" ? `Multiple managed ${members} share the same signature; REA did not guess declared ownership or a token remap.` : basis === "exact-il-signature" ? "Multiple managed methods share the same CIL and signature; REA did not guess a token remap." : members === "methods" ? "Multiple managed methods share the same structural shape; REA did not guess a token remap." : "Multiple managed fields share the same signature; REA did not guess a token remap.";
|
|
9266
9791
|
buildMethodItems = (matches, context) => {
|
|
9267
9792
|
const items = [];
|
|
9268
9793
|
for (const pair of matches.pairs) {
|
|
9794
|
+
const signatureLimitations = pairedSignatureLimitations(pair.left.item, pair.right.item, context.signatureResolutionExamined);
|
|
9269
9795
|
const { dimensions: observedDimensions, bodyUnknown } = methodDimensions(pair.left.item, pair.right.item);
|
|
9270
9796
|
const dimensions = bodyUnknown ? [...observedDimensions, "body-coverage"] : observedDimensions;
|
|
9271
9797
|
const observedChange = observedDimensions.length > 0;
|
|
@@ -9275,7 +9801,7 @@ function init_managedMemberComparisonItems() {
|
|
|
9275
9801
|
right: pair.right.item.token,
|
|
9276
9802
|
basis: pair.basis
|
|
9277
9803
|
})}`,
|
|
9278
|
-
status: observedChange ? "changed" : bodyUnknown ? "unknown" : "unchanged",
|
|
9804
|
+
status: observedChange ? "changed" : bodyUnknown || signatureLimitations.length > 0 ? "unknown" : "unchanged",
|
|
9279
9805
|
left: methodIdentity(pair.left.item),
|
|
9280
9806
|
right: methodIdentity(pair.right.item),
|
|
9281
9807
|
match: {
|
|
@@ -9287,7 +9813,7 @@ function init_managedMemberComparisonItems() {
|
|
|
9287
9813
|
},
|
|
9288
9814
|
dimensions,
|
|
9289
9815
|
evidence_links: [context.leftEvidenceId, context.rightEvidenceId],
|
|
9290
|
-
limitations: bodyUnknown ? ["Method body facets are unknown because at least one side has unavailable or partial body data."] : []
|
|
9816
|
+
limitations: [...signatureLimitations, ...bodyUnknown ? ["Method body facets are unknown because at least one side has unavailable or partial body data."] : []]
|
|
9291
9817
|
});
|
|
9292
9818
|
}
|
|
9293
9819
|
for (const ambiguous of matches.ambiguous) {
|
|
@@ -9309,24 +9835,25 @@ function init_managedMemberComparisonItems() {
|
|
|
9309
9835
|
},
|
|
9310
9836
|
dimensions: ["availability"],
|
|
9311
9837
|
evidence_links: [context.leftEvidenceId, context.rightEvidenceId],
|
|
9312
|
-
limitations: [ambiguityLimitation("methods", ambiguous.basis)]
|
|
9838
|
+
limitations: [ambiguityLimitation("methods", ambiguous.basis, ambiguous.left.some((item) => item.identityUnavailable) || ambiguous.right.some((item) => item.identityUnavailable))]
|
|
9313
9839
|
});
|
|
9314
9840
|
}
|
|
9315
|
-
const undecoded = undecodedOneSidedNames(matches);
|
|
9316
|
-
for (const item of matches.leftOnly) items.push(methodOnlyItem({ left: item.item }, context, undecoded));
|
|
9317
|
-
for (const item of matches.rightOnly) items.push(methodOnlyItem({ right: item.item }, context, undecoded));
|
|
9841
|
+
const undecoded = undecodedOneSidedNames(matches, context.signatureResolutionExamined);
|
|
9842
|
+
for (const item of matches.leftOnly) items.push(methodOnlyItem({ left: item.item }, item.identity, item.identityUnavailable, context, undecoded));
|
|
9843
|
+
for (const item of matches.rightOnly) items.push(methodOnlyItem({ right: item.item }, item.identity, item.identityUnavailable, context, undecoded));
|
|
9318
9844
|
return items;
|
|
9319
9845
|
};
|
|
9320
9846
|
buildFieldItems = (matches, context) => {
|
|
9321
9847
|
const items = [];
|
|
9322
9848
|
for (const pair of matches.pairs) {
|
|
9323
|
-
const
|
|
9849
|
+
const signatureLimitations = pairedSignatureLimitations(pair.left.item, pair.right.item, context.signatureResolutionExamined);
|
|
9850
|
+
const changed = signatureIdentity(pair.left.item.signature) !== signatureIdentity(pair.right.item.signature) || pair.left.item.flags !== pair.right.item.flags;
|
|
9324
9851
|
items.push({
|
|
9325
9852
|
item_id: `mmc_field_${sha256$1({
|
|
9326
9853
|
left: pair.left.item.token,
|
|
9327
9854
|
right: pair.right.item.token
|
|
9328
9855
|
})}`,
|
|
9329
|
-
status: changed ? "changed" : "unchanged",
|
|
9856
|
+
status: changed ? "changed" : signatureLimitations.length > 0 ? "unknown" : "unchanged",
|
|
9330
9857
|
left: fieldIdentity(pair.left.item),
|
|
9331
9858
|
right: fieldIdentity(pair.right.item),
|
|
9332
9859
|
match: {
|
|
@@ -9337,7 +9864,7 @@ function init_managedMemberComparisonItems() {
|
|
|
9337
9864
|
candidate_right_tokens: []
|
|
9338
9865
|
},
|
|
9339
9866
|
evidence_links: [context.leftEvidenceId, context.rightEvidenceId],
|
|
9340
|
-
limitations:
|
|
9867
|
+
limitations: signatureLimitations
|
|
9341
9868
|
});
|
|
9342
9869
|
}
|
|
9343
9870
|
for (const ambiguous of matches.ambiguous) items.push({
|
|
@@ -9356,11 +9883,11 @@ function init_managedMemberComparisonItems() {
|
|
|
9356
9883
|
candidate_right_tokens: ambiguous.right.map(({ item }) => item.token)
|
|
9357
9884
|
},
|
|
9358
9885
|
evidence_links: [context.leftEvidenceId, context.rightEvidenceId],
|
|
9359
|
-
limitations: [ambiguityLimitation("fields", ambiguous.basis)]
|
|
9886
|
+
limitations: [ambiguityLimitation("fields", ambiguous.basis, ambiguous.left.some((item) => item.identityUnavailable) || ambiguous.right.some((item) => item.identityUnavailable))]
|
|
9360
9887
|
});
|
|
9361
|
-
const undecoded = undecodedOneSidedNames(matches);
|
|
9362
|
-
for (const item of matches.leftOnly) items.push(fieldOnlyItem({ left: item.item }, context, undecoded));
|
|
9363
|
-
for (const item of matches.rightOnly) items.push(fieldOnlyItem({ right: item.item }, context, undecoded));
|
|
9888
|
+
const undecoded = undecodedOneSidedNames(matches, context.signatureResolutionExamined);
|
|
9889
|
+
for (const item of matches.leftOnly) items.push(fieldOnlyItem({ left: item.item }, item.identity, item.identityUnavailable, context, undecoded));
|
|
9890
|
+
for (const item of matches.rightOnly) items.push(fieldOnlyItem({ right: item.item }, item.identity, item.identityUnavailable, context, undecoded));
|
|
9364
9891
|
return items;
|
|
9365
9892
|
};
|
|
9366
9893
|
})))();
|
|
@@ -9377,6 +9904,7 @@ function init_managedMemberComparison() {
|
|
|
9377
9904
|
init_managedMemberComparisonCoverage();
|
|
9378
9905
|
init_managedMemberComparisonItems();
|
|
9379
9906
|
init_managedMemberComparisonMatch();
|
|
9907
|
+
init_managedMemberSignatureIdentity();
|
|
9380
9908
|
init_digests();
|
|
9381
9909
|
evidenceIdSchema$9 = prefixedDigestSchema("ev");
|
|
9382
9910
|
tokenSchema$2 = z.string().regex(/^0x[0-9a-f]{8}$/u);
|
|
@@ -9560,7 +10088,8 @@ function init_managedMemberComparison() {
|
|
|
9560
10088
|
leftComplete: left.result.metadata.status === "complete",
|
|
9561
10089
|
rightComplete: right.result.metadata.status === "complete",
|
|
9562
10090
|
leftSelection: selectedTypes(left.result),
|
|
9563
|
-
rightSelection: selectedTypes(right.result)
|
|
10091
|
+
rightSelection: selectedTypes(right.result),
|
|
10092
|
+
signatureResolutionExamined: hasSignatureResolution(left.result) && hasSignatureResolution(right.result)
|
|
9564
10093
|
};
|
|
9565
10094
|
const methodItems = buildMethodItems(methodMatches, itemContext);
|
|
9566
10095
|
const fieldItems = buildFieldItems(fieldMatches, itemContext);
|
|
@@ -9650,7 +10179,7 @@ function init_managedNativeVerificationSchemas() {
|
|
|
9650
10179
|
evidence_links: z.array(evidenceIdSchema$8).min(1),
|
|
9651
10180
|
limitations: z.array(textSchema$1)
|
|
9652
10181
|
};
|
|
9653
|
-
observedCandidatesSchema = z.tuple([nativeSymbolSchema]).
|
|
10182
|
+
observedCandidatesSchema = z.tuple([nativeSymbolSchema], nativeSymbolSchema).check(z.minLength(1));
|
|
9654
10183
|
pinvokeVerificationSchema = z.union([
|
|
9655
10184
|
z.strictObject({
|
|
9656
10185
|
...pinvokeVerificationContextShape,
|
|
@@ -10262,8 +10791,9 @@ function init_artifactComparison() {
|
|
|
10262
10791
|
contradiction: 0
|
|
10263
10792
|
};
|
|
10264
10793
|
for (const change of changes) counts[change.classification] += 1;
|
|
10794
|
+
const changedPaths = new Set(changes.filter(({ classification }) => classification !== "added").map(({ logical_path: path }) => path));
|
|
10265
10795
|
return {
|
|
10266
|
-
unchanged: covered ?
|
|
10796
|
+
unchanged: covered ? left.occurrences.filter(({ logical_path: path }) => !changedPaths.has(path)).length : 0,
|
|
10267
10797
|
...counts,
|
|
10268
10798
|
unknown: covered ? counts.unknown : Math.max(counts.unknown, Math.max(left.manifest.occurrence_count, right.manifest.occurrence_count) - counts.added - counts.removed - counts.changed - counts.contradiction)
|
|
10269
10799
|
};
|
|
@@ -11343,357 +11873,6 @@ function init_reconstructionVerificationSchemas() {
|
|
|
11343
11873
|
})))();
|
|
11344
11874
|
}
|
|
11345
11875
|
|
|
11346
|
-
//#endregion
|
|
11347
|
-
//#region dist/domain/electron/electronFuses.js
|
|
11348
|
-
var ELECTRON_FUSE_SENTINEL, ELECTRON_FUSE_STATE_BYTES, ELECTRON_FUSE_V1_NAMES, FUSE_IMPLICATIONS, OTHER_MEANS_LIMITATION, MISSING_SENTINEL_LIMITATION, byteSchema, fuseStateSchema, electronFuseSchema, electronFuseSentinelSchema, electronFuseSliceSchema, implicationLocation, electronFuseImplicationSchema, electronFuseReportSchema, inspectElectronFusesInputSchema, electronFuseState, electronFuseName, describeElectronFuseFindings, embeddedAsarIntegrityApplies, describeSentinel, implicationFor, validateReportBounds, implicationKey, validateSentinel;
|
|
11349
|
-
function init_electronFuses() {
|
|
11350
|
-
return (init_electronFuses = __esmMin((() => {
|
|
11351
|
-
init_digests();
|
|
11352
|
-
init_localPath();
|
|
11353
|
-
ELECTRON_FUSE_SENTINEL = "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX";
|
|
11354
|
-
ELECTRON_FUSE_STATE_BYTES = {
|
|
11355
|
-
disabled: 48,
|
|
11356
|
-
enabled: 49,
|
|
11357
|
-
removed: 114
|
|
11358
|
-
};
|
|
11359
|
-
ELECTRON_FUSE_V1_NAMES = [
|
|
11360
|
-
"RunAsNode",
|
|
11361
|
-
"EnableCookieEncryption",
|
|
11362
|
-
"EnableNodeOptionsEnvironmentVariable",
|
|
11363
|
-
"EnableNodeCliInspectArguments",
|
|
11364
|
-
"EnableEmbeddedAsarIntegrityValidation",
|
|
11365
|
-
"OnlyLoadAppFromAsar",
|
|
11366
|
-
"LoadBrowserProcessSpecificV8Snapshot",
|
|
11367
|
-
"GrantFileProtocolExtraPrivileges",
|
|
11368
|
-
"WasmTrapHandlers"
|
|
11369
|
-
];
|
|
11370
|
-
FUSE_IMPLICATIONS = [
|
|
11371
|
-
{
|
|
11372
|
-
subject: "node_cli_inspect_arguments",
|
|
11373
|
-
fuseIndex: 3,
|
|
11374
|
-
enabled: "honored",
|
|
11375
|
-
inactive: "not_honored"
|
|
11376
|
-
},
|
|
11377
|
-
{
|
|
11378
|
-
subject: "electron_run_as_node",
|
|
11379
|
-
fuseIndex: 0,
|
|
11380
|
-
enabled: "honored",
|
|
11381
|
-
inactive: "not_honored"
|
|
11382
|
-
},
|
|
11383
|
-
{
|
|
11384
|
-
subject: "embedded_asar_integrity_validation",
|
|
11385
|
-
fuseIndex: 4,
|
|
11386
|
-
enabled: "enforced",
|
|
11387
|
-
inactive: "not_enforced"
|
|
11388
|
-
},
|
|
11389
|
-
{
|
|
11390
|
-
subject: "only_load_app_from_asar",
|
|
11391
|
-
fuseIndex: 5,
|
|
11392
|
-
enabled: "restricted_to_app_asar",
|
|
11393
|
-
inactive: "not_restricted_to_app_asar"
|
|
11394
|
-
}
|
|
11395
|
-
];
|
|
11396
|
-
OTHER_MEANS_LIMITATION = "Fuse state does not prove the application enables Inspector through other means, such as app.commandLine or a remote-debugging switch in application code.";
|
|
11397
|
-
MISSING_SENTINEL_LIMITATION = "A missing sentinel means fuse state is unknown, not that every fuse is disabled.";
|
|
11398
|
-
byteSchema = z.number().int().min(0).max(255);
|
|
11399
|
-
fuseStateSchema = z.enum([
|
|
11400
|
-
"enabled",
|
|
11401
|
-
"disabled",
|
|
11402
|
-
"removed",
|
|
11403
|
-
"unknown"
|
|
11404
|
-
]);
|
|
11405
|
-
electronFuseSchema = z.strictObject({
|
|
11406
|
-
index: z.number().int().nonnegative(),
|
|
11407
|
-
name: z.string().min(1).nullable(),
|
|
11408
|
-
state: fuseStateSchema,
|
|
11409
|
-
raw_byte: byteSchema
|
|
11410
|
-
});
|
|
11411
|
-
electronFuseSentinelSchema = z.strictObject({
|
|
11412
|
-
sentinel_offset: z.number().int().nonnegative(),
|
|
11413
|
-
wire_version: byteSchema.nullable(),
|
|
11414
|
-
declared_length: byteSchema.nullable(),
|
|
11415
|
-
fuses: z.array(electronFuseSchema),
|
|
11416
|
-
complete: z.boolean()
|
|
11417
|
-
});
|
|
11418
|
-
electronFuseSliceSchema = z.strictObject({
|
|
11419
|
-
index: z.number().int().nonnegative(),
|
|
11420
|
-
file_offset: z.number().int().nonnegative(),
|
|
11421
|
-
size: z.number().int().nonnegative(),
|
|
11422
|
-
architecture: z.string().min(1).nullable(),
|
|
11423
|
-
sentinel_count: z.number().int().nonnegative(),
|
|
11424
|
-
sentinels: z.array(electronFuseSentinelSchema)
|
|
11425
|
-
});
|
|
11426
|
-
implicationLocation = {
|
|
11427
|
-
relationship: z.literal("derivation"),
|
|
11428
|
-
slice_index: z.number().int().nonnegative(),
|
|
11429
|
-
sentinel_offset: z.number().int().nonnegative()
|
|
11430
|
-
};
|
|
11431
|
-
electronFuseImplicationSchema = z.discriminatedUnion("subject", [
|
|
11432
|
-
z.strictObject({
|
|
11433
|
-
...implicationLocation,
|
|
11434
|
-
subject: z.literal("node_cli_inspect_arguments"),
|
|
11435
|
-
fuse_index: z.literal(3),
|
|
11436
|
-
outcome: z.enum([
|
|
11437
|
-
"honored",
|
|
11438
|
-
"not_honored",
|
|
11439
|
-
"unknown"
|
|
11440
|
-
])
|
|
11441
|
-
}),
|
|
11442
|
-
z.strictObject({
|
|
11443
|
-
...implicationLocation,
|
|
11444
|
-
subject: z.literal("electron_run_as_node"),
|
|
11445
|
-
fuse_index: z.literal(0),
|
|
11446
|
-
outcome: z.enum([
|
|
11447
|
-
"honored",
|
|
11448
|
-
"not_honored",
|
|
11449
|
-
"unknown"
|
|
11450
|
-
])
|
|
11451
|
-
}),
|
|
11452
|
-
z.strictObject({
|
|
11453
|
-
...implicationLocation,
|
|
11454
|
-
subject: z.literal("embedded_asar_integrity_validation"),
|
|
11455
|
-
fuse_index: z.literal(4),
|
|
11456
|
-
outcome: z.enum([
|
|
11457
|
-
"enforced",
|
|
11458
|
-
"not_enforced",
|
|
11459
|
-
"unknown"
|
|
11460
|
-
])
|
|
11461
|
-
}),
|
|
11462
|
-
z.strictObject({
|
|
11463
|
-
...implicationLocation,
|
|
11464
|
-
subject: z.literal("only_load_app_from_asar"),
|
|
11465
|
-
fuse_index: z.literal(5),
|
|
11466
|
-
outcome: z.enum([
|
|
11467
|
-
"restricted_to_app_asar",
|
|
11468
|
-
"not_restricted_to_app_asar",
|
|
11469
|
-
"unknown"
|
|
11470
|
-
])
|
|
11471
|
-
})
|
|
11472
|
-
]);
|
|
11473
|
-
electronFuseReportSchema = z.strictObject({
|
|
11474
|
-
artifact: z.strictObject({
|
|
11475
|
-
selected_path: localPathStringSchema,
|
|
11476
|
-
resolved_path: localPathStringSchema,
|
|
11477
|
-
sha256: digestSchema,
|
|
11478
|
-
bytes: z.number().int().nonnegative(),
|
|
11479
|
-
format: z.enum([
|
|
11480
|
-
"mach-o",
|
|
11481
|
-
"mach-o-universal",
|
|
11482
|
-
"pe",
|
|
11483
|
-
"elf"
|
|
11484
|
-
])
|
|
11485
|
-
}).describe("Caller-selected path, resolved regular file, and the container that was read"),
|
|
11486
|
-
slices: z.array(electronFuseSliceSchema).describe("One entry per universal Mach-O slice, or a single entry for a thin Mach-O, PE, or ELF file. Sentinel offsets are file-absolute."),
|
|
11487
|
-
runtime_implications: z.array(electronFuseImplicationSchema).describe("Derivations from version-1 fuse bytes. Each entry names the fuse index it came from."),
|
|
11488
|
-
limitations: z.array(z.string().min(1))
|
|
11489
|
-
}).superRefine((report, context) => {
|
|
11490
|
-
validateReportBounds(report, context);
|
|
11491
|
-
});
|
|
11492
|
-
inspectElectronFusesInputSchema = z.strictObject({ path: localPathStringSchema.describe("Absolute filesystem path to a macOS .app bundle, Electron Framework binary, Windows PE executable, or Linux ELF executable") });
|
|
11493
|
-
electronFuseState = (byte) => {
|
|
11494
|
-
if (byte === ELECTRON_FUSE_STATE_BYTES.disabled) return "disabled";
|
|
11495
|
-
if (byte === ELECTRON_FUSE_STATE_BYTES.enabled) return "enabled";
|
|
11496
|
-
if (byte === ELECTRON_FUSE_STATE_BYTES.removed) return "removed";
|
|
11497
|
-
return "unknown";
|
|
11498
|
-
};
|
|
11499
|
-
electronFuseName = (wireVersion, index) => wireVersion === 1 ? ELECTRON_FUSE_V1_NAMES[index] ?? null : null;
|
|
11500
|
-
describeElectronFuseFindings = (slices, container) => {
|
|
11501
|
-
const runtime_implications = [];
|
|
11502
|
-
const limitations = [OTHER_MEANS_LIMITATION, MISSING_SENTINEL_LIMITATION];
|
|
11503
|
-
for (const slice of slices) {
|
|
11504
|
-
if (slice.sentinel_count === 0) limitations.push(`Slice ${slice.index} at file offset ${slice.file_offset} contains no Electron fuse sentinel; fuse state for that slice is unknown, not disabled.`);
|
|
11505
|
-
else if (slice.sentinel_count > 1) limitations.push(`Slice ${slice.index} at file offset ${slice.file_offset} contains ${slice.sentinel_count} Electron fuse sentinels; every sentinel is reported and none is selected.`);
|
|
11506
|
-
for (const sentinel of slice.sentinels) describeSentinel(slice.index, sentinel, container, runtime_implications, limitations);
|
|
11507
|
-
}
|
|
11508
|
-
return {
|
|
11509
|
-
runtime_implications,
|
|
11510
|
-
limitations
|
|
11511
|
-
};
|
|
11512
|
-
};
|
|
11513
|
-
embeddedAsarIntegrityApplies = (container) => container === "mach-o" || container === "mach-o-universal" || container === "pe";
|
|
11514
|
-
describeSentinel = (sliceIndex, sentinel, container, implications, limitations) => {
|
|
11515
|
-
if (!sentinel.complete) limitations.push(`Electron fuse wire at file offset ${sentinel.sentinel_offset} is truncated; fuse bytes past the slice stay unknown.`);
|
|
11516
|
-
if (sentinel.wire_version === null) return;
|
|
11517
|
-
if (sentinel.wire_version !== 1) {
|
|
11518
|
-
limitations.push(`Electron fuse wire at file offset ${sentinel.sentinel_offset} uses wire version ${sentinel.wire_version}; version 1 is the only pinned name table, so runtime implications for this wire are unknown.`);
|
|
11519
|
-
return;
|
|
11520
|
-
}
|
|
11521
|
-
for (const spec of FUSE_IMPLICATIONS) {
|
|
11522
|
-
const fuse = sentinel.fuses.find((item) => item.index === spec.fuseIndex);
|
|
11523
|
-
if (fuse === undefined) {
|
|
11524
|
-
limitations.push(`Electron fuse wire at file offset ${sentinel.sentinel_offset} does not include fuse index ${spec.fuseIndex}; that runtime implication is unknown.`);
|
|
11525
|
-
continue;
|
|
11526
|
-
}
|
|
11527
|
-
const applicabilityUnknown = spec.subject === "embedded_asar_integrity_validation" && !embeddedAsarIntegrityApplies(container);
|
|
11528
|
-
if (applicabilityUnknown) limitations.push(`Electron compiles embedded ASAR integrity validation only on macOS and Windows; the observed fuse byte at file offset ${sentinel.sentinel_offset} does not establish enforcement.`);
|
|
11529
|
-
implications.push(implicationFor(spec, applicabilityUnknown ? "unknown" : fuse.state, {
|
|
11530
|
-
slice_index: sliceIndex,
|
|
11531
|
-
sentinel_offset: sentinel.sentinel_offset
|
|
11532
|
-
}));
|
|
11533
|
-
}
|
|
11534
|
-
};
|
|
11535
|
-
implicationFor = (spec, state, location) => {
|
|
11536
|
-
const outcome = state === "enabled" ? spec.enabled : state === "unknown" ? "unknown" : spec.inactive;
|
|
11537
|
-
return {
|
|
11538
|
-
relationship: "derivation",
|
|
11539
|
-
subject: spec.subject,
|
|
11540
|
-
fuse_index: spec.fuseIndex,
|
|
11541
|
-
outcome,
|
|
11542
|
-
...location
|
|
11543
|
-
};
|
|
11544
|
-
};
|
|
11545
|
-
validateReportBounds = (report, context) => {
|
|
11546
|
-
const size = report.artifact.bytes;
|
|
11547
|
-
for (const [sliceIndex, slice] of report.slices.entries()) {
|
|
11548
|
-
if (slice.index !== sliceIndex) context.addIssue({
|
|
11549
|
-
code: "custom",
|
|
11550
|
-
path: [
|
|
11551
|
-
"slices",
|
|
11552
|
-
sliceIndex,
|
|
11553
|
-
"index"
|
|
11554
|
-
],
|
|
11555
|
-
message: "Slice index does not match its position in the report."
|
|
11556
|
-
});
|
|
11557
|
-
if (slice.sentinel_count !== slice.sentinels.length) context.addIssue({
|
|
11558
|
-
code: "custom",
|
|
11559
|
-
path: [
|
|
11560
|
-
"slices",
|
|
11561
|
-
sliceIndex,
|
|
11562
|
-
"sentinel_count"
|
|
11563
|
-
],
|
|
11564
|
-
message: "Sentinel count does not match the reported sentinels."
|
|
11565
|
-
});
|
|
11566
|
-
if (slice.file_offset > size || slice.size > size - slice.file_offset) context.addIssue({
|
|
11567
|
-
code: "custom",
|
|
11568
|
-
path: ["slices", sliceIndex],
|
|
11569
|
-
message: "Slice range extends outside the selected artifact."
|
|
11570
|
-
});
|
|
11571
|
-
for (const [sentinelIndex, sentinel] of slice.sentinels.entries()) validateSentinel(slice, sentinel, sliceIndex, sentinelIndex, context);
|
|
11572
|
-
}
|
|
11573
|
-
const expected = new Set(describeElectronFuseFindings(report.slices, report.artifact.format).runtime_implications.map(implicationKey));
|
|
11574
|
-
for (const [index, implication] of report.runtime_implications.entries()) {
|
|
11575
|
-
if (!expected.has(implicationKey(implication))) context.addIssue({
|
|
11576
|
-
code: "custom",
|
|
11577
|
-
path: ["runtime_implications", index],
|
|
11578
|
-
message: "Runtime implication is not supported by the reported fuse bytes and applicability."
|
|
11579
|
-
});
|
|
11580
|
-
const slice = report.slices[implication.slice_index];
|
|
11581
|
-
if (slice?.sentinels.some((sentinel) => sentinel.sentinel_offset === implication.sentinel_offset) !== true) context.addIssue({
|
|
11582
|
-
code: "custom",
|
|
11583
|
-
path: ["runtime_implications", index],
|
|
11584
|
-
message: "Runtime implication does not reference a reported sentinel."
|
|
11585
|
-
});
|
|
11586
|
-
}
|
|
11587
|
-
};
|
|
11588
|
-
implicationKey = (fact) => JSON.stringify([
|
|
11589
|
-
fact.slice_index,
|
|
11590
|
-
fact.sentinel_offset,
|
|
11591
|
-
fact.subject,
|
|
11592
|
-
fact.fuse_index,
|
|
11593
|
-
fact.outcome
|
|
11594
|
-
]);
|
|
11595
|
-
validateSentinel = (slice, sentinel, sliceIndex, sentinelIndex, context) => {
|
|
11596
|
-
const sentinelEnd = sentinel.sentinel_offset + ELECTRON_FUSE_SENTINEL.length;
|
|
11597
|
-
const wireEnd = sentinelEnd + (sentinel.wire_version === null ? 0 : 1) + (sentinel.declared_length === null ? 0 : 1) + sentinel.fuses.length;
|
|
11598
|
-
if (wireEnd > slice.file_offset + slice.size) context.addIssue({
|
|
11599
|
-
code: "custom",
|
|
11600
|
-
path: [
|
|
11601
|
-
"slices",
|
|
11602
|
-
sliceIndex,
|
|
11603
|
-
"sentinels",
|
|
11604
|
-
sentinelIndex
|
|
11605
|
-
],
|
|
11606
|
-
message: "Reported wire header or fuse bytes extend outside the slice."
|
|
11607
|
-
});
|
|
11608
|
-
if (sentinel.sentinel_offset < slice.file_offset || sentinelEnd > slice.file_offset + slice.size) context.addIssue({
|
|
11609
|
-
code: "custom",
|
|
11610
|
-
path: [
|
|
11611
|
-
"slices",
|
|
11612
|
-
sliceIndex,
|
|
11613
|
-
"sentinels",
|
|
11614
|
-
sentinelIndex,
|
|
11615
|
-
"sentinel_offset"
|
|
11616
|
-
],
|
|
11617
|
-
message: "Sentinel is outside its slice."
|
|
11618
|
-
});
|
|
11619
|
-
if (sentinel.wire_version === null && sentinel.declared_length !== null) context.addIssue({
|
|
11620
|
-
code: "custom",
|
|
11621
|
-
path: [
|
|
11622
|
-
"slices",
|
|
11623
|
-
sliceIndex,
|
|
11624
|
-
"sentinels",
|
|
11625
|
-
sentinelIndex,
|
|
11626
|
-
"declared_length"
|
|
11627
|
-
],
|
|
11628
|
-
message: "A wire without a version byte cannot declare a fuse count."
|
|
11629
|
-
});
|
|
11630
|
-
if (sentinel.complete && (sentinel.declared_length === null || sentinel.fuses.length !== sentinel.declared_length)) context.addIssue({
|
|
11631
|
-
code: "custom",
|
|
11632
|
-
path: [
|
|
11633
|
-
"slices",
|
|
11634
|
-
sliceIndex,
|
|
11635
|
-
"sentinels",
|
|
11636
|
-
sentinelIndex,
|
|
11637
|
-
"complete"
|
|
11638
|
-
],
|
|
11639
|
-
message: "A complete wire must contain every declared fuse byte."
|
|
11640
|
-
});
|
|
11641
|
-
if (!sentinel.complete && sentinel.declared_length !== null && sentinel.fuses.length >= sentinel.declared_length) context.addIssue({
|
|
11642
|
-
code: "custom",
|
|
11643
|
-
path: [
|
|
11644
|
-
"slices",
|
|
11645
|
-
sliceIndex,
|
|
11646
|
-
"sentinels",
|
|
11647
|
-
sentinelIndex,
|
|
11648
|
-
"complete"
|
|
11649
|
-
],
|
|
11650
|
-
message: "An incomplete wire must omit at least one declared fuse byte."
|
|
11651
|
-
});
|
|
11652
|
-
for (const [fuseIndex, fuse] of sentinel.fuses.entries()) {
|
|
11653
|
-
if (fuse.index !== fuseIndex) context.addIssue({
|
|
11654
|
-
code: "custom",
|
|
11655
|
-
path: [
|
|
11656
|
-
"slices",
|
|
11657
|
-
sliceIndex,
|
|
11658
|
-
"sentinels",
|
|
11659
|
-
sentinelIndex,
|
|
11660
|
-
"fuses",
|
|
11661
|
-
fuseIndex,
|
|
11662
|
-
"index"
|
|
11663
|
-
],
|
|
11664
|
-
message: "Fuse index does not match its wire position."
|
|
11665
|
-
});
|
|
11666
|
-
if (fuse.state !== electronFuseState(fuse.raw_byte)) context.addIssue({
|
|
11667
|
-
code: "custom",
|
|
11668
|
-
path: [
|
|
11669
|
-
"slices",
|
|
11670
|
-
sliceIndex,
|
|
11671
|
-
"sentinels",
|
|
11672
|
-
sentinelIndex,
|
|
11673
|
-
"fuses",
|
|
11674
|
-
fuseIndex,
|
|
11675
|
-
"state"
|
|
11676
|
-
],
|
|
11677
|
-
message: "Fuse state does not match its raw byte."
|
|
11678
|
-
});
|
|
11679
|
-
if (sentinel.wire_version !== null && fuse.name !== electronFuseName(sentinel.wire_version, fuse.index)) context.addIssue({
|
|
11680
|
-
code: "custom",
|
|
11681
|
-
path: [
|
|
11682
|
-
"slices",
|
|
11683
|
-
sliceIndex,
|
|
11684
|
-
"sentinels",
|
|
11685
|
-
sentinelIndex,
|
|
11686
|
-
"fuses",
|
|
11687
|
-
fuseIndex,
|
|
11688
|
-
"name"
|
|
11689
|
-
],
|
|
11690
|
-
message: "Fuse name does not match the pinned version-1 table."
|
|
11691
|
-
});
|
|
11692
|
-
}
|
|
11693
|
-
};
|
|
11694
|
-
})))();
|
|
11695
|
-
}
|
|
11696
|
-
|
|
11697
11876
|
//#endregion
|
|
11698
11877
|
//#region dist/contracts/toolOutputSchemaGroups.js
|
|
11699
11878
|
var contextFacetSchema, bookmarkFacetSchema, officialOutputSchemas, literalTraceOutput, callPathTraceOutput, batchProcedureIdentity, enhancedOutputSchemas, nativeOutputSchemas, artifactOutputSchemas, managedOutputSchemas, managedWorkflowOutputSchemas, lifecycleTargetFields, detectedLifecycleTargetSchema, rawLifecycleTargetSchema, sessionOutputSchemas, electronFuseOutputSchemas;
|
|
@@ -11958,7 +12137,7 @@ function init_toolOutputSchemaGroups() {
|
|
|
11958
12137
|
demangle_swift: evidenceResultOf(demangleSwiftSchema)
|
|
11959
12138
|
};
|
|
11960
12139
|
artifactOutputSchemas = {
|
|
11961
|
-
inspect_artifact: evidenceResultOf(z.union([
|
|
12140
|
+
inspect_artifact: evidenceResultOf(z.union([artifactInspectionResultSchema, artifactInventorySummaryViewResultSchema])),
|
|
11962
12141
|
extract_artifact: evidenceResultOf(artifactExtractionResultSchema),
|
|
11963
12142
|
decode_interface_builder: evidenceResultOf(z.union([interfaceBuilderAnalysisSchema, interfaceBuilderSummaryViewResultSchema])),
|
|
11964
12143
|
inspect_keyed_archive: evidenceResultOf(keyedArchiveResultSchema),
|
|
@@ -11984,7 +12163,7 @@ function init_toolOutputSchemaGroups() {
|
|
|
11984
12163
|
detectedLifecycleTargetSchema = z.object({
|
|
11985
12164
|
...lifecycleTargetFields,
|
|
11986
12165
|
format: targetFormatSchema.exclude(["raw-binary"]),
|
|
11987
|
-
architecture: z.enum(BINARY_ARCHITECTURES$1).exclude([
|
|
12166
|
+
architecture: z.enum(BINARY_ARCHITECTURES$1).exclude([...RAW_ONLY_ARCHITECTURES]).nullable()
|
|
11988
12167
|
});
|
|
11989
12168
|
rawLifecycleTargetSchema = z.object({
|
|
11990
12169
|
...lifecycleTargetFields,
|
|
@@ -12067,4 +12246,4 @@ function init_toolOutputSchemaGroups() {
|
|
|
12067
12246
|
}
|
|
12068
12247
|
|
|
12069
12248
|
//#endregion
|
|
12070
|
-
export {
|
|
12249
|
+
export { INSPECT_ANALYSIS_VIEW_OPERATION, KeyedArchiveKindError, PROCESS_PROVIDER, WASM_INTERFACE_REPRESENTATION_BYTES, WEB_NETWORK_CAPTURE_FORMATS, WEB_NETWORK_CAPTURE_LIMITS, WebNetworkApiSurfaceAccumulator, admitAnalysisViewData, admitRawBinary, analysisDetailOutputSchemaOf, analysisDetailSchema, analysisViewResultSchema, androidInputSchemas, androidPackageInspectionInputSchema, androidPackageSummaryViewResultSchema, androidRequestSchema, androidResultSchemas, appleAssetCatalogInputSchema, appleResourceKeyFields, artifactComparisonInputSchema, artifactOutputSchemas, binaryArchitectureSchema, binaryLayoutPayloadSchema, binaryLayoutSchema, binaryLayoutSummaryViewResultSchema, bundleComparisonInputSchema, bytePatternFields, byteSearchResultSchema, callPathInputSchema, captureSensitiveValues, changedBehaviorInputSchema, compareBundles, compareManagedMembers, compareProcessCaptures, dartAotInspectionInputSchema, dartAotSummaryViewResultSchema, demangleSwiftSchema, dexDescriptorSchema, dylibResolutionInputSchema, dylibResolutionResultSchema, electronFuseOutputSchemas, enhancedOutputSchemas, evidenceRecordFiltersSchema, evmInterfaceSchema, evmInterfaceSummaryViewResultSchema, flutterInputSchemas, flutterRequestSchema, flutterResultSchemas, importManagedReconstruction, init_WebNetworkApiSurfaceAccumulator, init_analysisDetail, init_analysisView, init_analysisViewDataAdmission, init_analysisViewErrors, init_androidAnalysis, init_appleAssetCatalog, init_artifactComparison, init_binaryLayout, init_bundleComparison, init_bytePattern, init_callPathSchemas, init_changedBehavior, init_dyldPaths, init_dylibResolution, init_evidenceRecordSummary, init_evmInterface, init_flutterBuildAnalysis, init_keyedArchive, init_managedMemberComparison, init_managedMemberComparisonMatch, init_managedNativeVerificationSchemas, init_managedReconstruction, init_nativeCallObservation, init_nativeDataType, init_nativeFunctionAnnotations, init_nativeInspection, init_nativeLoadImage, init_nativeMetadataRecovery, init_nativeUiObservation, init_pcapAnalysis, init_plistValue, init_pngHeader, init_processComparison, init_processEvidenceProvider, init_processTraceSpecification, init_rawBinary, init_reconstructionVerificationSchemas, init_solidityMetadata, init_staticRuntimeCorrelation, init_toolEffects, init_toolOutputSchemaGroups, init_wasmArtifact, init_wasmInterface, init_webNetworkCapture, inspectAnalysisViewInputSchema, inspectBinaryLayoutInputSchema, inspectEvmInterfaceInputSchema, inspectMachoSchema, inspectPlistSchema, inspectSignatureSchema, inspectWasmArtifactInputSchema, inspectWebNetworkCaptureInputSchema, isProcessEvidenceProvider, javascriptApplicationSummaryViewResultSchema, keyedArchiveInputSchema, keyedArchiveResultSchema, listArchitecturesSchema, managedNativeVerificationInputSchema, managedNativeVerificationResultSchema, managedOutputSchemas, managedReconstructionImportInputSchema, managedWorkflowOutputSchemas, nativeCallEventSchema, nativeCallObservationInputSchema, nativeCallObservationResultSchema, nativeCapturedOutputSchema, nativeCodeLocationSchema, nativeDataTypeInputSchema, nativeDataTypeSchema, nativeFunctionAnnotationsInputSchema, nativeFunctionAnnotationsSchema, nativeLoadImageObservationSchema, nativeLoadImagePartialObservationSchema, nativeLoadImageSchema, nativeMetadataRecoverySummarySchema, nativeOutputSchemas, nativeUiObservationInputSchema, nativeUiResultSchema, nativeUiScenarioInputSchema, nativeUiSnapshotSchema, negativeZeroReal, negativeZeroRealLimitation, nonFiniteRealLimitation, officialOutputSchemas, parseAppleAssetCatalogRecords, parseManagedMemberEvidence, pcapCaptureSummaryViewResultSchema, pcapInputSchemas, pcapRequestSchema, pcapResultSchemas, pinvokeVerificationSchema, processTraceSpecificationSchema, projectAnalysisView, projectAppleAssetCatalogPage, projectKeyedArchive, projectPlistValue, rawBinaryEntryPointSchema, rawBinarySelectionError, readPngHeaderDimensions, reconstructionVerificationInputSchema, resolveTreePath, sessionOutputSchemas, solidityMetadataSchema, staticRuntimeCorrelationInputSchema, summarizeEvidenceBundle, toolContractMetadata, traceDylibLoading, unknownDateLimitation, unknownRealLimitation, validateBytePattern, wasmArtifactMatchesSubject, wasmArtifactSchema, wasmArtifactSummaryViewResultSchema, wasmInterfaceEntryRepresentationBytes, wasmInterfaceSchema, webNetworkCapturePayloadSchema, webNetworkCaptureSchema, webNetworkCaptureSummaryViewResultSchema };
|