@rescript/webapi 0.1.0-alpha-b1d58f9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -0
  3. package/package.json +61 -0
  4. package/rescript.json +557 -0
  5. package/src/animation/Animation.res +149 -0
  6. package/src/animation/AnimationEffect.res +71 -0
  7. package/src/animation/DocumentTimeline.res +8 -0
  8. package/src/canvas/Canvas.res +179 -0
  9. package/src/canvas/CanvasGradient.res +11 -0
  10. package/src/canvas/CanvasPattern.res +11 -0
  11. package/src/canvas/CanvasRenderingContext2D.res +868 -0
  12. package/src/canvas/CanvasTypes.res +452 -0
  13. package/src/canvas/FillStyle.res +25 -0
  14. package/src/canvas/HTMLCanvasElement.res +101 -0
  15. package/src/canvas/ImageBitmap.res +6 -0
  16. package/src/canvas/ImageBitmapRenderingContext.res +9 -0
  17. package/src/canvas/ImageData.res +17 -0
  18. package/src/canvas/OffscreenCanvas.res +87 -0
  19. package/src/canvas/Path2D.res +186 -0
  20. package/src/canvas/VideoColorSpace.res +11 -0
  21. package/src/canvas/VideoFrame.res +217 -0
  22. package/src/core/ArrayBufferTypedArrayOrDataView.res +4 -0
  23. package/src/core/DOM.res +1026 -0
  24. package/src/core/EventType.res +108 -0
  25. package/src/crypto/Crypto.res +11 -0
  26. package/src/crypto/SubtleCrypto.res +173 -0
  27. package/src/crypto/WebCryptoTypes.res +71 -0
  28. package/src/css-font-loading/BaseCSSFontLoading.res +24 -0
  29. package/src/css-font-loading/CssFontLoadingTypes.res +92 -0
  30. package/src/css-font-loading/FontFace.res +62 -0
  31. package/src/css-font-loading/FontFaceSet.res +38 -0
  32. package/src/cssom/CSSRuleList.res +5 -0
  33. package/src/cssom/CSSStyleDeclaration.res +1734 -0
  34. package/src/cssom/CSSStyleValue.res +17 -0
  35. package/src/cssom/MediaList.res +29 -0
  36. package/src/cssom/MediaQueryList.res +18 -0
  37. package/src/cssom/StylePropertyMap.res +56 -0
  38. package/src/cssom/StylePropertyMapReadOnly.res +22 -0
  39. package/src/cssom/StyleSheet.res +152 -0
  40. package/src/cssom/StyleSheetList.res +17 -0
  41. package/src/device/GamepadHapticActuator.res +16 -0
  42. package/src/device/GamepadTypes.res +86 -0
  43. package/src/device/Geolocation.res +31 -0
  44. package/src/device/GeolocationCoordinates.res +5 -0
  45. package/src/device/GeolocationPosition.res +5 -0
  46. package/src/device/GeolocationTypes.res +81 -0
  47. package/src/device/LockManager.res +26 -0
  48. package/src/device/ScreenOrientation.res +7 -0
  49. package/src/device/ScreenWakeLockTypes.res +26 -0
  50. package/src/device/WakeLock.res +8 -0
  51. package/src/device/WakeLockSentinel.res +7 -0
  52. package/src/device/WebLocksTypes.res +45 -0
  53. package/src/device/WebMIDI.res +7 -0
  54. package/src/device/WebMidiTypes.res +36 -0
  55. package/src/dom-nodes/AbstractRange.res +30 -0
  56. package/src/dom-nodes/Attr.res +101 -0
  57. package/src/dom-nodes/CDATASection.res +7 -0
  58. package/src/dom-nodes/CaretPosition.res +2 -0
  59. package/src/dom-nodes/CharacterData.res +199 -0
  60. package/src/dom-nodes/Comment.res +15 -0
  61. package/src/dom-nodes/DOMImplementation.res +131 -0
  62. package/src/dom-nodes/DOMTree.res +1653 -0
  63. package/src/dom-nodes/DocumentFragment.res +96 -0
  64. package/src/dom-nodes/Element.res +509 -0
  65. package/src/dom-nodes/ElementInternals.res +39 -0
  66. package/src/dom-nodes/HTML.res +11 -0
  67. package/src/dom-nodes/HTMLCollection.res +25 -0
  68. package/src/dom-nodes/NamedNodeMap.res +46 -0
  69. package/src/dom-nodes/Node.res +114 -0
  70. package/src/dom-nodes/NodeFilter.res +4 -0
  71. package/src/dom-nodes/NodeIterator.res +38 -0
  72. package/src/dom-nodes/NodeList.res +6 -0
  73. package/src/dom-nodes/ProcessingInstruction.res +15 -0
  74. package/src/dom-nodes/Range.res +156 -0
  75. package/src/dom-nodes/Selection.res +137 -0
  76. package/src/dom-nodes/ShadowRoot.res +23 -0
  77. package/src/dom-nodes/StaticRange.res +6 -0
  78. package/src/dom-nodes/Text.res +31 -0
  79. package/src/dom-nodes/TreeWalker.res +65 -0
  80. package/src/dom-platform/DOMException.res +7 -0
  81. package/src/dom-platform/DOMStringList.res +15 -0
  82. package/src/dom-platform/DOMStringMap.res +5 -0
  83. package/src/dom-platform/DOMTokenList.res +70 -0
  84. package/src/event/AbortController.res +9 -0
  85. package/src/event/AbortSignal.res +25 -0
  86. package/src/event/Event.res +76 -0
  87. package/src/event/EventTarget.res +91 -0
  88. package/src/event/ExtendableEvent.res +14 -0
  89. package/src/fetch/BodyInit.res +46 -0
  90. package/src/fetch/Fetch.res +12 -0
  91. package/src/fetch/FetchTypes.res +282 -0
  92. package/src/fetch/FormData.res +71 -0
  93. package/src/fetch/FormDataEntryValue.res +2 -0
  94. package/src/fetch/Headers.res +59 -0
  95. package/src/fetch/HeadersInit.res +16 -0
  96. package/src/fetch/Request.res +61 -0
  97. package/src/fetch/Response.res +127 -0
  98. package/src/file/BaseFileAndDirectoryEntries.res +72 -0
  99. package/src/file/Blob.res +48 -0
  100. package/src/file/File.res +15 -0
  101. package/src/file/FileAndDirectoryEntriesTypes.res +35 -0
  102. package/src/file/FileList.res +16 -0
  103. package/src/file/FileSystemDirectoryEntry.res +42 -0
  104. package/src/file/FileSystemDirectoryHandle.res +49 -0
  105. package/src/file/FileSystemDirectoryReader.res +9 -0
  106. package/src/file/FileSystemEntry.res +9 -0
  107. package/src/file/FileSystemFileHandle.res +25 -0
  108. package/src/file/FileSystemHandle.res +6 -0
  109. package/src/file/FileSystemWritableFileStream.res +65 -0
  110. package/src/file/FileTypes.res +225 -0
  111. package/src/file/ReadableStream.res +79 -0
  112. package/src/file/WritableStream.res +27 -0
  113. package/src/file/WritableStreamDefaultController.res +5 -0
  114. package/src/geometry/DOMMatrix.res +206 -0
  115. package/src/geometry/DOMMatrixReadOnly.res +140 -0
  116. package/src/geometry/DOMPoint.res +28 -0
  117. package/src/geometry/DOMPointReadOnly.res +22 -0
  118. package/src/geometry/DOMRect.res +22 -0
  119. package/src/geometry/DOMRectList.res +2 -0
  120. package/src/geometry/DOMRectReadOnly.res +19 -0
  121. package/src/html/HTMLAnchorElement.res +373 -0
  122. package/src/html/HTMLAreaElement.res +353 -0
  123. package/src/html/HTMLBRElement.res +9 -0
  124. package/src/html/HTMLBaseElement.res +20 -0
  125. package/src/html/HTMLBodyElement.res +9 -0
  126. package/src/html/HTMLButtonElement.res +98 -0
  127. package/src/html/HTMLDListElement.res +9 -0
  128. package/src/html/HTMLDataElement.res +14 -0
  129. package/src/html/HTMLDataListElement.res +14 -0
  130. package/src/html/HTMLDialogElement.res +40 -0
  131. package/src/html/HTMLDivElement.res +9 -0
  132. package/src/html/HTMLElement.res +108 -0
  133. package/src/html/HTMLEmbedElement.res +275 -0
  134. package/src/html/HTMLFieldSetElement.res +70 -0
  135. package/src/html/HTMLFormControlsCollection.res +21 -0
  136. package/src/html/HTMLFormElement.res +39 -0
  137. package/src/html/HTMLFrameSetElement.res +9 -0
  138. package/src/html/HTMLHRElement.res +9 -0
  139. package/src/html/HTMLHeadElement.res +256 -0
  140. package/src/html/HTMLHeadingElement.res +9 -0
  141. package/src/html/HTMLHtmlElement.res +9 -0
  142. package/src/html/HTMLIFrameElement.res +69 -0
  143. package/src/html/HTMLImageElement.res +349 -0
  144. package/src/html/HTMLInputElement.res +310 -0
  145. package/src/html/HTMLLIElement.res +9 -0
  146. package/src/html/HTMLLabelElement.res +25 -0
  147. package/src/html/HTMLLegendElement.res +14 -0
  148. package/src/html/HTMLLinkElement.res +69 -0
  149. package/src/html/HTMLMapElement.res +20 -0
  150. package/src/html/HTMLMenuElement.res +8 -0
  151. package/src/html/HTMLMetaElement.res +29 -0
  152. package/src/html/HTMLMeterElement.res +38 -0
  153. package/src/html/HTMLModElement.res +9 -0
  154. package/src/html/HTMLOListElement.res +24 -0
  155. package/src/html/HTMLObjectElement.res +89 -0
  156. package/src/html/HTMLOptGroupElement.res +19 -0
  157. package/src/html/HTMLOptionElement.res +49 -0
  158. package/src/html/HTMLOptionsCollection.res +35 -0
  159. package/src/html/HTMLOutputElement.res +73 -0
  160. package/src/html/HTMLParagraphElement.res +9 -0
  161. package/src/html/HTMLPictureElement.res +9 -0
  162. package/src/html/HTMLPreElement.res +9 -0
  163. package/src/html/HTMLProgressElement.res +29 -0
  164. package/src/html/HTMLQuoteElement.res +9 -0
  165. package/src/html/HTMLScriptElement.res +310 -0
  166. package/src/html/HTMLSelectElement.res +157 -0
  167. package/src/html/HTMLSlotElement.res +34 -0
  168. package/src/html/HTMLSourceElement.res +18 -0
  169. package/src/html/HTMLSpanElement.res +9 -0
  170. package/src/html/HTMLStyleElement.res +24 -0
  171. package/src/html/HTMLTableCaptionElement.res +9 -0
  172. package/src/html/HTMLTableCellElement.res +40 -0
  173. package/src/html/HTMLTableElement.res +100 -0
  174. package/src/html/HTMLTableRowElement.res +40 -0
  175. package/src/html/HTMLTableSectionElement.res +30 -0
  176. package/src/html/HTMLTemplateElement.res +31 -0
  177. package/src/html/HTMLTextAreaElement.res +177 -0
  178. package/src/html/HTMLTimeElement.res +14 -0
  179. package/src/html/HTMLTitleElement.res +15 -0
  180. package/src/html/HTMLUListElement.res +9 -0
  181. package/src/html/HTMLUnknownElement.res +9 -0
  182. package/src/media/BaseEncryptedMediaExtensions.res +97 -0
  183. package/src/media/DomHTMLMediaElement.res +206 -0
  184. package/src/media/EncryptedMediaExtensionsHTMLMediaElement.res +15 -0
  185. package/src/media/EncryptedMediaExtensionsTypes.res +43 -0
  186. package/src/media/HTMLAudioElement.res +9 -0
  187. package/src/media/HTMLTrackElement.res +14 -0
  188. package/src/media/HTMLVideoElement.res +78 -0
  189. package/src/media/MediaCapabilities.res +19 -0
  190. package/src/media/MediaCapabilitiesTypes.res +83 -0
  191. package/src/media/MediaCaptureAndStreamsTypes.res +197 -0
  192. package/src/media/MediaDeviceInfo.res +9 -0
  193. package/src/media/MediaDevices.res +40 -0
  194. package/src/media/MediaError.res +14 -0
  195. package/src/media/MediaKeySession.res +53 -0
  196. package/src/media/MediaKeyStatusMap.res +11 -0
  197. package/src/media/MediaKeySystemAccess.res +14 -0
  198. package/src/media/MediaKeys.res +35 -0
  199. package/src/media/MediaMetadata.res +10 -0
  200. package/src/media/MediaSession.res +25 -0
  201. package/src/media/MediaSessionTypes.res +85 -0
  202. package/src/media/MediaStream.res +89 -0
  203. package/src/media/MediaStreamTrack.res +51 -0
  204. package/src/media/PictureInPicture.res +7 -0
  205. package/src/media/PictureInPictureTypes.res +17 -0
  206. package/src/media/RemotePlayback.res +25 -0
  207. package/src/media/RemotePlaybackTypes.res +20 -0
  208. package/src/media/SpeechSynthesis.res +33 -0
  209. package/src/media/SpeechSynthesisUtterance.res +8 -0
  210. package/src/media/TextTrack.res +15 -0
  211. package/src/media/TextTrackCueList.res +9 -0
  212. package/src/media/TextTrackList.res +17 -0
  213. package/src/media/TimeRanges.res +29 -0
  214. package/src/media/VideoPlaybackQuality.res +18 -0
  215. package/src/media/WebSpeechTypes.res +83 -0
  216. package/src/media/WebVttTypes.res +123 -0
  217. package/src/messaging/ApplicationServerKey.res +2 -0
  218. package/src/messaging/ChannelMessagingTypes.res +12 -0
  219. package/src/messaging/CloseEvent.res +10 -0
  220. package/src/messaging/MessageEvent.res +43 -0
  221. package/src/messaging/MessagePort.res +38 -0
  222. package/src/messaging/Notification.res +46 -0
  223. package/src/messaging/NotificationTypes.res +107 -0
  224. package/src/messaging/PushEvent.res +3 -0
  225. package/src/messaging/PushManager.res +24 -0
  226. package/src/messaging/PushMessageData.res +15 -0
  227. package/src/messaging/PushSubscription.res +20 -0
  228. package/src/messaging/PushTypes.res +88 -0
  229. package/src/messaging/WebSocket.res +74 -0
  230. package/src/messaging/WebSocketsTypes.res +124 -0
  231. package/src/navigator/Clipboard.res +29 -0
  232. package/src/navigator/ClipboardItem.res +20 -0
  233. package/src/navigator/ClipboardTypes.res +31 -0
  234. package/src/navigator/CredentialManagementTypes.res +138 -0
  235. package/src/navigator/CredentialsContainer.res +33 -0
  236. package/src/navigator/Navigator.res +166 -0
  237. package/src/navigator/Permissions.res +10 -0
  238. package/src/navigator/PermissionsTypes.res +38 -0
  239. package/src/observers/IntersectionObserver.res +36 -0
  240. package/src/observers/IntersectionObserverRoot.res +23 -0
  241. package/src/observers/IntersectionObserverTypes.res +67 -0
  242. package/src/observers/MutationObserver.res +94 -0
  243. package/src/observers/ResizeObserver.res +30 -0
  244. package/src/observers/ResizeObserverTypes.res +56 -0
  245. package/src/performance/Performance.res +101 -0
  246. package/src/performance/PerformanceEntry.res +5 -0
  247. package/src/performance/PerformanceMark.res +16 -0
  248. package/src/performance/PerformanceTypes.res +86 -0
  249. package/src/storage/Cache.res +117 -0
  250. package/src/storage/CacheStorage.res +43 -0
  251. package/src/storage/CacheTypes.res +24 -0
  252. package/src/storage/IDBDatabase.res +54 -0
  253. package/src/storage/IDBFactory.res +34 -0
  254. package/src/storage/IDBIndex.res +83 -0
  255. package/src/storage/IDBObjectStore.res +183 -0
  256. package/src/storage/IDBTransaction.res +22 -0
  257. package/src/storage/IndexedDbTypes.res +213 -0
  258. package/src/storage/Storage.res +42 -0
  259. package/src/storage/StorageEvent.res +10 -0
  260. package/src/storage/StorageManager.res +24 -0
  261. package/src/storage/StorageTypes.res +11 -0
  262. package/src/storage/WebStorageTypes.res +57 -0
  263. package/src/svg/SVGElement.res +115 -0
  264. package/src/svg/SVGGraphicsElement.res +16 -0
  265. package/src/svg/SVGLength.res +9 -0
  266. package/src/ui-events/CompositionEvent.res +10 -0
  267. package/src/ui-events/DataTransfer.res +38 -0
  268. package/src/ui-events/DataTransferItem.res +21 -0
  269. package/src/ui-events/DataTransferItemList.res +34 -0
  270. package/src/ui-events/FocusEvent.res +10 -0
  271. package/src/ui-events/InputEvent.res +16 -0
  272. package/src/ui-events/KeyboardEvent.res +16 -0
  273. package/src/ui-events/MouseEvent.res +26 -0
  274. package/src/ui-events/PointerEvent.res +24 -0
  275. package/src/ui-events/Touch.res +5 -0
  276. package/src/ui-events/TouchEvent.res +10 -0
  277. package/src/ui-events/TouchList.res +5 -0
  278. package/src/ui-events/UIEvent.res +20 -0
  279. package/src/ui-events/UiEventsTypes.res +590 -0
  280. package/src/ui-events/WheelEvent.res +10 -0
  281. package/src/url/URL.res +38 -0
  282. package/src/url/URLSearchParams.res +104 -0
  283. package/src/url/UrlTypes.res +69 -0
  284. package/src/view-transitions/ViewTransition.res +5 -0
  285. package/src/view-transitions/ViewTransitionsTypes.res +22 -0
  286. package/src/web-audio/AnalyserNode.res +38 -0
  287. package/src/web-audio/AudioBuffer.res +33 -0
  288. package/src/web-audio/AudioBufferSourceNode.res +21 -0
  289. package/src/web-audio/AudioContext.res +59 -0
  290. package/src/web-audio/AudioDestinationNode.res +1 -0
  291. package/src/web-audio/AudioNode.res +76 -0
  292. package/src/web-audio/AudioParam.res +65 -0
  293. package/src/web-audio/AudioProcessingEvent.res +10 -0
  294. package/src/web-audio/AudioScheduledSourceNode.res +23 -0
  295. package/src/web-audio/AudioWorkletNode.res +11 -0
  296. package/src/web-audio/BaseAudioContext.res +141 -0
  297. package/src/web-audio/BiquadFilterNode.res +21 -0
  298. package/src/web-audio/ChannelMergerNode.res +10 -0
  299. package/src/web-audio/ChannelSplitterNode.res +10 -0
  300. package/src/web-audio/ConstantSourceNode.res +10 -0
  301. package/src/web-audio/ConvolverNode.res +10 -0
  302. package/src/web-audio/DelayNode.res +10 -0
  303. package/src/web-audio/DynamicsCompressorNode.res +10 -0
  304. package/src/web-audio/GainNode.res +10 -0
  305. package/src/web-audio/IIRFilterNode.res +21 -0
  306. package/src/web-audio/MediaElementAudioSourceNode.res +10 -0
  307. package/src/web-audio/MediaStreamAudioDestinationNode.res +10 -0
  308. package/src/web-audio/MediaStreamAudioSourceNode.res +10 -0
  309. package/src/web-audio/OfflineAudioCompletionEvent.res +10 -0
  310. package/src/web-audio/OfflineAudioContext.res +58 -0
  311. package/src/web-audio/OscillatorNode.res +17 -0
  312. package/src/web-audio/PannerNode.res +10 -0
  313. package/src/web-audio/PeriodicWave.res +8 -0
  314. package/src/web-audio/StereoPannerNode.res +10 -0
  315. package/src/web-audio/WaveShaperNode.res +10 -0
  316. package/src/web-audio/WebAudioTypes.res +1309 -0
  317. package/src/web-audio/Worklet.res +14 -0
  318. package/src/window/CustomElementRegistry.res +30 -0
  319. package/src/window/Document.res +470 -0
  320. package/src/window/DomGlobal.res +459 -0
  321. package/src/window/History.res +37 -0
  322. package/src/window/HistoryTypes.res +26 -0
  323. package/src/window/IdleDeadline.res +5 -0
  324. package/src/window/Location.res +108 -0
  325. package/src/window/VisualViewport.res +5 -0
  326. package/src/window/VisualViewportTypes.res +37 -0
  327. package/src/window/Window.res +556 -0
  328. package/src/window/XPathExpression.res +16 -0
  329. package/src/window/XPathResult.res +46 -0
  330. package/src/workers/Clients.res +39 -0
  331. package/src/workers/NavigationPreloadManager.res +26 -0
  332. package/src/workers/ServiceWorker.res +38 -0
  333. package/src/workers/ServiceWorkerContainer.res +34 -0
  334. package/src/workers/ServiceWorkerRegistration.res +32 -0
  335. package/src/workers/ServiceWorkerScope.res +12 -0
  336. package/src/workers/ServiceWorkerTypes.res +153 -0
  337. package/src/workers/SharedWorker.res +68 -0
  338. package/src/workers/SharedWorkerScope.res +29 -0
  339. package/src/workers/WebWorkersTypes.res +46 -0
  340. package/src/workers/Worker.res +48 -0
  341. package/src/workers/WorkerLocation.res +18 -0
