@rescript/webapi 0.1.0-experimental-29b94b3

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 (281) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -0
  3. package/package.json +38 -0
  4. package/rescript.json +19 -0
  5. package/src/CSSFontLoadingAPI/FontFace.res +34 -0
  6. package/src/CSSFontLoadingAPI/FontFaceSet.res +112 -0
  7. package/src/CSSFontLoadingAPI.res +101 -0
  8. package/src/CanvasAPI/ImageBitmap.res +8 -0
  9. package/src/CanvasAPI/OffscreenCanvas.res +123 -0
  10. package/src/CanvasAPI.res +55 -0
  11. package/src/ChannelMessagingAPI/MessagePort.res +120 -0
  12. package/src/ChannelMessagingAPI.res +13 -0
  13. package/src/ClipboardAPI/Clipboard.res +106 -0
  14. package/src/ClipboardAPI/ClipboardItem.res +21 -0
  15. package/src/ClipboardAPI.res +31 -0
  16. package/src/CredentialManagementAPI/CredentialsContainer.res +31 -0
  17. package/src/CredentialManagementAPI.res +140 -0
  18. package/src/DOMAPI/Animation.res +137 -0
  19. package/src/DOMAPI/AnimationEffect.res +19 -0
  20. package/src/DOMAPI/CSSRuleList.res +7 -0
  21. package/src/DOMAPI/CSSStyleDeclaration.res +36 -0
  22. package/src/DOMAPI/CSSStyleSheet.res +32 -0
  23. package/src/DOMAPI/CSSStyleValue.res +13 -0
  24. package/src/DOMAPI/CaretPosition.res +4 -0
  25. package/src/DOMAPI/CharacterData.res +272 -0
  26. package/src/DOMAPI/Comment.res +278 -0
  27. package/src/DOMAPI/CustomElementRegistry.res +31 -0
  28. package/src/DOMAPI/DOMImplementation.res +30 -0
  29. package/src/DOMAPI/DOMMatrix.res +169 -0
  30. package/src/DOMAPI/DOMMatrixReadOnly.res +103 -0
  31. package/src/DOMAPI/DOMPoint.res +29 -0
  32. package/src/DOMAPI/DOMPointReadOnly.res +24 -0
  33. package/src/DOMAPI/DOMRect.res +23 -0
  34. package/src/DOMAPI/DOMRectList.res +4 -0
  35. package/src/DOMAPI/DOMRectReadOnly.res +17 -0
  36. package/src/DOMAPI/DOMTokenList.res +72 -0
  37. package/src/DOMAPI/Document.res +634 -0
  38. package/src/DOMAPI/DocumentFragment.res +261 -0
  39. package/src/DOMAPI/DocumentTimeline.res +9 -0
  40. package/src/DOMAPI/Element.res +634 -0
  41. package/src/DOMAPI/ElementInternals.res +39 -0
  42. package/src/DOMAPI/FileList.res +8 -0
  43. package/src/DOMAPI/HTMLAnchorElement.res +693 -0
  44. package/src/DOMAPI/HTMLAreaElement.res +687 -0
  45. package/src/DOMAPI/HTMLAudioElement.res +750 -0
  46. package/src/DOMAPI/HTMLBRElement.res +686 -0
  47. package/src/DOMAPI/HTMLBaseElement.res +687 -0
  48. package/src/DOMAPI/HTMLBodyElement.res +687 -0
  49. package/src/DOMAPI/HTMLButtonElement.res +714 -0
  50. package/src/DOMAPI/HTMLCanvasElement.res +741 -0
  51. package/src/DOMAPI/HTMLCollection.res +15 -0
  52. package/src/DOMAPI/HTMLCollectionOf.res +16 -0
  53. package/src/DOMAPI/HTMLDListElement.res +690 -0
  54. package/src/DOMAPI/HTMLDataElement.res +687 -0
  55. package/src/DOMAPI/HTMLDataListElement.res +697 -0
  56. package/src/DOMAPI/HTMLDialogElement.res +715 -0
  57. package/src/DOMAPI/HTMLDivElement.res +686 -0
  58. package/src/DOMAPI/HTMLElement.res +685 -0
  59. package/src/DOMAPI/HTMLEmbedElement.res +693 -0
  60. package/src/DOMAPI/HTMLFieldSetElement.res +718 -0
  61. package/src/DOMAPI/HTMLFormControlsCollection.res +16 -0
  62. package/src/DOMAPI/HTMLFormElement.res +720 -0
  63. package/src/DOMAPI/HTMLFrameSetElement.res +697 -0
  64. package/src/DOMAPI/HTMLHRElement.res +686 -0
  65. package/src/DOMAPI/HTMLHeadElement.res +687 -0
  66. package/src/DOMAPI/HTMLHeadingElement.res +693 -0
  67. package/src/DOMAPI/HTMLHtmlElement.res +687 -0
  68. package/src/DOMAPI/HTMLIFrameElement.res +696 -0
  69. package/src/DOMAPI/HTMLImageElement.res +696 -0
  70. package/src/DOMAPI/HTMLInputElement.res +773 -0
  71. package/src/DOMAPI/HTMLLIElement.res +686 -0
  72. package/src/DOMAPI/HTMLLabelElement.res +690 -0
  73. package/src/DOMAPI/HTMLLegendElement.res +693 -0
  74. package/src/DOMAPI/HTMLLinkElement.res +687 -0
  75. package/src/DOMAPI/HTMLMapElement.res +686 -0
  76. package/src/DOMAPI/HTMLMediaElement.res +749 -0
  77. package/src/DOMAPI/HTMLMenuElement.res +687 -0
  78. package/src/DOMAPI/HTMLMetaElement.res +687 -0
  79. package/src/DOMAPI/HTMLMeterElement.res +690 -0
  80. package/src/DOMAPI/HTMLModElement.res +686 -0
  81. package/src/DOMAPI/HTMLOListElement.res +690 -0
  82. package/src/DOMAPI/HTMLObjectElement.res +717 -0
  83. package/src/DOMAPI/HTMLOptGroupElement.res +697 -0
  84. package/src/DOMAPI/HTMLOptionElement.res +693 -0
  85. package/src/DOMAPI/HTMLOptionsCollection.res +21 -0
  86. package/src/DOMAPI/HTMLOutputElement.res +711 -0
  87. package/src/DOMAPI/HTMLParagraphElement.res +701 -0
  88. package/src/DOMAPI/HTMLPictureElement.res +693 -0
  89. package/src/DOMAPI/HTMLPreElement.res +686 -0
  90. package/src/DOMAPI/HTMLProgressElement.res +697 -0
  91. package/src/DOMAPI/HTMLQuoteElement.res +690 -0
  92. package/src/DOMAPI/HTMLScriptElement.res +699 -0
  93. package/src/DOMAPI/HTMLSelectElement.res +762 -0
  94. package/src/DOMAPI/HTMLSlotElement.res +713 -0
  95. package/src/DOMAPI/HTMLSourceElement.res +693 -0
  96. package/src/DOMAPI/HTMLSpanElement.res +687 -0
  97. package/src/DOMAPI/HTMLStyleElement.res +690 -0
  98. package/src/DOMAPI/HTMLTableCaptionElement.res +714 -0
  99. package/src/DOMAPI/HTMLTableCellElement.res +701 -0
  100. package/src/DOMAPI/HTMLTableElement.res +755 -0
  101. package/src/DOMAPI/HTMLTableRowElement.res +713 -0
  102. package/src/DOMAPI/HTMLTableSectionElement.res +730 -0
  103. package/src/DOMAPI/HTMLTemplateElement.res +697 -0
  104. package/src/DOMAPI/HTMLTextAreaElement.res +758 -0
  105. package/src/DOMAPI/HTMLTimeElement.res +687 -0
  106. package/src/DOMAPI/HTMLTitleElement.res +690 -0
  107. package/src/DOMAPI/HTMLTrackElement.res +690 -0
  108. package/src/DOMAPI/HTMLUListElement.res +690 -0
  109. package/src/DOMAPI/HTMLVideoElement.res +778 -0
  110. package/src/DOMAPI/IdleDeadline.res +7 -0
  111. package/src/DOMAPI/ImageData.res +18 -0
  112. package/src/DOMAPI/Location.res +22 -0
  113. package/src/DOMAPI/MediaList.res +19 -0
  114. package/src/DOMAPI/MediaQueryList.res +82 -0
  115. package/src/DOMAPI/NamedNodeMap.res +45 -0
  116. package/src/DOMAPI/Navigator.res +114 -0
  117. package/src/DOMAPI/Node.res +179 -0
  118. package/src/DOMAPI/NodeFilter.res +4 -0
  119. package/src/DOMAPI/NodeIterator.res +13 -0
  120. package/src/DOMAPI/NodeList.res +8 -0
  121. package/src/DOMAPI/NodeListOf.res +9 -0
  122. package/src/DOMAPI/Range.res +149 -0
  123. package/src/DOMAPI/SVGGraphicsElement.res +675 -0
  124. package/src/DOMAPI/SVGLength.res +11 -0
  125. package/src/DOMAPI/ScreenOrientation.res +88 -0
  126. package/src/DOMAPI/Selection.res +103 -0
  127. package/src/DOMAPI/ShadowRoot.res +274 -0
  128. package/src/DOMAPI/StylePropertyMap.res +50 -0
  129. package/src/DOMAPI/StylePropertyMapReadOnly.res +13 -0
  130. package/src/DOMAPI/StyleSheetList.res +7 -0
  131. package/src/DOMAPI/Text.res +285 -0
  132. package/src/DOMAPI/TextTrackList.res +89 -0
  133. package/src/DOMAPI/TimeRanges.res +19 -0
  134. package/src/DOMAPI/TreeWalker.res +43 -0
  135. package/src/DOMAPI/VideoColorSpace.res +13 -0
  136. package/src/DOMAPI/VideoFrame.res +111 -0
  137. package/src/DOMAPI/Window.res +582 -0
  138. package/src/DOMAPI/XPathExpression.res +12 -0
  139. package/src/DOMAPI/XPathResult.res +13 -0
  140. package/src/DOMAPI.res +9668 -0
  141. package/src/EncryptedMediaExtensionsAPI/MediaKeySession.res +132 -0
  142. package/src/EncryptedMediaExtensionsAPI/MediaKeyStatusMap.res +13 -0
  143. package/src/EncryptedMediaExtensionsAPI/MediaKeySystemAccess.res +13 -0
  144. package/src/EncryptedMediaExtensionsAPI/MediaKeys.res +28 -0
  145. package/src/EncryptedMediaExtensionsAPI.res +100 -0
  146. package/src/EventAPI/AbortController.res +15 -0
  147. package/src/EventAPI/AbortSignal.res +106 -0
  148. package/src/EventAPI/Event.res +35 -0
  149. package/src/EventAPI/EventTarget.res +86 -0
  150. package/src/EventAPI.res +215 -0
  151. package/src/FetchAPI/FormData.res +58 -0
  152. package/src/FetchAPI/Headers.res +50 -0
  153. package/src/FetchAPI/Request.res +57 -0
  154. package/src/FetchAPI/Response.res +105 -0
  155. package/src/FetchAPI/URLSearchParams.res +68 -0
  156. package/src/FetchAPI.res +287 -0
  157. package/src/FileAPI/Blob.res +37 -0
  158. package/src/FileAPI/File.res +42 -0
  159. package/src/FileAPI/FileSystemDirectoryHandle.res +46 -0
  160. package/src/FileAPI/FileSystemFileHandle.res +23 -0
  161. package/src/FileAPI/FileSystemHandle.res +7 -0
  162. package/src/FileAPI/FileSystemWritableFileStream.res +63 -0
  163. package/src/FileAPI/ReadableStream.res +61 -0
  164. package/src/FileAPI/WritableStream.res +29 -0
  165. package/src/FileAPI/WritableStreamDefaultController.res +8 -0
  166. package/src/FileAPI.res +218 -0
  167. package/src/FileAndDirectoryEntriesAPI/FileSystemDirectoryEntry.res +42 -0
  168. package/src/FileAndDirectoryEntriesAPI/FileSystemDirectoryReader.res +12 -0
  169. package/src/FileAndDirectoryEntriesAPI/FileSystemEntry.res +11 -0
  170. package/src/FileAndDirectoryEntriesAPI.res +87 -0
  171. package/src/GamepadAPI/GamepadHapticActuator.res +17 -0
  172. package/src/GamepadAPI.res +85 -0
  173. package/src/GeolocationAPI/Geolocation.res +29 -0
  174. package/src/GeolocationAPI/GeolocationCoordinates.res +7 -0
  175. package/src/GeolocationAPI/GeolocationPosition.res +7 -0
  176. package/src/GeolocationAPI.res +78 -0
  177. package/src/Global.res +302 -0
  178. package/src/HistoryAPI/History.res +33 -0
  179. package/src/HistoryAPI.res +26 -0
  180. package/src/IndexedDBAPI/IDBDatabase.res +135 -0
  181. package/src/IndexedDBAPI/IDBFactory.res +31 -0
  182. package/src/IndexedDBAPI/IDBIndex.res +74 -0
  183. package/src/IndexedDBAPI/IDBObjectStore.res +167 -0
  184. package/src/IndexedDBAPI/IDBTransaction.res +102 -0
  185. package/src/IndexedDBAPI.res +205 -0
  186. package/src/MediaCapabilitiesAPI/MediaCapabilities.res +19 -0
  187. package/src/MediaCapabilitiesAPI.res +81 -0
  188. package/src/MediaCaptureAndStreamsAPI/MediaDeviceInfo.res +7 -0
  189. package/src/MediaCaptureAndStreamsAPI/MediaDevices.res +113 -0
  190. package/src/MediaCaptureAndStreamsAPI/MediaStream.res +142 -0
  191. package/src/MediaCaptureAndStreamsAPI/MediaStreamTrack.res +122 -0
  192. package/src/MediaCaptureAndStreamsAPI.res +194 -0
  193. package/src/MediaSessionAPI/MediaMetadata.res +7 -0
  194. package/src/MediaSessionAPI/MediaSession.res +17 -0
  195. package/src/MediaSessionAPI.res +83 -0
  196. package/src/NotificationAPI/Notification.res +102 -0
  197. package/src/NotificationAPI.res +82 -0
  198. package/src/PerformanceAPI/Performance.res +169 -0
  199. package/src/PerformanceAPI/PerformanceEntry.res +7 -0
  200. package/src/PerformanceAPI/PerformanceMark.res +15 -0
  201. package/src/PerformanceAPI.res +86 -0
  202. package/src/PermissionsAPI/Permissions.res +7 -0
  203. package/src/PermissionsAPI.res +39 -0
  204. package/src/PictureInPicture.res +18 -0
  205. package/src/PictureInPictureAPI.res +18 -0
  206. package/src/Prelude/DOMException.res +7 -0
  207. package/src/Prelude/DOMStringList.res +15 -0
  208. package/src/Prelude.res +39 -0
  209. package/src/PushManagerAPI/PushManager.res +25 -0
  210. package/src/PushManagerAPI/PushSubscription.res +19 -0
  211. package/src/PushManagerAPI.res +67 -0
  212. package/src/RemotePlaybackAPI/RemotePlayback.res +102 -0
  213. package/src/RemotePlaybackAPI.res +21 -0
  214. package/src/ResizeObserverAPI/ResizeObserver.res +27 -0
  215. package/src/ResizeObserverAPI.res +58 -0
  216. package/src/ScreenWakeLockAPI/WakeLock.res +7 -0
  217. package/src/ScreenWakeLockAPI/WakeLockSentinel.res +88 -0
  218. package/src/ScreenWakeLockAPI.res +26 -0
  219. package/src/ServiceWorkerAPI/Cache.res +100 -0
  220. package/src/ServiceWorkerAPI/CacheStorage.res +46 -0
  221. package/src/ServiceWorkerAPI/NavigationPreloadManager.res +25 -0
  222. package/src/ServiceWorkerAPI/ServiceWorker.res +101 -0
  223. package/src/ServiceWorkerAPI/ServiceWorkerContainer.res +114 -0
  224. package/src/ServiceWorkerAPI/ServiceWorkerRegistration.res +114 -0
  225. package/src/ServiceWorkerAPI.res +134 -0
  226. package/src/StorageAPI/StorageManager.res +26 -0
  227. package/src/StorageAPI.res +10 -0
  228. package/src/ViewTransitionsAPI/ViewTransition.res +7 -0
  229. package/src/ViewTransitionsAPI.res +23 -0
  230. package/src/VisualViewportAPI.res +38 -0
  231. package/src/WebAudioAPI/AnalyserNode.res +180 -0
  232. package/src/WebAudioAPI/AudioBuffer.res +35 -0
  233. package/src/WebAudioAPI/AudioBufferSourceNode.res +183 -0
  234. package/src/WebAudioAPI/AudioContext.res +266 -0
  235. package/src/WebAudioAPI/AudioListener.res +1 -0
  236. package/src/WebAudioAPI/AudioNode.res +143 -0
  237. package/src/WebAudioAPI/AudioParam.res +56 -0
  238. package/src/WebAudioAPI/AudioProcessingEvent.res +38 -0
  239. package/src/WebAudioAPI/AudioScheduledSourceNode.res +171 -0
  240. package/src/WebAudioAPI/AudioWorkletNode.res +160 -0
  241. package/src/WebAudioAPI/BaseAudioContext.res +212 -0
  242. package/src/WebAudioAPI/BiquadFilterNode.res +168 -0
  243. package/src/WebAudioAPI/ChannelMergerNode.res +157 -0
  244. package/src/WebAudioAPI/ChannelSplitterNode.res +159 -0
  245. package/src/WebAudioAPI/ConstantSourceNode.res +172 -0
  246. package/src/WebAudioAPI/ConvolverNode.res +157 -0
  247. package/src/WebAudioAPI/DelayNode.res +150 -0
  248. package/src/WebAudioAPI/DynamicsCompressorNode.res +162 -0
  249. package/src/WebAudioAPI/GainNode.res +149 -0
  250. package/src/WebAudioAPI/IIRFilterNode.res +168 -0
  251. package/src/WebAudioAPI/MediaElementAudioSourceNode.res +168 -0
  252. package/src/WebAudioAPI/MediaStreamAudioDestinationNode.res +168 -0
  253. package/src/WebAudioAPI/MediaStreamAudioSourceNode.res +168 -0
  254. package/src/WebAudioAPI/OfflineAudioCompletionEvent.res +40 -0
  255. package/src/WebAudioAPI/OfflineAudioContext.res +246 -0
  256. package/src/WebAudioAPI/OscillatorNode.res +176 -0
  257. package/src/WebAudioAPI/PannerNode.res +150 -0
  258. package/src/WebAudioAPI/PeriodicWave.res +8 -0
  259. package/src/WebAudioAPI/StereoPannerNode.res +157 -0
  260. package/src/WebAudioAPI/WaveShaperNode.res +157 -0
  261. package/src/WebAudioAPI/Worklet.res +13 -0
  262. package/src/WebAudioAPI.res +1271 -0
  263. package/src/WebCryptoAPI/Crypto.res +13 -0
  264. package/src/WebCryptoAPI/SubtleCrypto.res +173 -0
  265. package/src/WebCryptoAPI.res +71 -0
  266. package/src/WebLocksAPI/LockManager.res +29 -0
  267. package/src/WebLocksAPI.res +47 -0
  268. package/src/WebMIDIAPI.res +37 -0
  269. package/src/WebSocketsAPI/CloseEvent.res +37 -0
  270. package/src/WebSocketsAPI/MessageEvent.res +38 -0
  271. package/src/WebSocketsAPI/WebSocket.res +130 -0
  272. package/src/WebSocketsAPI.res +125 -0
  273. package/src/WebSpeechAPI/SpeechSynthesis.res +112 -0
  274. package/src/WebSpeechAPI/SpeechSynthesisUtterance.res +88 -0
  275. package/src/WebSpeechAPI.res +82 -0
  276. package/src/WebStorageAPI/Storage.res +44 -0
  277. package/src/WebStorageAPI/StorageEvent.res +37 -0
  278. package/src/WebStorageAPI.res +57 -0
  279. package/src/WebVTTAPI/TextTrack.res +96 -0
  280. package/src/WebVTTAPI/TextTrackCueList.res +10 -0
  281. package/src/WebVTTAPI.res +122 -0
