Skip to content

Add move and split redirects to the schema #3000

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 27 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
9846b90
Demonstrate JSON Schema as source of truth
ddbeck May 20, 2025
1012068
Replace types with newly generated types
ddbeck May 26, 2025
77bf8f9
Add new types to web-features package build
ddbeck May 26, 2025
7742c64
Format types.ts
ddbeck May 27, 2025
7f7aa98
Fix schema key sort order
ddbeck May 26, 2025
459ac43
Add redirect feature schema types
ddbeck May 27, 2025
758e77a
Update scripts to use redirects
ddbeck May 27, 2025
2294698
Split webcodecs
ddbeck May 27, 2025
eaf208d
Rename `numeric-seperators`
ddbeck May 27, 2025
dc4974b
Prevent double and circular redirects
ddbeck May 27, 2025
95bf898
Merge branch 'main' into 91-jsonschema-source-of-truth
ddbeck Jun 10, 2025
b2b6762
Add unintentionally missing required fields
ddbeck Jun 10, 2025
dd23730
Add more property constraints to reduce any in TS
ddbeck Jun 10, 2025
a8b6ba1
Merge branch 'main' into 91-jsonschema-source-of-truth
ddbeck Jun 30, 2025
6e383ff
Drop tsup and export our types directly
ddbeck Jun 30, 2025
036bdaf
Merge branch '91-jsonschema-source-of-truth' into 91-redirects
ddbeck Jun 30, 2025
cf6fad8
Merge branch 'main' into 91-jsonschema-source-of-truth
ddbeck Jul 16, 2025
0d54e06
Fix bad Quicktype command parsing
ddbeck Jul 16, 2025
c01bba1
Merge branch '91-jsonschema-source-of-truth' into 91-redirects
ddbeck Jul 16, 2025
7f7c96f
Provide discriminator property on feature data
ddbeck Jul 22, 2025
9b276f0
Use single-color-gradients as split demonstrator feature
ddbeck Jul 22, 2025
66adbd4
fixup! Use single-color-gradients as split demonstrator feature
ddbeck Jul 22, 2025
6ad4e80
Set `kind: feature` at runtime, for author convenience
ddbeck Jul 22, 2025
7845c1a
Fix switch statement exhaustiveness check
ddbeck Jul 22, 2025
0c20225
Merge branch 'main' into 91-jsonschema-source-of-truth
ddbeck Aug 7, 2025
8f02fec
Merge branch '91-jsonschema-source-of-truth' into 91-redirects
ddbeck Aug 7, 2025
d457d4d
Add `redirect_created_date` field on redirects
ddbeck Aug 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ packages/web-features/index.d.ts
packages/**/LICENSE.txt
packages/web-features/data.json
packages/web-features/data.schema.json
packages/web-features/types.ts
packages/web-features/types*
packages/web-features/index.js
data.extended.json
index.js

# Ignore files created & used by pages & 11ty
/_site/**
3 changes: 0 additions & 3 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
/**/*.dist
/**/dist


