@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,87 @@
1
+ /**
2
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas)
3
+ */
4
+ @new
5
+ external make: (~width: int, ~height: int) => CanvasTypes.offscreenCanvas = "OffscreenCanvas"
6
+
7
+ include EventTarget.Impl({type t = CanvasTypes.offscreenCanvas})
8
+
9
+ /**
10
+ Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: "2d", "bitmaprenderer", "webgl", or "webgl2". options is handled by that API.
11
+
12
+ This specification defines the "2d" context below, which is similar but distinct from the "2d" context that is created from a canvas element. The WebGL specifications define the "webgl" and "webgl2" contexts. [WEBGL]
13
+
14
+ Returns null if the canvas has already been initialized with another context type (e.g., trying to get a "2d" context after getting a "webgl" context).
15
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/getContext)
16
+ */
17
+ @throws(JsExn) @send
18
+ external getContext2D: (
19
+ CanvasTypes.offscreenCanvas,
20
+ @as("2d") _,
21
+ ~options: JSON.t=?,
22
+ ) => Null.t<CanvasTypes.offscreenCanvasRenderingContext2D> = "getContext"
23
+
24
+ /**
25
+ Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: "2d", "bitmaprenderer", "webgl", or "webgl2". options is handled by that API.
26
+
27
+ This specification defines the "2d" context below, which is similar but distinct from the "2d" context that is created from a canvas element. The WebGL specifications define the "webgl" and "webgl2" contexts. [WEBGL]
28
+
29
+ Returns null if the canvas has already been initialized with another context type (e.g., trying to get a "2d" context after getting a "webgl" context).
30
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/getContext)
31
+ */
32
+ @throws(JsExn) @send
33
+ external getContextWebGL: (
34
+ CanvasTypes.offscreenCanvas,
35
+ @as("webgl") _,
36
+ ~options: CanvasTypes.webGLContextAttributes=?,
37
+ ) => Null.t<CanvasTypes.webGLRenderingContext> = "getContext"
38
+
39
+ /**
40
+ Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: "2d", "bitmaprenderer", "webgl", or "webgl2". options is handled by that API.
41
+
42
+ This specification defines the "2d" context below, which is similar but distinct from the "2d" context that is created from a canvas element. The WebGL specifications define the "webgl" and "webgl2" contexts. [WEBGL]
43
+
44
+ Returns null if the canvas has already been initialized with another context type (e.g., trying to get a "2d" context after getting a "webgl" context).
45
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/getContext)
46
+ */
47
+ @throws(JsExn) @send
48
+ external getContextWebGL2: (
49
+ CanvasTypes.offscreenCanvas,
50
+ @as("webgl2") _,
51
+ ~options: CanvasTypes.webGLContextAttributes=?,
52
+ ) => Null.t<CanvasTypes.webGL2RenderingContext> = "getContext"
53
+
54
+ /**
55
+ Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: "2d", "bitmaprenderer", "webgl", or "webgl2". options is handled by that API.
56
+
57
+ This specification defines the "2d" context below, which is similar but distinct from the "2d" context that is created from a canvas element. The WebGL specifications define the "webgl" and "webgl2" contexts. [WEBGL]
58
+
59
+ Returns null if the canvas has already been initialized with another context type (e.g., trying to get a "2d" context after getting a "webgl" context).
60
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/getContext)
61
+ */
62
+ @throws(JsExn) @send
63
+ external getContextBitmapRenderer: (
64
+ CanvasTypes.offscreenCanvas,
65
+ @as("bitmaprenderer") _,
66
+ ~options: CanvasTypes.imageBitmapRenderingContextSettings=?,
67
+ ) => Null.t<CanvasTypes.imageBitmapRenderingContext> = "getContext"
68
+
69
+ /**
70
+ Returns a newly created ImageBitmap object with the image in the OffscreenCanvas object. The image in the OffscreenCanvas object is replaced with a new blank image.
71
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/transferToImageBitmap)
72
+ */
73
+ @throws(JsExn) @send
74
+ external transferToImageBitmap: CanvasTypes.offscreenCanvas => CanvasTypes.imageBitmap =
75
+ "transferToImageBitmap"
76
+
77
+ /**
78
+ Returns a promise that will fulfill with a new Blob object representing a file containing the image in the OffscreenCanvas object.
79
+
80
+ The argument, if provided, is a dictionary that controls the encoding options of the image file to be created. The type field specifies the file format and has a default value of "image/png"; that type is also used if the requested type isn't supported. If the image format supports variable quality (such as "image/jpeg"), then the quality field is a number in the range 0.0 to 1.0 inclusive indicating the desired quality level for the resulting image.
81
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/convertToBlob)
82
+ */
83
+ @send
84
+ external convertToBlob: (
85
+ CanvasTypes.offscreenCanvas,
86
+ ~options: CanvasTypes.imageEncodeOptions=?,
87
+ ) => promise<Blob.t> = "convertToBlob"
@@ -0,0 +1,186 @@
1
+ type domMatrix2DInit = DOM.domMatrix2DInit
2
+
3
+ /**
4
+ `make()`
5
+
6
+ Creates a new empty `Path2D`.
7
+
8
+ ```res
9
+ let path = Path2D.make()
10
+ ```
11
+
12
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Path2D)
13
+ */
14
+ @new
15
+ external make: unit => CanvasTypes.path2D = "Path2D"
16
+
17
+ /**
18
+ `fromPath2D(path2D)`
19
+
20
+ Creates a new `Path2D` by copying another `Path2D`.
21
+
22
+ ```res
23
+ let copiedPath = Path2D.fromPath2D(existingPath)
24
+ ```
25
+
26
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Path2D)
27
+ */
28
+ @new
29
+ external fromPath2D: CanvasTypes.path2D => CanvasTypes.path2D = "Path2D"
30
+
31
+ /**
32
+ `fromString(string)`
33
+
34
+ Creates a new `Path2D` from SVG path data text.
35
+
36
+ ```res
37
+ let path = Path2D.fromString("M0 0 L10 10")
38
+ ```
39
+
40
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Path2D)
41
+ */
42
+ @new
43
+ external fromString: string => CanvasTypes.path2D = "Path2D"
44
+
45
+ /**
46
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/closePath)
47
+ */
48
+ @send
49
+ external closePath: CanvasTypes.path2D => unit = "closePath"
50
+
51
+ /**
52
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/moveTo)
53
+ */
54
+ @send
55
+ external moveTo: (CanvasTypes.path2D, ~x: float, ~y: float) => unit = "moveTo"
56
+
57
+ /**
58
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineTo)
59
+ */
60
+ @send
61
+ external lineTo: (CanvasTypes.path2D, ~x: float, ~y: float) => unit = "lineTo"
62
+
63
+ /**
64
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/quadraticCurveTo)
65
+ */
66
+ @send
67
+ external quadraticCurveTo: (
68
+ CanvasTypes.path2D,
69
+ ~cpx: float,
70
+ ~cpy: float,
71
+ ~x: float,
72
+ ~y: float,
73
+ ) => unit = "quadraticCurveTo"
74
+
75
+ /**
76
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo)
77
+ */
78
+ @send
79
+ external bezierCurveTo: (
80
+ CanvasTypes.path2D,
81
+ ~cp1x: float,
82
+ ~cp1y: float,
83
+ ~cp2x: float,
84
+ ~cp2y: float,
85
+ ~x: float,
86
+ ~y: float,
87
+ ) => unit = "bezierCurveTo"
88
+
89
+ /**
90
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arcTo)
91
+ */
92
+ @throws(JsExn) @send
93
+ external arcTo: (
94
+ CanvasTypes.path2D,
95
+ ~x1: float,
96
+ ~y1: float,
97
+ ~x2: float,
98
+ ~y2: float,
99
+ ~radius: float,
100
+ ) => unit = "arcTo"
101
+
102
+ /**
103
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rect)
104
+ */
105
+ @send
106
+ external rect: (CanvasTypes.path2D, ~x: float, ~y: float, ~w: float, ~h: float) => unit = "rect"
107
+
108
+ /**
109
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect)
110
+ */
111
+ @throws(JsExn) @send
112
+ external roundRect: (
113
+ CanvasTypes.path2D,
114
+ ~x: float,
115
+ ~y: float,
116
+ ~w: float,
117
+ ~h: float,
118
+ ~radii_: array<float>=?,
119
+ ) => unit = "roundRect"
120
+
121
+ /**
122
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect)
123
+ */
124
+ @throws(JsExn) @send
125
+ external roundRect2: (
126
+ CanvasTypes.path2D,
127
+ ~x: float,
128
+ ~y: float,
129
+ ~w: float,
130
+ ~h: float,
131
+ ~radii_: array<float>=?,
132
+ ) => unit = "roundRect"
133
+
134
+ /**
135
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect)
136
+ */
137
+ @throws(JsExn) @send
138
+ external roundRect3: (
139
+ CanvasTypes.path2D,
140
+ ~x: float,
141
+ ~y: float,
142
+ ~w: float,
143
+ ~h: float,
144
+ ~radii_: array<float>=?,
145
+ ) => unit = "roundRect"
146
+
147
+ /**
148
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arc)
149
+ */
150
+ @send
151
+ external arc: (
152
+ CanvasTypes.path2D,
153
+ ~x: float,
154
+ ~y: float,
155
+ ~radius: float,
156
+ ~startAngle: float,
157
+ ~endAngle: float,
158
+ ~counterclockwise: bool=?,
159
+ ) => unit = "arc"
160
+
161
+ /**
162
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/ellipse)
163
+ */
164
+ @send
165
+ external ellipse: (
166
+ CanvasTypes.path2D,
167
+ ~x: float,
168
+ ~y: float,
169
+ ~radiusX: float,
170
+ ~radiusY: float,
171
+ ~rotation: float,
172
+ ~startAngle: float,
173
+ ~endAngle: float,
174
+ ~counterclockwise: bool=?,
175
+ ) => unit = "ellipse"
176
+
177
+ /**
178
+ Adds to the path the path given by the argument.
179
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Path2D/addPath)
180
+ */
181
+ @send
182
+ external addPath: (
183
+ CanvasTypes.path2D,
184
+ ~path: CanvasTypes.path2D,
185
+ ~transform: domMatrix2DInit=?,
186
+ ) => unit = "addPath"
@@ -0,0 +1,11 @@
1
+ /**
2
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoColorSpace)
3
+ */
4
+ @new
5
+ external make: (~init: DOM.videoColorSpaceInit=?) => DOM.videoColorSpace = "VideoColorSpace"
6
+
7
+ /**
8
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/toJSON)
9
+ */
10
+ @send
11
+ external toJSON: DOM.videoColorSpace => DOM.videoColorSpaceInit = "toJSON"
@@ -0,0 +1,217 @@
1
+ /**
2
+ `fromHTMLImageElement(~image: HTMLImageElement.t, ~init: videoFrameInit=?)`
3
+
4
+ Creates a new `VideoFrame` from an `HTMLImageElement`.
5
+
6
+ ```res
7
+ let frame = VideoFrame.fromHTMLImageElement(~image=myImageElement)
8
+ ```
9
+
10
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame)
11
+ */
12
+ @new
13
+ external fromHTMLImageElement: (
14
+ ~image: HTMLImageElement.t,
15
+ ~init: DOM.videoFrameInit=?,
16
+ ) => DOM.videoFrame = "VideoFrame"
17
+
18
+ /**
19
+ `fromSVGImageElement(~image: SVGImageElement.t, ~init: videoFrameInit=?)`
20
+
21
+ Creates a new `VideoFrame` from an `SVGImageElement`.
22
+
23
+ ```res
24
+ let frame = VideoFrame.fromSVGImageElement(~image=mySvgImageElement)
25
+ ```
26
+
27
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame)
28
+ */
29
+ @new
30
+ external fromSVGImageElement: (
31
+ ~image: SVGElement.svgImageElement,
32
+ ~init: DOM.videoFrameInit=?,
33
+ ) => DOM.videoFrame = "VideoFrame"
34
+
35
+ /**
36
+ `fromHTMLVideoElement(~image: HTMLVideoElement.t, ~init: videoFrameInit=?)`
37
+
38
+ Creates a new `VideoFrame` from an `HTMLVideoElement`.
39
+
40
+ ```res
41
+ let frame = VideoFrame.fromHTMLVideoElement(~image=myVideoElement)
42
+ ```
43
+
44
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame)
45
+ */
46
+ @new
47
+ external fromHTMLVideoElement: (
48
+ ~image: HTMLVideoElement.t,
49
+ ~init: DOM.videoFrameInit=?,
50
+ ) => DOM.videoFrame = "VideoFrame"
51
+
52
+ /**
53
+ `fromHTMLCanvasElement(~image: HTMLCanvasElement.t, ~init: videoFrameInit=?)`
54
+
55
+ Creates a new `VideoFrame` from an `HTMLCanvasElement`.
56
+
57
+ ```res
58
+ let frame = VideoFrame.fromHTMLCanvasElement(~image=myCanvasElement)
59
+ ```
60
+
61
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame)
62
+ */
63
+ @new
64
+ external fromHTMLCanvasElement: (
65
+ ~image: HTMLCanvasElement.t,
66
+ ~init: DOM.videoFrameInit=?,
67
+ ) => DOM.videoFrame = "VideoFrame"
68
+
69
+ /**
70
+ `fromImageBitmap(~image: ImageBitmap.t, ~init: videoFrameInit=?)`
71
+
72
+ Creates a new `VideoFrame` from an `ImageBitmap`.
73
+
74
+ ```res
75
+ let frame = VideoFrame.fromImageBitmap(~image=myImageBitmap)
76
+ ```
77
+
78
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame)
79
+ */
80
+ @new
81
+ external fromImageBitmap: (
82
+ ~image: CanvasTypes.imageBitmap,
83
+ ~init: DOM.videoFrameInit=?,
84
+ ) => DOM.videoFrame = "VideoFrame"
85
+
86
+ /**
87
+ `fromOffscreenCanvas(~image: OffscreenCanvas.t, ~init: videoFrameInit=?)`
88
+
89
+ Creates a new `VideoFrame` from an `OffscreenCanvas`.
90
+
91
+ ```res
92
+ let frame = VideoFrame.fromOffscreenCanvas(~image=myOffscreenCanvas)
93
+ ```
94
+
95
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame)
96
+ */
97
+ @new
98
+ external fromOffscreenCanvas: (
99
+ ~image: CanvasTypes.offscreenCanvas,
100
+ ~init: DOM.videoFrameInit=?,
101
+ ) => DOM.videoFrame = "VideoFrame"
102
+
103
+ /**
104
+ `fromVideoFrame(~image: VideoFrame.t, ~init: videoFrameInit=?)`
105
+
106
+ Creates a new `VideoFrame` from another `VideoFrame`.
107
+
108
+ ```res
109
+ let frame = VideoFrame.fromVideoFrame(~image=otherFrame)
110
+ ```
111
+
112
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame)
113
+ */
114
+ @new
115
+ external fromVideoFrame: (~image: DOM.videoFrame, ~init: DOM.videoFrameInit=?) => DOM.videoFrame =
116
+ "VideoFrame"
117
+
118
+ /**
119
+ `fromArrayBuffer(~data: ArrayBuffer.t, ~init: videoFrameBufferInit)`
120
+
121
+ Creates a new `VideoFrame` from `ArrayBuffer`-backed pixel data.
122
+
123
+ ```res
124
+ let frame =
125
+ VideoFrame.fromArrayBuffer(~data=myArrayBuffer, ~init=myVideoFrameBufferInit)
126
+ ```
127
+
128
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame)
129
+ */
130
+ @new
131
+ external fromArrayBuffer: (
132
+ ~data: ArrayBuffer.t,
133
+ ~init: DOM.videoFrameBufferInit,
134
+ ) => DOM.videoFrame = "VideoFrame"
135
+
136
+ /**
137
+ `fromTypedArray(~data: TypedArray.t<'t>, ~init: videoFrameBufferInit)`
138
+
139
+ Creates a new `VideoFrame` from typed-array-backed pixel data.
140
+
141
+ ```res
142
+ let frame =
143
+ VideoFrame.fromTypedArray(~data=myTypedArray, ~init=myVideoFrameBufferInit)
144
+ ```
145
+
146
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame)
147
+ */
148
+ @new
149
+ external fromTypedArray: (
150
+ ~data: TypedArray.t<'t>,
151
+ ~init: DOM.videoFrameBufferInit,
152
+ ) => DOM.videoFrame = "VideoFrame"
153
+
154
+ /**
155
+ `fromDataView(~data: DataView.t, ~init: videoFrameBufferInit)`
156
+
157
+ Creates a new `VideoFrame` from `DataView`-backed pixel data.
158
+
159
+ ```res
160
+ let frame =
161
+ VideoFrame.fromDataView(~data=myDataView, ~init=myVideoFrameBufferInit)
162
+ ```
163
+
164
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame)
165
+ */
166
+ @new
167
+ external fromDataView: (~data: DataView.t, ~init: DOM.videoFrameBufferInit) => DOM.videoFrame =
168
+ "VideoFrame"
169
+
170
+ /**
171
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/allocationSize)
172
+ */
173
+ @send
174
+ external allocationSize: (DOM.videoFrame, ~options: DOM.videoFrameCopyToOptions=?) => int =
175
+ "allocationSize"
176
+
177
+ /**
178
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/copyTo)
179
+ */
180
+ @send
181
+ external copyTo: (
182
+ DOM.videoFrame,
183
+ ~destination: ArrayBuffer.t,
184
+ ~options: DOM.videoFrameCopyToOptions=?,
185
+ ) => promise<array<DOM.planeLayout>> = "copyTo"
186
+
187
+ /**
188
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/copyTo)
189
+ */
190
+ @send
191
+ external copyTo2: (
192
+ DOM.videoFrame,
193
+ ~destination: ArrayBufferTypedArrayOrDataView.t,
194
+ ~options: DOM.videoFrameCopyToOptions=?,
195
+ ) => promise<array<DOM.planeLayout>> = "copyTo"
196
+
197
+ /**
198
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/copyTo)
199
+ */
200
+ @send
201
+ external copyTo3: (
202
+ DOM.videoFrame,
203
+ ~destination: DataView.t,
204
+ ~options: DOM.videoFrameCopyToOptions=?,
205
+ ) => promise<array<DOM.planeLayout>> = "copyTo"
206
+
207
+ /**
208
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/clone)
209
+ */
210
+ @throws(JsExn) @send
211
+ external clone: DOM.videoFrame => DOM.videoFrame = "clone"
212
+
213
+ /**
214
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/VideoFrame/close)
215
+ */
216
+ @send
217
+ external close: DOM.videoFrame => unit = "close"
@@ -0,0 +1,4 @@
1
+ type t
2
+ external fromArrayBuffer: ArrayBuffer.t => t = "%identity"
3
+ external fromTypedArray: TypedArray.t<'t> => t = "%identity"
4
+ external fromDataView: DataView.t => t = "%identity"