@@ -0,0 +1,13 @@
1
+ open WebCryptoAPI
2
+
3
+ /**
4
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Crypto/getRandomValues)
5
+ */
6
+ @send
7
+ external getRandomValues: (crypto, 't) => 't = "getRandomValues"
8
+
9
+ /**
10
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Crypto/randomUUID)
11
+ */
12
+ @send
13
+ external randomUUID: crypto => string = "randomUUID"
@@ -0,0 +1,173 @@
1
+ open WebCryptoAPI
2
+ open Prelude
3
+
4
+ /**
5
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/encrypt)
6
+ */
7
+ @send
8
+ external encrypt: (
9
+ subtleCrypto,
10
+ ~algorithm: algorithmIdentifier,
11
+ ~key: cryptoKey,
12
+ ~data: bufferSource,
13
+ ) => Promise.t<ArrayBuffer.t> = "encrypt"
14
+
15
+ /**
16
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/decrypt)
17
+ */
18
+ @send
19
+ external decrypt: (
20
+ subtleCrypto,
21
+ ~algorithm: algorithmIdentifier,
22
+ ~key: cryptoKey,
23
+ ~data: bufferSource,
24
+ ) => Promise.t<ArrayBuffer.t> = "decrypt"
25
+
26
+ /**
27
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/sign)
28
+ */
29
+ @send
30
+ external sign: (
31
+ subtleCrypto,
32
+ ~algorithm: algorithmIdentifier,
33
+ ~key: cryptoKey,
34
+ ~data: bufferSource,
35
+ ) => Promise.t<JSON.t> = "sign"
36
+
37
+ /**
38
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/verify)
39
+ */
40
+ @send
41
+ external verify: (
42
+ subtleCrypto,
43
+ ~algorithm: algorithmIdentifier,
44
+ ~key: cryptoKey,
45
+ ~signature: bufferSource,
46
+ ~data: bufferSource,
47
+ ) => Promise.t<JSON.t> = "verify"
48
+
49
+ /**
50
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/digest)
51
+ */
52
+ @send
53
+ external digest: (
54
+ subtleCrypto,
55
+ ~algorithm: algorithmIdentifier,
56
+ ~data: bufferSource,
57
+ ) => Promise.t<JSON.t> = "digest"
58
+
59
+ /**
60
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey)
61
+ */
62
+ @send
63
+ external generateKey: (
64
+ subtleCrypto,
65
+ ~algorithm: algorithm,
66
+ ~extractable: bool,
67
+ ~keyUsages: array<keyUsage>,
68
+ ) => Promise.t<JSON.t> = "generateKey"
69
+
70
+ /**
71
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey)
72
+ */
73
+ @send
74
+ external generateKey2: (
75
+ subtleCrypto,
76
+ ~algorithm: string,
77
+ ~extractable: bool,
78
+ ~keyUsages: array<keyUsage>,
79
+ ) => Promise.t<JSON.t> = "generateKey"
80
+
81
+ /**
82
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey)
83
+ */
84
+ @send
85
+ external deriveKey: (
86
+ subtleCrypto,
87
+ ~algorithm: algorithmIdentifier,
88
+ ~baseKey: cryptoKey,
89
+ ~derivedKeyType: algorithmIdentifier,
90
+ ~extractable: bool,
91
+ ~keyUsages: array<keyUsage>,
92
+ ) => Promise.t<JSON.t> = "deriveKey"
93
+
94
+ /**
95
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveBits)
96
+ */
97
+ @send
98
+ external deriveBits: (
99
+ subtleCrypto,
100
+ ~algorithm: algorithm,
101
+ ~baseKey: cryptoKey,
102
+ ~length: int=?,
103
+ ) => Promise.t<ArrayBuffer.t> = "deriveBits"
104
+
105
+ /**
106
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveBits)
107
+ */
108
+ @send
109
+ external deriveBits2: (
110
+ subtleCrypto,
111
+ ~algorithm: string,
112
+ ~baseKey: cryptoKey,
113
+ ~length: int=?,
114
+ ) => Promise.t<ArrayBuffer.t> = "deriveBits"
115
+
116
+ /**
117
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey)
118
+ */
119
+ @send
120
+ external importKey: (
121
+ subtleCrypto,
122
+ ~format: any,
123
+ ~keyData: bufferSource,
124
+ ~algorithm: algorithmIdentifier,
125
+ ~extractable: bool,
126
+ ~keyUsages: array<keyUsage>,
127
+ ) => Promise.t<cryptoKey> = "importKey"
128
+
129
+ /**
130
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/exportKey)
131
+ */
132
+ @send
133
+ external exportKey: (subtleCrypto, ~format: keyFormat, ~key: cryptoKey) => Promise.t<JSON.t> =
134
+ "exportKey"
135
+
136
+ /**
137
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/wrapKey)
138
+ */
139
+ @send
140
+ external wrapKey: (
141
+ subtleCrypto,
142
+ ~format: keyFormat,
143
+ ~key: cryptoKey,
144
+ ~wrappingKey: cryptoKey,
145
+ ~wrapAlgorithm: algorithm,
146
+ ) => Promise.t<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
+ subtleCrypto,
154
+ ~format: keyFormat,
155
+ ~key: cryptoKey,
156
+ ~wrappingKey: cryptoKey,
157
+ ~wrapAlgorithm: string,
158
+ ) => Promise.t<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
+ subtleCrypto,
166
+ ~format: keyFormat,
167
+ ~wrappedKey: bufferSource,
168
+ ~unwrappingKey: cryptoKey,
169
+ ~unwrapAlgorithm: algorithmIdentifier,
170
+ ~unwrappedKeyAlgorithm: algorithmIdentifier,
171
+ ~extractable: bool,
172
+ ~keyUsages: array<keyUsage>,
173
+ ) => Promise.t<cryptoKey> = "unwrapKey"
@@ -0,0 +1,71 @@
1
+ @@warning("-30")
2
+
3
+ open Prelude
4
+
5
+ type keyType =
6
+ | @as("private") Private
7
+ | @as("public") Public
8
+ | @as("secret") Secret
9
+
10
+ type keyUsage =
11
+ | @as("decrypt") Decrypt
12
+ | @as("deriveBits") DeriveBits
13
+ | @as("deriveKey") DeriveKey
14
+ | @as("encrypt") Encrypt
15
+ | @as("sign") Sign
16
+ | @as("unwrapKey") UnwrapKey
17
+ | @as("verify") Verify
18
+ | @as("wrapKey") WrapKey
19
+
20
+ type keyFormat =
21
+ | @as("jwk") Jwk
22
+ | @as("pkcs8") Pkcs8
23
+ | @as("raw") Raw
24
+ | @as("spki") Spki
25
+
26
+ type keyAlgorithm = {mutable name: string}
27
+
28
+ /**
29
+ This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto).
30
+ [See SubtleCrypto on MDN](https://developer.mozilla.org/docs/Web/API/SubtleCrypto)
31
+ */
32
+ type subtleCrypto = {}
33
+
34
+ /**
35
+ Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives.
36
+ [See Crypto on MDN](https://developer.mozilla.org/docs/Web/API/Crypto)
37
+ */
38
+ type crypto = {
39
+ /**
40
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Crypto/subtle)
41
+ */
42
+ subtle: subtleCrypto,
43
+ }
44
+
45
+ /**
46
+ The CryptoKey dictionary of the Web Crypto API represents a cryptographic key.
47
+ [See CryptoKey on MDN](https://developer.mozilla.org/docs/Web/API/CryptoKey)
48
+ */
49
+ type cryptoKey = {
50
+ /**
51
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CryptoKey/type)
52
+ */
53
+ @as("type")
54
+ type_: keyType,
55
+ /**
56
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable)
57
+ */
58
+ extractable: bool,
59
+ /**
60
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm)
61
+ */
62
+ algorithm: keyAlgorithm,
63
+ /**
64
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages)
65
+ */
66
+ usages: array<keyUsage>,
67
+ }
68
+
69
+ type algorithmIdentifier = any
70
+
71
+ type algorithm = {mutable name: string}
@@ -0,0 +1,29 @@
1
+ open Prelude
2
+ open WebLocksAPI
3
+
4
+ /**
5
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/LockManager/request)
6
+ */
7
+ @send
8
+ external request: (
9
+ lockManager,
10
+ ~name: string,
11
+ ~callback: lockGrantedCallback,
12
+ ) => Promise.t<JSON.t> = "request"
13
+
14
+ /**
15
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/LockManager/request)
16
+ */
17
+ @send
18
+ external request2: (
19
+ lockManager,
20
+ ~name: string,
21
+ ~options: lockOptions,
22
+ ~callback: lockGrantedCallback,
23
+ ) => Promise.t<JSON.t> = "request"
24
+
25
+ /**
26
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/LockManager/query)
27
+ */
28
+ @send
29
+ external query: lockManager => Promise.t<lockManagerSnapshot> = "query"
@@ -0,0 +1,47 @@
1
+ @@warning("-30")
2
+
3
+ open Prelude
4
+ open EventAPI
5
+
6
+ type lockMode =
7
+ | @as("exclusive") Exclusive
8
+ | @as("shared") Shared
9
+
10
+ /**
11
+ [See LockManager on MDN](https://developer.mozilla.org/docs/Web/API/LockManager)
12
+ */
13
+ type lockManager = {}
14
+
15
+ /**
16
+ [See Lock on MDN](https://developer.mozilla.org/docs/Web/API/Lock)
17
+ */
18
+ type lock = {
19
+ /**
20
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Lock/name)
21
+ */
22
+ name: string,
23
+ /**
24
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Lock/mode)
25
+ */
26
+ mode: lockMode,
27
+ }
28
+
29
+ type lockInfo = {
30
+ mutable name?: string,
31
+ mutable mode?: lockMode,
32
+ mutable clientId?: string,
33
+ }
34
+
35
+ type lockManagerSnapshot = {
36
+ mutable held?: array<lockInfo>,
37
+ mutable pending?: array<lockInfo>,
38
+ }
39
+
40
+ type lockOptions = {
41
+ mutable mode?: lockMode,
42
+ mutable ifAvailable?: bool,
43
+ mutable steal?: bool,
44
+ mutable signal?: abortSignal,
45
+ }
46
+
47
+ type lockGrantedCallback = lock => Promise.t<JSON.t>
@@ -0,0 +1,37 @@
1
+ @@warning("-30")
2
+
3
+ open EventAPI
4
+
5
+ /**
6
+ [See MIDIInputMap on MDN](https://developer.mozilla.org/docs/Web/API/MIDIInputMap)
7
+ */
8
+ type midiInputMap = {}
9
+
10
+ /**
11
+ [See MIDIOutputMap on MDN](https://developer.mozilla.org/docs/Web/API/MIDIOutputMap)
12
+ */
13
+ type midiOutputMap = {}
14
+
15
+ /**
16
+ [See MIDIAccess on MDN](https://developer.mozilla.org/docs/Web/API/MIDIAccess)
17
+ */
18
+ type midiAccess = {
19
+ ...eventTarget,
20
+ /**
21
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MIDIAccess/inputs)
22
+ */
23
+ inputs: midiInputMap,
24
+ /**
25
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MIDIAccess/outputs)
26
+ */
27
+ outputs: midiOutputMap,
28
+ /**
29
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MIDIAccess/sysexEnabled)
30
+ */
31
+ sysexEnabled: bool,
32
+ }
33
+
34
+ type midiOptions = {
35
+ mutable sysex?: bool,
36
+ mutable software?: bool,
37
+ }
@@ -0,0 +1,37 @@
1
+ open EventAPI
2
+ open WebSocketsAPI
3
+
4
+ /**
5
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CloseEvent)
6
+ */
7
+ @new
8
+ external make: (~type_: string, ~eventInitDict: closeEventInit=?) => closeEvent = "CloseEvent"
9
+
10
+ external asEvent: closeEvent => event = "%identity"
11
+ /**
12
+ 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.
13
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/composedPath)
14
+ */
15
+ @send
16
+ external composedPath: closeEvent => array<eventTarget> = "composedPath"
17
+
18
+ /**
19
+ When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object.
20
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)
21
+ */
22
+ @send
23
+ external stopPropagation: closeEvent => unit = "stopPropagation"
24
+
25
+ /**
26
+ 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.
27
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation)
28
+ */
29
+ @send
30
+ external stopImmediatePropagation: closeEvent => unit = "stopImmediatePropagation"
31
+
32
+ /**
33
+ 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.
34
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)
35
+ */
36
+ @send
37
+ external preventDefault: closeEvent => unit = "preventDefault"
@@ -0,0 +1,38 @@
1
+ open EventAPI
2
+ open WebSocketsAPI
3
+
4
+ /**
5
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MessageEvent)
6
+ */
7
+ @new
8
+ external make: (~type_: string, ~eventInitDict: messageEventInit<'t>=?) => messageEvent<'t> =
9
+ "MessageEvent"
10
+
11
+ external asEvent: messageEvent<'t> => event = "%identity"
12
+ /**
13
+ 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
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/composedPath)
15
+ */
16
+ @send
17
+ external composedPath: messageEvent<'t> => array<eventTarget> = "composedPath"
18
+
19
+ /**
20
+ When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object.
21
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)
22
+ */
23
+ @send
24
+ external stopPropagation: messageEvent<'t> => unit = "stopPropagation"
25
+
26
+ /**
27
+ 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
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation)
29
+ */
30
+ @send
31
+ external stopImmediatePropagation: messageEvent<'t> => unit = "stopImmediatePropagation"
32
+
33
+ /**
34
+ 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
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)
36
+ */
37
+ @send
38
+ external preventDefault: messageEvent<'t> => unit = "preventDefault"
@@ -0,0 +1,130 @@
1
+ open EventAPI
2
+ open WebSocketsAPI
3
+ open FileAPI
4
+
5
+ /**
6
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket)
7
+ */
8
+ @new
9
+ external make: (~url: string, ~protocols: string=?) => webSocket = "WebSocket"
10
+
11
+ /**
12
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket)
13
+ */
14
+ @new
15
+ external make2: (~url: string, ~protocols: array<string>=?) => webSocket = "WebSocket"
16
+
17
+ external asEventTarget: webSocket => eventTarget = "%identity"
18
+ /**
19
+ Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
20
+
21
+ The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
22
+
23
+ When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
24
+
25
+ When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
26
+
27
+ When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
28
+
29
+ If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
30
+
31
+ The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
32
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
33
+ */
34
+ @send
35
+ external addEventListener: (
36
+ webSocket,
37
+ ~type_: eventType,
38
+ ~callback: eventListener<'event>,
39
+ ~options: addEventListenerOptions=?,
40
+ ) => unit = "addEventListener"
41
+
42
+ /**
43
+ Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.
44
+
45
+ The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.
46
+
47
+ When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.
48
+
49
+ When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.
50
+
51
+ When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
52
+
53
+ If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
54
+
55
+ The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
56
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
57
+ */
58
+ @send
59
+ external addEventListener2: (
60
+ webSocket,
61
+ ~type_: eventType,
62
+ ~callback: eventListener<'event>,
63
+ ~options: bool=?,
64
+ ) => unit = "addEventListener"
65
+
66
+ /**
67
+ Removes the event listener in target's event listener list with the same type, callback, and options.
68
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
69
+ */
70
+ @send
71
+ external removeEventListener: (
72
+ webSocket,
73
+ ~type_: eventType,
74
+ ~callback: eventListener<'event>,
75
+ ~options: eventListenerOptions=?,
76
+ ) => unit = "removeEventListener"
77
+
78
+ /**
79
+ Removes the event listener in target's event listener list with the same type, callback, and options.
80
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
81
+ */
82
+ @send
83
+ external removeEventListener2: (
84
+ webSocket,
85
+ ~type_: eventType,
86
+ ~callback: eventListener<'event>,
87
+ ~options: bool=?,
88
+ ) => unit = "removeEventListener"
89
+
90
+ /**
91
+ Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
92
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
93
+ */
94
+ @send
95
+ external dispatchEvent: (webSocket, event) => bool = "dispatchEvent"
96
+
97
+ /**
98
+ Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason.
99
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/close)
100
+ */
101
+ @send
102
+ external close: (webSocket, ~code: int=?, ~reason: string=?) => unit = "close"
103
+
104
+ /**
105
+ Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
106
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/send)
107
+ */
108
+ @send
109
+ external send: (webSocket, DataView.t) => unit = "send"
110
+
111
+ /**
112
+ Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
113
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/send)
114
+ */
115
+ @send
116
+ external send2: (webSocket, ArrayBuffer.t) => unit = "send"
117
+
118
+ /**
119
+ Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
120
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/send)
121
+ */
122
+ @send
123
+ external send3: (webSocket, blob) => unit = "send"
124
+
125
+ /**
126
+ Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
127
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/WebSocket/send)
128
+ */
129
+ @send
130
+ external send4: (webSocket, string) => unit = "send"