From 7a83011baf09b7e8e1f6bd135cc07772c160e8c9 Mon Sep 17 00:00:00 2001 From: Josh Vlk Date: Mon, 3 Aug 2026 16:52:34 -0400 Subject: [PATCH] refactor: establish Media folder feature --- rescript.json | 98 +++++-------------- .../BaseEncryptedMediaExtensions.res | 0 src/{DOM => media}/DomHTMLMediaElement.res | 0 ...cryptedMediaExtensionsHTMLMediaElement.res | 0 .../EncryptedMediaExtensionsTypes.res | 0 src/{DOM => media}/HTMLAudioElement.res | 0 src/{DOM => media}/HTMLTrackElement.res | 0 src/{DOM => media}/HTMLVideoElement.res | 0 .../MediaCapabilities.res | 0 .../MediaCapabilitiesTypes.res | 0 .../MediaCaptureAndStreamsTypes.res | 0 .../MediaDeviceInfo.res | 0 .../MediaDevices.res | 0 src/{DOM => media}/MediaError.res | 0 .../MediaKeySession.res | 0 .../MediaKeyStatusMap.res | 0 .../MediaKeySystemAccess.res | 0 .../MediaKeys.res | 0 src/{MediaSession => media}/MediaMetadata.res | 0 src/{MediaSession => media}/MediaSession.res | 0 .../MediaSessionTypes.res | 0 .../MediaStream.res | 0 .../MediaStreamTrack.res | 0 .../PictureInPicture.res | 0 .../PictureInPictureTypes.res | 0 .../RemotePlayback.res | 0 .../RemotePlaybackTypes.res | 0 src/{WebSpeech => media}/SpeechSynthesis.res | 0 .../SpeechSynthesisUtterance.res | 0 src/{WebVTT => media}/TextTrack.res | 0 src/{WebVTT => media}/TextTrackCueList.res | 0 src/{DOM => media}/TextTrackList.res | 0 src/{DOM => media}/TimeRanges.res | 0 src/{DOM => media}/VideoPlaybackQuality.res | 0 src/{WebSpeech => media}/WebSpeechTypes.res | 0 src/{WebVTT => media}/WebVttTypes.res | 0 36 files changed, 26 insertions(+), 72 deletions(-) rename src/{core => media}/BaseEncryptedMediaExtensions.res (100%) rename src/{DOM => media}/DomHTMLMediaElement.res (100%) rename src/{EncryptedMediaExtensions => media}/EncryptedMediaExtensionsHTMLMediaElement.res (100%) rename src/{EncryptedMediaExtensions => media}/EncryptedMediaExtensionsTypes.res (100%) rename src/{DOM => media}/HTMLAudioElement.res (100%) rename src/{DOM => media}/HTMLTrackElement.res (100%) rename src/{DOM => media}/HTMLVideoElement.res (100%) rename src/{MediaCapabilities => media}/MediaCapabilities.res (100%) rename src/{MediaCapabilities => media}/MediaCapabilitiesTypes.res (100%) rename src/{MediaCaptureAndStreams => media}/MediaCaptureAndStreamsTypes.res (100%) rename src/{MediaCaptureAndStreams => media}/MediaDeviceInfo.res (100%) rename src/{MediaCaptureAndStreams => media}/MediaDevices.res (100%) rename src/{DOM => media}/MediaError.res (100%) rename src/{EncryptedMediaExtensions => media}/MediaKeySession.res (100%) rename src/{EncryptedMediaExtensions => media}/MediaKeyStatusMap.res (100%) rename src/{EncryptedMediaExtensions => media}/MediaKeySystemAccess.res (100%) rename src/{EncryptedMediaExtensions => media}/MediaKeys.res (100%) rename src/{MediaSession => media}/MediaMetadata.res (100%) rename src/{MediaSession => media}/MediaSession.res (100%) rename src/{MediaSession => media}/MediaSessionTypes.res (100%) rename src/{MediaCaptureAndStreams => media}/MediaStream.res (100%) rename src/{MediaCaptureAndStreams => media}/MediaStreamTrack.res (100%) rename src/{PictureInPicture => media}/PictureInPicture.res (100%) rename src/{PictureInPicture => media}/PictureInPictureTypes.res (100%) rename src/{RemotePlayback => media}/RemotePlayback.res (100%) rename src/{RemotePlayback => media}/RemotePlaybackTypes.res (100%) rename src/{WebSpeech => media}/SpeechSynthesis.res (100%) rename src/{WebSpeech => media}/SpeechSynthesisUtterance.res (100%) rename src/{WebVTT => media}/TextTrack.res (100%) rename src/{WebVTT => media}/TextTrackCueList.res (100%) rename src/{DOM => media}/TextTrackList.res (100%) rename src/{DOM => media}/TimeRanges.res (100%) rename src/{DOM => media}/VideoPlaybackQuality.res (100%) rename src/{WebSpeech => media}/WebSpeechTypes.res (100%) rename src/{WebVTT => media}/WebVttTypes.res (100%) diff --git a/rescript.json b/rescript.json index 95a701e2..f1c8c82c 100644 --- a/rescript.json +++ b/rescript.json @@ -16,6 +16,7 @@ "DOMNodes" ], "WebAPI.HTML": ["WebAPI.DOMNodes", "WebAPI.File", "HTML"], + "WebAPI.Media": ["WebAPI.HTML", "Media"], "WebAPI.File": ["WebAPI.Event", "File"], "WebAPI.URL": ["WebAPI.DOM", "URL"], "WebAPI.Fetch": ["WebAPI.Event", "WebAPI.File", "WebAPI.URL", "Fetch"], @@ -254,10 +255,6 @@ "public": [ "CustomElementRegistry", "Document", - "DomHTMLMediaElement", - "HTMLAudioElement", - "HTMLTrackElement", - "HTMLVideoElement", "IdleDeadline", "ImageData", "Location", @@ -266,26 +263,12 @@ "SVGGraphicsElement", "SVGLength", "ScreenOrientation", - "TextTrackList", - "TimeRanges", "VideoColorSpace", "Window", "XPathExpression", "XPathResult" ] }, - { - "dir": "src/EncryptedMediaExtensions", - "subdirs": true, - "feature": "WebAPI.EncryptedMediaExtensions", - "public": [ - "EncryptedMediaExtensionsHTMLMediaElement", - "MediaKeySession", - "MediaKeyStatusMap", - "MediaKeySystemAccess", - "MediaKeys" - ] - }, { "dir": "src/event", "subdirs": true, @@ -378,31 +361,36 @@ ] }, { - "dir": "src/MediaCapabilities", + "dir": "src/media", "subdirs": true, - "feature": "WebAPI.MediaCapabilities", - "public": [ - "MediaCapabilities" - ] - }, - { - "dir": "src/MediaCaptureAndStreams", - "subdirs": true, - "feature": "WebAPI.MediaCaptureAndStreams", + "feature": "Media", "public": [ + "DomHTMLMediaElement", + "EncryptedMediaExtensionsHTMLMediaElement", + "HTMLAudioElement", + "HTMLTrackElement", + "HTMLVideoElement", + "MediaCapabilities", "MediaDeviceInfo", "MediaDevices", - "MediaStream", - "MediaStreamTrack" - ] - }, - { - "dir": "src/MediaSession", - "subdirs": true, - "feature": "WebAPI.MediaSession", - "public": [ + "MediaError", + "MediaKeySession", + "MediaKeyStatusMap", + "MediaKeySystemAccess", + "MediaKeys", "MediaMetadata", - "MediaSession" + "MediaSession", + "MediaStream", + "MediaStreamTrack", + "PictureInPicture", + "RemotePlayback", + "SpeechSynthesis", + "SpeechSynthesisUtterance", + "TextTrack", + "TextTrackCueList", + "TextTrackList", + "TimeRanges", + "VideoPlaybackQuality" ] }, { @@ -431,22 +419,6 @@ "Permissions" ] }, - { - "dir": "src/PictureInPicture", - "subdirs": true, - "feature": "WebAPI.PictureInPicture", - "public": [ - "PictureInPicture" - ] - }, - { - "dir": "src/RemotePlayback", - "subdirs": true, - "feature": "WebAPI.RemotePlayback", - "public": [ - "RemotePlayback" - ] - }, { "dir": "src/ResizeObserver", "subdirs": true, @@ -570,15 +542,6 @@ "SubtleCrypto" ] }, - { - "dir": "src/WebSpeech", - "subdirs": true, - "feature": "WebAPI.WebSpeech", - "public": [ - "SpeechSynthesis", - "SpeechSynthesisUtterance" - ] - }, { "dir": "src/WebStorage", "subdirs": true, @@ -588,15 +551,6 @@ "StorageEvent" ] }, - { - "dir": "src/WebVTT", - "subdirs": true, - "feature": "WebAPI.WebVTT", - "public": [ - "TextTrack", - "TextTrackCueList" - ] - }, { "dir": "src/WebWorkers", "subdirs": true, diff --git a/src/core/BaseEncryptedMediaExtensions.res b/src/media/BaseEncryptedMediaExtensions.res similarity index 100% rename from src/core/BaseEncryptedMediaExtensions.res rename to src/media/BaseEncryptedMediaExtensions.res diff --git a/src/DOM/DomHTMLMediaElement.res b/src/media/DomHTMLMediaElement.res similarity index 100% rename from src/DOM/DomHTMLMediaElement.res rename to src/media/DomHTMLMediaElement.res diff --git a/src/EncryptedMediaExtensions/EncryptedMediaExtensionsHTMLMediaElement.res b/src/media/EncryptedMediaExtensionsHTMLMediaElement.res similarity index 100% rename from src/EncryptedMediaExtensions/EncryptedMediaExtensionsHTMLMediaElement.res rename to src/media/EncryptedMediaExtensionsHTMLMediaElement.res diff --git a/src/EncryptedMediaExtensions/EncryptedMediaExtensionsTypes.res b/src/media/EncryptedMediaExtensionsTypes.res similarity index 100% rename from src/EncryptedMediaExtensions/EncryptedMediaExtensionsTypes.res rename to src/media/EncryptedMediaExtensionsTypes.res diff --git a/src/DOM/HTMLAudioElement.res b/src/media/HTMLAudioElement.res similarity index 100% rename from src/DOM/HTMLAudioElement.res rename to src/media/HTMLAudioElement.res diff --git a/src/DOM/HTMLTrackElement.res b/src/media/HTMLTrackElement.res similarity index 100% rename from src/DOM/HTMLTrackElement.res rename to src/media/HTMLTrackElement.res diff --git a/src/DOM/HTMLVideoElement.res b/src/media/HTMLVideoElement.res similarity index 100% rename from src/DOM/HTMLVideoElement.res rename to src/media/HTMLVideoElement.res diff --git a/src/MediaCapabilities/MediaCapabilities.res b/src/media/MediaCapabilities.res similarity index 100% rename from src/MediaCapabilities/MediaCapabilities.res rename to src/media/MediaCapabilities.res diff --git a/src/MediaCapabilities/MediaCapabilitiesTypes.res b/src/media/MediaCapabilitiesTypes.res similarity index 100% rename from src/MediaCapabilities/MediaCapabilitiesTypes.res rename to src/media/MediaCapabilitiesTypes.res diff --git a/src/MediaCaptureAndStreams/MediaCaptureAndStreamsTypes.res b/src/media/MediaCaptureAndStreamsTypes.res similarity index 100% rename from src/MediaCaptureAndStreams/MediaCaptureAndStreamsTypes.res rename to src/media/MediaCaptureAndStreamsTypes.res diff --git a/src/MediaCaptureAndStreams/MediaDeviceInfo.res b/src/media/MediaDeviceInfo.res similarity index 100% rename from src/MediaCaptureAndStreams/MediaDeviceInfo.res rename to src/media/MediaDeviceInfo.res diff --git a/src/MediaCaptureAndStreams/MediaDevices.res b/src/media/MediaDevices.res similarity index 100% rename from src/MediaCaptureAndStreams/MediaDevices.res rename to src/media/MediaDevices.res diff --git a/src/DOM/MediaError.res b/src/media/MediaError.res similarity index 100% rename from src/DOM/MediaError.res rename to src/media/MediaError.res diff --git a/src/EncryptedMediaExtensions/MediaKeySession.res b/src/media/MediaKeySession.res similarity index 100% rename from src/EncryptedMediaExtensions/MediaKeySession.res rename to src/media/MediaKeySession.res diff --git a/src/EncryptedMediaExtensions/MediaKeyStatusMap.res b/src/media/MediaKeyStatusMap.res similarity index 100% rename from src/EncryptedMediaExtensions/MediaKeyStatusMap.res rename to src/media/MediaKeyStatusMap.res diff --git a/src/EncryptedMediaExtensions/MediaKeySystemAccess.res b/src/media/MediaKeySystemAccess.res similarity index 100% rename from src/EncryptedMediaExtensions/MediaKeySystemAccess.res rename to src/media/MediaKeySystemAccess.res diff --git a/src/EncryptedMediaExtensions/MediaKeys.res b/src/media/MediaKeys.res similarity index 100% rename from src/EncryptedMediaExtensions/MediaKeys.res rename to src/media/MediaKeys.res diff --git a/src/MediaSession/MediaMetadata.res b/src/media/MediaMetadata.res similarity index 100% rename from src/MediaSession/MediaMetadata.res rename to src/media/MediaMetadata.res diff --git a/src/MediaSession/MediaSession.res b/src/media/MediaSession.res similarity index 100% rename from src/MediaSession/MediaSession.res rename to src/media/MediaSession.res diff --git a/src/MediaSession/MediaSessionTypes.res b/src/media/MediaSessionTypes.res similarity index 100% rename from src/MediaSession/MediaSessionTypes.res rename to src/media/MediaSessionTypes.res diff --git a/src/MediaCaptureAndStreams/MediaStream.res b/src/media/MediaStream.res similarity index 100% rename from src/MediaCaptureAndStreams/MediaStream.res rename to src/media/MediaStream.res diff --git a/src/MediaCaptureAndStreams/MediaStreamTrack.res b/src/media/MediaStreamTrack.res similarity index 100% rename from src/MediaCaptureAndStreams/MediaStreamTrack.res rename to src/media/MediaStreamTrack.res diff --git a/src/PictureInPicture/PictureInPicture.res b/src/media/PictureInPicture.res similarity index 100% rename from src/PictureInPicture/PictureInPicture.res rename to src/media/PictureInPicture.res diff --git a/src/PictureInPicture/PictureInPictureTypes.res b/src/media/PictureInPictureTypes.res similarity index 100% rename from src/PictureInPicture/PictureInPictureTypes.res rename to src/media/PictureInPictureTypes.res diff --git a/src/RemotePlayback/RemotePlayback.res b/src/media/RemotePlayback.res similarity index 100% rename from src/RemotePlayback/RemotePlayback.res rename to src/media/RemotePlayback.res diff --git a/src/RemotePlayback/RemotePlaybackTypes.res b/src/media/RemotePlaybackTypes.res similarity index 100% rename from src/RemotePlayback/RemotePlaybackTypes.res rename to src/media/RemotePlaybackTypes.res diff --git a/src/WebSpeech/SpeechSynthesis.res b/src/media/SpeechSynthesis.res similarity index 100% rename from src/WebSpeech/SpeechSynthesis.res rename to src/media/SpeechSynthesis.res diff --git a/src/WebSpeech/SpeechSynthesisUtterance.res b/src/media/SpeechSynthesisUtterance.res similarity index 100% rename from src/WebSpeech/SpeechSynthesisUtterance.res rename to src/media/SpeechSynthesisUtterance.res diff --git a/src/WebVTT/TextTrack.res b/src/media/TextTrack.res similarity index 100% rename from src/WebVTT/TextTrack.res rename to src/media/TextTrack.res diff --git a/src/WebVTT/TextTrackCueList.res b/src/media/TextTrackCueList.res similarity index 100% rename from src/WebVTT/TextTrackCueList.res rename to src/media/TextTrackCueList.res diff --git a/src/DOM/TextTrackList.res b/src/media/TextTrackList.res similarity index 100% rename from src/DOM/TextTrackList.res rename to src/media/TextTrackList.res diff --git a/src/DOM/TimeRanges.res b/src/media/TimeRanges.res similarity index 100% rename from src/DOM/TimeRanges.res rename to src/media/TimeRanges.res diff --git a/src/DOM/VideoPlaybackQuality.res b/src/media/VideoPlaybackQuality.res similarity index 100% rename from src/DOM/VideoPlaybackQuality.res rename to src/media/VideoPlaybackQuality.res diff --git a/src/WebSpeech/WebSpeechTypes.res b/src/media/WebSpeechTypes.res similarity index 100% rename from src/WebSpeech/WebSpeechTypes.res rename to src/media/WebSpeechTypes.res diff --git a/src/WebVTT/WebVttTypes.res b/src/media/WebVttTypes.res similarity index 100% rename from src/WebVTT/WebVttTypes.res rename to src/media/WebVttTypes.res