@rescript/webapi 0.1.0-alpha-b1d58f9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -0
  3. package/package.json +61 -0
  4. package/rescript.json +557 -0
  5. package/src/animation/Animation.res +149 -0
  6. package/src/animation/AnimationEffect.res +71 -0
  7. package/src/animation/DocumentTimeline.res +8 -0
  8. package/src/canvas/Canvas.res +179 -0
  9. package/src/canvas/CanvasGradient.res +11 -0
  10. package/src/canvas/CanvasPattern.res +11 -0
  11. package/src/canvas/CanvasRenderingContext2D.res +868 -0
  12. package/src/canvas/CanvasTypes.res +452 -0
  13. package/src/canvas/FillStyle.res +25 -0
  14. package/src/canvas/HTMLCanvasElement.res +101 -0
  15. package/src/canvas/ImageBitmap.res +6 -0
  16. package/src/canvas/ImageBitmapRenderingContext.res +9 -0
  17. package/src/canvas/ImageData.res +17 -0
  18. package/src/canvas/OffscreenCanvas.res +87 -0
  19. package/src/canvas/Path2D.res +186 -0
  20. package/src/canvas/VideoColorSpace.res +11 -0
  21. package/src/canvas/VideoFrame.res +217 -0
  22. package/src/core/ArrayBufferTypedArrayOrDataView.res +4 -0
  23. package/src/core/DOM.res +1026 -0
  24. package/src/core/EventType.res +108 -0
  25. package/src/crypto/Crypto.res +11 -0
  26. package/src/crypto/SubtleCrypto.res +173 -0
  27. package/src/crypto/WebCryptoTypes.res +71 -0
  28. package/src/css-font-loading/BaseCSSFontLoading.res +24 -0
  29. package/src/css-font-loading/CssFontLoadingTypes.res +92 -0
  30. package/src/css-font-loading/FontFace.res +62 -0
  31. package/src/css-font-loading/FontFaceSet.res +38 -0
  32. package/src/cssom/CSSRuleList.res +5 -0
  33. package/src/cssom/CSSStyleDeclaration.res +1734 -0
  34. package/src/cssom/CSSStyleValue.res +17 -0
  35. package/src/cssom/MediaList.res +29 -0
  36. package/src/cssom/MediaQueryList.res +18 -0
  37. package/src/cssom/StylePropertyMap.res +56 -0
  38. package/src/cssom/StylePropertyMapReadOnly.res +22 -0
  39. package/src/cssom/StyleSheet.res +152 -0
  40. package/src/cssom/StyleSheetList.res +17 -0
  41. package/src/device/GamepadHapticActuator.res +16 -0
  42. package/src/device/GamepadTypes.res +86 -0
  43. package/src/device/Geolocation.res +31 -0
  44. package/src/device/GeolocationCoordinates.res +5 -0
  45. package/src/device/GeolocationPosition.res +5 -0
  46. package/src/device/GeolocationTypes.res +81 -0
  47. package/src/device/LockManager.res +26 -0
  48. package/src/device/ScreenOrientation.res +7 -0
  49. package/src/device/ScreenWakeLockTypes.res +26 -0
  50. package/src/device/WakeLock.res +8 -0
  51. package/src/device/WakeLockSentinel.res +7 -0
  52. package/src/device/WebLocksTypes.res +45 -0
  53. package/src/device/WebMIDI.res +7 -0
  54. package/src/device/WebMidiTypes.res +36 -0
  55. package/src/dom-nodes/AbstractRange.res +30 -0
  56. package/src/dom-nodes/Attr.res +101 -0
  57. package/src/dom-nodes/CDATASection.res +7 -0
  58. package/src/dom-nodes/CaretPosition.res +2 -0
  59. package/src/dom-nodes/CharacterData.res +199 -0
  60. package/src/dom-nodes/Comment.res +15 -0
  61. package/src/dom-nodes/DOMImplementation.res +131 -0
  62. package/src/dom-nodes/DOMTree.res +1653 -0
  63. package/src/dom-nodes/DocumentFragment.res +96 -0
  64. package/src/dom-nodes/Element.res +509 -0
  65. package/src/dom-nodes/ElementInternals.res +39 -0
  66. package/src/dom-nodes/HTML.res +11 -0
  67. package/src/dom-nodes/HTMLCollection.res +25 -0
  68. package/src/dom-nodes/NamedNodeMap.res +46 -0
  69. package/src/dom-nodes/Node.res +114 -0
  70. package/src/dom-nodes/NodeFilter.res +4 -0
  71. package/src/dom-nodes/NodeIterator.res +38 -0
  72. package/src/dom-nodes/NodeList.res +6 -0
  73. package/src/dom-nodes/ProcessingInstruction.res +15 -0
  74. package/src/dom-nodes/Range.res +156 -0
  75. package/src/dom-nodes/Selection.res +137 -0
  76. package/src/dom-nodes/ShadowRoot.res +23 -0
  77. package/src/dom-nodes/StaticRange.res +6 -0
  78. package/src/dom-nodes/Text.res +31 -0
  79. package/src/dom-nodes/TreeWalker.res +65 -0
  80. package/src/dom-platform/DOMException.res +7 -0
  81. package/src/dom-platform/DOMStringList.res +15 -0
  82. package/src/dom-platform/DOMStringMap.res +5 -0
  83. package/src/dom-platform/DOMTokenList.res +70 -0
  84. package/src/event/AbortController.res +9 -0
  85. package/src/event/AbortSignal.res +25 -0
  86. package/src/event/Event.res +76 -0
  87. package/src/event/EventTarget.res +91 -0
  88. package/src/event/ExtendableEvent.res +14 -0
  89. package/src/fetch/BodyInit.res +46 -0
  90. package/src/fetch/Fetch.res +12 -0
  91. package/src/fetch/FetchTypes.res +282 -0
  92. package/src/fetch/FormData.res +71 -0
  93. package/src/fetch/FormDataEntryValue.res +2 -0
  94. package/src/fetch/Headers.res +59 -0
  95. package/src/fetch/HeadersInit.res +16 -0
  96. package/src/fetch/Request.res +61 -0
  97. package/src/fetch/Response.res +127 -0
  98. package/src/file/BaseFileAndDirectoryEntries.res +72 -0
  99. package/src/file/Blob.res +48 -0
  100. package/src/file/File.res +15 -0
  101. package/src/file/FileAndDirectoryEntriesTypes.res +35 -0
  102. package/src/file/FileList.res +16 -0
  103. package/src/file/FileSystemDirectoryEntry.res +42 -0
  104. package/src/file/FileSystemDirectoryHandle.res +49 -0
  105. package/src/file/FileSystemDirectoryReader.res +9 -0
  106. package/src/file/FileSystemEntry.res +9 -0
  107. package/src/file/FileSystemFileHandle.res +25 -0
  108. package/src/file/FileSystemHandle.res +6 -0
  109. package/src/file/FileSystemWritableFileStream.res +65 -0
  110. package/src/file/FileTypes.res +225 -0
  111. package/src/file/ReadableStream.res +79 -0
  112. package/src/file/WritableStream.res +27 -0
  113. package/src/file/WritableStreamDefaultController.res +5 -0
  114. package/src/geometry/DOMMatrix.res +206 -0
  115. package/src/geometry/DOMMatrixReadOnly.res +140 -0
  116. package/src/geometry/DOMPoint.res +28 -0
  117. package/src/geometry/DOMPointReadOnly.res +22 -0
  118. package/src/geometry/DOMRect.res +22 -0
  119. package/src/geometry/DOMRectList.res +2 -0
  120. package/src/geometry/DOMRectReadOnly.res +19 -0
  121. package/src/html/HTMLAnchorElement.res +373 -0
  122. package/src/html/HTMLAreaElement.res +353 -0
  123. package/src/html/HTMLBRElement.res +9 -0
  124. package/src/html/HTMLBaseElement.res +20 -0
  125. package/src/html/HTMLBodyElement.res +9 -0
  126. package/src/html/HTMLButtonElement.res +98 -0
  127. package/src/html/HTMLDListElement.res +9 -0
  128. package/src/html/HTMLDataElement.res +14 -0
  129. package/src/html/HTMLDataListElement.res +14 -0
  130. package/src/html/HTMLDialogElement.res +40 -0
  131. package/src/html/HTMLDivElement.res +9 -0
  132. package/src/html/HTMLElement.res +108 -0
  133. package/src/html/HTMLEmbedElement.res +275 -0
  134. package/src/html/HTMLFieldSetElement.res +70 -0
  135. package/src/html/HTMLFormControlsCollection.res +21 -0
  136. package/src/html/HTMLFormElement.res +39 -0
  137. package/src/html/HTMLFrameSetElement.res +9 -0
  138. package/src/html/HTMLHRElement.res +9 -0
  139. package/src/html/HTMLHeadElement.res +256 -0
  140. package/src/html/HTMLHeadingElement.res +9 -0
  141. package/src/html/HTMLHtmlElement.res +9 -0
  142. package/src/html/HTMLIFrameElement.res +69 -0
  143. package/src/html/HTMLImageElement.res +349 -0
  144. package/src/html/HTMLInputElement.res +310 -0
  145. package/src/html/HTMLLIElement.res +9 -0
  146. package/src/html/HTMLLabelElement.res +25 -0
  147. package/src/html/HTMLLegendElement.res +14 -0
  148. package/src/html/HTMLLinkElement.res +69 -0
  149. package/src/html/HTMLMapElement.res +20 -0
  150. package/src/html/HTMLMenuElement.res +8 -0
  151. package/src/html/HTMLMetaElement.res +29 -0
  152. package/src/html/HTMLMeterElement.res +38 -0
  153. package/src/html/HTMLModElement.res +9 -0
  154. package/src/html/HTMLOListElement.res +24 -0
  155. package/src/html/HTMLObjectElement.res +89 -0
  156. package/src/html/HTMLOptGroupElement.res +19 -0
  157. package/src/html/HTMLOptionElement.res +49 -0
  158. package/src/html/HTMLOptionsCollection.res +35 -0
  159. package/src/html/HTMLOutputElement.res +73 -0
  160. package/src/html/HTMLParagraphElement.res +9 -0
  161. package/src/html/HTMLPictureElement.res +9 -0
  162. package/src/html/HTMLPreElement.res +9 -0
  163. package/src/html/HTMLProgressElement.res +29 -0
  164. package/src/html/HTMLQuoteElement.res +9 -0
  165. package/src/html/HTMLScriptElement.res +310 -0
  166. package/src/html/HTMLSelectElement.res +157 -0
  167. package/src/html/HTMLSlotElement.res +34 -0
  168. package/src/html/HTMLSourceElement.res +18 -0
  169. package/src/html/HTMLSpanElement.res +9 -0
  170. package/src/html/HTMLStyleElement.res +24 -0
  171. package/src/html/HTMLTableCaptionElement.res +9 -0
  172. package/src/html/HTMLTableCellElement.res +40 -0
  173. package/src/html/HTMLTableElement.res +100 -0
  174. package/src/html/HTMLTableRowElement.res +40 -0
  175. package/src/html/HTMLTableSectionElement.res +30 -0
  176. package/src/html/HTMLTemplateElement.res +31 -0
  177. package/src/html/HTMLTextAreaElement.res +177 -0
  178. package/src/html/HTMLTimeElement.res +14 -0
  179. package/src/html/HTMLTitleElement.res +15 -0
  180. package/src/html/HTMLUListElement.res +9 -0
  181. package/src/html/HTMLUnknownElement.res +9 -0
  182. package/src/media/BaseEncryptedMediaExtensions.res +97 -0
  183. package/src/media/DomHTMLMediaElement.res +206 -0
  184. package/src/media/EncryptedMediaExtensionsHTMLMediaElement.res +15 -0
  185. package/src/media/EncryptedMediaExtensionsTypes.res +43 -0
  186. package/src/media/HTMLAudioElement.res +9 -0
  187. package/src/media/HTMLTrackElement.res +14 -0
  188. package/src/media/HTMLVideoElement.res +78 -0
  189. package/src/media/MediaCapabilities.res +19 -0
  190. package/src/media/MediaCapabilitiesTypes.res +83 -0
  191. package/src/media/MediaCaptureAndStreamsTypes.res +197 -0
  192. package/src/media/MediaDeviceInfo.res +9 -0
  193. package/src/media/MediaDevices.res +40 -0
  194. package/src/media/MediaError.res +14 -0
  195. package/src/media/MediaKeySession.res +53 -0
  196. package/src/media/MediaKeyStatusMap.res +11 -0
  197. package/src/media/MediaKeySystemAccess.res +14 -0
  198. package/src/media/MediaKeys.res +35 -0
  199. package/src/media/MediaMetadata.res +10 -0
  200. package/src/media/MediaSession.res +25 -0
  201. package/src/media/MediaSessionTypes.res +85 -0
  202. package/src/media/MediaStream.res +89 -0
  203. package/src/media/MediaStreamTrack.res +51 -0
  204. package/src/media/PictureInPicture.res +7 -0
  205. package/src/media/PictureInPictureTypes.res +17 -0
  206. package/src/media/RemotePlayback.res +25 -0
  207. package/src/media/RemotePlaybackTypes.res +20 -0
  208. package/src/media/SpeechSynthesis.res +33 -0
  209. package/src/media/SpeechSynthesisUtterance.res +8 -0
  210. package/src/media/TextTrack.res +15 -0
  211. package/src/media/TextTrackCueList.res +9 -0
  212. package/src/media/TextTrackList.res +17 -0
  213. package/src/media/TimeRanges.res +29 -0
  214. package/src/media/VideoPlaybackQuality.res +18 -0
  215. package/src/media/WebSpeechTypes.res +83 -0
  216. package/src/media/WebVttTypes.res +123 -0
  217. package/src/messaging/ApplicationServerKey.res +2 -0
  218. package/src/messaging/ChannelMessagingTypes.res +12 -0
  219. package/src/messaging/CloseEvent.res +10 -0
  220. package/src/messaging/MessageEvent.res +43 -0
  221. package/src/messaging/MessagePort.res +38 -0
  222. package/src/messaging/Notification.res +46 -0
  223. package/src/messaging/NotificationTypes.res +107 -0
  224. package/src/messaging/PushEvent.res +3 -0
  225. package/src/messaging/PushManager.res +24 -0
  226. package/src/messaging/PushMessageData.res +15 -0
  227. package/src/messaging/PushSubscription.res +20 -0
  228. package/src/messaging/PushTypes.res +88 -0
  229. package/src/messaging/WebSocket.res +74 -0
  230. package/src/messaging/WebSocketsTypes.res +124 -0
  231. package/src/navigator/Clipboard.res +29 -0
  232. package/src/navigator/ClipboardItem.res +20 -0
  233. package/src/navigator/ClipboardTypes.res +31 -0
  234. package/src/navigator/CredentialManagementTypes.res +138 -0
  235. package/src/navigator/CredentialsContainer.res +33 -0
  236. package/src/navigator/Navigator.res +166 -0
  237. package/src/navigator/Permissions.res +10 -0
  238. package/src/navigator/PermissionsTypes.res +38 -0
  239. package/src/observers/IntersectionObserver.res +36 -0
  240. package/src/observers/IntersectionObserverRoot.res +23 -0
  241. package/src/observers/IntersectionObserverTypes.res +67 -0
  242. package/src/observers/MutationObserver.res +94 -0
  243. package/src/observers/ResizeObserver.res +30 -0
  244. package/src/observers/ResizeObserverTypes.res +56 -0
  245. package/src/performance/Performance.res +101 -0
  246. package/src/performance/PerformanceEntry.res +5 -0
  247. package/src/performance/PerformanceMark.res +16 -0
  248. package/src/performance/PerformanceTypes.res +86 -0
  249. package/src/storage/Cache.res +117 -0
  250. package/src/storage/CacheStorage.res +43 -0
  251. package/src/storage/CacheTypes.res +24 -0
  252. package/src/storage/IDBDatabase.res +54 -0
  253. package/src/storage/IDBFactory.res +34 -0
  254. package/src/storage/IDBIndex.res +83 -0
  255. package/src/storage/IDBObjectStore.res +183 -0
  256. package/src/storage/IDBTransaction.res +22 -0
  257. package/src/storage/IndexedDbTypes.res +213 -0
  258. package/src/storage/Storage.res +42 -0
  259. package/src/storage/StorageEvent.res +10 -0
  260. package/src/storage/StorageManager.res +24 -0
  261. package/src/storage/StorageTypes.res +11 -0
  262. package/src/storage/WebStorageTypes.res +57 -0
  263. package/src/svg/SVGElement.res +115 -0
  264. package/src/svg/SVGGraphicsElement.res +16 -0
  265. package/src/svg/SVGLength.res +9 -0
  266. package/src/ui-events/CompositionEvent.res +10 -0
  267. package/src/ui-events/DataTransfer.res +38 -0
  268. package/src/ui-events/DataTransferItem.res +21 -0
  269. package/src/ui-events/DataTransferItemList.res +34 -0
  270. package/src/ui-events/FocusEvent.res +10 -0
  271. package/src/ui-events/InputEvent.res +16 -0
  272. package/src/ui-events/KeyboardEvent.res +16 -0
  273. package/src/ui-events/MouseEvent.res +26 -0
  274. package/src/ui-events/PointerEvent.res +24 -0
  275. package/src/ui-events/Touch.res +5 -0
  276. package/src/ui-events/TouchEvent.res +10 -0
  277. package/src/ui-events/TouchList.res +5 -0
  278. package/src/ui-events/UIEvent.res +20 -0
  279. package/src/ui-events/UiEventsTypes.res +590 -0
  280. package/src/ui-events/WheelEvent.res +10 -0
  281. package/src/url/URL.res +38 -0
  282. package/src/url/URLSearchParams.res +104 -0
  283. package/src/url/UrlTypes.res +69 -0
  284. package/src/view-transitions/ViewTransition.res +5 -0
  285. package/src/view-transitions/ViewTransitionsTypes.res +22 -0
  286. package/src/web-audio/AnalyserNode.res +38 -0
  287. package/src/web-audio/AudioBuffer.res +33 -0
  288. package/src/web-audio/AudioBufferSourceNode.res +21 -0
  289. package/src/web-audio/AudioContext.res +59 -0
  290. package/src/web-audio/AudioDestinationNode.res +1 -0
  291. package/src/web-audio/AudioNode.res +76 -0
  292. package/src/web-audio/AudioParam.res +65 -0
  293. package/src/web-audio/AudioProcessingEvent.res +10 -0
  294. package/src/web-audio/AudioScheduledSourceNode.res +23 -0
  295. package/src/web-audio/AudioWorkletNode.res +11 -0
  296. package/src/web-audio/BaseAudioContext.res +141 -0
  297. package/src/web-audio/BiquadFilterNode.res +21 -0
  298. package/src/web-audio/ChannelMergerNode.res +10 -0
  299. package/src/web-audio/ChannelSplitterNode.res +10 -0
  300. package/src/web-audio/ConstantSourceNode.res +10 -0
  301. package/src/web-audio/ConvolverNode.res +10 -0
  302. package/src/web-audio/DelayNode.res +10 -0
  303. package/src/web-audio/DynamicsCompressorNode.res +10 -0
  304. package/src/web-audio/GainNode.res +10 -0
  305. package/src/web-audio/IIRFilterNode.res +21 -0
  306. package/src/web-audio/MediaElementAudioSourceNode.res +10 -0
  307. package/src/web-audio/MediaStreamAudioDestinationNode.res +10 -0
  308. package/src/web-audio/MediaStreamAudioSourceNode.res +10 -0
  309. package/src/web-audio/OfflineAudioCompletionEvent.res +10 -0
  310. package/src/web-audio/OfflineAudioContext.res +58 -0
  311. package/src/web-audio/OscillatorNode.res +17 -0
  312. package/src/web-audio/PannerNode.res +10 -0
  313. package/src/web-audio/PeriodicWave.res +8 -0
  314. package/src/web-audio/StereoPannerNode.res +10 -0
  315. package/src/web-audio/WaveShaperNode.res +10 -0
  316. package/src/web-audio/WebAudioTypes.res +1309 -0
  317. package/src/web-audio/Worklet.res +14 -0
  318. package/src/window/CustomElementRegistry.res +30 -0
  319. package/src/window/Document.res +470 -0
  320. package/src/window/DomGlobal.res +459 -0
  321. package/src/window/History.res +37 -0
  322. package/src/window/HistoryTypes.res +26 -0
  323. package/src/window/IdleDeadline.res +5 -0
  324. package/src/window/Location.res +108 -0
  325. package/src/window/VisualViewport.res +5 -0
  326. package/src/window/VisualViewportTypes.res +37 -0
  327. package/src/window/Window.res +556 -0
  328. package/src/window/XPathExpression.res +16 -0
  329. package/src/window/XPathResult.res +46 -0
  330. package/src/workers/Clients.res +39 -0
  331. package/src/workers/NavigationPreloadManager.res +26 -0
  332. package/src/workers/ServiceWorker.res +38 -0
  333. package/src/workers/ServiceWorkerContainer.res +34 -0
  334. package/src/workers/ServiceWorkerRegistration.res +32 -0
  335. package/src/workers/ServiceWorkerScope.res +12 -0
  336. package/src/workers/ServiceWorkerTypes.res +153 -0
  337. package/src/workers/SharedWorker.res +68 -0
  338. package/src/workers/SharedWorkerScope.res +29 -0
  339. package/src/workers/WebWorkersTypes.res +46 -0
  340. package/src/workers/Worker.res +48 -0
  341. package/src/workers/WorkerLocation.res +18 -0
