Skip to content

Commit 335bc4c

Browse files
deploy: 4b88d29
0 parents  commit 335bc4c

File tree

7 files changed

+5665
-0
lines changed

7 files changed

+5665
-0
lines changed

.gitkeep

Whitespace-only changes.

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.min.json

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# tc39 dataset
2+
3+
## WARNING
4+
5+
The current data structure is unstable.
6+
7+
## File definition
8+
9+
- Structured [tc39/proposals](https://github.com/tc39/proposals)
10+
<br><https://tc39.es/dataset/proposals.json>
11+
<br><https://tc39.es/dataset/proposals.min.json> (Production)
12+
13+
- JSON Schema
14+
<br><https://tc39.es/dataset/schema/bundle.json>
15+
<br><https://tc39.es/dataset/schema/individual.json>

proposals.json

Lines changed: 5301 additions & 0 deletions
Large diffs are not rendered by default.

proposals.min.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

schema/bundle.json

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema",
3+
"$id": "https://tc39.es/dataset/schema/bundle.json",
4+
"title": "Bundle Proposals",
5+
"type": "array",
6+
"items": {
7+
"allOf": [
8+
{
9+
"type": "object",
10+
"properties": {
11+
"url": {
12+
"type": "string"
13+
},
14+
"pushed_at": {
15+
"type": "string",
16+
"format": "date-time"
17+
}
18+
},
19+
"additionalProperties": false
20+
},
21+
{
22+
"$schema": "http://json-schema.org/draft-07/schema",
23+
"$id": "https://tc39.es/dataset/schema/individual.json",
24+
"title": "Individual Proposal",
25+
"type": "object",
26+
"properties": {
27+
"$schema": {
28+
"type": "string",
29+
"const": "https://tc39.es/dataset/schema/individual.json"
30+
},
31+
"tags": {
32+
"type": "array",
33+
"items": {
34+
"type": "string",
35+
"enum": ["ECMA-262", "ECMA-402", "inactive", "withdrawn", "archived"]
36+
},
37+
"minItems": 1,
38+
"uniqueItems": true,
39+
"description": "The tags of proposal"
40+
},
41+
"stage": {
42+
"type": "number",
43+
"minimum": 0,
44+
"maximum": 4,
45+
"description": "The stage number of proposal"
46+
},
47+
"id": {
48+
"type": "string",
49+
"description": "The codename of proposal",
50+
"pattern": "^proposal-"
51+
},
52+
"name": {
53+
"type": "string",
54+
"description": "The display name of proposal"
55+
},
56+
"description": {
57+
"type": "string",
58+
"description": "The description of proposal"
59+
},
60+
"authors": {
61+
"type": "array",
62+
"items": {
63+
"type": "string"
64+
},
65+
"minItems": 1,
66+
"description": "List of Authour"
67+
},
68+
"champions": {
69+
"type": "array",
70+
"items": {
71+
"type": "string"
72+
},
73+
"minItems": 1,
74+
"description": "List of Champion"
75+
},
76+
"notes": {
77+
"type": "array",
78+
"items": {
79+
"type": "object",
80+
"properties": {
81+
"date": {
82+
"type": "string",
83+
"format": "date-time"
84+
},
85+
"url": {
86+
"type": "string",
87+
"format": "uri",
88+
"pattern": "^https\\:\\/\\/github\\.com\\/tc39\\/notes"
89+
}
90+
},
91+
"additionalProperties": false,
92+
"required": ["date", "url"]
93+
},
94+
"minItems": 1,
95+
"description": "List of tc39 notes"
96+
},
97+
"tests": {
98+
"type": "array",
99+
"items": {
100+
"type": "string",
101+
"format": "uri",
102+
"pattern": "^https\\:\\/\\/github\\.com\\/tc39\\/test262\\/(pull|issues)\\/\\d+$"
103+
},
104+
"minItems": 1,
105+
"description": "List of tc39 tests"
106+
},
107+
"has-specification": {
108+
"type": "boolean",
109+
"description": "Has specification (spec.emu available)"
110+
},
111+
"snippets": {
112+
"type": "array",
113+
"items": {
114+
"type": "object",
115+
"properties": {
116+
"name": {
117+
"type": "string"
118+
},
119+
"description": {
120+
"type": "string"
121+
},
122+
"file-path": {
123+
"type": "string"
124+
}
125+
},
126+
"additionalProperties": false,
127+
"required": ["name", "file-path"]
128+
},
129+
"minItems": 1,
130+
"description": "Provide example code of tc39.es show code"
131+
},
132+
"polyfills": {
133+
"type": "array",
134+
"items": {
135+
"type": "string",
136+
"format": "uri"
137+
},
138+
"minItems": 1,
139+
"description": "List of polyfill urls"
140+
},
141+
"implementations": {
142+
"type": "array",
143+
"items": {
144+
"type": "string",
145+
"enum": [
146+
"Babel",
147+
"ChakraCore",
148+
"Chrome",
149+
"Edge",
150+
"Engine262",
151+
"Firefox",
152+
"GraalJS",
153+
"Hermes",
154+
"JavaScriptCore",
155+
"Nashorn",
156+
"Node",
157+
"QuickJS",
158+
"Safari",
159+
"SpiderMonkey",
160+
"TypeScript",
161+
"v8"
162+
]
163+
},
164+
"minItems": 1,
165+
"uniqueItems": true,
166+
"additionalItems": false,
167+
"description": "List of implementations"
168+
},
169+
"rationale": {
170+
"type": "string",
171+
"description": "inactive proposal rationale (inactive only)"
172+
},
173+
"edition": {
174+
"type": "number",
175+
"minimum": 2015,
176+
"maximum": 2999,
177+
"description": "available edition of ECMAScript (stage 4 only)"
178+
}
179+
},
180+
"additionalProperties": false,
181+
"required": ["tags", "name", "stage", "authors", "champions"]
182+
}
183+
]
184+
}
185+
}

