@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
package/src/Global.res ADDED
@@ -0,0 +1,302 @@
1
+ open DOMAPI
2
+ open HistoryAPI
3
+ open VisualViewportAPI
4
+ open WebSpeechAPI
5
+ open IndexedDBAPI
6
+ open WebCryptoAPI
7
+ open PerformanceAPI
8
+ open ServiceWorkerAPI
9
+ open WebStorageAPI
10
+ open CanvasAPI
11
+ open FileAPI
12
+ open ChannelMessagingAPI
13
+ open FetchAPI
14
+ open EventAPI
15
+
16
+ external window: window = "window"
17
+ external self: window = "self"
18
+ external document: document = "document"
19
+ external name: string = "name"
20
+ external location: location = "location"
21
+ external history: history = "history"
22
+ external customElements: customElementRegistry = "customElements"
23
+ external locationbar: barProp = "locationbar"
24
+ external menubar: barProp = "menubar"
25
+ external personalbar: barProp = "personalbar"
26
+ external scrollbars: barProp = "scrollbars"
27
+ external statusbar: barProp = "statusbar"
28
+ external toolbar: barProp = "toolbar"
29
+ external closed: bool = "closed"
30
+ external frames: window = "frames"
31
+ external length: int = "length"
32
+ external top: window = "top"
33
+ external opener: JSON.t = "opener"
34
+ external parent: window = "parent"
35
+ external frameElement: element = "frameElement"
36
+ external navigator: navigator = "navigator"
37
+ external screen: screen = "screen"
38
+ external visualViewport: visualViewport = "visualViewport"
39
+ external innerWidth: int = "innerWidth"
40
+ external innerHeight: int = "innerHeight"
41
+ external scrollX: float = "scrollX"
42
+ external scrollY: float = "scrollY"
43
+ external screenX: int = "screenX"
44
+ external screenLeft: int = "screenLeft"
45
+ external screenY: int = "screenY"
46
+ external screenTop: int = "screenTop"
47
+ external outerWidth: int = "outerWidth"
48
+ external outerHeight: int = "outerHeight"
49
+ external devicePixelRatio: float = "devicePixelRatio"
50
+ external speechSynthesis: speechSynthesis = "speechSynthesis"
51
+ external origin: string = "origin"
52
+ external isSecureContext: bool = "isSecureContext"
53
+ external crossOriginIsolated: bool = "crossOriginIsolated"
54
+ external indexedDB: idbFactory = "indexedDB"
55
+ external crypto: crypto = "crypto"
56
+ external performance: performance = "performance"
57
+ external caches: cacheStorage = "caches"
58
+ external sessionStorage: storage = "sessionStorage"
59
+ external localStorage: storage = "localStorage"
60
+
61
+ external reportError: JSON.t => unit = "reportError"
62
+
63
+ external btoa: string => string = "btoa"
64
+
65
+ external atob: string => string = "atob"
66
+
67
+ external setTimeout: (~handler: string, ~timeout: int=?) => int = "setTimeout"
68
+
69
+ external setTimeout2: (~handler: unit => unit, ~timeout: int=?) => int = "setTimeout"
70
+
71
+ external clearTimeout: int => unit = "clearTimeout"
72
+
73
+ external setInterval: (~handler: string, ~timeout: int=?) => int = "setInterval"
74
+
75
+ external setInterval2: (~handler: unit => unit, ~timeout: int=?) => int = "setInterval"
76
+
77
+ external clearInterval: int => unit = "clearInterval"
78
+
79
+ external queueMicrotask: voidFunction => unit = "queueMicrotask"
80
+
81
+ external createImageBitmap: (
82
+ ~image: htmlImageElement,
83
+ ~options: imageBitmapOptions=?,
84
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
85
+
86
+ external createImageBitmap2: (
87
+ ~image: svgImageElement,
88
+ ~options: imageBitmapOptions=?,
89
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
90
+
91
+ external createImageBitmap3: (
92
+ ~image: htmlVideoElement,
93
+ ~options: imageBitmapOptions=?,
94
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
95
+
96
+ external createImageBitmap4: (
97
+ ~image: htmlCanvasElement,
98
+ ~options: imageBitmapOptions=?,
99
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
100
+
101
+ external createImageBitmap5: (
102
+ ~image: imageBitmap,
103
+ ~options: imageBitmapOptions=?,
104
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
105
+
106
+ external createImageBitmap6: (
107
+ ~image: offscreenCanvas,
108
+ ~options: imageBitmapOptions=?,
109
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
110
+
111
+ external createImageBitmap7: (
112
+ ~image: videoFrame,
113
+ ~options: imageBitmapOptions=?,
114
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
115
+
116
+ external createImageBitmap8: (
117
+ ~image: blob,
118
+ ~options: imageBitmapOptions=?,
119
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
120
+
121
+ external createImageBitmap9: (
122
+ ~image: imageData,
123
+ ~options: imageBitmapOptions=?,
124
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
125
+
126
+ external createImageBitmap10: (
127
+ ~image: htmlImageElement,
128
+ ~sx: int,
129
+ ~sy: int,
130
+ ~sw: int,
131
+ ~sh: int,
132
+ ~options: imageBitmapOptions=?,
133
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
134
+
135
+ external createImageBitmap11: (
136
+ ~image: svgImageElement,
137
+ ~sx: int,
138
+ ~sy: int,
139
+ ~sw: int,
140
+ ~sh: int,
141
+ ~options: imageBitmapOptions=?,
142
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
143
+
144
+ external createImageBitmap12: (
145
+ ~image: htmlVideoElement,
146
+ ~sx: int,
147
+ ~sy: int,
148
+ ~sw: int,
149
+ ~sh: int,
150
+ ~options: imageBitmapOptions=?,
151
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
152
+
153
+ external createImageBitmap13: (
154
+ ~image: htmlCanvasElement,
155
+ ~sx: int,
156
+ ~sy: int,
157
+ ~sw: int,
158
+ ~sh: int,
159
+ ~options: imageBitmapOptions=?,
160
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
161
+
162
+ external createImageBitmap14: (
163
+ ~image: imageBitmap,
164
+ ~sx: int,
165
+ ~sy: int,
166
+ ~sw: int,
167
+ ~sh: int,
168
+ ~options: imageBitmapOptions=?,
169
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
170
+
171
+ external createImageBitmap15: (
172
+ ~image: offscreenCanvas,
173
+ ~sx: int,
174
+ ~sy: int,
175
+ ~sw: int,
176
+ ~sh: int,
177
+ ~options: imageBitmapOptions=?,
178
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
179
+
180
+ external createImageBitmap16: (
181
+ ~image: videoFrame,
182
+ ~sx: int,
183
+ ~sy: int,
184
+ ~sw: int,
185
+ ~sh: int,
186
+ ~options: imageBitmapOptions=?,
187
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
188
+
189
+ external createImageBitmap17: (
190
+ ~image: blob,
191
+ ~sx: int,
192
+ ~sy: int,
193
+ ~sw: int,
194
+ ~sh: int,
195
+ ~options: imageBitmapOptions=?,
196
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
197
+
198
+ external createImageBitmap18: (
199
+ ~image: imageData,
200
+ ~sx: int,
201
+ ~sy: int,
202
+ ~sw: int,
203
+ ~sh: int,
204
+ ~options: imageBitmapOptions=?,
205
+ ) => Promise.t<imageBitmap> = "createImageBitmap"
206
+
207
+ external structuredClone: ('t, ~options: structuredSerializeOptions=?) => 't = "structuredClone"
208
+
209
+ external fetch: (~input: request, ~init: requestInit=?) => Promise.t<response> = "fetch"
210
+
211
+ external fetch2: (~input: string, ~init: requestInit=?) => Promise.t<response> = "fetch"
212
+
213
+ external requestAnimationFrame: frameRequestCallback => int = "requestAnimationFrame"
214
+
215
+ external cancelAnimationFrame: int => unit = "cancelAnimationFrame"
216
+
217
+ external addEventListener: (
218
+ ~type_: string,
219
+ ~callback: eventListener<'event>,
220
+ ~options: addEventListenerOptions=?,
221
+ ) => unit = "addEventListener"
222
+
223
+ external addEventListener2: (
224
+ ~type_: string,
225
+ ~callback: eventListener<'event>,
226
+ ~options: bool=?,
227
+ ) => unit = "addEventListener"
228
+
229
+ external removeEventListener: (
230
+ ~type_: string,
231
+ ~callback: eventListener<'event>,
232
+ ~options: eventListenerOptions=?,
233
+ ) => unit = "removeEventListener"
234
+
235
+ external removeEventListener2: (
236
+ ~type_: string,
237
+ ~callback: eventListener<'event>,
238
+ ~options: bool=?,
239
+ ) => unit = "removeEventListener"
240
+
241
+ external dispatchEvent: event => bool = "dispatchEvent"
242
+
243
+ external close: unit => unit = "close"
244
+
245
+ external stop: unit => unit = "stop"
246
+
247
+ external focus: unit => unit = "focus"
248
+
249
+ external open_: (~url: string=?, ~target: string=?, ~features: string=?) => window = "open"
250
+
251
+ external alert: unit => unit = "alert"
252
+
253
+ external alert2: string => unit = "alert"
254
+
255
+ external confirm: (~message: string=?) => bool = "confirm"
256
+
257
+ external prompt: (~message: string=?, ~default: string=?) => string = "prompt"
258
+
259
+ external print: unit => unit = "print"
260
+
261
+ external postMessage: (
262
+ ~message: JSON.t,
263
+ ~targetOrigin: string,
264
+ ~transfer: array<Dict.t<string>>=?,
265
+ ) => unit = "postMessage"
266
+
267
+ external postMessage2: (~message: JSON.t, ~options: windowPostMessageOptions=?) => unit =
268
+ "postMessage"
269
+
270
+ external matchMedia: string => mediaQueryList = "matchMedia"
271
+
272
+ external moveTo: (~x: int, ~y: int) => unit = "moveTo"
273
+
274
+ external moveBy: (~x: int, ~y: int) => unit = "moveBy"
275
+
276
+ external resizeTo: (~width: int, ~height: int) => unit = "resizeTo"
277
+
278
+ external resizeBy: (~x: int, ~y: int) => unit = "resizeBy"
279
+
280
+ external scroll: (~options: scrollToOptions=?) => unit = "scroll"
281
+
282
+ external scroll2: (~x: float, ~y: float) => unit = "scroll"
283
+
284
+ external scrollTo: (~options: scrollToOptions=?) => unit = "scrollTo"
285
+
286
+ external scrollTo2: (~x: float, ~y: float) => unit = "scrollTo"
287
+
288
+ external scrollBy: (~options: scrollToOptions=?) => unit = "scrollBy"
289
+
290
+ external scrollBy2: (~x: float, ~y: float) => unit = "scrollBy"
291
+
292
+ external getComputedStyle: (~elt: element, ~pseudoElt: string=?) => cssStyleDeclaration =
293
+ "getComputedStyle"
294
+
295
+ external requestIdleCallback: (
296
+ ~callback: idleRequestCallback,
297
+ ~options: idleRequestOptions=?,
298
+ ) => int = "requestIdleCallback"
299
+
300
+ external cancelIdleCallback: int => unit = "cancelIdleCallback"
301
+
302
+ external getSelection: unit => selection = "getSelection"
@@ -0,0 +1,33 @@
1
+ open HistoryAPI
2
+ open Prelude
3
+
4
+ /**
5
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/History/go)
6
+ */
7
+ @send
8
+ external go: (history, ~delta: int=?) => unit = "go"
9
+
10
+ /**
11
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/History/back)
12
+ */
13
+ @send
14
+ external back: history => unit = "back"
15
+
16
+ /**
17
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/History/forward)
18
+ */
19
+ @send
20
+ external forward: history => unit = "forward"
21
+
22
+ /**
23
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/History/pushState)
24
+ */
25
+ @send
26
+ external pushState: (history, ~data: JSON.t, ~unused: string, ~url: string=?) => unit = "pushState"
27
+
28
+ /**
29
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/History/replaceState)
30
+ */
31
+ @send
32
+ external replaceState: (history, ~data: JSON.t, ~unused: string, ~url: string=?) => unit =
33
+ "replaceState"
@@ -0,0 +1,26 @@
1
+ @@warning("-30")
2
+
3
+ open Prelude
4
+
5
+ type scrollRestoration =
6
+ | @as("auto") Auto
7
+ | @as("manual") Manual
8
+
9
+ /**
10
+ Allows manipulation of the browser session history, that is the pages visited in the tab or frame that the current page is loaded in.
11
+ [See History on MDN](https://developer.mozilla.org/docs/Web/API/History)
12
+ */
13
+ type history = {
14
+ /**
15
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/History/length)
16
+ */
17
+ length: int,
18
+ /**
19
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/History/scrollRestoration)
20
+ */
21
+ mutable scrollRestoration: scrollRestoration,
22
+ /**
23
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/History/state)
24
+ */
25
+ state: JSON.t,
26
+ }
@@ -0,0 +1,135 @@
1
+ open EventAPI
2
+ open IndexedDBAPI
3
+
4
+ external asEventTarget: idbDatabase => eventTarget = "%identity"
5
+ /**
6
+ 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.
7
+
8
+ 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.
9
+
10
+ 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.
11
+
12
+ 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.
13
+
14
+ When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
15
+
16
+ If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
17
+
18
+ The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
19
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
20
+ */
21
+ @send
22
+ external addEventListener: (
23
+ idbDatabase,
24
+ ~type_: eventType,
25
+ ~callback: eventListener<'event>,
26
+ ~options: addEventListenerOptions=?,
27
+ ) => unit = "addEventListener"
28
+
29
+ /**
30
+ 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.
31
+
32
+ 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.
33
+
34
+ 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.
35
+
36
+ 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.
37
+
38
+ When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.
39
+
40
+ If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.
41
+
42
+ The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.
43
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
44
+ */
45
+ @send
46
+ external addEventListener2: (
47
+ idbDatabase,
48
+ ~type_: eventType,
49
+ ~callback: eventListener<'event>,
50
+ ~options: bool=?,
51
+ ) => unit = "addEventListener"
52
+
53
+ /**
54
+ Removes the event listener in target's event listener list with the same type, callback, and options.
55
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
56
+ */
57
+ @send
58
+ external removeEventListener: (
59
+ idbDatabase,
60
+ ~type_: eventType,
61
+ ~callback: eventListener<'event>,
62
+ ~options: eventListenerOptions=?,
63
+ ) => unit = "removeEventListener"
64
+
65
+ /**
66
+ Removes the event listener in target's event listener list with the same type, callback, and options.
67
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
68
+ */
69
+ @send
70
+ external removeEventListener2: (
71
+ idbDatabase,
72
+ ~type_: eventType,
73
+ ~callback: eventListener<'event>,
74
+ ~options: bool=?,
75
+ ) => unit = "removeEventListener"
76
+
77
+ /**
78
+ 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.
79
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
80
+ */
81
+ @send
82
+ external dispatchEvent: (idbDatabase, event) => bool = "dispatchEvent"
83
+
84
+ /**
85
+ Returns a new transaction with the given mode ("readonly" or "readwrite") and scope which can be a single object store name or an array of names.
86
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction)
87
+ */
88
+ @send
89
+ external transaction: (
90
+ idbDatabase,
91
+ ~storeNames: string,
92
+ ~mode: idbTransactionMode=?,
93
+ ~options: idbTransactionOptions=?,
94
+ ) => idbTransaction = "transaction"
95
+
96
+ /**
97
+ Returns a new transaction with the given mode ("readonly" or "readwrite") and scope which can be a single object store name or an array of names.
98
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction)
99
+ */
100
+ @send
101
+ external transaction2: (
102
+ idbDatabase,
103
+ ~storeNames: array<string>,
104
+ ~mode: idbTransactionMode=?,
105
+ ~options: idbTransactionOptions=?,
106
+ ) => idbTransaction = "transaction"
107
+
108
+ /**
109
+ Closes the connection once all running transactions have finished.
110
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close)
111
+ */
112
+ @send
113
+ external close: idbDatabase => unit = "close"
114
+
115
+ /**
116
+ Creates a new object store with the given name and options and returns a new IDBObjectStore.
117
+
118
+ Throws a "InvalidStateError" DOMException if not called within an upgrade transaction.
119
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBDatabase/createObjectStore)
120
+ */
121
+ @send
122
+ external createObjectStore: (
123
+ idbDatabase,
124
+ ~name: string,
125
+ ~options: idbObjectStoreParameters=?,
126
+ ) => idbObjectStore = "createObjectStore"
127
+
128
+ /**
129
+ Deletes the object store with the given name.
130
+
131
+ Throws a "InvalidStateError" DOMException if not called within an upgrade transaction.
132
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBDatabase/deleteObjectStore)
133
+ */
134
+ @send
135
+ external deleteObjectStore: (idbDatabase, string) => unit = "deleteObjectStore"
@@ -0,0 +1,31 @@
1
+ open IndexedDBAPI
2
+ open Prelude
3
+
4
+ /**
5
+ Attempts to open a connection to the named database with the current version, or 1 if it does not already exist. If the request is successful request's result will be the connection.
6
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBFactory/open)
7
+ */
8
+ @send
9
+ external open_: (idbFactory, ~name: string, ~version: int=?) => idbOpenDBRequest = "open"
10
+
11
+ /**
12
+ Attempts to delete the named database. If the database already exists and there are open connections that don't close in response to a versionchange event, the request will be blocked until all they close. If the request is successful request's result will be null.
13
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBFactory/deleteDatabase)
14
+ */
15
+ @send
16
+ external deleteDatabase: (idbFactory, string) => idbOpenDBRequest = "deleteDatabase"
17
+
18
+ /**
19
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBFactory/databases)
20
+ */
21
+ @send
22
+ external databases: idbFactory => Promise.t<array<idbDatabaseInfo>> = "databases"
23
+
24
+ /**
25
+ Compares two values as keys. Returns -1 if key1 precedes key2, 1 if key2 precedes key1, and 0 if the keys are equal.
26
+
27
+ Throws a "DataError" DOMException if either input is not a valid key.
28
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBFactory/cmp)
29
+ */
30
+ @send
31
+ external cmp: (idbFactory, ~first: JSON.t, ~second: JSON.t) => int = "cmp"
@@ -0,0 +1,74 @@
1
+ open IndexedDBAPI
2
+ open Prelude
3
+
4
+ /**
5
+ Retrieves the value of the first record matching the given key or key range in query.
6
+
7
+ If successful, request's result will be the value, or undefined if there was no matching record.
8
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/get)
9
+ */
10
+ @send
11
+ external get: (idbIndex, any) => idbRequest<JSON.t> = "get"
12
+
13
+ /**
14
+ Retrieves the key of the first record matching the given key or key range in query.
15
+
16
+ If successful, request's result will be the key, or undefined if there was no matching record.
17
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/getKey)
18
+ */
19
+ @send
20
+ external getKey: (idbIndex, any) => idbRequest<any> = "getKey"
21
+
22
+ /**
23
+ Retrieves the values of the records matching the given key or key range in query (up to count if given).
24
+
25
+ If successful, request's result will be an Array of the values.
26
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAll)
27
+ */
28
+ @send
29
+ external getAll: (idbIndex, ~query: any=?, ~count: int=?) => idbRequest<array<JSON.t>> = "getAll"
30
+
31
+ /**
32
+ Retrieves the keys of records matching the given key or key range in query (up to count if given).
33
+
34
+ If successful, request's result will be an Array of the keys.
35
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAllKeys)
36
+ */
37
+ @send
38
+ external getAllKeys: (idbIndex, ~query: any=?, ~count: int=?) => idbRequest<array<idbValidKey>> =
39
+ "getAllKeys"
40
+
41
+ /**
42
+ Retrieves the number of records matching the given key or key range in query.
43
+
44
+ If successful, request's result will be the count.
45
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/count)
46
+ */
47
+ @send
48
+ external count: (idbIndex, ~query: any=?) => idbRequest<int> = "count"
49
+
50
+ /**
51
+ Opens a cursor over the records matching query, ordered by direction. If query is null, all records in index are matched.
52
+
53
+ If successful, request's result will be an IDBCursorWithValue, or null if there were no matching records.
54
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/openCursor)
55
+ */
56
+ @send
57
+ external openCursor: (
58
+ idbIndex,
59
+ ~query: any=?,
60
+ ~direction: idbCursorDirection=?,
61
+ ) => idbRequest<any> = "openCursor"
62
+
63
+ /**
64
+ Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in index are matched.
65
+
66
+ If successful, request's result will be an IDBCursor, or null if there were no matching records.
67
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/openKeyCursor)
68
+ */
69
+ @send
70
+ external openKeyCursor: (
71
+ idbIndex,
72
+ ~query: any=?,
73
+ ~direction: idbCursorDirection=?,
74
+ ) => idbRequest<any> = "openKeyCursor"