@@ -0,0 +1,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
@@ -0,0 +1,36 @@
1
+ @@warning("-30")
2
+
3
+ /**
4
+ [See MIDIInputMap on MDN](https://developer.mozilla.org/docs/Web/API/MIDIInputMap)
5
+ */
6
+ type midiInputMap = {}
7
+
8
+ /**
9
+ [See MIDIOutputMap on MDN](https://developer.mozilla.org/docs/Web/API/MIDIOutputMap)
10
+ */
11
+ type midiOutputMap = {}
12
+
13
+ /**
14
+ [See MIDIAccess on MDN](https://developer.mozilla.org/docs/Web/API/MIDIAccess)
15
+ */
16
+ @editor.completeFrom(WebMIDI)
17
+ type midiAccess = {
18
+ ...DOM.eventTarget,
19
+ /**
20
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MIDIAccess/inputs)
21
+ */
22
+ inputs: midiInputMap,
23
+ /**
24
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MIDIAccess/outputs)
25
+ */
26
+ outputs: midiOutputMap,
27
+ /**
28
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MIDIAccess/sysexEnabled)
29
+ */
30
+ sysexEnabled: bool,
31
+ }
32
+
33
+ type midiOptions = {
34
+ mutable sysex?: bool,
35
+ mutable software?: bool,
36
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ [See AbstractRange on MDN](https://developer.mozilla.org/docs/Web/API/AbstractRange)
3
+ */
4
+ type t = {
5
+ /**
6
+ Returns range's start node.
7
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/AbstractRange/startContainer)
8
+ */
9
+ startContainer: DOMTree.node,
10
+ /**
11
+ Returns range's start offset.
12
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/AbstractRange/startOffset)
13
+ */
14
+ startOffset: int,
15
+ /**
16
+ Returns range's end node.
17
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/AbstractRange/endContainer)
18
+ */
19
+ endContainer: DOMTree.node,
20
+ /**
21
+ Returns range's end offset.
22
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/AbstractRange/endOffset)
23
+ */
24
+ endOffset: int,
25
+ /**
26
+ Returns true if range is collapsed, and false otherwise.
27
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/AbstractRange/collapsed)
28
+ */
29
+ collapsed: bool,
30
+ }
@@ -0,0 +1,101 @@
1
+ /**
2
+ A WebApiDOM element's attribute as an object. In most WebApiDOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types.
3
+ [See Attr on MDN](https://developer.mozilla.org/docs/Web/API/Attr)
4
+ */
5
+ type t = {
6
+ // Base properties from Node
7
+ /**
8
+ Returns the type of node.
9
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nodeType)
10
+ */
11
+ nodeType: int,
12
+ /**
13
+ Returns a string appropriate for the type of node.
14
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nodeName)
15
+ */
16
+ nodeName: string,
17
+ /**
18
+ Returns node's node document's document base URL.
19
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI)
20
+ */
21
+ baseURI: string,
22
+ /**
23
+ Returns true if node is connected and false otherwise.
24
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isConnected)
25
+ */
26
+ isConnected: bool,
27
+ /**
28
+ Returns the node document. Returns null for documents.
29
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/ownerDocument)
30
+ */
31
+ ownerDocument: Null.t<DOM.document>,
32
+ /**
33
+ Returns the parent.
34
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/parentNode)
35
+ */
36
+ parentNode: Null.t<DOMTree.node>,
37
+ /**
38
+ Returns the parent element.
39
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/parentElement)
40
+ */
41
+ parentElement: Null.t<DOMTree.htmlElement>,
42
+ /**
43
+ Returns the children.
44
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/childNodes)
45
+ */
46
+ childNodes: DOM.nodeList<DOMTree.node>,
47
+ /**
48
+ Returns the first child.
49
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/firstChild)
50
+ */
51
+ firstChild: Null.t<DOMTree.node>,
52
+ /**
53
+ Returns the last child.
54
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lastChild)
55
+ */
56
+ lastChild: Null.t<DOMTree.node>,
57
+ /**
58
+ Returns the previous sibling.
59
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/previousSibling)
60
+ */
61
+ previousSibling: Null.t<DOMTree.node>,
62
+ /**
63
+ Returns the next sibling.
64
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nextSibling)
65
+ */
66
+ nextSibling: Null.t<DOMTree.node>,
67
+ /**
68
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nodeValue)
69
+ */
70
+ mutable nodeValue: Null.t<string>,
71
+ /**
72
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/textContent)
73
+ */
74
+ mutable textContent: Null.t<string>,
75
+ // End base properties from Node
76
+
77
+ /**
78
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Attr/namespaceURI)
79
+ */
80
+ namespaceURI: Null.t<string>,
81
+ /**
82
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Attr/prefix)
83
+ */
84
+ prefix: Null.t<string>,
85
+ /**
86
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Attr/localName)
87
+ */
88
+ localName: string,
89
+ /**
90
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Attr/name)
91
+ */
92
+ name: string,
93
+ /**
94
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Attr/value)
95
+ */
96
+ mutable value: string,
97
+ /**
98
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Attr/ownerElement)
99
+ */
100
+ ownerElement: Null.t<DOMTree.element>,
101
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ A CDATA section that can be used within XML to include extended portions of unescaped text. The symbols < and & don't need escaping as they normally do when inside a CDATA section.
3
+ [See CDATASection on MDN](https://developer.mozilla.org/docs/Web/API/CDATASection)
4
+ */
5
+ type t = {
6
+ ...Text.t,
7
+ }
@@ -0,0 +1,2 @@
1
+ @send
2
+ external getClientRect: DOM.caretPosition => Null.t<DOM.domRect> = "getClientRect"
@@ -0,0 +1,199 @@
1
+ /**
2
+ The CharacterData abstract interface represents a Node object that contains characters. This is an abstract interface, meaning there aren't any object of type CharacterData: it is implemented by other interfaces, like Text, Comment, or ProcessingInstruction which aren't abstract.
3
+ [See CharacterData on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData)
4
+ TODO: mark as private once mutating fields of private records is allowed
5
+ */
6
+ type t = {
7
+ // Base properties from Node
8
+ /**
9
+ Returns the type of node.
10
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nodeType)
11
+ */
12
+ nodeType: int,
13
+ /**
14
+ Returns a string appropriate for the type of node.
15
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nodeName)
16
+ */
17
+ nodeName: string,
18
+ /**
19
+ Returns node's node document's document base URL.
20
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI)
21
+ */
22
+ baseURI: string,
23
+ /**
24
+ Returns true if node is connected and false otherwise.
25
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isConnected)
26
+ */
27
+ isConnected: bool,
28
+ /**
29
+ Returns the node document. Returns null for documents.
30
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/ownerDocument)
31
+ */
32
+ ownerDocument: Null.t<DOM.document>,
33
+ /**
34
+ Returns the parent.
35
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/parentNode)
36
+ */
37
+ parentNode: Null.t<DOMTree.node>,
38
+ /**
39
+ Returns the parent element.
40
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/parentElement)
41
+ */
42
+ parentElement: Null.t<DOMTree.htmlElement>,
43
+ /**
44
+ Returns the children.
45
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/childNodes)
46
+ */
47
+ childNodes: DOM.nodeList<DOMTree.node>,
48
+ /**
49
+ Returns the first child.
50
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/firstChild)
51
+ */
52
+ firstChild: Null.t<DOMTree.node>,
53
+ /**
54
+ Returns the last child.
55
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lastChild)
56
+ */
57
+ lastChild: Null.t<DOMTree.node>,
58
+ /**
59
+ Returns the previous sibling.
60
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/previousSibling)
61
+ */
62
+ previousSibling: Null.t<DOMTree.node>,
63
+ /**
64
+ Returns the next sibling.
65
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nextSibling)
66
+ */
67
+ nextSibling: Null.t<DOMTree.node>,
68
+ /**
69
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nodeValue)
70
+ */
71
+ mutable nodeValue: Null.t<string>,
72
+ /**
73
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/textContent)
74
+ */
75
+ mutable textContent: Null.t<string>,
76
+ // End base properties from Node
77
+
78
+ /**
79
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/data)
80
+ */
81
+ mutable data: string,
82
+ /**
83
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/length)
84
+ */
85
+ length: int,
86
+ /**
87
+ Returns the first preceding sibling that is an element, and null otherwise.
88
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/previousElementSibling)
89
+ */
90
+ previousElementSibling: Null.t<DOMTree.element>,
91
+ /**
92
+ Returns the first following sibling that is an element, and null otherwise.
93
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/nextElementSibling)
94
+ */
95
+ nextElementSibling: Null.t<DOMTree.element>,
96
+ }
97
+
98
+ module Impl = (
99
+ T: {
100
+ type t
101
+ },
102
+ ) => {
103
+ include Node.Impl({type t = T.t})
104
+
105
+ external asCharacterData: T.t => t = "%identity"
106
+
107
+ /**
108
+ Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
109
+
110
+ Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
111
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
112
+ */
113
+ @throws(JsExn) @send
114
+ external after: (T.t, DOMTree.node) => unit = "after"
115
+
116
+ /**
117
+ Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
118
+
119
+ Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
120
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
121
+ */
122
+ @throws(JsExn) @send
123
+ external after2: (T.t, string) => unit = "after"
124
+
125
+ /**
126
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/appendData)
127
+ */
128
+ @send
129
+ external appendData: (T.t, string) => unit = "appendData"
130
+
131
+ /**
132
+ Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
133
+
134
+ Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
135
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
136
+ */
137
+ @throws(JsExn) @send
138
+ external before: (T.t, DOMTree.node) => unit = "before"
139
+
140
+ /**
141
+ Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
142
+
143
+ Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
144
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
145
+ */
146
+ @throws(JsExn) @send
147
+ external before2: (T.t, string) => unit = "before"
148
+
149
+ /**
150
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/deleteData)
151
+ */
152
+ @throws(JsExn) @send
153
+ external deleteData: (T.t, ~offset: int, ~count: int) => unit = "deleteData"
154
+
155
+ /**
156
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/insertData)
157
+ */
158
+ @throws(JsExn) @send
159
+ external insertData: (T.t, ~offset: int, ~data: string) => unit = "insertData"
160
+
161
+ /**
162
+ Removes node.
163
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
164
+ */
165
+ @send
166
+ external remove: T.t => unit = "remove"
167
+
168
+ /**
169
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceData)
170
+ */
171
+ @throws(JsExn) @send
172
+ external replaceData: (T.t, ~offset: int, ~count: int, ~data: string) => unit = "replaceData"
173
+
174
+ /**
175
+ Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
176
+
177
+ Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
178
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
179
+ */
180
+ @throws(JsExn) @send
181
+ external replaceWith: (T.t, DOMTree.node) => unit = "replaceWith"
182
+
183
+ /**
184
+ Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
185
+
186
+ Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
187
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
188
+ */
189
+ @throws(JsExn) @send
190
+ external replaceWith2: (T.t, string) => unit = "replaceWith"
191
+
192
+ /**
193
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/CharacterData/substringData)
194
+ */
195
+ @throws(JsExn) @send
196
+ external substringData: (T.t, ~offset: int, ~count: int) => string = "substringData"
197
+ }
198
+
199
+ include Impl({type t = t})
@@ -0,0 +1,15 @@
1
+ /**
2
+ Textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view.
3
+ [See Comment on MDN](https://developer.mozilla.org/docs/Web/API/Comment)
4
+ */
5
+ type t = private {
6
+ ...CharacterData.t,
7
+ }
8
+
9
+ include CharacterData.Impl({type t = t})
10
+
11
+ /**
12
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Comment)
13
+ */
14
+ @new
15
+ external make: (~data: string=?) => t = "Comment"
@@ -0,0 +1,131 @@
1
+ /**
2
+ An object providing methods which are not dependent on any particular document. Such an object is returned by the Document.implementation property.
3
+ [See DOMImplementation on MDN](https://developer.mozilla.org/docs/Web/API/DOMImplementation)
4
+ */
5
+ type t = private {}
6
+
7
+ /**
8
+ A Node containing a doctype.
9
+ [See DocumentType on MDN](https://developer.mozilla.org/docs/Web/API/DocumentType)
10
+ */
11
+ type documentType = {
12
+ // Base properties from Node
13
+ /**
14
+ Returns the type of node.
15
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nodeType)
16
+ */
17
+ nodeType: int,
18
+ /**
19
+ Returns a string appropriate for the type of node.
20
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nodeName)
21
+ */
22
+ nodeName: string,
23
+ /**
24
+ Returns node's node document's document base URL.
25
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/baseURI)
26
+ */
27
+ baseURI: string,
28
+ /**
29
+ Returns true if node is connected and false otherwise.
30
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/isConnected)
31
+ */
32
+ isConnected: bool,
33
+ /**
34
+ Returns the node document. Returns null for documents.
35
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/ownerDocument)
36
+ */
37
+ ownerDocument: Null.t<DOM.document>,
38
+ /**
39
+ Returns the parent.
40
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/parentNode)
41
+ */
42
+ parentNode: Null.t<DOMTree.node>,
43
+ /**
44
+ Returns the parent element.
45
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/parentElement)
46
+ */
47
+ parentElement: Null.t<DOMTree.htmlElement>,
48
+ /**
49
+ Returns the children.
50
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/childNodes)
51
+ */
52
+ childNodes: DOM.nodeList<DOMTree.node>,
53
+ /**
54
+ Returns the first child.
55
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/firstChild)
56
+ */
57
+ firstChild: Null.t<DOMTree.node>,
58
+ /**
59
+ Returns the last child.
60
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/lastChild)
61
+ */
62
+ lastChild: Null.t<DOMTree.node>,
63
+ /**
64
+ Returns the previous sibling.
65
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/previousSibling)
66
+ */
67
+ previousSibling: Null.t<DOMTree.node>,
68
+ /**
69
+ Returns the next sibling.
70
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nextSibling)
71
+ */
72
+ nextSibling: Null.t<DOMTree.node>,
73
+ /**
74
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/nodeValue)
75
+ */
76
+ mutable nodeValue: Null.t<string>,
77
+ /**
78
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/Node/textContent)
79
+ */
80
+ mutable textContent: Null.t<string>,
81
+ // End base properties from Node
82
+
83
+ /**
84
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentType/name)
85
+ */
86
+ name: string,
87
+ /**
88
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentType/publicId)
89
+ */
90
+ publicId: string,
91
+ /**
92
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DocumentType/systemId)
93
+ */
94
+ systemId: string,
95
+ }
96
+
97
+ /**
98
+ An XML document. It inherits from the generic Document and does not add any specific methods or properties to it: nevertheless, several algorithms behave differently with the two types of documents.
99
+ [See XMLDocument on MDN](https://developer.mozilla.org/docs/Web/API/XMLDocument)
100
+ */
101
+ type xmlDocument = {
102
+ ...DOM.document,
103
+ }
104
+
105
+ /**
106
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createDocumentType)
107
+ */
108
+ @send
109
+ external createDocumentType: (
110
+ t,
111
+ ~qualifiedName: string,
112
+ ~publicId: string,
113
+ ~systemId: string,
114
+ ) => documentType = "createDocumentType"
115
+
116
+ /**
117
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createDocument)
118
+ */
119
+ @throws(JsExn) @send
120
+ external createDocument: (
121
+ t,
122
+ ~namespace: string,
123
+ ~qualifiedName: string,
124
+ ~doctype: documentType=?,
125
+ ) => xmlDocument = "createDocument"
126
+
127
+ /**
128
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument)
129
+ */
130
+ @send
131
+ external createHTMLDocument: (t, ~title: string=?) => DOM.document = "createHTMLDocument"