schema/individual.json

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema",
3+
"$id": "https://tc39.es/dataset/schema/individual.json",
4+
"title": "Individual Proposal",
5+
"type": "object",
6+
"properties": {
7+
"$schema": {
8+
"type": "string",
9+
"const": "https://tc39.es/dataset/schema/individual.json"
10+
},
11+
"tags": {
12+
"type": "array",
13+
"items": {
14+
"type": "string",
15+
"enum": ["ECMA-262", "ECMA-402", "inactive", "withdrawn", "archived"]
16+
},
17+
"minItems": 1,
18+
"uniqueItems": true,
19+
"description": "The tags of proposal"
20+
},
21+
"stage": {
22+
"type": "number",
23+
"minimum": 0,
24+
"maximum": 4,
25+
"description": "The stage number of proposal"
26+
},
27+
"id": {
28+
"type": "string",
29+
"description": "The codename of proposal",
30+
"pattern": "^proposal-"
31+
},
32+
"name": {
33+
"type": "string",
34+
"description": "The display name of proposal"
35+
},
36+
"description": {
37+
"type": "string",
38+
"description": "The description of proposal"
39+
},
40+
"authors": {
41+
"type": "array",
42+
"items": {
43+
"type": "string"
44+
},
45+
"minItems": 1,
46+
"description": "List of Authour"
47+
},
48+
"champions": {
49+
"type": "array",
50+
"items": {
51+
"type": "string"
52+
},
53+
"minItems": 1,
54+
"description": "List of Champion"
55+
},
56+
"notes": {
57+
"type": "array",
58+
"items": {
59+
"type": "object",
60+
"properties": {
61+
"date": {
62+
"type": "string",
63+
"format": "date-time"
64+
},
65+
"url": {
66+
"type": "string",
67+
"format": "uri",
68+
"pattern": "^https\\:\\/\\/github\\.com\\/tc39\\/notes"
69+
}
70+
},
71+
"additionalProperties": false,
72+
"required": ["date", "url"]
73+
},
74+
"minItems": 1,
75+
"description": "List of tc39 notes"
76+
},
77+
"tests": {
78+
"type": "array",
79+
"items": {
80+
"type": "string",
81+
"format": "uri",
82+
"pattern": "^https\\:\\/\\/github\\.com\\/tc39\\/test262\\/(pull|issues)\\/\\d+$"
83+
},
84+
"minItems": 1,
85+
"description": "List of tc39 tests"
86+
},
87+
"has-specification": {
88+
"type": "boolean",
89+
"description": "Has specification (spec.emu available)"
90+
},
91+
"snippets": {
92+
"type": "array",
93+
"items": {
94+
"type": "object",
95+
"properties": {
96+
"name": {
97+
"type": "string"
98+
},
99+
"description": {
100+
"type": "string"
101+
},
102+
"file-path": {
103+
"type": "string"
104+
}
105+
},
106+
"additionalProperties": false,
107+
"required": ["name", "file-path"]
108+
},
109+
"minItems": 1,
110+
"description": "Provide example code of tc39.es show code"
111+
},
112+
"polyfills": {
113+
"type": "array",
114+
"items": {
115+
"type": "string",
116+
"format": "uri"
117+
},
118+
"minItems": 1,
119+
"description": "List of polyfill urls"
120+
},
121+
"implementations": {
122+
"type": "array",
123+
"items": {
124+
"type": "string",
125+
"enum": [
126+
"Babel",
127+
"ChakraCore",
128+
"Chrome",
129+
"Edge",
130+
"Engine262",
131+
"Firefox",
132+
"GraalJS",
133+
"Hermes",
134+
"JavaScriptCore",
135+
"Nashorn",
136+
"Node",
137+
"QuickJS",
138+
"Safari",
139+
"SpiderMonkey",
140+
"TypeScript",
141+
"v8"
142+
]
143+
},
144+
"minItems": 1,
145+
"uniqueItems": true,
146+
"additionalItems": false,
147+
"description": "List of implementations"
148+
},
149+
"rationale": {
150+
"type": "string",
151+
"description": "inactive proposal rationale (inactive only)"
152+
},
153+
"edition": {
154+
"type": "number",
155+
"minimum": 2015,
156+
"maximum": 2999,
157+
"description": "available edition of ECMAScript (stage 4 only)"
158+
}
159+
},
160+
"additionalProperties": false,
161+
"required": ["tags", "name", "stage", "authors", "champions"]
162+
}

0 commit comments

Comments
 (0)