diff --git a/new/apps/web/src/lib/common/interfaces.ts b/new/apps/web/src/lib/common/interfaces.ts new file mode 100644 index 0000000..8a22790 --- /dev/null +++ b/new/apps/web/src/lib/common/interfaces.ts @@ -0,0 +1,15 @@ +interface EolListEntry { + cycle: string; + releaseLabel: string; + releaseDate: string; + eol: string; + latest: string; + link: string; + lts: boolean; + support: string; + extendedSupport: boolean; +} + +export type { + EolListEntry +} \ No newline at end of file diff --git a/new/apps/web/src/lib/common/report/basicinfo.ts b/new/apps/web/src/lib/common/report/basicinfo.ts new file mode 100644 index 0000000..e9a8d92 --- /dev/null +++ b/new/apps/web/src/lib/common/report/basicinfo.ts @@ -0,0 +1,20 @@ +interface BasicInfo { + Edition: string; + Version: string; + Sku: string; + FriendlyVersion: string; + InstallDate: string; + Uptime: number; + Hostname: string; + Username: string; + Domain: string; + BootMode: string; + BootState: string; + SMBiosRamInformation: boolean; + WriteSuccess: boolean; + ErrorCount: number; +} + +export type { + BasicInfo, +} \ No newline at end of file diff --git a/new/apps/web/src/lib/common/report/events.ts b/new/apps/web/src/lib/common/report/events.ts new file mode 100644 index 0000000..e7f95bc --- /dev/null +++ b/new/apps/web/src/lib/common/report/events.ts @@ -0,0 +1,126 @@ +interface UnexpectedShutdown { + Timestamp: string; + BugcheckCode: number; + BugcheckParameter1: string; + BugcheckParameter2: string; + BugcheckParameter3: string; + BugcheckParameter4: string; + PowerButtonTimestamp: number; +} + +interface MachineCheckException { + Timestamp: number | null; + MciStatusRegisterValid: boolean; + ErrorOverflow: boolean; + UncorrectedError: boolean; + ErrorReportingEnabled: boolean; + ProcessorContextCorrupted: boolean; + PoisonedData: boolean; + ExtendedErrorCode: number; + McaErrorCode: string; + ErrorMessage: string; + TransactionType: string; + MemoryHierarchyLevel: string; + RequestType: string; + Participation: string; + Timeout: string; + MemoryOrIo: string; + MemoryTransactionType: string; + ChannelNumber: string; +} + +interface ErrorHeader { + Signature: string; + Revision: string; + SignatureEnd: string; + SectionCount: string; + Severity: string; + ValidBits: string; + Length: string; + Timestamp: string; + PlatformId: string; + PartitionId: string; + CreatorId: string; + NotifyType: string; + RecordId: string; + Flags: string; + PersistenceInfo: string; +} + +interface ErrorDescriptor { + SectionOffset: string; + SectionLength: string; + Revision: string; + ValidBits: string; + Flags: string; + SectionType: string; + FRUId: string; + SectionSeverity: string; + FRUText: string; +} + +interface WheaErrorRecord { + ErrorHeader: ErrorHeader; + ErrorDescriptors: Array; + ErrorPackets: Array; +} + +interface PciCommandRegister { + InterruptDisable: boolean; + FastBackToBackEnable: boolean; + SErrEnable: boolean; + ParityErrorResponse: boolean; + VgaPaletteSnoop: boolean; + MemoryWriteAndInvalidateEnable: boolean; + SpecialCycles: boolean; + BusMaster: boolean; + MemorySpace: boolean; + IoSpace: boolean; +} + +interface PciStatusRegister { + DetectedParityError: boolean; + SignaledSystemError: boolean; + ReceivedMasterAbort: boolean; + ReceivedTargetAbort: boolean; + SignaledTargetAbort: boolean; + DevselTiming: number; + MasterDataParityError: boolean; + FastBackToBackCapable: boolean; + SixtySixMhzCapable: boolean; + CapabilitiesList: boolean; + InterruptStatus: boolean; +} + +interface PciWheaError { + Timestamp: number | null; + VendorId: string; + DeviceId: string; + FaultingDevice: string; + Command: number; + Status: number; + Bus: number; + Device: number; + Function: number; + pciCommandRegister: PciCommandRegister; + pciStatusRegister: PciStatusRegister; +} + +interface Events { + UnexpectedShutdowns: Array; + MachineCheckExceptions: Array; + WheaErrorRecords: Array; + PciWheaErrors: Array; + UnexpectedShutdownCount: number; + MachineCheckExceptionCount: number; + WheaErrorRecordCount: number; + PciWheaErrorCount: number; +} + +export type { + UnexpectedShutdown, MachineCheckException, ErrorHeader, + ErrorDescriptor, WheaErrorRecord, PciCommandRegister, + PciStatusRegister, PciWheaError, + + Events, +} \ No newline at end of file diff --git a/new/apps/web/src/lib/common/report/hardware.ts b/new/apps/web/src/lib/common/report/hardware.ts new file mode 100644 index 0000000..3e8fa59 --- /dev/null +++ b/new/apps/web/src/lib/common/report/hardware.ts @@ -0,0 +1,199 @@ +interface RamModule { + DeviceLocation: string; + BankLocator: string; + Mnufacturer: string | null; + SerialNumber: string | null; + PartNumber: string | null; + ConfiguredSpeed: number; + Capacity: number; +} + +interface Cpu { + CurrentClockSpeed: number; + LoadPercentage: number; + Manufacturer: string; + Name: string; + NumberOfEnabledCore: number; + SocketDesignation: string; + ThreadCount: number; +} + +interface Gpu { + AdapterRAM: number | null; + CurrentBitsPerPixel: number | null; + CurrentHorizontalResolution: number | null; + CurrentRefreshRate: number | null; + CurrentVerticalResolution: number | null; + Description: string; + DriverDate: string; + DriverVersion: string; +} + +interface Motherboard { + Manufacturer: string; + Product: string; + SerialNumber: string; +} + +interface AudioDevice { + DeviceID: string; + Manufacturer: string; + Name: string; + Status: string; +} + +interface Monitor { + Source: string | null; + Name: string; + ChipType: string | null; + DedicatedMemory: string; + MonitorModel: string; + CurrentMode: string; + ConnectionType: string; +} + +interface EdidEntry { + FixedHeaderPattern: string; + ManufacturerId: string; + ProductCode: string; + SerialNumber: string; + ManufacturedDate: string; + EdidVersion: string; + EdidRevision: string; + VideoInputParametersBitmap: string; + HorizontalScreenSize: string; + VerticalScreenSize: string; + DisplayGamma: string; + SupportedFeaturesBitmap: string; + ChromacityCoordinates: string; + EstablishedTimingBitmap: string; + TimingInformation: string; + TimingDescriptors: string; + NumberOfExtensions: string; + Checksum: string; +} + +interface Driver { + DeviceID: string; + DeviceName: string; + DriverVersion: string; + FriendlyName: string; + Manufacturer: string; +} + +interface Device { + ConfigManagerErrorCode: number; + Description: string; + DeviceID: string; + Name: string; + Status: string; +} + +interface BiosInfo { + BiosCharacteristics: Array; + BIOSVersion: Array; + BuildNumber: string | null; + Caption: string | null; + CodeSet: string | null; + CurrentLanguage: string; + Description: string; + EmbeddedControllerMajorVersion: number; + EmbeddedControllerMinorVersion: number; + IdentificationCode: number | null; + InstallableLanguages: number; + InstallDate: string | null; + LanguageEdition: string | null; + ListOfLanguages: Array; + Manufacturer: string; + Name: string; + OtherTargetOS: string | null; + PrimaryBIOS: boolean; + ReleaseDate: string; + SerialNumber: string; + SMBIOSBIOSVersion: string; + SMBIOSMajorVersion: number; + SMBIOSMinorVersion: number; + SMBIOSPresent: boolean; + SoftwareElementID: string; + SoftwareElementState: number; + Status: string; + SystemBiosMajorVersion: number; + SystemBiosMinorVersion: number; + TargetOperatingSystem: number; + Version: string; +} + +interface Partition { + PartitionCapacity: number; + PartitionFree: number; + PartitionLabel: string; + PartitionLetter: string; + Filesystem: string; + CfgMgrErrorCode: number; + LastErrorCode: number; + DirtyBitSet: boolean; + BitlockerEncryptionStatus: boolean; +} + +interface SmartEntry { + Id: number; + Name: string; + RawValue: string; +} + +interface StorageDevice { + DeviceName: string; + SerialNumber: string; + DiskNumber: number; + DiskCapacity: number; + DiskFree: number; + BlockSize: number | null; + MediaType: string; + InterfaceType: string; + PartitionScheme: string; + Partitions: Array; + SmartData: Array; +} + +interface TemperatureSensor { + Hardware: string; + SensorName: string; + SensorValue: number; +} + +interface Battery { + Name: string; + Manufacturer: string; + Chemistry: string; + Design_Capacity: string; + Full_Charge_Capacity: string; + Remaining_Life_Percentage: number; +} + +interface Hardware { + Ram: Array; + Cpu: Cpu; + Gpu: Array; + Motherboard: Motherboard; + AudioDevices: Array; + Monitors: Array; + EdidData: Array; + Drivers: Array; + Devices: Array; + BiosInfo: Array; + Storage: Array; + Temperatures: Array | null; + Batteries: Array; + WriteSuccess: boolean; + ErrorCount: number; +} + +export type { + RamModule, Cpu, Gpu, + Motherboard, AudioDevice, Monitor, + EdidEntry, Driver, Device, + BiosInfo, Partition, SmartEntry, + StorageDevice, TemperatureSensor, Battery, + + Hardware, +}; \ No newline at end of file diff --git a/new/apps/web/src/lib/common/report/meta.ts b/new/apps/web/src/lib/common/report/meta.ts new file mode 100644 index 0000000..9dc272a --- /dev/null +++ b/new/apps/web/src/lib/common/report/meta.ts @@ -0,0 +1,8 @@ +interface Meta { + ElapsedTime: number; + GenerationDate: string; +} + +export type { + Meta, +} \ No newline at end of file diff --git a/new/apps/web/src/lib/common/report/network.ts b/new/apps/web/src/lib/common/report/network.ts new file mode 100644 index 0000000..8b82654 --- /dev/null +++ b/new/apps/web/src/lib/common/report/network.ts @@ -0,0 +1,82 @@ +interface Adapter { + DefaultIPGateway: Array; + Description: string; + DHCPEnabled: boolean; + DHCPLeaseExpires: string; + DHCPLeaseObtained: string; + DHCPServer: string; + DNSDomain: null, + DNSDomainSuffixSearchOrder: Array; + DNSHostName: string; + DNSServerSearchOrder: Array; + InterfaceIndex: number; + IPAddress: Array; + IPEnabled: boolean; + IPSubnet: Array; + MACAddress: string; + LinkSpeed: number; + PhysicalAdapter: boolean; + FullDuplex: boolean; + MediaConnectState: number; + MediaDuplexState: number; + MtuSize: number; + Name: string; + OperationalStatusDownMediaDisconnected: boolean; + PermanentAddress: string; + PromiscuousMode: boolean; + State: number; + DNSIPV6: string; + DNSIsStatic: boolean; +} + +interface Route { + Description: string; + Destination: string; + InterfaceIndex: number; + Mask: string; + Metric1: string; + NextHop: string; +} + +interface NetworkConnection { + LocalIPAddress: string; + LocalPort: number; + RemoteIPAddress: string; + RemotePort: number; + OwningPID: number; +} + +interface UDPEndpoint { + LocalAddress: string; + LocalPort: number; + OwningProcess: number; +} + +interface AutoTuningLevel { + Automatic: string; + InternetCustom: string; + DatacenterCustom: string; + Compat: string; + Datacenter: string; + Internet: string; +} + +interface Network { + Adapters: Array; + Routes: Array; + NetworkConnections: Array; + UDPEndpoints: Array; + ReceiveSideScaling: boolean; + AutoTuningLevelLocal: AutoTuningLevel; + HostsFile: string; + HostsFileHash: string; + WriteSuccess: boolean; + ErrorCount: boolean; +} + +export type { + Adapter, Route, NetworkConnection, + UDPEndpoint, AutoTuningLevel, + + Network, +} \ No newline at end of file diff --git a/new/apps/web/src/lib/common/report/report.ts b/new/apps/web/src/lib/common/report/report.ts new file mode 100644 index 0000000..0ba5a1b --- /dev/null +++ b/new/apps/web/src/lib/common/report/report.ts @@ -0,0 +1,23 @@ +import type { Meta } from "./meta"; +import type { BasicInfo } from "./basicinfo"; +import type { System } from "./system"; +import type { Hardware } from "./hardware"; +import type { Security } from "./security"; +import type { Network } from "./network"; +import type { Events } from "./events"; + +interface Report { + Version: string; + Meta: Meta; + BasicInfo: BasicInfo; + System: System; + Hardware: Hardware; + Security: Security; + Network: Network; + Events: Events; + DebugLogText: string; +} + +export type { + Report, +} \ No newline at end of file diff --git a/new/apps/web/src/lib/common/report/security.ts b/new/apps/web/src/lib/common/report/security.ts new file mode 100644 index 0000000..f9ebe1c --- /dev/null +++ b/new/apps/web/src/lib/common/report/security.ts @@ -0,0 +1,34 @@ +interface TpmDevice { + IsActivated_InitialValue: boolean; + IsEnabled_InitialValue: boolean; + IsOwned_InitialValue: boolean; + ManufacturerId: number; + ManufacturerIdTxt: string; + ManufacturerVersion: string; + ManufacturerVersionFull20: string; + ManufacturerVersionInfo: string; + PhysicalPresenceVersionInfo: string; + SpecVersion: string; + IsPresent: boolean; +} + +interface Security { + AvList: Array; + ExclusionPath: Array; + ExclusionExtension: Array; + ExclusionProcess: Array; + ExclusionIpAddresses: Array; + FwList: Array; + UacEnabled: boolean; + SecureBootEnabled: boolean; + UacLevel: number; + Tpm: TpmDevice | null; + WriteSuccess: boolean; + ErrorCount: number; +} + +export type { + TpmDevice, + + Security, +} \ No newline at end of file diff --git a/new/apps/web/src/lib/common/report/system.ts b/new/apps/web/src/lib/common/report/system.ts new file mode 100644 index 0000000..e032cb4 --- /dev/null +++ b/new/apps/web/src/lib/common/report/system.ts @@ -0,0 +1,132 @@ +interface RunningProcess { + ProcessName: string; + Count: number; + ExePath: string; + Id: number; + WorkingSet: number; + CpuPercent: number; +} + +interface Service { + Caption: string; + Name: string; + PathName: string; + StartMode: string; + State: string; +} + +interface InstalledApp { + Name: string; + Version: string; + InstallDate: string | null; +} + +interface Hotfix { + Description: string; + HotFixID: string; + InstalledOn: string; +} + +interface ScheduledTask { + Path: string; + Name: string; + State: string; + IsActive: boolean; + Author: string | null; + TriggerTypes: Array; +} + +interface StartupTask { + AppName: string; + AppDescription: string; + ImagePath: string; + Timestamp: string; +} + +interface PowerProfile { + Caption: null; + Description: string; + ElementName: string; + InstanceID: string; + IsActive: boolean; +} + +interface WindowsStorePackage { + Architecture: string; + Language: string; + Name: string; + ProgramId: string; + Vendor: string; + Version: string; +} + +interface ChoiceRegistryValue { + HKey: string; + Path: string; + Name: string; + Value: number | null; +} + +interface BrowserExtension { + name: string; + version: string; + description: string; +} + +interface BrowserProfile { + Name: string; + Extensions: Array; +} + +interface Browser { + Name: string; + Profiles: Array; +} + +interface PageFile { + AllocatedBaseSize: number; + Caption: string; + CurrentUsage: number; + PeakUsage: number; +} + +interface System { + UserVariables: Record; + SystemVariables: Record; + RunningProcesses: Array; + Services: Array; + InstalledApps: Array; + InstalledHotfixes: Array; + ScheduledTasks: Array; + WinScheduledTasks: Array; + StartupTasks: Array; + PowerProfiles: Array; + WindowsStorePackages: Array; + MicroCodes: Array; + RecentMinidumps: number; + DumpZip: string | null; + StaticCoreCount: boolean; + LimitedMemory: boolean; + ChoiceRegistryValues: Array; + UsernameSpecialCharacters: boolean; + OneDriveCommercialPathLength: number | null; + OneDriveCommercialNameLength: number | null; + BrowserExtensions: Array; + DefaultBrowser: string; + PageFile: PageFile; + WriteSuccess: boolean; + ErrorCount: number; + LastBiosTime: number; + WindowsOld: boolean; + InstalledLanguagePacks: Array; + SystemLanguage: string; +} + +export type { + RunningProcess, Service, InstalledApp, + Hotfix, ScheduledTask, StartupTask, + PowerProfile, WindowsStorePackage, ChoiceRegistryValue, + BrowserExtension, BrowserProfile, Browser, PageFile, + + System, +}; \ No newline at end of file diff --git a/new/apps/web/src/lib/components/TabbedInfo.svelte b/new/apps/web/src/lib/components/TabbedInfo.svelte index 594397b..0726e30 100644 --- a/new/apps/web/src/lib/components/TabbedInfo.svelte +++ b/new/apps/web/src/lib/components/TabbedInfo.svelte @@ -1,12 +1,22 @@
diff --git a/new/apps/web/src/lib/components/Widgets.svelte b/new/apps/web/src/lib/components/Widgets.svelte index d9798b3..29f132c 100644 --- a/new/apps/web/src/lib/components/Widgets.svelte +++ b/new/apps/web/src/lib/components/Widgets.svelte @@ -1,4 +1,6 @@
@@ -41,7 +50,7 @@
- +
diff --git a/new/apps/web/src/lib/components/logic/PartitionBar.svelte b/new/apps/web/src/lib/components/logic/PartitionBar.svelte index 7fe8a41..e6a7057 100644 --- a/new/apps/web/src/lib/components/logic/PartitionBar.svelte +++ b/new/apps/web/src/lib/components/logic/PartitionBar.svelte @@ -1,19 +1,8 @@ - -
- {@html htmlResult} -
diff --git a/new/apps/web/src/lib/components/tabs/Notes.svelte b/new/apps/web/src/lib/components/tabs/Notes.svelte index c2a1602..f2d764e 100644 --- a/new/apps/web/src/lib/components/tabs/Notes.svelte +++ b/new/apps/web/src/lib/components/tabs/Notes.svelte @@ -1,13 +1,19 @@ @@ -148,7 +154,7 @@ {/if} - {#if report.Hardware.Batteries != null && report.Hardware.Batteries > 0} + {#if report.Hardware.Batteries != null && report.Hardware.Batteries.length > 0} {#each report.Hardware.Batteries as battery} {#if battery.Remaining_Life_Percentage < 70}
  • diff --git a/new/apps/web/src/lib/components/widgets/AudioDevices.svelte b/new/apps/web/src/lib/components/widgets/AudioDevices.svelte index 9fd2627..9d63638 100644 --- a/new/apps/web/src/lib/components/widgets/AudioDevices.svelte +++ b/new/apps/web/src/lib/components/widgets/AudioDevices.svelte @@ -1,15 +1,10 @@