@rescript/webapi 0.1.0-experimental-61b1074 → 0.1.0-experimental-0781ac8

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 (480) hide show
  1. package/README.md +10 -5
  2. package/package.json +6 -4
  3. package/rescript.json +591 -4
  4. package/src/Base/ArrayBufferTypedArrayOrDataView.res +4 -0
  5. package/src/Base/BaseCSSFontLoading.res +25 -0
  6. package/src/{EncryptedMediaExtensionsAPI.res → Base/BaseEncryptedMediaExtensions.res} +12 -18
  7. package/src/Base/BaseEvent.res +6 -0
  8. package/src/Base/BaseFile.res +37 -0
  9. package/src/{FileAndDirectoryEntriesAPI.res → Base/BaseFileAndDirectoryEntries.res} +5 -22
  10. package/src/{DOMAPI.res → Base/DOM.res} +225 -2237
  11. package/src/{CSSFontLoadingAPI.res → CSSFontLoading/CssFontLoadingTypes.res} +4 -15
  12. package/src/CSSFontLoading/FontFace.res +62 -0
  13. package/src/CSSFontLoading/FontFaceSet.res +38 -0
  14. package/src/Canvas/Canvas.res +179 -0
  15. package/src/{CanvasAPI → Canvas}/CanvasGradient.res +2 -3
  16. package/src/{CanvasAPI → Canvas}/CanvasPattern.res +3 -3
  17. package/src/{DOMAPI → Canvas}/CanvasRenderingContext2D.res +178 -140
  18. package/src/{CanvasAPI.res → Canvas/CanvasTypes.res} +9 -11
  19. package/src/Canvas/FillStyle.res +25 -0
  20. package/src/{DOMAPI → Canvas}/HTMLCanvasElement.res +21 -23
  21. package/src/{CanvasAPI → Canvas}/ImageBitmap.res +1 -3
  22. package/src/{CanvasAPI → Canvas}/ImageBitmapRenderingContext.res +4 -4
  23. package/src/{CanvasAPI → Canvas}/OffscreenCanvas.res +19 -19
  24. package/src/{CanvasAPI → Canvas}/Path2D.res +63 -19
  25. package/src/Canvas/VideoFrame.res +223 -0
  26. package/src/{ChannelMessagingAPI.res → ChannelMessaging/ChannelMessagingTypes.res} +2 -4
  27. package/src/{ChannelMessagingAPI → ChannelMessaging}/MessagePort.res +8 -10
  28. package/src/Clipboard/Clipboard.res +29 -0
  29. package/src/{ClipboardAPI → Clipboard}/ClipboardItem.res +5 -6
  30. package/src/{ClipboardAPI.res → Clipboard/ClipboardTypes.res} +5 -7
  31. package/src/{CredentialManagementAPI.res → CredentialManagement/CredentialManagementTypes.res} +10 -13
  32. package/src/CredentialManagement/CredentialsContainer.res +33 -0
  33. package/src/{DOMAPI → DOM}/Animation.res +13 -13
  34. package/src/{DOMAPI → DOM}/AnimationEffect.res +7 -5
  35. package/src/{DOMAPI → DOM}/CSSRuleList.res +1 -3
  36. package/src/{DOMAPI → DOM}/CSSStyleDeclaration.res +6 -7
  37. package/src/DOM/CSSStyleSheet.res +30 -0
  38. package/src/{DOMAPI → DOM}/CSSStyleValue.res +3 -4
  39. package/src/DOM/CaretPosition.res +2 -0
  40. package/src/{DOMAPI → DOM}/CharacterData.res +5 -7
  41. package/src/DOM/Comment.res +7 -0
  42. package/src/{DOMAPI → DOM}/CustomElementRegistry.res +10 -9
  43. package/src/DOM/DOMException.res +7 -0
  44. package/src/{DOMAPI → DOM}/DOMImplementation.res +6 -8
  45. package/src/DOM/DOMMatrix.res +228 -0
  46. package/src/DOM/DOMMatrixReadOnly.res +147 -0
  47. package/src/DOM/DOMPoint.res +31 -0
  48. package/src/{DOMAPI → DOM}/DOMPointReadOnly.res +7 -7
  49. package/src/{DOMAPI → DOM}/DOMRect.res +6 -7
  50. package/src/DOM/DOMRectList.res +2 -0
  51. package/src/DOM/DOMRectReadOnly.res +19 -0
  52. package/src/{Prelude → DOM}/DOMStringList.res +3 -3
  53. package/src/{DOMAPI → DOM}/DOMTokenList.res +7 -9
  54. package/src/{DOMAPI → DOM}/Document.res +94 -80
  55. package/src/{DOMAPI → DOM}/DocumentFragment.res +10 -11
  56. package/src/DOM/DocumentTimeline.res +8 -0
  57. package/src/{Global.res → DOM/DomGlobal.res} +62 -285
  58. package/src/{DOMAPI/HTMLMediaElement.res → DOM/DomHTMLMediaElement.res} +6 -16
  59. package/src/DOM/DomTypes.res +2105 -0
  60. package/src/{DOMAPI → DOM}/Element.res +53 -44
  61. package/src/{DOMAPI → DOM}/ElementInternals.res +6 -8
  62. package/src/{DOMAPI → DOM}/FileList.res +2 -5
  63. package/src/DOM/HTMLAnchorElement.res +1 -0
  64. package/src/DOM/HTMLAreaElement.res +1 -0
  65. package/src/DOM/HTMLAudioElement.res +1 -0
  66. package/src/DOM/HTMLBRElement.res +1 -0
  67. package/src/DOM/HTMLBaseElement.res +1 -0
  68. package/src/DOM/HTMLBodyElement.res +1 -0
  69. package/src/{DOMAPI → DOM}/HTMLButtonElement.res +4 -6
  70. package/src/{DOMAPI → DOM}/HTMLCollection.res +2 -4
  71. package/src/DOM/HTMLDListElement.res +1 -0
  72. package/src/DOM/HTMLDataElement.res +1 -0
  73. package/src/DOM/HTMLDataListElement.res +1 -0
  74. package/src/{DOMAPI → DOM}/HTMLDialogElement.res +4 -6
  75. package/src/DOM/HTMLDivElement.res +1 -0
  76. package/src/{DOMAPI → DOM}/HTMLElement.res +5 -5
  77. package/src/DOM/HTMLEmbedElement.res +4 -0
  78. package/src/{DOMAPI → DOM}/HTMLFieldSetElement.res +4 -6
  79. package/src/DOM/HTMLFormControlsCollection.res +16 -0
  80. package/src/{DOMAPI → DOM}/HTMLFormElement.res +7 -7
  81. package/src/DOM/HTMLFrameSetElement.res +1 -0
  82. package/src/DOM/HTMLHRElement.res +1 -0
  83. package/src/DOM/HTMLHeadElement.res +1 -0
  84. package/src/DOM/HTMLHeadingElement.res +1 -0
  85. package/src/DOM/HTMLHtmlElement.res +1 -0
  86. package/src/DOM/HTMLIFrameElement.res +4 -0
  87. package/src/DOM/HTMLImageElement.res +7 -0
  88. package/src/{DOMAPI → DOM}/HTMLInputElement.res +12 -14
  89. package/src/DOM/HTMLLIElement.res +1 -0
  90. package/src/DOM/HTMLLabelElement.res +1 -0
  91. package/src/DOM/HTMLLegendElement.res +1 -0
  92. package/src/DOM/HTMLLinkElement.res +1 -0
  93. package/src/DOM/HTMLMapElement.res +1 -0
  94. package/src/DOM/HTMLMenuElement.res +1 -0
  95. package/src/DOM/HTMLMetaElement.res +1 -0
  96. package/src/DOM/HTMLMeterElement.res +1 -0
  97. package/src/DOM/HTMLModElement.res +1 -0
  98. package/src/DOM/HTMLOListElement.res +1 -0
  99. package/src/{DOMAPI → DOM}/HTMLObjectElement.res +5 -7
  100. package/src/DOM/HTMLOptGroupElement.res +1 -0
  101. package/src/DOM/HTMLOptionElement.res +1 -0
  102. package/src/{DOMAPI → DOM}/HTMLOptionsCollection.res +4 -5
  103. package/src/{DOMAPI → DOM}/HTMLOutputElement.res +4 -6
  104. package/src/DOM/HTMLParagraphElement.res +1 -0
  105. package/src/DOM/HTMLPictureElement.res +1 -0
  106. package/src/DOM/HTMLPreElement.res +1 -0
  107. package/src/DOM/HTMLProgressElement.res +1 -0
  108. package/src/DOM/HTMLQuoteElement.res +1 -0
  109. package/src/{DOMAPI → DOM}/HTMLScriptElement.res +1 -3
  110. package/src/{DOMAPI → DOM}/HTMLSelectElement.res +10 -12
  111. package/src/DOM/HTMLSlotElement.res +31 -0
  112. package/src/DOM/HTMLSourceElement.res +1 -0
  113. package/src/DOM/HTMLSpanElement.res +1 -0
  114. package/src/DOM/HTMLStyleElement.res +1 -0
  115. package/src/DOM/HTMLTableCaptionElement.res +1 -0
  116. package/src/DOM/HTMLTableCellElement.res +1 -0
  117. package/src/{DOMAPI → DOM}/HTMLTableElement.res +12 -12
  118. package/src/{DOMAPI → DOM}/HTMLTableRowElement.res +6 -5
  119. package/src/{DOMAPI → DOM}/HTMLTableSectionElement.res +6 -5
  120. package/src/DOM/HTMLTemplateElement.res +1 -0
  121. package/src/{DOMAPI → DOM}/HTMLTextAreaElement.res +9 -11
  122. package/src/DOM/HTMLTimeElement.res +1 -0
  123. package/src/DOM/HTMLTitleElement.res +1 -0
  124. package/src/DOM/HTMLTrackElement.res +1 -0
  125. package/src/DOM/HTMLUListElement.res +1 -0
  126. package/src/DOM/HTMLVideoElement.res +32 -0
  127. package/src/{DOMAPI → DOM}/IdleDeadline.res +1 -3
  128. package/src/{DOMAPI → DOM}/ImageData.res +4 -5
  129. package/src/{DOMAPI → DOM}/Location.res +3 -5
  130. package/src/{DOMAPI → DOM}/MediaList.res +3 -5
  131. package/src/DOM/MediaQueryList.res +1 -0
  132. package/src/{DOMAPI → DOM}/NamedNodeMap.res +15 -11
  133. package/src/DOM/Navigator.res +166 -0
  134. package/src/{DOMAPI → DOM}/Node.res +10 -11
  135. package/src/DOM/NodeFilter.res +2 -0
  136. package/src/{DOMAPI → DOM}/NodeIterator.res +2 -4
  137. package/src/{DOMAPI → DOM}/NodeList.res +1 -3
  138. package/src/{DOMAPI → DOM}/Range.res +27 -27
  139. package/src/DOM/SVGGraphicsElement.res +18 -0
  140. package/src/{DOMAPI → DOM}/SVGLength.res +2 -4
  141. package/src/DOM/ScreenOrientation.res +7 -0
  142. package/src/{DOMAPI → DOM}/Selection.res +22 -20
  143. package/src/DOM/ShadowRoot.res +19 -0
  144. package/src/DOM/StylePropertyMap.res +57 -0
  145. package/src/{DOMAPI → DOM}/StylePropertyMapReadOnly.res +3 -4
  146. package/src/{DOMAPI → DOM}/StyleSheetList.res +1 -3
  147. package/src/{DOMAPI → DOM}/Text.res +3 -5
  148. package/src/DOM/TextTrackList.res +7 -0
  149. package/src/{DOMAPI → DOM}/TimeRanges.res +2 -4
  150. package/src/{DOMAPI → DOM}/TreeWalker.res +7 -9
  151. package/src/{DOMAPI → DOM}/VideoColorSpace.res +3 -4
  152. package/src/DOM/Window.res +557 -0
  153. package/src/{DOMAPI → DOM}/XPathExpression.res +4 -6
  154. package/src/{DOMAPI → DOM}/XPathResult.res +2 -4
  155. package/src/EncryptedMediaExtensions/EncryptedMediaExtensionsHTMLMediaElement.res +15 -0
  156. package/src/EncryptedMediaExtensions/EncryptedMediaExtensionsTypes.res +43 -0
  157. package/src/{EncryptedMediaExtensionsAPI → EncryptedMediaExtensions}/MediaKeySession.res +10 -10
  158. package/src/{EncryptedMediaExtensionsAPI → EncryptedMediaExtensions}/MediaKeyStatusMap.res +2 -4
  159. package/src/EncryptedMediaExtensions/MediaKeySystemAccess.res +14 -0
  160. package/src/EncryptedMediaExtensions/MediaKeys.res +35 -0
  161. package/src/{EventAPI → Event}/AbortController.res +2 -4
  162. package/src/{EventAPI → Event}/AbortSignal.res +5 -7
  163. package/src/{EventAPI → Event}/Event.res +5 -6
  164. package/src/{EventAPI → Event}/EventTarget.res +14 -16
  165. package/src/{EventAPI.res → Event/EventTypes.res} +10 -10
  166. package/src/{EventAPI → Event}/ExtendableEvent.res +2 -4
  167. package/src/{FetchAPI → Fetch}/BodyInit.res +10 -12
  168. package/src/Fetch/Fetch.res +12 -0
  169. package/src/{FetchAPI.res → Fetch/FetchTypes.res} +19 -21
  170. package/src/{FetchAPI → Fetch}/FormData.res +16 -15
  171. package/src/Fetch/FormDataEntryValue.res +2 -0
  172. package/src/{FetchAPI → Fetch}/Headers.res +10 -12
  173. package/src/{FetchAPI → Fetch}/HeadersInit.res +4 -4
  174. package/src/{FetchAPI → Fetch}/Request.res +16 -11
  175. package/src/{FetchAPI → Fetch}/Response.res +27 -23
  176. package/src/{FileAPI → File}/Blob.res +9 -7
  177. package/src/{FileAPI → File}/File.res +5 -5
  178. package/src/File/FileSystemDirectoryHandle.res +49 -0
  179. package/src/File/FileSystemFileHandle.res +25 -0
  180. package/src/File/FileSystemHandle.res +6 -0
  181. package/src/File/FileSystemWritableFileStream.res +65 -0
  182. package/src/{FileAPI.res → File/FileTypes.res} +22 -23
  183. package/src/File/ReadableStream.res +79 -0
  184. package/src/File/WritableStream.res +27 -0
  185. package/src/{FileAPI → File}/WritableStreamDefaultController.res +1 -3
  186. package/src/FileAndDirectoryEntries/FileAndDirectoryEntriesTypes.res +35 -0
  187. package/src/FileAndDirectoryEntries/FileSystemDirectoryEntry.res +42 -0
  188. package/src/FileAndDirectoryEntries/FileSystemDirectoryReader.res +9 -0
  189. package/src/FileAndDirectoryEntries/FileSystemEntry.res +9 -0
  190. package/src/Gamepad/GamepadHapticActuator.res +16 -0
  191. package/src/{GamepadAPI.res → Gamepad/GamepadTypes.res} +4 -4
  192. package/src/Geolocation/Geolocation.res +31 -0
  193. package/src/{GeolocationAPI → Geolocation}/GeolocationCoordinates.res +1 -3
  194. package/src/{GeolocationAPI → Geolocation}/GeolocationPosition.res +1 -3
  195. package/src/{GeolocationAPI.res → Geolocation/GeolocationTypes.res} +5 -5
  196. package/src/{HistoryAPI → History}/History.res +13 -8
  197. package/src/{HistoryAPI.res → History/HistoryTypes.res} +3 -2
  198. package/src/{IndexedDBAPI → IndexedDB}/IDBDatabase.res +14 -16
  199. package/src/{IndexedDBAPI → IndexedDB}/IDBFactory.res +10 -6
  200. package/src/{IndexedDBAPI → IndexedDB}/IDBIndex.res +22 -17
  201. package/src/{IndexedDBAPI → IndexedDB}/IDBObjectStore.res +44 -33
  202. package/src/{IndexedDBAPI → IndexedDB}/IDBTransaction.res +5 -6
  203. package/src/{IndexedDBAPI.res → IndexedDB/IndexedDbTypes.res} +16 -17
  204. package/src/IntersectionObserver/IntersectionObserver.res +39 -0
  205. package/src/IntersectionObserver/IntersectionObserverRoot.res +21 -0
  206. package/src/{IntersectionObserverAPI.res → IntersectionObserver/IntersectionObserverTypes.res} +7 -9
  207. package/src/MediaCapabilities/MediaCapabilities.res +19 -0
  208. package/src/{MediaCapabilitiesAPI.res → MediaCapabilities/MediaCapabilitiesTypes.res} +3 -3
  209. package/src/{MediaCaptureAndStreamsAPI.res → MediaCaptureAndStreams/MediaCaptureAndStreamsTypes.res} +7 -8
  210. package/src/MediaCaptureAndStreams/MediaDeviceInfo.res +9 -0
  211. package/src/MediaCaptureAndStreams/MediaDevices.res +40 -0
  212. package/src/MediaCaptureAndStreams/MediaStream.res +89 -0
  213. package/src/MediaCaptureAndStreams/MediaStreamTrack.res +51 -0
  214. package/src/MediaSession/MediaMetadata.res +10 -0
  215. package/src/MediaSession/MediaSession.res +25 -0
  216. package/src/{MediaSessionAPI.res → MediaSession/MediaSessionTypes.res} +4 -2
  217. package/src/MutationObserver/MutationObserver.res +31 -0
  218. package/src/{MutationObserverAPI.res → MutationObserver/MutationObserverTypes.res} +3 -5
  219. package/src/Notification/Notification.res +46 -0
  220. package/src/{NotificationAPI.res → Notification/NotificationTypes.res} +5 -7
  221. package/src/Performance/Performance.res +101 -0
  222. package/src/{PerformanceAPI → Performance}/PerformanceEntry.res +1 -3
  223. package/src/Performance/PerformanceMark.res +16 -0
  224. package/src/{PerformanceAPI.res → Performance/PerformanceTypes.res} +9 -12
  225. package/src/Permissions/Permissions.res +10 -0
  226. package/src/{PermissionsAPI.res → Permissions/PermissionsTypes.res} +4 -6
  227. package/src/PictureInPicture/PictureInPicture.res +7 -0
  228. package/src/{PictureInPictureAPI.res → PictureInPicture/PictureInPictureTypes.res} +1 -3
  229. package/src/Push/ApplicationServerKey.res +2 -0
  230. package/src/Push/PushEvent.res +3 -0
  231. package/src/Push/PushManager.res +24 -0
  232. package/src/{PushAPI → Push}/PushMessageData.res +3 -3
  233. package/src/{PushAPI → Push}/PushSubscription.res +4 -5
  234. package/src/{PushAPI.res → Push/PushTypes.res} +6 -8
  235. package/src/RemotePlayback/RemotePlayback.res +25 -0
  236. package/src/{RemotePlaybackAPI.res → RemotePlayback/RemotePlaybackTypes.res} +4 -6
  237. package/src/ResizeObserver/ResizeObserver.res +30 -0
  238. package/src/{ResizeObserverAPI.res → ResizeObserver/ResizeObserverTypes.res} +5 -7
  239. package/src/{ScreenWakeLockAPI.res → ScreenWakeLock/ScreenWakeLockTypes.res} +3 -5
  240. package/src/ScreenWakeLock/WakeLock.res +8 -0
  241. package/src/ScreenWakeLock/WakeLockSentinel.res +7 -0
  242. package/src/ServiceWorker/Cache.res +117 -0
  243. package/src/{ServiceWorkerAPI → ServiceWorker}/Clients.res +14 -7
  244. package/src/{ServiceWorkerAPI → ServiceWorker}/NavigationPreloadManager.res +7 -6
  245. package/src/ServiceWorker/ServiceWorker.res +38 -0
  246. package/src/ServiceWorker/ServiceWorkerContainer.res +34 -0
  247. package/src/{ServiceWorkerAPI → ServiceWorker}/ServiceWorkerRegistration.res +8 -11
  248. package/src/ServiceWorker/ServiceWorkerScope.res +12 -0
  249. package/src/{ServiceWorkerAPI.res → ServiceWorker/ServiceWorkerTypes.res} +18 -23
  250. package/src/{StorageAPI → Storage}/StorageManager.res +5 -7
  251. package/src/{StorageAPI.res → Storage/StorageTypes.res} +1 -1
  252. package/src/UIEvents/CompositionEvent.res +10 -0
  253. package/src/{UIEventsAPI → UIEvents}/DataTransfer.res +10 -8
  254. package/src/{UIEventsAPI → UIEvents}/DataTransferItem.res +5 -8
  255. package/src/{UIEventsAPI → UIEvents}/DataTransferItemList.res +11 -7
  256. package/src/UIEvents/FocusEvent.res +10 -0
  257. package/src/UIEvents/InputEvent.res +16 -0
  258. package/src/UIEvents/KeyboardEvent.res +16 -0
  259. package/src/{UIEventsAPI → UIEvents}/MouseEvent.res +6 -5
  260. package/src/UIEvents/PointerEvent.res +24 -0
  261. package/src/{UIEventsAPI → UIEvents}/Touch.res +1 -3
  262. package/src/UIEvents/TouchEvent.res +10 -0
  263. package/src/{UIEventsAPI → UIEvents}/TouchList.res +1 -3
  264. package/src/UIEvents/UIEvent.res +20 -0
  265. package/src/{UIEventsAPI.res → UIEvents/UiEventsTypes.res} +28 -30
  266. package/src/UIEvents/WheelEvent.res +10 -0
  267. package/src/{URLAPI → URL}/URL.res +6 -5
  268. package/src/{URLAPI → URL}/URLSearchParams.res +20 -17
  269. package/src/{URLAPI.res → URL/UrlTypes.res} +5 -4
  270. package/src/{ViewTransitionsAPI → ViewTransitions}/ViewTransition.res +1 -3
  271. package/src/{ViewTransitionsAPI.res → ViewTransitions/ViewTransitionsTypes.res} +1 -1
  272. package/src/VisualViewport/VisualViewport.res +5 -0
  273. package/src/{VisualViewportAPI.res → VisualViewport/VisualViewportTypes.res} +2 -4
  274. package/src/WebAudio/AnalyserNode.res +38 -0
  275. package/src/{WebAudioAPI → WebAudio}/AudioBuffer.res +4 -6
  276. package/src/{WebAudioAPI → WebAudio}/AudioBufferSourceNode.res +5 -7
  277. package/src/WebAudio/AudioContext.res +59 -0
  278. package/src/WebAudio/AudioDestinationNode.res +1 -0
  279. package/src/{WebAudioAPI → WebAudio}/AudioNode.res +21 -12
  280. package/src/{WebAudioAPI → WebAudio}/AudioParam.res +23 -14
  281. package/src/WebAudio/AudioProcessingEvent.res +10 -0
  282. package/src/{WebAudioAPI → WebAudio}/AudioScheduledSourceNode.res +2 -4
  283. package/src/WebAudio/AudioWorkletNode.res +11 -0
  284. package/src/{WebAudioAPI → WebAudio}/BaseAudioContext.res +26 -25
  285. package/src/{WebAudioAPI → WebAudio}/BiquadFilterNode.res +6 -6
  286. package/src/WebAudio/ChannelMergerNode.res +10 -0
  287. package/src/WebAudio/ChannelSplitterNode.res +10 -0
  288. package/src/WebAudio/ConstantSourceNode.res +10 -0
  289. package/src/WebAudio/ConvolverNode.res +10 -0
  290. package/src/WebAudio/DelayNode.res +10 -0
  291. package/src/WebAudio/DynamicsCompressorNode.res +10 -0
  292. package/src/WebAudio/GainNode.res +10 -0
  293. package/src/{WebAudioAPI → WebAudio}/IIRFilterNode.res +6 -6
  294. package/src/WebAudio/MediaElementAudioSourceNode.res +10 -0
  295. package/src/WebAudio/MediaStreamAudioDestinationNode.res +10 -0
  296. package/src/WebAudio/MediaStreamAudioSourceNode.res +10 -0
  297. package/src/WebAudio/OfflineAudioCompletionEvent.res +10 -0
  298. package/src/WebAudio/OfflineAudioContext.res +58 -0
  299. package/src/WebAudio/OscillatorNode.res +17 -0
  300. package/src/WebAudio/PannerNode.res +10 -0
  301. package/src/WebAudio/PeriodicWave.res +8 -0
  302. package/src/WebAudio/StereoPannerNode.res +10 -0
  303. package/src/WebAudio/WaveShaperNode.res +10 -0
  304. package/src/{WebAudioAPI.res → WebAudio/WebAudioTypes.res} +55 -42
  305. package/src/{WebAudioAPI → WebAudio}/Worklet.res +5 -4
  306. package/src/{WebCryptoAPI → WebCrypto}/Crypto.res +2 -4
  307. package/src/WebCrypto/SubtleCrypto.res +173 -0
  308. package/src/{WebCryptoAPI.res → WebCrypto/WebCryptoTypes.res} +3 -5
  309. package/src/WebLocks/LockManager.res +26 -0
  310. package/src/{WebLocksAPI.res → WebLocks/WebLocksTypes.res} +2 -4
  311. package/src/WebMIDI/WebMIDI.res +7 -0
  312. package/src/{WebMIDIAPI.res → WebMIDI/WebMidiTypes.res} +1 -3
  313. package/src/WebSockets/CloseEvent.res +10 -0
  314. package/src/{WebSocketsAPI → WebSockets}/MessageEvent.res +14 -9
  315. package/src/WebSockets/WebSocket.res +71 -0
  316. package/src/{WebSocketsAPI.res → WebSockets/WebSocketsTypes.res} +12 -15
  317. package/src/{WebSpeechAPI → WebSpeech}/SpeechSynthesis.res +8 -8
  318. package/src/WebSpeech/SpeechSynthesisUtterance.res +8 -0
  319. package/src/{WebSpeechAPI.res → WebSpeech/WebSpeechTypes.res} +4 -5
  320. package/src/{WebStorageAPI → WebStorage}/Storage.res +8 -10
  321. package/src/WebStorage/StorageEvent.res +10 -0
  322. package/src/{WebStorageAPI.res → WebStorage/WebStorageTypes.res} +9 -11
  323. package/src/{WebVTTAPI → WebVTT}/TextTrack.res +3 -5
  324. package/src/{WebVTTAPI → WebVTT}/TextTrackCueList.res +2 -3
  325. package/src/{WebVTTAPI.res → WebVTT/WebVttTypes.res} +5 -5
  326. package/src/WebWorkers/CacheStorage.res +43 -0
  327. package/src/{WebWorkersAPI → WebWorkers}/SharedWorker.res +13 -12
  328. package/src/{WebWorkersAPI/SharedWorkerGlobalScope.res → WebWorkers/SharedWorkerScope.res} +6 -4
  329. package/src/{WebWorkersAPI.res → WebWorkers/WebWorkersTypes.res} +7 -10
  330. package/src/{WebWorkersAPI/WorkerGlobalScope.res → WebWorkers/Worker.res} +8 -8
  331. package/src/CSSFontLoadingAPI/FontFace.res +0 -34
  332. package/src/CSSFontLoadingAPI/FontFaceSet.res +0 -33
  333. package/src/CanvasAPI/FillStyle.res +0 -24
  334. package/src/ClipboardAPI/Clipboard.res +0 -27
  335. package/src/CredentialManagementAPI/CredentialsContainer.res +0 -29
  336. package/src/DOMAPI/CSSStyleSheet.res +0 -32
  337. package/src/DOMAPI/CaretPosition.res +0 -4
  338. package/src/DOMAPI/Comment.res +0 -9
  339. package/src/DOMAPI/DOMMatrix.res +0 -169
  340. package/src/DOMAPI/DOMMatrixReadOnly.res +0 -103
  341. package/src/DOMAPI/DOMPoint.res +0 -29
  342. package/src/DOMAPI/DOMRectList.res +0 -4
  343. package/src/DOMAPI/DOMRectReadOnly.res +0 -17
  344. package/src/DOMAPI/DocumentTimeline.res +0 -9
  345. package/src/DOMAPI/HTMLAnchorElement.res +0 -3
  346. package/src/DOMAPI/HTMLAreaElement.res +0 -3
  347. package/src/DOMAPI/HTMLAudioElement.res +0 -3
  348. package/src/DOMAPI/HTMLBRElement.res +0 -3
  349. package/src/DOMAPI/HTMLBaseElement.res +0 -3
  350. package/src/DOMAPI/HTMLBodyElement.res +0 -3
  351. package/src/DOMAPI/HTMLDListElement.res +0 -3
  352. package/src/DOMAPI/HTMLDataElement.res +0 -3
  353. package/src/DOMAPI/HTMLDataListElement.res +0 -3
  354. package/src/DOMAPI/HTMLDivElement.res +0 -3
  355. package/src/DOMAPI/HTMLEmbedElement.res +0 -6
  356. package/src/DOMAPI/HTMLFormControlsCollection.res +0 -16
  357. package/src/DOMAPI/HTMLFrameSetElement.res +0 -3
  358. package/src/DOMAPI/HTMLHRElement.res +0 -3
  359. package/src/DOMAPI/HTMLHeadElement.res +0 -3
  360. package/src/DOMAPI/HTMLHeadingElement.res +0 -3
  361. package/src/DOMAPI/HTMLHtmlElement.res +0 -3
  362. package/src/DOMAPI/HTMLIFrameElement.res +0 -6
  363. package/src/DOMAPI/HTMLImageElement.res +0 -9
  364. package/src/DOMAPI/HTMLLIElement.res +0 -3
  365. package/src/DOMAPI/HTMLLabelElement.res +0 -3
  366. package/src/DOMAPI/HTMLLegendElement.res +0 -3
  367. package/src/DOMAPI/HTMLLinkElement.res +0 -3
  368. package/src/DOMAPI/HTMLMapElement.res +0 -3
  369. package/src/DOMAPI/HTMLMenuElement.res +0 -3
  370. package/src/DOMAPI/HTMLMetaElement.res +0 -3
  371. package/src/DOMAPI/HTMLMeterElement.res +0 -3
  372. package/src/DOMAPI/HTMLModElement.res +0 -3
  373. package/src/DOMAPI/HTMLOListElement.res +0 -3
  374. package/src/DOMAPI/HTMLOptGroupElement.res +0 -3
  375. package/src/DOMAPI/HTMLOptionElement.res +0 -3
  376. package/src/DOMAPI/HTMLParagraphElement.res +0 -3
  377. package/src/DOMAPI/HTMLPictureElement.res +0 -3
  378. package/src/DOMAPI/HTMLPreElement.res +0 -3
  379. package/src/DOMAPI/HTMLProgressElement.res +0 -3
  380. package/src/DOMAPI/HTMLQuoteElement.res +0 -3
  381. package/src/DOMAPI/HTMLSlotElement.res +0 -29
  382. package/src/DOMAPI/HTMLSourceElement.res +0 -3
  383. package/src/DOMAPI/HTMLSpanElement.res +0 -3
  384. package/src/DOMAPI/HTMLStyleElement.res +0 -3
  385. package/src/DOMAPI/HTMLTableCaptionElement.res +0 -3
  386. package/src/DOMAPI/HTMLTableCellElement.res +0 -3
  387. package/src/DOMAPI/HTMLTemplateElement.res +0 -3
  388. package/src/DOMAPI/HTMLTimeElement.res +0 -3
  389. package/src/DOMAPI/HTMLTitleElement.res +0 -3
  390. package/src/DOMAPI/HTMLTrackElement.res +0 -3
  391. package/src/DOMAPI/HTMLUListElement.res +0 -3
  392. package/src/DOMAPI/HTMLVideoElement.res +0 -31
  393. package/src/DOMAPI/MediaQueryList.res +0 -3
  394. package/src/DOMAPI/Navigator.res +0 -115
  395. package/src/DOMAPI/NodeFilter.res +0 -4
  396. package/src/DOMAPI/SVGGraphicsElement.res +0 -17
  397. package/src/DOMAPI/ScreenOrientation.res +0 -9
  398. package/src/DOMAPI/ShadowRoot.res +0 -21
  399. package/src/DOMAPI/StylePropertyMap.res +0 -50
  400. package/src/DOMAPI/TextTrackList.res +0 -10
  401. package/src/DOMAPI/VideoFrame.res +0 -111
  402. package/src/DOMAPI/Window.res +0 -517
  403. package/src/EncryptedMediaExtensionsAPI/MediaKeySystemAccess.res +0 -13
  404. package/src/EncryptedMediaExtensionsAPI/MediaKeys.res +0 -27
  405. package/src/FetchAPI/FormDataEntryValue.res +0 -22
  406. package/src/FileAPI/FileSystemDirectoryHandle.res +0 -45
  407. package/src/FileAPI/FileSystemFileHandle.res +0 -23
  408. package/src/FileAPI/FileSystemHandle.res +0 -7
  409. package/src/FileAPI/FileSystemWritableFileStream.res +0 -62
  410. package/src/FileAPI/ReadableStream.res +0 -60
  411. package/src/FileAPI/WritableStream.res +0 -28
  412. package/src/FileAndDirectoryEntriesAPI/FileSystemDirectoryEntry.res +0 -42
  413. package/src/FileAndDirectoryEntriesAPI/FileSystemDirectoryReader.res +0 -11
  414. package/src/FileAndDirectoryEntriesAPI/FileSystemEntry.res +0 -11
  415. package/src/GamepadAPI/GamepadHapticActuator.res +0 -17
  416. package/src/GeolocationAPI/Geolocation.res +0 -29
  417. package/src/IntersectionObserverAPI/IntersectionObserver.res +0 -35
  418. package/src/IntersectionObserverAPI/IntersectionObserverRoot.res +0 -22
  419. package/src/MediaCapabilitiesAPI/MediaCapabilities.res +0 -19
  420. package/src/MediaCaptureAndStreamsAPI/MediaDeviceInfo.res +0 -7
  421. package/src/MediaCaptureAndStreamsAPI/MediaDevices.res +0 -34
  422. package/src/MediaCaptureAndStreamsAPI/MediaStream.res +0 -63
  423. package/src/MediaCaptureAndStreamsAPI/MediaStreamTrack.res +0 -42
  424. package/src/MediaSessionAPI/MediaMetadata.res +0 -7
  425. package/src/MediaSessionAPI/MediaSession.res +0 -17
  426. package/src/MutationObserverAPI/MutationObserver.res +0 -27
  427. package/src/NotificationAPI/Notification.res +0 -29
  428. package/src/PerformanceAPI/Performance.res +0 -90
  429. package/src/PerformanceAPI/PerformanceMark.res +0 -15
  430. package/src/PermissionsAPI/Permissions.res +0 -7
  431. package/src/Prelude/DOMException.res +0 -7
  432. package/src/Prelude.res +0 -37
  433. package/src/PushAPI/ApplicationServerKey.res +0 -4
  434. package/src/PushAPI/PushEvent.res +0 -3
  435. package/src/PushAPI/PushManager.res +0 -25
  436. package/src/RemotePlaybackAPI/RemotePlayback.res +0 -23
  437. package/src/ResizeObserverAPI/ResizeObserver.res +0 -27
  438. package/src/ScreenWakeLockAPI/WakeLock.res +0 -7
  439. package/src/ScreenWakeLockAPI/WakeLockSentinel.res +0 -9
  440. package/src/ServiceWorkerAPI/Cache.res +0 -100
  441. package/src/ServiceWorkerAPI/ServiceWorker.res +0 -21
  442. package/src/ServiceWorkerAPI/ServiceWorkerContainer.res +0 -35
  443. package/src/ServiceWorkerAPI/ServiceWorkerGlobalScope.res +0 -10
  444. package/src/UIEventsAPI/CompositionEvent.res +0 -10
  445. package/src/UIEventsAPI/FocusEvent.res +0 -9
  446. package/src/UIEventsAPI/InputEvent.res +0 -16
  447. package/src/UIEventsAPI/KeyboardEvent.res +0 -16
  448. package/src/UIEventsAPI/PointerEvent.res +0 -21
  449. package/src/UIEventsAPI/TouchEvent.res +0 -9
  450. package/src/UIEventsAPI/UIEvent.res +0 -19
  451. package/src/UIEventsAPI/WheelEvent.res +0 -9
  452. package/src/WebAudioAPI/AnalyserNode.res +0 -34
  453. package/src/WebAudioAPI/AudioContext.res +0 -56
  454. package/src/WebAudioAPI/AudioDestinationNode.res +0 -3
  455. package/src/WebAudioAPI/AudioProcessingEvent.res +0 -10
  456. package/src/WebAudioAPI/AudioWorkletNode.res +0 -13
  457. package/src/WebAudioAPI/ChannelMergerNode.res +0 -10
  458. package/src/WebAudioAPI/ChannelSplitterNode.res +0 -12
  459. package/src/WebAudioAPI/ConstantSourceNode.res +0 -12
  460. package/src/WebAudioAPI/ConvolverNode.res +0 -10
  461. package/src/WebAudioAPI/DelayNode.res +0 -9
  462. package/src/WebAudioAPI/DynamicsCompressorNode.res +0 -12
  463. package/src/WebAudioAPI/GainNode.res +0 -9
  464. package/src/WebAudioAPI/MediaElementAudioSourceNode.res +0 -12
  465. package/src/WebAudioAPI/MediaStreamAudioDestinationNode.res +0 -12
  466. package/src/WebAudioAPI/MediaStreamAudioSourceNode.res +0 -12
  467. package/src/WebAudioAPI/OfflineAudioCompletionEvent.res +0 -12
  468. package/src/WebAudioAPI/OfflineAudioContext.res +0 -34
  469. package/src/WebAudioAPI/OscillatorNode.res +0 -16
  470. package/src/WebAudioAPI/PannerNode.res +0 -9
  471. package/src/WebAudioAPI/PeriodicWave.res +0 -8
  472. package/src/WebAudioAPI/StereoPannerNode.res +0 -10
  473. package/src/WebAudioAPI/WaveShaperNode.res +0 -10
  474. package/src/WebCryptoAPI/SubtleCrypto.res +0 -173
  475. package/src/WebLocksAPI/LockManager.res +0 -25
  476. package/src/WebSocketsAPI/CloseEvent.res +0 -9
  477. package/src/WebSocketsAPI/WebSocket.res +0 -51
  478. package/src/WebSpeechAPI/SpeechSynthesisUtterance.res +0 -9
  479. package/src/WebStorageAPI/StorageEvent.res +0 -9
  480. package/src/WebWorkersAPI/CacheStorage.res +0 -46
