@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,167 @@
1
+ open IndexedDBAPI
2
+ open Prelude
3
+
4
+ /**
5
+ Adds or updates a record in store with the given value and key.
6
+
7
+ If the store uses in-line keys and key is specified a "DataError" DOMException will be thrown.
8
+
9
+ If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request's error set to a "ConstraintError" DOMException.
10
+
11
+ If successful, request's result will be the record's key.
12
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/put)
13
+ */
14
+ @send
15
+ external put: (idbObjectStore, ~value: JSON.t, ~key: idbValidKey=?) => idbRequest<idbValidKey> =
16
+ "put"
17
+
18
+ /**
19
+ Adds or updates a record in store with the given value and key.
20
+
21
+ If the store uses in-line keys and key is specified a "DataError" DOMException will be thrown.
22
+
23
+ If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request's error set to a "ConstraintError" DOMException.
24
+
25
+ If successful, request's result will be the record's key.
26
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/add)
27
+ */
28
+ @send
29
+ external add: (idbObjectStore, ~value: JSON.t, ~key: idbValidKey=?) => idbRequest<idbValidKey> =
30
+ "add"
31
+
32
+ /**
33
+ Deletes records in store with the given key or in the given key range in query.
34
+
35
+ If successful, request's result will be undefined.
36
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/delete)
37
+ */
38
+ @send
39
+ external delete: (idbObjectStore, any) => idbRequest<unit> = "delete"
40
+
41
+ /**
42
+ Deletes all records in store.
43
+
44
+ If successful, request's result will be undefined.
45
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/clear)
46
+ */
47
+ @send
48
+ external clear: idbObjectStore => idbRequest<unit> = "clear"
49
+
50
+ /**
51
+ Retrieves the value of the first record matching the given key or key range in query.
52
+
53
+ If successful, request's result will be the value, or undefined if there was no matching record.
54
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/get)
55
+ */
56
+ @send
57
+ external get: (idbObjectStore, any) => idbRequest<JSON.t> = "get"
58
+
59
+ /**
60
+ Retrieves the key of the first record matching the given key or key range in query.
61
+
62
+ If successful, request's result will be the key, or undefined if there was no matching record.
63
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getKey)
64
+ */
65
+ @send
66
+ external getKey: (idbObjectStore, any) => idbRequest<any> = "getKey"
67
+
68
+ /**
69
+ Retrieves the values of the records matching the given key or key range in query (up to count if given).
70
+
71
+ If successful, request's result will be an Array of the values.
72
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAll)
73
+ */
74
+ @send
75
+ external getAll: (idbObjectStore, ~query: any=?, ~count: int=?) => idbRequest<array<JSON.t>> =
76
+ "getAll"
77
+
78
+ /**
79
+ Retrieves the keys of records matching the given key or key range in query (up to count if given).
80
+
81
+ If successful, request's result will be an Array of the keys.
82
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAllKeys)
83
+ */
84
+ @send
85
+ external getAllKeys: (
86
+ idbObjectStore,
87
+ ~query: any=?,
88
+ ~count: int=?,
89
+ ) => idbRequest<array<idbValidKey>> = "getAllKeys"
90
+
91
+ /**
92
+ Retrieves the number of records matching the given key or key range in query.
93
+
94
+ If successful, request's result will be the count.
95
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/count)
96
+ */
97
+ @send
98
+ external count: (idbObjectStore, ~query: any=?) => idbRequest<int> = "count"
99
+
100
+ /**
101
+ Opens a cursor over the records matching query, ordered by direction. If query is null, all records in store are matched.
102
+
103
+ If successful, request's result will be an IDBCursorWithValue pointing at the first matching record, or null if there were no matching records.
104
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openCursor)
105
+ */
106
+ @send
107
+ external openCursor: (
108
+ idbObjectStore,
109
+ ~query: any=?,
110
+ ~direction: idbCursorDirection=?,
111
+ ) => idbRequest<any> = "openCursor"
112
+
113
+ /**
114
+ Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in store are matched.
115
+
116
+ If successful, request's result will be an IDBCursor pointing at the first matching record, or null if there were no matching records.
117
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openKeyCursor)
118
+ */
119
+ @send
120
+ external openKeyCursor: (
121
+ idbObjectStore,
122
+ ~query: any=?,
123
+ ~direction: idbCursorDirection=?,
124
+ ) => idbRequest<any> = "openKeyCursor"
125
+
126
+ /**
127
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/index)
128
+ */
129
+ @send
130
+ external index: (idbObjectStore, string) => idbIndex = "index"
131
+
132
+ /**
133
+ Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a "ConstraintError" DOMException.
134
+
135
+ Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.
136
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex)
137
+ */
138
+ @send
139
+ external createIndex: (
140
+ idbObjectStore,
141
+ ~name: string,
142
+ ~keyPath: string,
143
+ ~options: idbIndexParameters=?,
144
+ ) => idbIndex = "createIndex"
145
+
146
+ /**
147
+ Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a "ConstraintError" DOMException.
148
+
149
+ Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.
150
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex)
151
+ */
152
+ @send
153
+ external createIndex2: (
154
+ idbObjectStore,
155
+ ~name: string,
156
+ ~keyPath: array<string>,
157
+ ~options: idbIndexParameters=?,
158
+ ) => idbIndex = "createIndex"
159
+
160
+ /**
161
+ Deletes the index in store with the given name.
162
+
163
+ Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.
164
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/deleteIndex)
165
+ */
166
+ @send
167
+ external deleteIndex: (idbObjectStore, string) => unit = "deleteIndex"
@@ -0,0 +1,102 @@
1
+ open EventAPI
2
+ open IndexedDBAPI
3
+
4
+ external asEventTarget: idbTransaction => 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
+ idbTransaction,
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
+ idbTransaction,
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
+ idbTransaction,
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
+ idbTransaction,
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: (idbTransaction, event) => bool = "dispatchEvent"
83
+
84
+ /**
85
+ Returns an IDBObjectStore in the transaction's scope.
86
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStore)
87
+ */
88
+ @send
89
+ external objectStore: (idbTransaction, string) => idbObjectStore = "objectStore"
90
+
91
+ /**
92
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBTransaction/commit)
93
+ */
94
+ @send
95
+ external commit: idbTransaction => unit = "commit"
96
+
97
+ /**
98
+ Aborts the transaction. All pending requests will fail with a "AbortError" DOMException and all changes made to the database will be reverted.
99
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort)
100
+ */
101
+ @send
102
+ external abort: idbTransaction => unit = "abort"
@@ -0,0 +1,205 @@
1
+ @@warning("-30")
2
+
3
+ open Prelude
4
+ open EventAPI
5
+
6
+ type idbTransactionMode =
7
+ | @as("readonly") Readonly
8
+ | @as("readwrite") Readwrite
9
+ | @as("versionchange") Versionchange
10
+
11
+ type idbTransactionDurability =
12
+ | @as("default") Default
13
+ | @as("relaxed") Relaxed
14
+ | @as("strict") Strict
15
+
16
+ type idbRequestReadyState =
17
+ | @as("done") Done
18
+ | @as("pending") Pending
19
+
20
+ type idbCursorDirection =
21
+ | @as("next") Next
22
+ | @as("nextunique") Nextunique
23
+ | @as("prev") Prev
24
+ | @as("prevunique") Prevunique
25
+
26
+ /**
27
+ In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (view example live.)
28
+ [See IDBFactory on MDN](https://developer.mozilla.org/docs/Web/API/IDBFactory)
29
+ */
30
+ type idbFactory = {}
31
+
32
+ /**
33
+ This IndexedDB API interface provides a connection to a database; you can use an IDBDatabase object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database.
34
+ [See IDBDatabase on MDN](https://developer.mozilla.org/docs/Web/API/IDBDatabase)
35
+ */
36
+ type idbDatabase = {
37
+ ...eventTarget,
38
+ /**
39
+ Returns the name of the database.
40
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBDatabase/name)
41
+ */
42
+ name: string,
43
+ /**
44
+ Returns the version of the database.
45
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBDatabase/version)
46
+ */
47
+ version: int,
48
+ /**
49
+ Returns a list of the names of object stores in the database.
50
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBDatabase/objectStoreNames)
51
+ */
52
+ objectStoreNames: domStringList,
53
+ }
54
+
55
+ /**
56
+ [See IDBTransaction on MDN](https://developer.mozilla.org/docs/Web/API/IDBTransaction)
57
+ */
58
+ type idbTransaction = {
59
+ ...eventTarget,
60
+ /**
61
+ Returns a list of the names of object stores in the transaction's scope. For an upgrade transaction this is all object stores in the database.
62
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStoreNames)
63
+ */
64
+ objectStoreNames: domStringList,
65
+ /**
66
+ Returns the mode the transaction was created with ("readonly" or "readwrite"), or "versionchange" for an upgrade transaction.
67
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBTransaction/mode)
68
+ */
69
+ mode: idbTransactionMode,
70
+ /**
71
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBTransaction/durability)
72
+ */
73
+ durability: idbTransactionDurability,
74
+ /**
75
+ Returns the transaction's connection.
76
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBTransaction/db)
77
+ */
78
+ db: idbDatabase,
79
+ /**
80
+ If the transaction was aborted, returns the error (a DOMException) providing the reason.
81
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error)
82
+ */
83
+ error: Null.t<domException>,
84
+ }
85
+
86
+ /**
87
+ The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance.
88
+ [See IDBRequest on MDN](https://developer.mozilla.org/docs/Web/API/IDBRequest)
89
+ */
90
+ type idbRequest<'t> = {
91
+ ...eventTarget,
92
+ /**
93
+ When a request is completed, returns the result, or undefined if the request failed. Throws a "InvalidStateError" DOMException if the request is still pending.
94
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBRequest/result)
95
+ */
96
+ result: 't,
97
+ /**
98
+ When a request is completed, returns the error (a DOMException), or null if the request succeeded. Throws a "InvalidStateError" DOMException if the request is still pending.
99
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBRequest/error)
100
+ */
101
+ error: Null.t<domException>,
102
+ /**
103
+ Returns the IDBObjectStore, IDBIndex, or IDBCursor the request was made against, or null if is was an open request.
104
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBRequest/source)
105
+ */
106
+ source: unknown,
107
+ /**
108
+ Returns the IDBTransaction the request was made within. If this as an open request, then it returns an upgrade transaction while it is running, or null otherwise.
109
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBRequest/transaction)
110
+ */
111
+ transaction: Null.t<idbTransaction>,
112
+ /**
113
+ Returns "pending" until a request is complete, then returns "done".
114
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBRequest/readyState)
115
+ */
116
+ readyState: idbRequestReadyState,
117
+ }
118
+
119
+ /**
120
+ Also inherits methods from its parents IDBRequest and EventTarget.
121
+ [See IDBOpenDBRequest on MDN](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest)
122
+ */
123
+ type idbOpenDBRequest = {
124
+ ...idbRequest<idbDatabase>,
125
+ }
126
+
127
+ /**
128
+ This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add. For a full working example, see our To-do Notifications app (view example live.)
129
+ [See IDBObjectStore on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore)
130
+ */
131
+ type idbObjectStore = {
132
+ /**
133
+ Returns the name of the store.
134
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/name)
135
+ */
136
+ mutable name: string,
137
+ /**
138
+ Returns the key path of the store, or null if none.
139
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/keyPath)
140
+ */
141
+ keyPath: string,
142
+ /**
143
+ Returns a list of the names of indexes in the store.
144
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/indexNames)
145
+ */
146
+ indexNames: domStringList,
147
+ /**
148
+ Returns the associated transaction.
149
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/transaction)
150
+ */
151
+ transaction: idbTransaction,
152
+ /**
153
+ Returns true if the store has a key generator, and false otherwise.
154
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/autoIncrement)
155
+ */
156
+ autoIncrement: bool,
157
+ }
158
+
159
+ /**
160
+ IDBIndex interface of the IndexedDB API provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data.
161
+ [See IDBIndex on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex)
162
+ */
163
+ type idbIndex = {
164
+ /**
165
+ Returns the name of the index.
166
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/name)
167
+ */
168
+ mutable name: string,
169
+ /**
170
+ Returns the IDBObjectStore the index belongs to.
171
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/objectStore)
172
+ */
173
+ objectStore: idbObjectStore,
174
+ /**
175
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/keyPath)
176
+ */
177
+ keyPath: string,
178
+ /**
179
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/multiEntry)
180
+ */
181
+ multiEntry: bool,
182
+ /**
183
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/IDBIndex/unique)
184
+ */
185
+ unique: bool,
186
+ }
187
+
188
+ type idbValidKey = any
189
+
190
+ type idbDatabaseInfo = {
191
+ mutable name?: string,
192
+ mutable version?: int,
193
+ }
194
+
195
+ type idbTransactionOptions = {mutable durability?: idbTransactionDurability}
196
+
197
+ type idbObjectStoreParameters = {
198
+ mutable keyPath?: Null.t<unknown>,
199
+ mutable autoIncrement?: bool,
200
+ }
201
+
202
+ type idbIndexParameters = {
203
+ mutable unique?: bool,
204
+ mutable multiEntry?: bool,
205
+ }
@@ -0,0 +1,19 @@
1
+ open MediaCapabilitiesAPI
2
+
3
+ /**
4
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/decodingInfo)
5
+ */
6
+ @send
7
+ external decodingInfo: (
8
+ mediaCapabilities,
9
+ mediaDecodingConfiguration,
10
+ ) => Promise.t<mediaCapabilitiesDecodingInfo> = "decodingInfo"
11
+
12
+ /**
13
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/encodingInfo)
14
+ */
15
+ @send
16
+ external encodingInfo: (
17
+ mediaCapabilities,
18
+ mediaEncodingConfiguration,
19
+ ) => Promise.t<mediaCapabilitiesEncodingInfo> = "encodingInfo"
@@ -0,0 +1,81 @@
1
+ @@warning("-30")
2
+ type hdrMetadataType =
3
+ | @as("smpteSt2086") SmpteSt2086
4
+ | @as("smpteSt2094-10") SmpteSt209410
5
+ | @as("smpteSt2094-40") SmpteSt209440
6
+
7
+ type colorGamut =
8
+ | @as("p3") P3
9
+ | @as("rec2020") Rec2020
10
+ | @as("srgb") Srgb
11
+
12
+ type transferFunction =
13
+ | @as("hlg") Hlg
14
+ | @as("pq") Pq
15
+ | @as("srgb") Srgb
16
+
17
+ type mediaDecodingType =
18
+ | @as("file") File
19
+ | @as("media-source") MediaSource
20
+ | @as("webrtc") Webrtc
21
+
22
+ type mediaEncodingType =
23
+ | @as("record") Record
24
+ | @as("webrtc") Webrtc
25
+
26
+ /**
27
+ [See MediaCapabilities on MDN](https://developer.mozilla.org/docs/Web/API/MediaCapabilities)
28
+ */
29
+ type mediaCapabilities = {}
30
+
31
+ type audioConfiguration = {
32
+ mutable contentType: string,
33
+ mutable channels?: string,
34
+ mutable bitrate?: int,
35
+ mutable samplerate?: int,
36
+ mutable spatialRendering?: bool,
37
+ }
38
+
39
+ type videoConfiguration = {
40
+ mutable contentType: string,
41
+ mutable width: int,
42
+ mutable height: int,
43
+ mutable bitrate: int,
44
+ mutable framerate: float,
45
+ mutable hasAlphaChannel?: bool,
46
+ mutable hdrMetadataType?: hdrMetadataType,
47
+ mutable colorGamut?: colorGamut,
48
+ mutable transferFunction?: transferFunction,
49
+ mutable scalabilityMode?: string,
50
+ }
51
+
52
+ type mediaConfiguration = {
53
+ mutable video?: videoConfiguration,
54
+ mutable audio?: audioConfiguration,
55
+ }
56
+
57
+ type mediaDecodingConfiguration = {
58
+ ...mediaConfiguration,
59
+ @as("type") mutable type_: mediaDecodingType,
60
+ }
61
+
62
+ type mediaCapabilitiesInfo = {
63
+ mutable supported: bool,
64
+ mutable smooth: bool,
65
+ mutable powerEfficient: bool,
66
+ }
67
+
68
+ type mediaCapabilitiesDecodingInfo = {
69
+ ...mediaCapabilitiesInfo,
70
+ mutable configuration?: mediaDecodingConfiguration,
71
+ }
72
+
73
+ type mediaEncodingConfiguration = {
74
+ ...mediaConfiguration,
75
+ @as("type") mutable type_: mediaEncodingType,
76
+ }
77
+
78
+ type mediaCapabilitiesEncodingInfo = {
79
+ ...mediaCapabilitiesInfo,
80
+ mutable configuration?: mediaEncodingConfiguration,
81
+ }
@@ -0,0 +1,7 @@
1
+ open MediaCaptureAndStreamsAPI
2
+
3
+ /**
4
+ [Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/toJSON)
5
+ */
6
+ @send
7
+ external toJSON: mediaDeviceInfo => Dict.t<string> = "toJSON"