// GENERATED CONTENT - DO NOT EDIT // Content of this file was automatically extracted from the // "WebUSB API" spec. // See: https://wicg.github.io/webusb/ dictionary USBDeviceFilter { unsigned short vendorId; unsigned short productId; octet classCode; octet subclassCode; octet protocolCode; DOMString serialNumber; }; dictionary USBDeviceRequestOptions { required sequence filters; }; [Exposed=(DedicatedWorker,SharedWorker,Window), SecureContext] interface USB : EventTarget { attribute EventHandler onconnect; attribute EventHandler ondisconnect; Promise> getDevices(); [Exposed=Window] Promise requestDevice(USBDeviceRequestOptions options); }; [Exposed=Window, SecureContext] partial interface Navigator { [SameObject] readonly attribute USB usb; }; [Exposed=(DedicatedWorker,SharedWorker), SecureContext] partial interface WorkerNavigator { [SameObject] readonly attribute USB usb; }; dictionary USBConnectionEventInit : EventInit { required USBDevice device; }; [ Constructor(DOMString type, USBConnectionEventInit eventInitDict), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBConnectionEvent : Event { [SameObject] readonly attribute USBDevice device; }; [Exposed=(DedicatedWorker,SharedWorker,Window)] interface USBDevice { readonly attribute octet usbVersionMajor; readonly attribute octet usbVersionMinor; readonly attribute octet usbVersionSubminor; readonly attribute octet deviceClass; readonly attribute octet deviceSubclass; readonly attribute octet deviceProtocol; readonly attribute unsigned short vendorId; readonly attribute unsigned short productId; readonly attribute octet deviceVersionMajor; readonly attribute octet deviceVersionMinor; readonly attribute octet deviceVersionSubminor; readonly attribute DOMString? manufacturerName; readonly attribute DOMString? productName; readonly attribute DOMString? serialNumber; readonly attribute USBConfiguration? configuration; readonly attribute FrozenArray configurations; readonly attribute boolean opened; Promise open(); Promise close(); Promise selectConfiguration(octet configurationValue); Promise claimInterface(octet interfaceNumber); Promise releaseInterface(octet interfaceNumber); Promise selectAlternateInterface(octet interfaceNumber, octet alternateSetting); Promise controlTransferIn(USBControlTransferParameters setup, unsigned short length); Promise controlTransferOut(USBControlTransferParameters setup, optional BufferSource data); Promise clearHalt(USBDirection direction, octet endpointNumber); Promise transferIn(octet endpointNumber, unsigned long length); Promise transferOut(octet endpointNumber, BufferSource data); Promise isochronousTransferIn(octet endpointNumber, sequence packetLengths); Promise isochronousTransferOut(octet endpointNumber, BufferSource data, sequence packetLengths); Promise reset(); }; enum USBRequestType { "standard", "class", "vendor" }; enum USBRecipient { "device", "interface", "endpoint", "other" }; enum USBTransferStatus { "ok", "stall", "babble" }; dictionary USBControlTransferParameters { required USBRequestType requestType; required USBRecipient recipient; required octet request; required unsigned short value; required unsigned short index; }; [ Constructor(USBTransferStatus status, optional DataView? data), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBInTransferResult { readonly attribute DataView? data; readonly attribute USBTransferStatus status; }; [ Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBOutTransferResult { readonly attribute unsigned long bytesWritten; readonly attribute USBTransferStatus status; }; [ Constructor(USBTransferStatus status, optional DataView? data), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBIsochronousInTransferPacket { readonly attribute DataView? data; readonly attribute USBTransferStatus status; }; [ Constructor(sequence packets, optional DataView? data), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBIsochronousInTransferResult { readonly attribute DataView? data; readonly attribute FrozenArray packets; }; [ Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBIsochronousOutTransferPacket { readonly attribute unsigned long bytesWritten; readonly attribute USBTransferStatus status; }; [ Constructor(sequence packets), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBIsochronousOutTransferResult { readonly attribute FrozenArray packets; }; [ Constructor(USBDevice device, octet configurationValue), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBConfiguration { readonly attribute octet configurationValue; readonly attribute DOMString? configurationName; readonly attribute FrozenArray interfaces; }; [ Constructor(USBConfiguration configuration, octet interfaceNumber), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBInterface { readonly attribute octet interfaceNumber; readonly attribute USBAlternateInterface alternate; readonly attribute FrozenArray alternates; readonly attribute boolean claimed; }; [ Constructor(USBInterface deviceInterface, octet alternateSetting), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBAlternateInterface { readonly attribute octet alternateSetting; readonly attribute octet interfaceClass; readonly attribute octet interfaceSubclass; readonly attribute octet interfaceProtocol; readonly attribute DOMString? interfaceName; readonly attribute FrozenArray endpoints; }; enum USBDirection { "in", "out" }; enum USBEndpointType { "bulk", "interrupt", "isochronous" }; [ Constructor(USBAlternateInterface alternate, octet endpointNumber, USBDirection direction), Exposed=(DedicatedWorker,SharedWorker,Window) ] interface USBEndpoint { readonly attribute octet endpointNumber; readonly attribute USBDirection direction; readonly attribute USBEndpointType type; readonly attribute unsigned long packetSize; }; dictionary USBPermissionDescriptor : PermissionDescriptor { sequence filters; }; dictionary AllowedUSBDevice { required octet vendorId; required octet productId; DOMString serialNumber; }; dictionary USBPermissionStorage { sequence allowedDevices = []; }; interface USBPermissionResult : PermissionStatus { attribute FrozenArray devices; };