# Exclude the website includes since these are typically fragments, or include
# things that makes Prettier unhappy.
/gh-pages/src/_includes/**
Expand All @@ -11,14 +10,12 @@
# TODO: Format all these files
README.md
index.ts
types.ts
2022-backgrounder.md
towards-features.md
/.github/**
/docs
!/docs/publishing.md
/features/draft
/schemas
/scripts/caniuse.ts
/scripts/schema.ts
/scripts/specs.ts
53 changes: 53 additions & 0 deletions features/audio-codecs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Audio codecs
description: The `AudioEncoder` and `AudioDecoder` APIs (part of WebCodecs) provide low-level access to chunks of audio samples, for full control over the way audio is processed.
spec: https://w3c.github.io/webcodecs/
status:
compute_from:
- api.AudioDecoder.AudioDecoder
- api.AudioEncoder.AudioEncoder
compat_features:
- api.AudioData
- api.AudioData.AudioData
- api.AudioData.allocationSize
- api.AudioData.clone
- api.AudioData.close
- api.AudioData.copyTo
- api.AudioData.duration
- api.AudioData.format
- api.AudioData.numberOfChannels
- api.AudioData.numberOfFrames
- api.AudioData.sampleRate
- api.AudioData.timestamp
- api.AudioDecoder
- api.AudioDecoder.AudioDecoder
- api.AudioDecoder.close
- api.AudioDecoder.configure
- api.AudioDecoder.decode
- api.AudioDecoder.decodeQueueSize
- api.AudioDecoder.dequeue_event
- api.AudioDecoder.flush
- api.AudioDecoder.isConfigSupported_static
- api.AudioDecoder.reset
- api.AudioDecoder.state
- api.AudioEncoder
- api.AudioEncoder.AudioEncoder
- api.AudioEncoder.close
- api.AudioEncoder.configure
- api.AudioEncoder.configure.bitrateMode
- api.AudioEncoder.configure.opus
- api.AudioEncoder.configure.opus.opus_application
- api.AudioEncoder.configure.opus.opus_signal
- api.AudioEncoder.dequeue_event
- api.AudioEncoder.encode
- api.AudioEncoder.encodeQueueSize
- api.AudioEncoder.flush
- api.AudioEncoder.isConfigSupported_static
- api.AudioEncoder.reset
- api.AudioEncoder.state
- api.EncodedAudioChunk
- api.EncodedAudioChunk.EncodedAudioChunk
- api.EncodedAudioChunk.byteLength
- api.EncodedAudioChunk.copyTo
- api.EncodedAudioChunk.duration
- api.EncodedAudioChunk.timestamp
- api.EncodedAudioChunk.type
90 changes: 90 additions & 0 deletions features/audio-codecs.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Generated from: audio-codecs.yml
# Do not edit this file by hand. Edit the source file instead!

status:
baseline: false
support:
chrome: "94"
chrome_android: "94"
edge: "94"
firefox: "130"
compat_features:
# ⬇️ Same status as overall feature ⬇️
# baseline: false
# support:
# chrome: "94"
# chrome_android: "94"
# edge: "94"
# firefox: "130"
- api.AudioData
- api.AudioData.AudioData
- api.AudioData.allocationSize
- api.AudioData.clone
- api.AudioData.close
- api.AudioData.copyTo
- api.AudioData.duration
- api.AudioData.format
- api.AudioData.numberOfChannels
- api.AudioData.numberOfFrames
- api.AudioData.sampleRate
- api.AudioData.timestamp
- api.AudioDecoder
- api.AudioDecoder.AudioDecoder
- api.AudioDecoder.close
- api.AudioDecoder.configure
- api.AudioDecoder.decode
- api.AudioDecoder.decodeQueueSize
- api.AudioDecoder.flush
- api.AudioDecoder.isConfigSupported_static
- api.AudioDecoder.reset
- api.AudioDecoder.state
- api.AudioEncoder
- api.AudioEncoder.AudioEncoder
- api.AudioEncoder.close
- api.AudioEncoder.configure
- api.AudioEncoder.encode
- api.AudioEncoder.encodeQueueSize
- api.AudioEncoder.flush
- api.AudioEncoder.isConfigSupported_static
- api.AudioEncoder.reset
- api.AudioEncoder.state
- api.EncodedAudioChunk
- api.EncodedAudioChunk.EncodedAudioChunk
- api.EncodedAudioChunk.byteLength
- api.EncodedAudioChunk.copyTo
- api.EncodedAudioChunk.duration
- api.EncodedAudioChunk.timestamp
- api.EncodedAudioChunk.type

# baseline: false
# support:
# chrome: "106"
# chrome_android: "106"
# edge: "106"
# firefox: "130"
- api.AudioDecoder.dequeue_event
- api.AudioEncoder.dequeue_event

# baseline: false
# support:
# chrome: "110"
# chrome_android: "110"
# edge: "110"
# firefox: "130"
- api.AudioEncoder.configure.opus

# baseline: false
# support:
# chrome: "119"
# chrome_android: "119"
# edge: "119"
# firefox: "130"
- api.AudioEncoder.configure.bitrateMode

# baseline: false
# support:
# chrome: "126"
# chrome_android: "126"
# edge: "126"
- api.AudioEncoder.configure.opus.opus_application
- api.AudioEncoder.configure.opus.opus_signal
6 changes: 6 additions & 0 deletions features/numeric-separators.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: Numeric separators
description: To improve readability for numeric literals, underscores (`_`) can be used as separators. For example, `1_050.95` is equivalent to `1050.95`.
spec: https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator
group: javascript
compat_features:
- javascript.grammar.numeric_separators
17 changes: 17 additions & 0 deletions features/numeric-separators.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generated from: numeric-separators.yml
# Do not edit this file by hand. Edit the source file instead!

status:
baseline: high
baseline_low_date: 2020-07-28
baseline_high_date: 2023-01-28
support:
chrome: "75"
chrome_android: "75"
edge: "79"
firefox: "70"
firefox_android: "79"
safari: "13"
safari_ios: "13"
compat_features:
- javascript.grammar.numeric_separators
9 changes: 3 additions & 6 deletions features/numeric-seperators.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
name: Numeric separators
description: To improve readability for numeric literals, underscores (`_`) can be used as separators. For example, `1_050.95` is equivalent to `1050.95`.
spec: https://tc39.es/ecma262/multipage/ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator
group: javascript
compat_features:
- javascript.grammar.numeric_separators
redirect:
reason: moved
target: numeric-separators
19 changes: 4 additions & 15 deletions features/numeric-seperators.yml.dist
Original file line number Diff line number Diff line change
@@ -1,17 +1,6 @@
# Generated from: numeric-seperators.yml
# Do not edit this file by hand. Edit the source file instead!
# This file intentionally left blank.
# Do not edit this file.
# The data for this feature has moved to numeric-separators.yml

status:
baseline: high
baseline_low_date: 2020-07-28
baseline_high_date: 2023-01-28
support:
chrome: "75"
chrome_android: "75"
edge: "79"
firefox: "70"
firefox_android: "79"
safari: "13"
safari_ios: "13"
compat_features:
- javascript.grammar.numeric_separators
{}
80 changes: 80 additions & 0 deletions features/video-codecs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: Video codecs
description: The `VideoEncoder` and `VideoDecoder` APIs (part of WebCodecs) provide low-level access to individual video frames, for full control over the way video is processed.
spec: https://w3c.github.io/webcodecs/
status:
compute_from:
- api.VideoDecoder.VideoDecoder
- api.VideoEncoder.VideoEncoder
compat_features:
- api.EncodedVideoChunk
- api.EncodedVideoChunk.EncodedVideoChunk
- api.EncodedVideoChunk.byteLength
- api.EncodedVideoChunk.copyTo
- api.EncodedVideoChunk.duration
- api.EncodedVideoChunk.timestamp
- api.EncodedVideoChunk.type
- api.ImageDecoder
- api.ImageDecoder.ImageDecoder
- api.ImageDecoder.close
- api.ImageDecoder.complete
- api.ImageDecoder.completed
- api.ImageDecoder.decode
- api.ImageDecoder.isTypeSupported_static
- api.ImageDecoder.reset
- api.ImageDecoder.tracks
- api.ImageDecoder.type
- api.ImageTrack
- api.ImageTrack.animated
- api.ImageTrack.frameCount
- api.ImageTrack.repetitionCount
- api.ImageTrack.selected
- api.ImageTrackList
- api.ImageTrackList.length
- api.ImageTrackList.ready
- api.ImageTrackList.selectedIndex
- api.ImageTrackList.selectedTrack
- api.VideoColorSpace
- api.VideoColorSpace.VideoColorSpace
- api.VideoColorSpace.fullRange
- api.VideoColorSpace.matrix
- api.VideoColorSpace.primaries
- api.VideoColorSpace.toJSON
- api.VideoColorSpace.transfer
- api.VideoDecoder
- api.VideoDecoder.VideoDecoder
- api.VideoDecoder.close
- api.VideoDecoder.configure
- api.VideoDecoder.decode
- api.VideoDecoder.decodeQueueSize
- api.VideoDecoder.dequeue_event
- api.VideoDecoder.flush
- api.VideoDecoder.isConfigSupported_static
- api.VideoDecoder.reset
- api.VideoDecoder.state
- api.VideoEncoder
- api.VideoEncoder.VideoEncoder
- api.VideoEncoder.close
- api.VideoEncoder.configure
- api.VideoEncoder.dequeue_event
- api.VideoEncoder.encode
- api.VideoEncoder.encodeQueueSize
- api.VideoEncoder.flush
- api.VideoEncoder.isConfigSupported_static
- api.VideoEncoder.reset
- api.VideoEncoder.state
- api.VideoFrame
- api.VideoFrame.VideoFrame
- api.VideoFrame.allocationSize
- api.VideoFrame.clone
- api.VideoFrame.close
- api.VideoFrame.codedHeight
- api.VideoFrame.codedRect
- api.VideoFrame.codedWidth
- api.VideoFrame.colorSpace
- api.VideoFrame.copyTo
- api.VideoFrame.displayHeight
- api.VideoFrame.displayWidth
- api.VideoFrame.duration
- api.VideoFrame.format
- api.VideoFrame.timestamp
- api.VideoFrame.visibleRect
Loading