@@ -0,0 +1,173 @@
1
+ /**
2
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/encrypt)
3
+ */
4
+ @send
5
+ external encrypt: (
6
+ WebCryptoTypes.subtleCrypto,
7
+ ~algorithm: WebCryptoTypes.algorithmIdentifier,
8
+ ~key: WebCryptoTypes.cryptoKey,
9
+ ~data: ArrayBufferTypedArrayOrDataView.t,
10
+ ) => promise<ArrayBuffer.t> = "encrypt"
11
+
12
+ /**
13
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/decrypt)
14
+ */
15
+ @send
16
+ external decrypt: (
17
+ WebCryptoTypes.subtleCrypto,
18
+ ~algorithm: WebCryptoTypes.algorithmIdentifier,
19
+ ~key: WebCryptoTypes.cryptoKey,
20
+ ~data: ArrayBufferTypedArrayOrDataView.t,
21
+ ) => promise<ArrayBuffer.t> = "decrypt"
22
+
23
+ /**
24
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/sign)
25
+ */
26
+ @send
27
+ external sign: (
28
+ WebCryptoTypes.subtleCrypto,
29
+ ~algorithm: WebCryptoTypes.algorithmIdentifier,
30
+ ~key: WebCryptoTypes.cryptoKey,
31
+ ~data: ArrayBufferTypedArrayOrDataView.t,
32
+ ) => promise<JSON.t> = "sign"
33
+
34
+ /**
35
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/verify)
36
+ */
37
+ @send
38
+ external verify: (
39
+ WebCryptoTypes.subtleCrypto,
40
+ ~algorithm: WebCryptoTypes.algorithmIdentifier,
41
+ ~key: WebCryptoTypes.cryptoKey,
42
+ ~signature: ArrayBufferTypedArrayOrDataView.t,
43
+ ~data: ArrayBufferTypedArrayOrDataView.t,
44
+ ) => promise<JSON.t> = "verify"
45
+
46
+ /**
47
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/digest)
48
+ */
49
+ @send
50
+ external digest: (
51
+ WebCryptoTypes.subtleCrypto,
52
+ ~algorithm: WebCryptoTypes.algorithmIdentifier,
53
+ ~data: ArrayBufferTypedArrayOrDataView.t,
54
+ ) => promise<JSON.t> = "digest"
55
+
56
+ /**
57
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey)
58
+ */
59
+ @send
60
+ external generateKey: (
61
+ WebCryptoTypes.subtleCrypto,
62
+ ~algorithm: WebCryptoTypes.algorithm,
63
+ ~extractable: bool,
64
+ ~keyUsages: array<WebCryptoTypes.keyUsage>,
65
+ ) => promise<JSON.t> = "generateKey"
66
+
67
+ /**
68
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey)
69
+ */
70
+ @send
71
+ external generateKey2: (
72
+ WebCryptoTypes.subtleCrypto,
73
+ ~algorithm: string,
74
+ ~extractable: bool,
75
+ ~keyUsages: array<WebCryptoTypes.keyUsage>,
76
+ ) => promise<JSON.t> = "generateKey"
77
+
78
+ /**
79
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey)
80
+ */
81
+ @send
82
+ external deriveKey: (
83
+ WebCryptoTypes.subtleCrypto,
84
+ ~algorithm: WebCryptoTypes.algorithmIdentifier,
85
+ ~baseKey: WebCryptoTypes.cryptoKey,
86
+ ~derivedKeyType: WebCryptoTypes.algorithmIdentifier,
87
+ ~extractable: bool,
88
+ ~keyUsages: array<WebCryptoTypes.keyUsage>,
89
+ ) => promise<JSON.t> = "deriveKey"
90
+
91
+ /**
92
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveBits)
93
+ */
94
+ @send
95
+ external deriveBits: (
96
+ WebCryptoTypes.subtleCrypto,
97
+ ~algorithm: WebCryptoTypes.algorithm,
98
+ ~baseKey: WebCryptoTypes.cryptoKey,
99
+ ~length: int=?,
100
+ ) => promise<ArrayBuffer.t> = "deriveBits"
101
+
102
+ /**
103
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveBits)
104
+ */
105
+ @send
106
+ external deriveBits2: (
107
+ WebCryptoTypes.subtleCrypto,
108
+ ~algorithm: string,
109
+ ~baseKey: WebCryptoTypes.cryptoKey,
110
+ ~length: int=?,
111
+ ) => promise<ArrayBuffer.t> = "deriveBits"
112
+
113
+ /**
114
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey)
115
+ */
116
+ @send
117
+ external importKey: (
118
+ WebCryptoTypes.subtleCrypto,
119
+ ~format: unknown,
120
+ ~keyData: ArrayBufferTypedArrayOrDataView.t,
121
+ ~algorithm: WebCryptoTypes.algorithmIdentifier,
122
+ ~extractable: bool,
123
+ ~keyUsages: array<WebCryptoTypes.keyUsage>,
124
+ ) => promise<WebCryptoTypes.cryptoKey> = "importKey"
125
+
126
+ /**
127
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/exportKey)
128
+ */
129
+ @send
130
+ external exportKey: (
131
+ WebCryptoTypes.subtleCrypto,
132
+ ~format: WebCryptoTypes.keyFormat,
133
+ ~key: WebCryptoTypes.cryptoKey,
134
+ ) => promise<JSON.t> = "exportKey"
135
+
136
+ /**
137
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/wrapKey)
138
+ */
139
+ @send
140
+ external wrapKey: (
141
+ WebCryptoTypes.subtleCrypto,
142
+ ~format: WebCryptoTypes.keyFormat,
143
+ ~key: WebCryptoTypes.cryptoKey,
144
+ ~wrappingKey: WebCryptoTypes.cryptoKey,
145
+ ~wrapAlgorithm: WebCryptoTypes.algorithm,
146
+ ) => promise<JSON.t> = "wrapKey"
147
+
148
+ /**
149
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/wrapKey)
150
+ */
151
+ @send
152
+ external wrapKey2: (
153
+ WebCryptoTypes.subtleCrypto,
154
+ ~format: WebCryptoTypes.keyFormat,
155
+ ~key: WebCryptoTypes.cryptoKey,
156
+ ~wrappingKey: WebCryptoTypes.cryptoKey,
157
+ ~wrapAlgorithm: string,
158
+ ) => promise<JSON.t> = "wrapKey"
159
+
160
+ /**
161
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey)
162
+ */
163
+ @send
164
+ external unwrapKey: (
165
+ WebCryptoTypes.subtleCrypto,
166
+ ~format: WebCryptoTypes.keyFormat,
167
+ ~wrappedKey: ArrayBufferTypedArrayOrDataView.t,
168
+ ~unwrappingKey: WebCryptoTypes.cryptoKey,
169
+ ~unwrapAlgorithm: WebCryptoTypes.algorithmIdentifier,
170
+ ~unwrappedKeyAlgorithm: WebCryptoTypes.algorithmIdentifier,
171
+ ~extractable: bool,
172
+ ~keyUsages: array<WebCryptoTypes.keyUsage>,
173
+ ) => promise<WebCryptoTypes.cryptoKey> = "unwrapKey"
@@ -1,7 +1,5 @@
1
1
  @@warning("-30")
