@@ -760,6 +760,24 @@ public class BeforeUnloadEvent: Event {
760
760
// XXX: member 'returnValue' is ignored
761
761
}
762
762
763
+ public enum BitrateMode: JSString, JSValueCompatible {
764
+ case constant = "constant"
765
+ case variable = "variable"
766
+
767
+ @inlinable public static func construct(from jsValue: JSValue) -> Self? {
768
+ if let string = jsValue.jsString {
769
+ return Self(rawValue: string)
770
+ }
771
+ return nil
772
+ }
773
+
774
+ @inlinable public init?(string: String) {
775
+ self.init(rawValue: JSString(string))
776
+ }
777
+
778
+ @inlinable public var jsValue: JSValue { rawValue.jsValue }
779
+ }
780
+
763
781
public class Blob: JSBridgedClass {
764
782
@inlinable public class var constructor: JSFunction { JSObject.global[Strings.Blob].function! }
765
783
@@ -813,6 +831,47 @@ public class Blob: JSBridgedClass {
813
831
}
814
832
}
815
833
834
+ public class BlobEvent: Event {
835
+ @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BlobEvent].function! }
836
+
837
+ public required init(unsafelyWrapping jsObject: JSObject) {
838
+ _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data)
839
+ _timecode = ReadonlyAttribute(jsObject: jsObject, name: Strings.timecode)
840
+ super.init(unsafelyWrapping: jsObject)
841
+ }
842
+
843
+ @inlinable public convenience init(type: String, eventInitDict: BlobEventInit) {
844
+ self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict.jsValue]))
845
+ }
846
+
847
+ @ReadonlyAttribute
848
+ public var data: Blob
849
+
850
+ @ReadonlyAttribute
851
+ public var timecode: DOMHighResTimeStamp
852
+ }
853
+
854
+ public class BlobEventInit: BridgedDictionary {
855
+ public convenience init(data: Blob, timecode: DOMHighResTimeStamp) {
856
+ let object = JSObject.global[Strings.Object].function!.new()
857
+ object[Strings.data] = data.jsValue
858
+ object[Strings.timecode] = timecode.jsValue
859
+ self.init(unsafelyWrapping: object)
860
+ }
861
+
862
+ public required init(unsafelyWrapping object: JSObject) {
863
+ _data = ReadWriteAttribute(jsObject: object, name: Strings.data)
864
+ _timecode = ReadWriteAttribute(jsObject: object, name: Strings.timecode)
865
+ super.init(unsafelyWrapping: object)
866
+ }
867
+
868
+ @ReadWriteAttribute
869
+ public var data: Blob
870
+
871
+ @ReadWriteAttribute
872
+ public var timecode: DOMHighResTimeStamp
873
+ }
874
+
816
875
public class BlobPropertyBag: BridgedDictionary {
817
876
public convenience init(type: String, endings: EndingType) {
818
877
let object = JSObject.global[Strings.Object].function!.new()
@@ -9918,6 +9977,164 @@ public class MediaError: JSBridgedClass {
9918
9977
public var message: String
9919
9978
}
9920
9979
9980
+ public class MediaRecorder: EventTarget {
9981
+ @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaRecorder].function! }
9982
+
9983
+ public required init(unsafelyWrapping jsObject: JSObject) {
9984
+ _stream = ReadonlyAttribute(jsObject: jsObject, name: Strings.stream)
9985
+ _mimeType = ReadonlyAttribute(jsObject: jsObject, name: Strings.mimeType)
9986
+ _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state)
9987
+ _onstart = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onstart)
9988
+ _onstop = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onstop)
9989
+ _ondataavailable = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ondataavailable)
9990
+ _onpause = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onpause)
9991
+ _onresume = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onresume)
9992
+ _onerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onerror)
9993
+ _videoBitsPerSecond = ReadonlyAttribute(jsObject: jsObject, name: Strings.videoBitsPerSecond)
9994
+ _audioBitsPerSecond = ReadonlyAttribute(jsObject: jsObject, name: Strings.audioBitsPerSecond)
9995
+ _audioBitrateMode = ReadonlyAttribute(jsObject: jsObject, name: Strings.audioBitrateMode)
9996
+ super.init(unsafelyWrapping: jsObject)
9997
+ }
9998
+
9999
+ @inlinable public convenience init(stream: MediaStream, options: MediaRecorderOptions? = nil) {
10000
+ self.init(unsafelyWrapping: Self.constructor.new(arguments: [stream.jsValue, options?.jsValue ?? .undefined]))
10001
+ }
10002
+
10003
+ @ReadonlyAttribute
10004
+ public var stream: MediaStream
10005
+
10006
+ @ReadonlyAttribute
10007
+ public var mimeType: String
10008
+
10009
+ @ReadonlyAttribute
10010
+ public var state: RecordingState
10011
+
10012
+ @ClosureAttribute1Optional
10013
+ public var onstart: EventHandler
10014
+
10015
+ @ClosureAttribute1Optional
10016
+ public var onstop: EventHandler
10017
+
10018
+ @ClosureAttribute1Optional
10019
+ public var ondataavailable: EventHandler
10020
+
10021
+ @ClosureAttribute1Optional
10022
+ public var onpause: EventHandler
10023
+
10024
+ @ClosureAttribute1Optional
10025
+ public var onresume: EventHandler
10026
+
10027
+ @ClosureAttribute1Optional
10028
+ public var onerror: EventHandler
10029
+
10030
+ @ReadonlyAttribute
10031
+ public var videoBitsPerSecond: UInt32
10032
+
10033
+ @ReadonlyAttribute
10034
+ public var audioBitsPerSecond: UInt32
10035
+
10036
+ @ReadonlyAttribute
10037
+ public var audioBitrateMode: BitrateMode
10038
+
10039
+ @inlinable public func start(timeslice: UInt32? = nil) {
10040
+ let this = jsObject
10041
+ _ = this[Strings.start].function!(this: this, arguments: [timeslice?.jsValue ?? .undefined])
10042
+ }
10043
+
10044
+ @inlinable public func stop() {
10045
+ let this = jsObject
10046
+ _ = this[Strings.stop].function!(this: this, arguments: [])
10047
+ }
10048
+
10049
+ @inlinable public func pause() {
10050
+ let this = jsObject
10051
+ _ = this[Strings.pause].function!(this: this, arguments: [])
10052
+ }
10053
+
10054
+ @inlinable public func resume() {
10055
+ let this = jsObject
10056
+ _ = this[Strings.resume].function!(this: this, arguments: [])
10057
+ }
10058
+
10059
+ @inlinable public func requestData() {
10060
+ let this = jsObject
10061
+ _ = this[Strings.requestData].function!(this: this, arguments: [])
10062
+ }
10063
+
10064
+ @inlinable public static func isTypeSupported(type: String) -> Bool {
10065
+ let this = constructor
10066
+ return this[Strings.isTypeSupported].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
10067
+ }
10068
+ }
10069
+
10070
+ public class MediaRecorderErrorEvent: Event {
10071
+ @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaRecorderErrorEvent].function! }
10072
+
10073
+ public required init(unsafelyWrapping jsObject: JSObject) {
10074
+ _error = ReadonlyAttribute(jsObject: jsObject, name: Strings.error)
10075
+ super.init(unsafelyWrapping: jsObject)
10076
+ }
10077
+
10078
+ @inlinable public convenience init(type: String, eventInitDict: MediaRecorderErrorEventInit) {
10079
+ self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict.jsValue]))
10080
+ }
10081
+
10082
+ @ReadonlyAttribute
10083
+ public var error: DOMException
10084
+ }
10085
+
10086
+ public class MediaRecorderErrorEventInit: BridgedDictionary {
10087
+ public convenience init(error: DOMException) {
10088
+ let object = JSObject.global[Strings.Object].function!.new()
10089
+ object[Strings.error] = error.jsValue
10090
+ self.init(unsafelyWrapping: object)
10091
+ }
10092
+
10093
+ public required init(unsafelyWrapping object: JSObject) {
10094
+ _error = ReadWriteAttribute(jsObject: object, name: Strings.error)
10095
+ super.init(unsafelyWrapping: object)
10096
+ }
10097
+
10098
+ @ReadWriteAttribute
10099
+ public var error: DOMException
10100
+ }
10101
+
10102
+ public class MediaRecorderOptions: BridgedDictionary {
10103
+ public convenience init(mimeType: String, audioBitsPerSecond: UInt32, videoBitsPerSecond: UInt32, bitsPerSecond: UInt32, audioBitrateMode: BitrateMode) {
10104
+ let object = JSObject.global[Strings.Object].function!.new()
10105
+ object[Strings.mimeType] = mimeType.jsValue
10106
+ object[Strings.audioBitsPerSecond] = audioBitsPerSecond.jsValue
10107
+ object[Strings.videoBitsPerSecond] = videoBitsPerSecond.jsValue
10108
+ object[Strings.bitsPerSecond] = bitsPerSecond.jsValue
10109
+ object[Strings.audioBitrateMode] = audioBitrateMode.jsValue
10110
+ self.init(unsafelyWrapping: object)
10111
+ }
10112
+
10113
+ public required init(unsafelyWrapping object: JSObject) {
10114
+ _mimeType = ReadWriteAttribute(jsObject: object, name: Strings.mimeType)
10115
+ _audioBitsPerSecond = ReadWriteAttribute(jsObject: object, name: Strings.audioBitsPerSecond)
10116
+ _videoBitsPerSecond = ReadWriteAttribute(jsObject: object, name: Strings.videoBitsPerSecond)
10117
+ _bitsPerSecond = ReadWriteAttribute(jsObject: object, name: Strings.bitsPerSecond)
10118
+ _audioBitrateMode = ReadWriteAttribute(jsObject: object, name: Strings.audioBitrateMode)
10119
+ super.init(unsafelyWrapping: object)
10120
+ }
10121
+
10122
+ @ReadWriteAttribute
10123
+ public var mimeType: String
10124
+
10125
+ @ReadWriteAttribute
10126
+ public var audioBitsPerSecond: UInt32
10127
+
10128
+ @ReadWriteAttribute
10129
+ public var videoBitsPerSecond: UInt32
10130
+
10131
+ @ReadWriteAttribute
10132
+ public var bitsPerSecond: UInt32
10133
+
10134
+ @ReadWriteAttribute
10135
+ public var audioBitrateMode: BitrateMode
10136
+ }
10137
+
9921
10138
public class MediaStream: EventTarget {
9922
10139
@inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaStream].function! }
9923
10140
@@ -12529,6 +12746,25 @@ public class ReadableWritablePair: BridgedDictionary {
12529
12746
public var writable: WritableStream
12530
12747
}
12531
12748
12749
+ public enum RecordingState: JSString, JSValueCompatible {
12750
+ case inactive = "inactive"
12751
+ case recording = "recording"
12752
+ case paused = "paused"
12753
+
12754
+ @inlinable public static func construct(from jsValue: JSValue) -> Self? {
12755
+ if let string = jsValue.jsString {
12756
+ return Self(rawValue: string)
12757
+ }
12758
+ return nil
12759
+ }
12760
+
12761
+ @inlinable public init?(string: String) {
12762
+ self.init(rawValue: JSString(string))
12763
+ }
12764
+
12765
+ @inlinable public var jsValue: JSValue { rawValue.jsValue }
12766
+ }
12767
+
12532
12768
public enum ReferrerPolicy: JSString, JSValueCompatible {
12533
12769
case _empty = ""
12534
12770
case noReferrer = "no-referrer"
@@ -16206,6 +16442,7 @@ public enum console {
16206
16442
@usableFromInline static let BarProp: JSString = "BarProp"
16207
16443
@usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
16208
16444
@usableFromInline static let Blob: JSString = "Blob"
16445
+ @usableFromInline static let BlobEvent: JSString = "BlobEvent"
16209
16446
@usableFromInline static let BroadcastChannel: JSString = "BroadcastChannel"
16210
16447
@usableFromInline static let ByteLengthQueuingStrategy: JSString = "ByteLengthQueuingStrategy"
16211
16448
@usableFromInline static let CDATASection: JSString = "CDATASection"
@@ -16346,6 +16583,8 @@ public enum console {
16346
16583
@usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo"
16347
16584
@usableFromInline static let MediaDevices: JSString = "MediaDevices"
16348
16585
@usableFromInline static let MediaError: JSString = "MediaError"
16586
+ @usableFromInline static let MediaRecorder: JSString = "MediaRecorder"
16587
+ @usableFromInline static let MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
16349
16588
@usableFromInline static let MediaStream: JSString = "MediaStream"
16350
16589
@usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
16351
16590
@usableFromInline static let MediaStreamTrackEvent: JSString = "MediaStreamTrackEvent"
@@ -16542,6 +16781,8 @@ public enum console {
16542
16781
@usableFromInline static let attributeOldValue: JSString = "attributeOldValue"
16543
16782
@usableFromInline static let attributes: JSString = "attributes"
16544
16783
@usableFromInline static let audio: JSString = "audio"
16784
+ @usableFromInline static let audioBitrateMode: JSString = "audioBitrateMode"
16785
+ @usableFromInline static let audioBitsPerSecond: JSString = "audioBitsPerSecond"
16545
16786
@usableFromInline static let audioTracks: JSString = "audioTracks"
16546
16787
@usableFromInline static let autoAllocateChunkSize: JSString = "autoAllocateChunkSize"
16547
16788
@usableFromInline static let autoGainControl: JSString = "autoGainControl"
@@ -16560,6 +16801,7 @@ public enum console {
16560
16801
@usableFromInline static let behavior: JSString = "behavior"
16561
16802
@usableFromInline static let bezierCurveTo: JSString = "bezierCurveTo"
16562
16803
@usableFromInline static let bgColor: JSString = "bgColor"
16804
+ @usableFromInline static let bitsPerSecond: JSString = "bitsPerSecond"
16563
16805
@usableFromInline static let blob: JSString = "blob"
16564
16806
@usableFromInline static let blocking: JSString = "blocking"
16565
16807
@usableFromInline static let blur: JSString = "blur"
@@ -16996,6 +17238,7 @@ public enum console {
16996
17238
@usableFromInline static let isSameNode: JSString = "isSameNode"
16997
17239
@usableFromInline static let isSecureContext: JSString = "isSecureContext"
16998
17240
@usableFromInline static let isTrusted: JSString = "isTrusted"
17241
+ @usableFromInline static let isTypeSupported: JSString = "isTypeSupported"
16999
17242
@usableFromInline static let item: JSString = "item"
17000
17243
@usableFromInline static let items: JSString = "items"
17001
17244
@usableFromInline static let iterateNext: JSString = "iterateNext"
@@ -17078,6 +17321,7 @@ public enum console {
17078
17321
@usableFromInline static let message: JSString = "message"
17079
17322
@usableFromInline static let metaKey: JSString = "metaKey"
17080
17323
@usableFromInline static let method: JSString = "method"
17324
+ @usableFromInline static let mimeType: JSString = "mimeType"
17081
17325
@usableFromInline static let mimeTypes: JSString = "mimeTypes"
17082
17326
@usableFromInline static let min: JSString = "min"
17083
17327
@usableFromInline static let minLength: JSString = "minLength"
@@ -17152,6 +17396,7 @@ public enum console {
17152
17396
@usableFromInline static let oncopy: JSString = "oncopy"
17153
17397
@usableFromInline static let oncuechange: JSString = "oncuechange"
17154
17398
@usableFromInline static let oncut: JSString = "oncut"
17399
+ @usableFromInline static let ondataavailable: JSString = "ondataavailable"
17155
17400
@usableFromInline static let ondblclick: JSString = "ondblclick"
17156
17401
@usableFromInline static let ondevicechange: JSString = "ondevicechange"
17157
17402
@usableFromInline static let ondrag: JSString = "ondrag"
@@ -17210,14 +17455,17 @@ public enum console {
17210
17455
@usableFromInline static let onremovetrack: JSString = "onremovetrack"
17211
17456
@usableFromInline static let onreset: JSString = "onreset"
17212
17457
@usableFromInline static let onresize: JSString = "onresize"
17458
+ @usableFromInline static let onresume: JSString = "onresume"
17213
17459
@usableFromInline static let onscroll: JSString = "onscroll"
17214
17460
@usableFromInline static let onsecuritypolicyviolation: JSString = "onsecuritypolicyviolation"
17215
17461
@usableFromInline static let onseeked: JSString = "onseeked"
17216
17462
@usableFromInline static let onseeking: JSString = "onseeking"
17217
17463
@usableFromInline static let onselect: JSString = "onselect"
17218
17464
@usableFromInline static let onslotchange: JSString = "onslotchange"
17219
17465
@usableFromInline static let onstalled: JSString = "onstalled"
17466
+ @usableFromInline static let onstart: JSString = "onstart"
17220
17467
@usableFromInline static let onstatechange: JSString = "onstatechange"
17468
+ @usableFromInline static let onstop: JSString = "onstop"
17221
17469
@usableFromInline static let onstorage: JSString = "onstorage"
17222
17470
@usableFromInline static let onsubmit: JSString = "onsubmit"
17223
17471
@usableFromInline static let onsuspend: JSString = "onsuspend"
@@ -17380,6 +17628,7 @@ public enum console {
17380
17628
@usableFromInline static let reportError: JSString = "reportError"
17381
17629
@usableFromInline static let reportValidity: JSString = "reportValidity"
17382
17630
@usableFromInline static let request: JSString = "request"
17631
+ @usableFromInline static let requestData: JSString = "requestData"
17383
17632
@usableFromInline static let requestSubmit: JSString = "requestSubmit"
17384
17633
@usableFromInline static let required: JSString = "required"
17385
17634
@usableFromInline static let reset: JSString = "reset"
@@ -17399,6 +17648,7 @@ public enum console {
17399
17648
@usableFromInline static let result: JSString = "result"
17400
17649
@usableFromInline static let resultType: JSString = "resultType"
17401
17650
@usableFromInline static let resultingClientId: JSString = "resultingClientId"
17651
+ @usableFromInline static let resume: JSString = "resume"
17402
17652
@usableFromInline static let returnValue: JSString = "returnValue"
17403
17653
@usableFromInline static let rev: JSString = "rev"
17404
17654
@usableFromInline static let reverse: JSString = "reverse"
@@ -17537,6 +17787,7 @@ public enum console {
17537
17787
@usableFromInline static let stopImmediatePropagation: JSString = "stopImmediatePropagation"
17538
17788
@usableFromInline static let stopPropagation: JSString = "stopPropagation"
17539
17789
@usableFromInline static let storageArea: JSString = "storageArea"
17790
+ @usableFromInline static let stream: JSString = "stream"
17540
17791
@usableFromInline static let stringValue: JSString = "stringValue"
17541
17792
@usableFromInline static let stroke: JSString = "stroke"
17542
17793
@usableFromInline static let strokeRect: JSString = "strokeRect"
@@ -17577,6 +17828,7 @@ public enum console {
17577
17828
@usableFromInline static let timeLog: JSString = "timeLog"
17578
17829
@usableFromInline static let timeOrigin: JSString = "timeOrigin"
17579
17830
@usableFromInline static let timeStamp: JSString = "timeStamp"
17831
+ @usableFromInline static let timecode: JSString = "timecode"
17580
17832
@usableFromInline static let timeline: JSString = "timeline"
17581
17833
@usableFromInline static let timeout: JSString = "timeout"
17582
17834
@usableFromInline static let title: JSString = "title"
@@ -17634,6 +17886,7 @@ public enum console {
17634
17886
@usableFromInline static let vendorSub: JSString = "vendorSub"
17635
17887
@usableFromInline static let version: JSString = "version"
17636
17888
@usableFromInline static let video: JSString = "video"
17889
+ @usableFromInline static let videoBitsPerSecond: JSString = "videoBitsPerSecond"
17637
17890
@usableFromInline static let videoHeight: JSString = "videoHeight"
17638
17891
@usableFromInline static let videoTracks: JSString = "videoTracks"
17639
17892
@usableFromInline static let videoWidth: JSString = "videoWidth"
0 commit comments