@@ -0,0 +1,40 @@
1
+ type t = MediaCaptureAndStreamsTypes.mediaDevices = private {
2
+ ...MediaCaptureAndStreamsTypes.mediaDevices,
3
+ }
4
+ type mediaTrackSupportedConstraints = MediaCaptureAndStreamsTypes.mediaTrackSupportedConstraints = {
5
+ ...MediaCaptureAndStreamsTypes.mediaTrackSupportedConstraints,
6
+ }
7
+ type mediaStreamConstraints = MediaCaptureAndStreamsTypes.mediaStreamConstraints = {
8
+ ...MediaCaptureAndStreamsTypes.mediaStreamConstraints,
9
+ }
10
+ type displayMediaStreamOptions = MediaCaptureAndStreamsTypes.displayMediaStreamOptions = {
11
+ ...MediaCaptureAndStreamsTypes.displayMediaStreamOptions,
12
+ }
13
+
14
+ include EventTarget.Impl({type t = t})
15
+
16
+ /**
17
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDevices/enumerateDevices)
18
+ */
19
+ @send
20
+ external enumerateDevices: t => promise<array<MediaDeviceInfo.t>> = "enumerateDevices"
21
+
22
+ /**
23
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDevices/getSupportedConstraints)
24
+ */
25
+ @send
26
+ external getSupportedConstraints: t => mediaTrackSupportedConstraints = "getSupportedConstraints"
27
+
28
+ /**
29
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDevices/getUserMedia)
30
+ */
31
+ @send
32
+ external getUserMedia: (t, ~constraints: mediaStreamConstraints=?) => promise<MediaStream.t> =
33
+ "getUserMedia"
34
+
35
+ /**
36
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDevices/getDisplayMedia)
37
+ */
38
+ @send
39
+ external getDisplayMedia: (t, ~options: displayMediaStreamOptions=?) => promise<MediaStream.t> =
40
+ "getDisplayMedia"
@@ -0,0 +1,14 @@
1
+ /**
2
+ An error which occurred while handling media in an HTML media element based on HTMLMediaElement, such as <audio> or <video>.
3
+ [See MediaError on MDN](https://developer.mozilla.org/docs/Web/API/MediaError)
4
+ */
5
+ type t = private {
6
+ /**
7
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaError/code)
8
+ */
9
+ code: int,
10
+ /**
11
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaError/message)
12
+ */
13
+ message: string,
14
+ }
@@ -0,0 +1,53 @@
1
+ include EventTarget.Impl({type t = EncryptedMediaExtensionsTypes.mediaKeySession})
2
+
3
+ /**
4
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeySession/generateRequest)
5
+ */
6
+ @send
7
+ external generateRequest: (
8
+ EncryptedMediaExtensionsTypes.mediaKeySession,
9
+ ~initDataType: string,
10
+ ~initData: DataView.t,
11
+ ) => promise<unit> = "generateRequest"
12
+
13
+ /**
14
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeySession/generateRequest)
15
+ */
16
+ @send
17
+ external generateRequest2: (
18
+ EncryptedMediaExtensionsTypes.mediaKeySession,
19
+ ~initDataType: string,
20
+ ~initData: ArrayBuffer.t,
21
+ ) => promise<unit> = "generateRequest"
22
+
23
+ /**
24
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeySession/load)
25
+ */
26
+ @send
27
+ external load: (EncryptedMediaExtensionsTypes.mediaKeySession, string) => promise<bool> = "load"
28
+
29
+ /**
30
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeySession/update)
31
+ */
32
+ @send
33
+ external update: (EncryptedMediaExtensionsTypes.mediaKeySession, DataView.t) => promise<unit> =
34
+ "update"
35
+
36
+ /**
37
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeySession/update)
38
+ */
39
+ @send
40
+ external update2: (EncryptedMediaExtensionsTypes.mediaKeySession, ArrayBuffer.t) => promise<unit> =
41
+ "update"
42
+
43
+ /**
44
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeySession/close)
45
+ */
46
+ @send
47
+ external close: EncryptedMediaExtensionsTypes.mediaKeySession => promise<unit> = "close"
48
+
49
+ /**
50
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeySession/remove)
51
+ */
52
+ @send
53
+ external remove: EncryptedMediaExtensionsTypes.mediaKeySession => promise<unit> = "remove"
@@ -0,0 +1,11 @@
1
+ /**
2
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/has)
3
+ */
4
+ @send
5
+ external has: (EncryptedMediaExtensionsTypes.mediaKeyStatusMap, DataView.t) => bool = "has"
6
+
7
+ /**
8
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/has)
9
+ */
10
+ @send
11
+ external has2: (EncryptedMediaExtensionsTypes.mediaKeyStatusMap, ArrayBuffer.t) => bool = "has"
@@ -0,0 +1,14 @@
1
+ /**
2
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/getConfiguration)
3
+ */
4
+ @send
5
+ external getConfiguration: EncryptedMediaExtensionsTypes.mediaKeySystemAccess => EncryptedMediaExtensionsTypes.mediaKeySystemConfiguration =
6
+ "getConfiguration"
7
+
8
+ /**
9
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/createMediaKeys)
10
+ */
11
+ @send
12
+ external createMediaKeys: EncryptedMediaExtensionsTypes.mediaKeySystemAccess => promise<
13
+ EncryptedMediaExtensionsTypes.mediaKeys,
14
+ > = "createMediaKeys"
@@ -0,0 +1,35 @@
1
+ /**
2
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeys/createSession)
3
+ */
4
+ @send
5
+ external createSession: (
6
+ EncryptedMediaExtensionsTypes.mediaKeys,
7
+ ~sessionType: EncryptedMediaExtensionsTypes.mediaKeySessionType=?,
8
+ ) => EncryptedMediaExtensionsTypes.mediaKeySession = "createSession"
9
+
10
+ /**
11
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeys/getStatusForPolicy)
12
+ */
13
+ @send
14
+ external getStatusForPolicy: (
15
+ EncryptedMediaExtensionsTypes.mediaKeys,
16
+ ~policy: EncryptedMediaExtensionsTypes.mediaKeysPolicy=?,
17
+ ) => promise<EncryptedMediaExtensionsTypes.mediaKeyStatus> = "getStatusForPolicy"
18
+
19
+ /**
20
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeys/setServerCertificate)
21
+ */
22
+ @send
23
+ external setServerCertificate: (
24
+ EncryptedMediaExtensionsTypes.mediaKeys,
25
+ DataView.t,
26
+ ) => promise<bool> = "setServerCertificate"
27
+
28
+ /**
29
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaKeys/setServerCertificate)
30
+ */
31
+ @send
32
+ external setServerCertificate2: (
33
+ EncryptedMediaExtensionsTypes.mediaKeys,
34
+ ArrayBuffer.t,
35
+ ) => promise<bool> = "setServerCertificate"
@@ -0,0 +1,10 @@
1
+ type t = MediaSessionTypes.mediaMetadata = private {...MediaSessionTypes.mediaMetadata}
2
+ type mediaMetadataInit = MediaSessionTypes.mediaMetadataInit = {
3
+ ...MediaSessionTypes.mediaMetadataInit,
4
+ }
5
+
6
+ /**
7
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata)
8
+ */
9
+ @new
10
+ external make: (~init: mediaMetadataInit=?) => t = "MediaMetadata"
@@ -0,0 +1,25 @@
1
+ type t = MediaSessionTypes.mediaSession = private {...MediaSessionTypes.mediaSession}
2
+ type mediaSessionAction = MediaSessionTypes.mediaSessionAction
3
+ type mediaPositionState = MediaSessionTypes.mediaPositionState = {
4
+ ...MediaSessionTypes.mediaPositionState,
5
+ }
6
+ type mediaSessionActionHandler = MediaSessionTypes.mediaSessionActionHandler
7
+
8
+ /**
9
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession/setActionHandler)
10
+ */
11
+ @send
12
+ external setActionHandler: (
13
+ t,
14
+ ~action: mediaSessionAction,
15
+ ~handler: mediaSessionActionHandler,
16
+ ) => unit = "setActionHandler"
17
+
18
+ /**
19
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession/setPositionState)
20
+ */
21
+ @throws(JsExn) @send
22
+ external setPositionState: (t, ~state: mediaPositionState=?) => unit = "setPositionState"
23
+
24
+ module MediaMetadata = MediaMetadata
25
+ module Types = MediaSessionTypes
@@ -0,0 +1,85 @@
1
+ @@warning("-30")
2
+
3
+ type mediaSessionPlaybackState =
4
+ | @as("none") None
5
+ | @as("paused") Paused
6
+ | @as("playing") Playing
7
+
8
+ type mediaSessionAction =
9
+ | @as("nexttrack") Nexttrack
10
+ | @as("pause") Pause
11
+ | @as("play") Play
12
+ | @as("previoustrack") Previoustrack
13
+ | @as("seekbackward") Seekbackward
14
+ | @as("seekforward") Seekforward
15
+ | @as("seekto") Seekto
16
+ | @as("skipad") Skipad
17
+ | @as("stop") Stop
18
+
19
+ type mediaImage = {
20
+ mutable src: string,
21
+ mutable sizes?: string,
22
+ @as("type") mutable type_?: string,
23
+ }
24
+
25
+ /**
26
+ [See MediaMetadata on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata)
27
+ TODO: mark as private once mutating fields of private records is allowed
28
+ */
29
+ @editor.completeFrom(MediaMetadata)
30
+ type mediaMetadata = {
31
+ /**
32
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/title)
33
+ */
34
+ mutable title: string,
35
+ /**
36
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artist)
37
+ */
38
+ mutable artist: string,
39
+ /**
40
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/album)
41
+ */
42
+ mutable album: string,
43
+ /**
44
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artwork)
45
+ */
46
+ mutable artwork: array<mediaImage>,
47
+ }
48
+
49
+ /**
50
+ [See WebApiMediaSession on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession)
51
+ TODO: mark as private once mutating fields of private records is allowed
52
+ */
53
+ @editor.completeFrom(MediaSession)
54
+ type mediaSession = {
55
+ /**
56
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession/metadata)
57
+ */
58
+ mutable metadata: Null.t<mediaMetadata>,
59
+ /**
60
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession/playbackState)
61
+ */
62
+ mutable playbackState: mediaSessionPlaybackState,
63
+ }
64
+
65
+ type mediaMetadataInit = {
66
+ mutable title?: string,
67
+ mutable artist?: string,
68
+ mutable album?: string,
69
+ mutable artwork?: array<mediaImage>,
70
+ }
71
+
72
+ type mediaSessionActionDetails = {
73
+ mutable action: mediaSessionAction,
74
+ mutable seekOffset?: float,
75
+ mutable seekTime?: float,
76
+ mutable fastSeek?: bool,
77
+ }
78
+
79
+ type mediaPositionState = {
80
+ mutable duration?: float,
81
+ mutable playbackRate?: float,
82
+ mutable position?: float,
83
+ }
84
+
85
+ type mediaSessionActionHandler = mediaSessionActionDetails => unit
@@ -0,0 +1,89 @@
1
+ type t = MediaCaptureAndStreamsTypes.mediaStream = private {
2
+ ...MediaCaptureAndStreamsTypes.mediaStream,
3
+ }
4
+
5
+ /**
6
+ `make()`
7
+
8
+ Creates a new empty `MediaStream`.
9
+
10
+ ```res
11
+ let stream = MediaStream.make()
12
+ ```
13
+
14
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream)
15
+ */
16
+ @new
17
+ external make: unit => t = "MediaStream"
18
+
19
+ /**
20
+ `fromMediaStream(mediaStream)`
21
+
22
+ Creates a new `MediaStream` by copying another `MediaStream`.
23
+
24
+ ```res
25
+ let copiedStream = MediaStream.fromMediaStream(existingStream)
26
+ ```
27
+
28
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream)
29
+ */
30
+ @new
31
+ external fromMediaStream: t => t = "MediaStream"
32
+
33
+ /**
34
+ `fromTracks(array<MediaStreamTrack.t>)`
35
+
36
+ Creates a new `MediaStream` from an array of `MediaStreamTrack.t` values.
37
+
38
+ ```res
39
+ let stream = MediaStream.fromTracks([audioTrack, videoTrack])
40
+ ```
41
+
42
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream)
43
+ */
44
+ @new
45
+ external fromTracks: array<MediaStreamTrack.t> => t = "MediaStream"
46
+
47
+ include EventTarget.Impl({type t = t})
48
+
49
+ /**
50
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/getAudioTracks)
51
+ */
52
+ @send
53
+ external getAudioTracks: t => array<MediaStreamTrack.t> = "getAudioTracks"
54
+
55
+ /**
56
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/getVideoTracks)
57
+ */
58
+ @send
59
+ external getVideoTracks: t => array<MediaStreamTrack.t> = "getVideoTracks"
60
+
61
+ /**
62
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/getTracks)
63
+ */
64
+ @send
65
+ external getTracks: t => array<MediaStreamTrack.t> = "getTracks"
66
+
67
+ /**
68
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/getTrackById)
69
+ */
70
+ @send
71
+ external getTrackById: (t, string) => Null.t<MediaStreamTrack.t> = "getTrackById"
72
+
73
+ /**
74
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/addTrack)
75
+ */
76
+ @send
77
+ external addTrack: (t, MediaStreamTrack.t) => unit = "addTrack"
78
+
79
+ /**
80
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/removeTrack)
81
+ */
82
+ @send
83
+ external removeTrack: (t, MediaStreamTrack.t) => unit = "removeTrack"
84
+
85
+ /**
86
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStream/clone)
87
+ */
88
+ @send
89
+ external clone: t => t = "clone"
@@ -0,0 +1,51 @@
1
+ type t = MediaCaptureAndStreamsTypes.mediaStreamTrack = private {
2
+ ...MediaCaptureAndStreamsTypes.mediaStreamTrack,
3
+ }
4
+ type mediaTrackCapabilities = MediaCaptureAndStreamsTypes.mediaTrackCapabilities = {
5
+ ...MediaCaptureAndStreamsTypes.mediaTrackCapabilities,
6
+ }
7
+ type mediaTrackConstraints = MediaCaptureAndStreamsTypes.mediaTrackConstraints = {
8
+ ...MediaCaptureAndStreamsTypes.mediaTrackConstraints,
9
+ }
10
+ type mediaTrackSettings = MediaCaptureAndStreamsTypes.mediaTrackSettings = {
11
+ ...MediaCaptureAndStreamsTypes.mediaTrackSettings,
12
+ }
13
+
14
+ include EventTarget.Impl({type t = t})
15
+
16
+ /**
17
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/clone)
18
+ */
19
+ @send
20
+ external clone: t => t = "clone"
21
+
22
+ /**
23
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/stop)
24
+ */
25
+ @send
26
+ external stop: t => unit = "stop"
27
+
28
+ /**
29
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getCapabilities)
30
+ */
31
+ @send
32
+ external getCapabilities: t => mediaTrackCapabilities = "getCapabilities"
33
+
34
+ /**
35
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getConstraints)
36
+ */
37
+ @send
38
+ external getConstraints: t => mediaTrackConstraints = "getConstraints"
39
+
40
+ /**
41
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getSettings)
42
+ */
43
+ @send
44
+ external getSettings: t => mediaTrackSettings = "getSettings"
45
+
46
+ /**
47
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/applyConstraints)
48
+ */
49
+ @send
50
+ external applyConstraints: (t, ~constraints: mediaTrackConstraints=?) => promise<unit> =
51
+ "applyConstraints"
@@ -0,0 +1,7 @@
1
+ type t = PictureInPictureTypes.pictureInPictureWindow = {
2
+ ...PictureInPictureTypes.pictureInPictureWindow,
3
+ }
4
+
5
+ include EventTarget.Impl({type t = t})
6
+
7
+ module Types = PictureInPictureTypes
@@ -0,0 +1,17 @@
1
+ @@warning("-30")
2
+
3
+ /**
4
+ [See PictureInPictureWindow on MDN](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow)
5
+ */
6
+ @editor.completeFrom(PictureInPicture)
7
+ type pictureInPictureWindow = {
8
+ ...DOM.eventTarget,
9
+ /**
10
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow/width)
11
+ */
12
+ width: int,
13
+ /**
14
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow/height)
15
+ */
16
+ height: int,
17
+ }
@@ -0,0 +1,25 @@
1
+ type t = RemotePlaybackTypes.remotePlayback = private {...RemotePlaybackTypes.remotePlayback}
2
+ type remotePlaybackAvailabilityCallback = RemotePlaybackTypes.remotePlaybackAvailabilityCallback
3
+
4
+ include EventTarget.Impl({type t = t})
5
+
6
+ /**
7
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/RemotePlayback/watchAvailability)
8
+ */
9
+ @send
10
+ external watchAvailability: (t, remotePlaybackAvailabilityCallback) => promise<int> =
11
+ "watchAvailability"
12
+
13
+ /**
14
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/RemotePlayback/cancelWatchAvailability)
15
+ */
16
+ @send
17
+ external cancelWatchAvailability: (t, ~id: int=?) => promise<unit> = "cancelWatchAvailability"
18
+
19
+ /**
20
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/RemotePlayback/prompt)
21
+ */
22
+ @send
23
+ external prompt: t => promise<unit> = "prompt"
24
+
25
+ module Types = RemotePlaybackTypes
@@ -0,0 +1,20 @@
1
+ @@warning("-30")
2
+
3
+ type remotePlaybackState =
4
+ | @as("connected") Connected
5
+ | @as("connecting") Connecting
6
+ | @as("disconnected") Disconnected
7
+
8
+ /**
9
+ [See WebApiRemotePlayback on MDN](https://developer.mozilla.org/docs/Web/API/RemotePlayback)
10
+ */
11
+ @editor.completeFrom(RemotePlayback)
12
+ type remotePlayback = private {
13
+ ...DOM.eventTarget,
14
+ /**
15
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/RemotePlayback/state)
16
+ */
17
+ state: remotePlaybackState,
18
+ }
19
+
20
+ type remotePlaybackAvailabilityCallback = bool => unit
@@ -0,0 +1,33 @@
1
+ include EventTarget.Impl({type t = WebSpeechTypes.speechSynthesis})
2
+
3
+ /**
4
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/speak)
5
+ */
6
+ @send
7
+ external speak: (WebSpeechTypes.speechSynthesis, WebSpeechTypes.speechSynthesisUtterance) => unit =
8
+ "speak"
9
+
10
+ /**
11
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/cancel)
12
+ */
13
+ @send
14
+ external cancel: WebSpeechTypes.speechSynthesis => unit = "cancel"
15
+
16
+ /**
17
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/pause)
18
+ */
19
+ @send
20
+ external pause: WebSpeechTypes.speechSynthesis => unit = "pause"
21
+
22
+ /**
23
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/resume)
24
+ */
25
+ @send
26
+ external resume: WebSpeechTypes.speechSynthesis => unit = "resume"
27
+
28
+ /**
29
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/getVoices)
30
+ */
31
+ @send
32
+ external getVoices: WebSpeechTypes.speechSynthesis => array<WebSpeechTypes.speechSynthesisVoice> =
33
+ "getVoices"
@@ -0,0 +1,8 @@
1
+ include EventTarget.Impl({type t = WebSpeechTypes.speechSynthesisUtterance})
2
+
3
+ /**
4
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance)
5
+ */
6
+ @new
7
+ external make: (~text: string=?) => WebSpeechTypes.speechSynthesisUtterance =
8
+ "SpeechSynthesisUtterance"
@@ -0,0 +1,15 @@
1
+ include EventTarget.Impl({type t = WebVttTypes.textTrack})
2
+
3
+ /**
4
+ Adds the given cue to textTrack's text track list of cues.
5
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TextTrack/addCue)
6
+ */
7
+ @throws(JsExn) @send
8
+ external addCue: (WebVttTypes.textTrack, WebVttTypes.textTrackCue) => unit = "addCue"
9
+
10
+ /**
11
+ Removes the given cue from textTrack's text track list of cues.
12
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TextTrack/removeCue)
13
+ */
14
+ @throws(JsExn) @send
15
+ external removeCue: (WebVttTypes.textTrack, WebVttTypes.textTrackCue) => unit = "removeCue"
@@ -0,0 +1,9 @@
1
+ /**
2
+ Returns the first text track cue (in text track cue order) with text track cue identifier id.
3
+
4
+ Returns null if none of the cues have the given identifier or if the argument is the empty string.
5
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TextTrackCueList/getCueById)
6
+ */
7
+ @send
8
+ external getCueById: (WebVttTypes.textTrackCueList, string) => Null.t<WebVttTypes.textTrackCue> =
9
+ "getCueById"
@@ -0,0 +1,17 @@
1
+ /**
2
+ [See TextTrackList on MDN](https://developer.mozilla.org/docs/Web/API/TextTrackList)
3
+ */
4
+ type t = private {
5
+ /**
6
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TextTrackList/length)
7
+ */
8
+ length: int,
9
+ }
10
+
11
+ include EventTarget.Impl({type t = t})
12
+
13
+ /**
14
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TextTrackList/getTrackById)
15
+ */
16
+ @send
17
+ external getTrackById: (t, string) => Null.t<WebVttTypes.textTrack> = "getTrackById"
@@ -0,0 +1,29 @@
1
+ /**
2
+ Used to represent a set of time ranges, primarily for the purpose of tracking which portions of media have been buffered when loading it for use by the <audio> and <video> elements.
3
+ [See TimeRanges on MDN](https://developer.mozilla.org/docs/Web/API/TimeRanges)
4
+ */
5
+ type t = private {
6
+ /**
7
+ Returns the number of ranges in the object.
8
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TimeRanges/length)
9
+ */
10
+ length: int,
11
+ }
12
+
13
+ /**
14
+ Returns the time for the start of the range with the given index.
15
+
16
+ Throws an "IndexSizeError" DOMException if the index is out of range.
17
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TimeRanges/start)
18
+ */
19
+ @throws(JsExn) @send
20
+ external start: (t, int) => float = "start"
21
+
22
+ /**
23
+ Returns the time for the end of the range with the given index.
24
+
25
+ Throws an "IndexSizeError" DOMException if the index is out of range.
26
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/TimeRanges/end)
27
+ */
28
+ @throws(JsExn) @send
29
+ external end: (t, int) => float = "end"
@@ -0,0 +1,18 @@
1
+ /**
2
+ Returned by the HTMLVideoElement.getVideoPlaybackQuality() method and contains metrics that can be used to determine the playback quality of a video.
3
+ [See VideoPlaybackQuality on MDN](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality)
4
+ */
5
+ type t = {
6
+ /**
7
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/creationTime)
8
+ */
9
+ creationTime: float,
10
+ /**
11
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/droppedVideoFrames)
12
+ */
13
+ droppedVideoFrames: int,
14
+ /**
15
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/totalVideoFrames)
16
+ */
17
+ totalVideoFrames: int,
18
+ }