2
2
 
3
- open Prelude
4
-
5
3
  type keyType =
6
4
  | @as("private") Private
7
5
  | @as("public") Public
@@ -30,14 +28,14 @@ This Web Crypto API interface provides a number of low-level cryptographic funct
30
28
  [See SubtleCrypto on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto)
31
29
  */
32
30
  @editor.completeFrom(SubtleCrypto)
33
- type subtleCrypto = {}
31
+ type subtleCrypto = private {}
34
32
 
35
33
  /**
36
34
  Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives.
37
35
  [See Crypto on MDN](https://developer.mozilla.org/docs/Web/API/Crypto)
38
36
  */
39
37
  @editor.completeFrom(Crypto)
40
- type crypto = {
38
+ type crypto = private {
41
39
  /**
42
40
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Crypto/subtle)
43
41
  */
@@ -68,6 +66,6 @@ type cryptoKey = {
68
66
  usages: array<keyUsage>,
69
67
  }
70
68
 
71
- type algorithmIdentifier = any
69
+ type algorithmIdentifier = unknown
72
70
 
73
71
  type algorithm = {mutable name: string}
@@ -0,0 +1,26 @@
1
+ /**
2
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/LockManager/request)
3
+ */
4
+ @send
5
+ external request: (
6
+ WebLocksTypes.lockManager,
7
+ ~name: string,
8
+ ~callback: WebLocksTypes.lockGrantedCallback,
9
+ ) => promise<JSON.t> = "request"
10
+
11
+ /**
12
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/LockManager/request)
13
+ */
14
+ @send
15
+ external request2: (
16
+ WebLocksTypes.lockManager,
17
+ ~name: string,
18
+ ~options: WebLocksTypes.lockOptions,
19
+ ~callback: WebLocksTypes.lockGrantedCallback,
20
+ ) => promise<JSON.t> = "request"
21
+
22
+ /**
23
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/LockManager/query)
24
+ */
25
+ @send
26
+ external query: WebLocksTypes.lockManager => promise<WebLocksTypes.lockManagerSnapshot> = "query"
@@ -1,7 +1,5 @@
1
1
  @@warning("-30")
2
2
 
3
- open EventAPI
4
-
5
3
  type lockMode =
6
4
  | @as("exclusive") Exclusive
7
5
  | @as("shared") Shared
@@ -10,7 +8,7 @@ type lockMode =
10
8
  [See LockManager on MDN](https://developer.mozilla.org/docs/Web/API/LockManager)
11
9
  */
12
10
  @editor.completeFrom(LockManager)
13
- type lockManager = {}
11
+ type lockManager = private {}
14
12
 
15
13
  /**
16
14
  [See Lock on MDN](https://developer.mozilla.org/docs/Web/API/Lock)
@@ -41,7 +39,7 @@ type lockOptions = {
41
39
  mutable mode?: lockMode,
42
40
  mutable ifAvailable?: bool,
43
41
  mutable steal?: bool,
44
- mutable signal?: abortSignal,
42
+ mutable signal?: EventTypes.abortSignal,
45
43
  }
46
44
 
47
45
  type lockGrantedCallback = lock => promise<JSON.t>
@@ -0,0 +1,7 @@
1
+ type t = WebMidiTypes.midiAccess = {...WebMidiTypes.midiAccess}
2
+
3
+ include EventTarget.Impl({type t = t})
4
+
5
+ type midiOptions = WebMidiTypes.midiOptions = {...WebMidiTypes.midiOptions}
6
+
7
+ module Types = WebMidiTypes
@@ -1,7 +1,5 @@
1
1
  @@warning("-30")
2
2
 
3
- open EventAPI
4
-
5
3
  /**
6
4
  [See MIDIInputMap on MDN](https://developer.mozilla.org/docs/Web/API/MIDIInputMap)
7
5
  */
@@ -16,7 +14,7 @@ type midiOutputMap = {}
16
14
  [See MIDIAccess on MDN](https://developer.mozilla.org/docs/Web/API/MIDIAccess)
17
15
  */
18
16
  type midiAccess = {
19
- ...eventTarget,
17
+ ...EventTypes.eventTarget,
20
18
  /**
21
19
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MIDIAccess/inputs)
22
20
  */
@@ -0,0 +1,10 @@
1
+ include Event.Impl({type t = WebSocketsTypes.closeEvent})
2
+
3
+ /**
4
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CloseEvent)
5
+ */
6
+ @new
7
+ external make: (
8
+ ~type_: string,
9
+ ~eventInitDict: WebSocketsTypes.closeEventInit=?,
10
+ ) => WebSocketsTypes.closeEvent = "CloseEvent"
@@ -1,38 +1,43 @@
1
- open EventAPI
2
- open WebSocketsAPI
1
+ type event = EventTypes.event
2
+ type eventTarget = EventTypes.eventTarget
3
+ type messageEventSource = WebSocketsTypes.messageEventSource
4
+
5
+ type messageEvent<'t> = WebSocketsTypes.messageEvent<'t>
6
+ type messageEventInit<'t> = WebSocketsTypes.messageEventInit<'t>
7
+
8
+ type t<'t> = messageEvent<'t>
3
9
 
4
10
  /**
5
11
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MessageEvent)
6
12
  */
7
13
  @new
8
- external make: (~type_: string, ~eventInitDict: messageEventInit<'t>=?) => messageEvent<'t> =
9
- "MessageEvent"
14
+ external make: (~type_: string, ~eventInitDict: messageEventInit<'t>=?) => t<'t> = "MessageEvent"
10
15
 
11
- external asEvent: messageEvent<'t> => event = "%identity"
16
+ external asEvent: t<'t> => event = "%identity"
12
17
  /**
13
18
  Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget.
14
19
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/composedPath)
15
20
  */
16
21
  @send
17
- external composedPath: messageEvent<'t> => array<eventTarget> = "composedPath"
22
+ external composedPath: t<'t> => array<eventTarget> = "composedPath"
18
23
 
19
24
  /**
20
25
  When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object.
21
26
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)
22
27
  */
23
28
  @send
24
- external stopPropagation: messageEvent<'t> => unit = "stopPropagation"
29
+ external stopPropagation: t<'t> => unit = "stopPropagation"
25
30
 
26
31
  /**
27
32
  Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects.
28
33
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation)
29
34
  */
30
35
  @send
31
- external stopImmediatePropagation: messageEvent<'t> => unit = "stopImmediatePropagation"
36
+ external stopImmediatePropagation: t<'t> => unit = "stopImmediatePropagation"
32
37
 
33
38
  /**
34
39
  If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled.
35
40
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)
36
41
  */
37
42
  @send
38
- external preventDefault: messageEvent<'t> => unit = "preventDefault"
43
+ external preventDefault: t<'t> => unit = "preventDefault"
@@ -0,0 +1,71 @@
1
+ type t = WebSocketsTypes.webSocket = private {...WebSocketsTypes.webSocket}
2
+ type binaryType = WebSocketsTypes.binaryType
3
+ type messageEvent<'t> = WebSocketsTypes.messageEvent<'t> = {...WebSocketsTypes.messageEvent<'t>}
4
+ type closeEvent = WebSocketsTypes.closeEvent = private {...WebSocketsTypes.closeEvent}
5
+ type messageEventSource = WebSocketsTypes.messageEventSource
6
+
7
+ /**
8
+ `fromURL(~url: string, ~protocols: string=?)`
9
+
10
+ Creates a new `WebSocket` from a URL and an optional single protocol.
11
+
12
+ ```res
13
+ let socket = WebSocket.fromURL(~url="wss://example.com/socket")
14
+ ```
15
+
16
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket)
17
+ */
18
+ @new
19
+ external fromURL: (~url: string, ~protocols: string=?) => t = "WebSocket"
20
+
21
+ /**
22
+ `fromURLWithProtocols(~url: string, ~protocols: array<string>)`
23
+
24
+ Creates a new `WebSocket` from a URL and multiple protocols.
25
+
26
+ ```res
27
+ let socket =
28
+ WebSocket.fromURLWithProtocols(
29
+ ~url="wss://example.com/socket",
30
+ ~protocols=["chat", "superchat"],
31
+ )
32
+ ```
33
+
34
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket)
35
+ */
36
+ @new
37
+ external fromURLWithProtocols: (~url: string, ~protocols: array<string>) => t = "WebSocket"
38
+
39
+ include EventTarget.Impl({type t = t})
40
+
41
+ /**
42
+ Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason.
43
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/close)
44
+ */
45
+ @send
46
+ external close: (t, ~code: int=?, ~reason: string=?) => unit = "close"
47
+
48
+ /**
49
+ Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
50
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/send)
51
+ */
52
+ @send
53
+ external send: (t, DataView.t) => unit = "send"
54
+
55
+ /**
56
+ Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
57
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/send)
58
+ */
59
+ external sendArrayBuffer: (t, ArrayBuffer.t) => unit = "send"
60
+
61
+ /**
62
+ Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
63
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/send)
64
+ */
65
+ external sendBlob: (t, Blob.t) => unit = "send"
66
+
67
+ /**
68
+ Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
69
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/send)
70
+ */
71
+ external sendString: (t, string) => unit = "send"
@@ -1,24 +1,21 @@
1
1
  @@warning("-30")
2
2
 
3
- open Prelude
4
- open EventAPI
5
- open ChannelMessagingAPI
6
-
7
3
  type binaryType =
8
4
  | @as("arraybuffer") Arraybuffer
9
5
  | @as("blob") Blob
10
6
 
11
- type messageEventSource = any
7
+ type messageEventSource = unknown
12
8
 
13
9
  /**
14
10
  Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection.
15
11
  [See WebSocket on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket)
12
+ TODO: mark as private once mutating fields of private records is allowed
16
13
  */
17
14
  @editor.completeFrom(WebSocket)
18
15
  type webSocket = {
19
- ...eventTarget,
16
+ ...EventTypes.eventTarget,
20
17
  /**
21
- Returns the URL that was used to establish the WebSocket connection.
18
+ Returns the WebApiURL that was used to establish the WebSocket connection.
22
19
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/url)
23
20
  */
24
21
  url: string,
@@ -54,12 +51,12 @@ Can be set, to change how binary data is returned. The default is "blob".
54
51
  }
55
52
 
56
53
  /**
57
- A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute.
54
+ A CloseEvent is sent to clients using WebApiWebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute.
58
55
  [See CloseEvent on MDN](https://developer.mozilla.org/docs/Web/API/CloseEvent)
59
56
  */
60
57
  @editor.completeFrom(CloseEvent)
61
- type closeEvent = {
62
- ...event,
58
+ type closeEvent = private {
59
+ ...EventTypes.event,
63
60
  /**
64
61
  Returns true if the connection closed cleanly; false otherwise.
65
62
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CloseEvent/wasClean)
@@ -82,7 +79,7 @@ A message received by a target object.
82
79
  [See MessageEvent on MDN](https://developer.mozilla.org/docs/Web/API/MessageEvent)
83
80
  */
84
81
  type messageEvent<'t> = {
85
- ...event,
82
+ ...EventTypes.event,
86
83
  /**
87
84
  Returns the data of the message.
88
85
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MessageEvent/data)
@@ -107,21 +104,21 @@ type messageEvent<'t> = {
107
104
  Returns the MessagePort array sent with the message, for cross-document messaging and channel messaging.
108
105
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MessageEvent/ports)
109
106
  */
110
- ports: array<messagePort>,
107
+ ports: array<ChannelMessagingTypes.messagePort>,
111
108
  }
112
109
 
113
110
  type closeEventInit = {
114
- ...eventInit,
111
+ ...EventTypes.eventInit,
115
112
  mutable wasClean?: bool,
116
113
  mutable code?: int,
117
114
  mutable reason?: string,
118
115
  }
119
116
 
120
117
  type messageEventInit<'t> = {
121
- ...eventInit,
118
+ ...EventTypes.eventInit,
122
119
  mutable data?: 't,
123
120
  mutable origin?: string,
124
121
  mutable lastEventId?: string,
125
122
  mutable source?: Null.t<messageEventSource>,
126
- mutable ports?: array<messagePort>,
123
+ mutable ports?: array<ChannelMessagingTypes.messagePort>,
127
124
  }
@@ -1,33 +1,33 @@
1
- open WebSpeechAPI
2
-
3
- include EventTarget.Impl({type t = speechSynthesis})
1
+ include EventTarget.Impl({type t = WebSpeechTypes.speechSynthesis})
4
2
 
5
3
  /**
6
4
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/speak)
7
5
  */
8
6
  @send
9
- external speak: (speechSynthesis, speechSynthesisUtterance) => unit = "speak"
7
+ external speak: (WebSpeechTypes.speechSynthesis, WebSpeechTypes.speechSynthesisUtterance) => unit =
8
+ "speak"
10
9
 
11
10
  /**
12
11
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/cancel)
13
12
  */
14
13
  @send
15
- external cancel: speechSynthesis => unit = "cancel"
14
+ external cancel: WebSpeechTypes.speechSynthesis => unit = "cancel"
16
15
 
17
16
  /**
18
17
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/pause)
19
18
  */
20
19
  @send
21
- external pause: speechSynthesis => unit = "pause"
20
+ external pause: WebSpeechTypes.speechSynthesis => unit = "pause"
22
21
 
23
22
  /**
24
23
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/resume)
25
24
  */
26
25
  @send
27
- external resume: speechSynthesis => unit = "resume"
26
+ external resume: WebSpeechTypes.speechSynthesis => unit = "resume"
28
27
 
29
28
  /**
30
29
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/getVoices)
31
30
  */
32
31
  @send
33
- external getVoices: speechSynthesis => array<speechSynthesisVoice> = "getVoices"
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"
@@ -1,14 +1,12 @@
1
1
  @@warning("-30")
2
2
 
3
- open EventAPI
4
-
5
3
  /**
6
4
  This Web Speech API interface is the controller interface for the speech service; this can be used to retrieve information about the synthesis voices available on the device, start and pause speech, and other commands besides.
7
5
  [See SpeechSynthesis on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis)
8
6
  */
9
7
  @editor.completeFrom(SpeechSynthesis)
10
- type speechSynthesis = {
11
- ...eventTarget,
8
+ type speechSynthesis = private {
9
+ ...EventTypes.eventTarget,
12
10
  /**
13
11
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/pending)
14
12
  */
@@ -53,10 +51,11 @@ type speechSynthesisVoice = {
53
51
  /**
54
52
  This Web Speech API interface represents a speech request. It contains the content the speech service should read and information about how to read it (e.g. language, pitch and volume.)
55
53
  [See SpeechSynthesisUtterance on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance)
54
+ TODO: mark as private once mutating fields of private records is allowed
56
55
  */
57
56
  @editor.completeFrom(SpeechSynthesisUtterance)
58
57
  type speechSynthesisUtterance = {
59
- ...eventTarget,
58
+ ...EventTypes.eventTarget,
60
59
  /**
61
60
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/text)
62
61
  */
@@ -1,44 +1,42 @@
1
- open WebStorageAPI
2
-
3
1
  /**
4
2
  Returns the name of the nth key, or null if n is greater than or equal to the number of key/value pairs.
5
3
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Storage/key)
6
4
  */
7
5
  @send
8
- external key: (storage, int) => Null.t<string> = "key"
6
+ external key: (WebStorageTypes.storage, int) => Null.t<string> = "key"
9
7
 
10
8
  /**
11
9
  Returns the current value associated with the given key, or null if the given key does not exist.
12
10
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Storage/getItem)
13
11
  */
14
12
  @send
15
- external getItem: (storage, string) => Null.t<string> = "getItem"
13
+ external getItem: (WebStorageTypes.storage, string) => Null.t<string> = "getItem"
16
14
 
17
15
  /**
18
16
  Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.
19
17
 
20
18
  Throws a "QuotaExceededError" DOMException exception if the new value couldn't be set. (Setting could fail if, e.g., the user has disabled storage for the site, or if the quota has been exceeded.)
21
19
 
22
- Dispatches a storage event on Window objects holding an equivalent Storage object.
20
+ Dispatches a storage event on Window objects holding an equivalent WebApiStorage object.
23
21
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Storage/setItem)
24
22
  */
25
23
  @send
26
- external setItem: (storage, ~key: string, ~value: string) => unit = "setItem"
24
+ external setItem: (WebStorageTypes.storage, ~key: string, ~value: string) => unit = "setItem"
27
25
 
28
26
  /**
29
27
  Removes the key/value pair with the given key, if a key/value pair with the given key exists.
30
28
 
31
- Dispatches a storage event on Window objects holding an equivalent Storage object.
29
+ Dispatches a storage event on Window objects holding an equivalent WebApiStorage object.
32
30
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Storage/removeItem)
33
31
  */
34
32
  @send
35
- external removeItem: (storage, string) => unit = "removeItem"
33
+ external removeItem: (WebStorageTypes.storage, string) => unit = "removeItem"
36
34
 
37
35
  /**
38
36
  Removes all key/value pairs, if there are any.
39
37
 
40
- Dispatches a storage event on Window objects holding an equivalent Storage object.
38
+ Dispatches a storage event on Window objects holding an equivalent WebApiStorage object.
41
39
  [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Storage/clear)
42
40
  */
43
41
  @send
44
- external clear: storage => unit = "clear"
42
+ external clear: WebStorageTypes.storage => unit = "clear"
@@ -0,0 +1,10 @@
1
+ include Event.Impl({type t = WebStorageTypes.storageEvent})
2
+
3
+ /**
4
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/StorageEvent)
5
+ */
6
+ @new
7
+ external make: (
8
+ ~type_: string,
9
+ ~eventInitDict: WebStorageTypes.storageEventInit=?,
10
+ ) => WebStorageTypes.storageEvent = "StorageEvent"