Skip to content

Interface: SupportedDevice

A device entry resolved against the host runtime's protocol and transport implementations.

Only devices with at least one drivable transport AND at least one drivable engine are returned by the resolver — anything fully undrivable is filtered out.

Extends

Properties

PropertyTypeDescriptionInherited from
allEnginesDrivablebooleantrue iff every engine on this device has a registered protocol impl. Property of (device, PROTOCOLS) only — not affected by which transports the host runtime exposes. Drives the "fully supported by this driver" badge in pickers and docs.-
capabilities?Readonly<Record<string, unknown>>Chassis-level capability flags — properties of the box, not the printhead. Most boolean capabilities are engine-level; this bag is for genuinely chassis-y things (Brother's editorLite USB-Mass-Storage trick, eventual battery / display flags). Open shape so drivers can extend without touching contracts.DeviceEntry.capabilities
drivableTransportsreadonly TransportType[]Transports the host runtime has implementations for.-
enginesreadonly EngineDescriptor[]Per-engine drivability info.-
familystringDriver family this device belongs to, e.g. 'labelwriter'.DeviceEntry.family
hardwareQuirks?stringIn-source hardware quirks — immutable facts about the chassis. Distinct from support.quirks, which is editorial and changes with firmware revisions. Example: "PID collides with the LabelManager PnP variant; needs usb_modeswitch on Linux".DeviceEntry.hardwareQuirks
keystringStable key used as the registry export name (e.g. 'LW_450').DeviceEntry.key
namestringHuman-readable model name, e.g. 'LabelWriter 450'.DeviceEntry.name
supportDeviceSupportAlways defined; defaults to { status: 'untested' }. Deprecated Author verifications instead. Kept populated by codegen (synthesised from verifications if present, else mapped from legacy authoring) so existing consumers keep working unchanged. Removed in the cleanup PR once all drivers migrate.DeviceEntry.support
transportsDeviceTransportsWire-protocol transports this device exposes.DeviceEntry.transports
undrivableTransportsreadonly TransportType[]Transports the device declares but the host runtime does not implement. Surface these as per-transport hints in the picker ("via USB only — Bluetooth requires the web package"); the device is still supported as long as drivableTransports is non-empty.-
verifications?Partial<Record<TransportType, VerificationCell>>Per-transport stored verifications. Authored by hardware-report PRs; expanded at codegen time into a derived grid (see expandVerifications in ./expand.js). When absent, codegen falls back to legacy support.status.DeviceEntry.verifications