browser-specs 2.25.0 → 2.28.1
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.
- package/README.md +51 -90
- package/index.json +1671 -328
- package/package.json +17 -32
- package/CHANGELOG.md +0 -1591
- package/LICENSE.md +0 -54
package/README.md
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# Web browser specifications
|
|
2
2
|
|
|
3
3
|
This repository contains a curated list of technical Web specifications that are
|
|
4
|
-
directly implemented or that will be implemented by Web browsers
|
|
5
|
-
selection criteria](#spec-selection-criteria)).
|
|
4
|
+
directly implemented or that will be implemented by Web browsers.
|
|
6
5
|
|
|
7
6
|
This list is meant to be an up-to-date input source for projects that run
|
|
8
7
|
analyses on browser technologies to create reports on test coverage,
|
|
@@ -12,11 +11,13 @@ cross-references, WebIDL, quality, etc.
|
|
|
12
11
|
## Table of Contents
|
|
13
12
|
|
|
14
13
|
- [Installation and usage](#installation-and-usage)
|
|
14
|
+
<!-- COMMON-TOC: start -->
|
|
15
15
|
- [Spec object](#spec-object)
|
|
16
16
|
- [`url`](#url)
|
|
17
17
|
- [`shortname`](#shortname)
|
|
18
18
|
- [`title`](#title)
|
|
19
19
|
- [`shortTitle`](#shorttitle)
|
|
20
|
+
- [`categories`](#categories)
|
|
20
21
|
- [`series`](#series)
|
|
21
22
|
- [`series.shortname`](#seriesshortname)
|
|
22
23
|
- [`series.currentSpecification`](#seriescurrentspecification)
|
|
@@ -46,14 +47,8 @@ cross-references, WebIDL, quality, etc.
|
|
|
46
47
|
- [`tests.excludePaths`](#testsexcludepaths)
|
|
47
48
|
- [`source`](#source)
|
|
48
49
|
- [How to add/update/delete a spec](#how-to-addupdatedelete-a-spec)
|
|
50
|
+
- [Versioning](#versioning)<!-- COMMON-TOC: end -->
|
|
49
51
|
- [Spec selection criteria](#spec-selection-criteria)
|
|
50
|
-
- [Versioning](#versioning)
|
|
51
|
-
- [Development notes](#development-notes)
|
|
52
|
-
- [How to generate `index.json` manually](#how-to-generate-indexjson-manually)
|
|
53
|
-
- [Debugging tool](#debugging-tool)
|
|
54
|
-
- [Tests](#tests)
|
|
55
|
-
- [How to release a new version](#how-to-release-a-new-version)
|
|
56
|
-
|
|
57
52
|
|
|
58
53
|
## Installation and usage
|
|
59
54
|
|
|
@@ -71,15 +66,12 @@ const specs = require("browser-specs");
|
|
|
71
66
|
console.log(JSON.stringify(specs, null, 2));
|
|
72
67
|
```
|
|
73
68
|
|
|
74
|
-
Alternatively, you can
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
**Note:** If you choose to fetch the `index.json` file directly, keep in mind
|
|
79
|
-
that it may contain (possibly incorrect) updates that have not yet been included
|
|
80
|
-
in the NPM package and the latest GitHub release (see also #38).
|
|
81
|
-
|
|
69
|
+
Alternatively, you can fetch [`index.json`](https://w3c.github.io/browser-specs/index.json)
|
|
70
|
+
or retrieve the list from the [`web-specs@latest` branch](https://github.com/w3c/browser-specs/tree/web-specs%40latest),
|
|
71
|
+
and filter the resulting list to only preserve specs that have `"browser"` in
|
|
72
|
+
their `categories` property.
|
|
82
73
|
|
|
74
|
+
<!-- COMMON-BODY: start -->
|
|
83
75
|
## Spec object
|
|
84
76
|
|
|
85
77
|
Each specification in the list comes with the following properties:
|
|
@@ -119,6 +111,7 @@ Each specification in the list comes with the following properties:
|
|
|
119
111
|
"title": "CSS Color Module Level 4",
|
|
120
112
|
"source": "w3c",
|
|
121
113
|
"shortTitle": "CSS Color 4",
|
|
114
|
+
"categories": ["browser"],
|
|
122
115
|
"tests": {
|
|
123
116
|
"repository": "https://github.com/web-platform-tests/wpt",
|
|
124
117
|
"testPaths": [
|
|
@@ -170,6 +163,17 @@ The `shortTitle` property is always set. When there is no meaningful short
|
|
|
170
163
|
title, the property is set to the actual (possibly long) title of the spec.
|
|
171
164
|
|
|
172
165
|
|
|
166
|
+
### `categories`
|
|
167
|
+
|
|
168
|
+
An array that contains the list of categories that the spec belongs to. The only
|
|
169
|
+
possible value so far is `"browser"`, which means that the spec targets web
|
|
170
|
+
browsers.
|
|
171
|
+
|
|
172
|
+
The `categories` property is always set. Value may be an empty array for some of
|
|
173
|
+
the specs in the `web-specs` package. Value always contains `"browser"` for
|
|
174
|
+
specs in the `browser-specs` package.
|
|
175
|
+
|
|
176
|
+
|
|
173
177
|
### `series`
|
|
174
178
|
|
|
175
179
|
An object that describes the series that the spec is part of. A series includes
|
|
@@ -471,10 +475,9 @@ or if you would like to otherwise contribute to this project, please check
|
|
|
471
475
|
## Spec selection criteria
|
|
472
476
|
|
|
473
477
|
This repository contains a curated list of technical Web specifications that are
|
|
474
|
-
deemed relevant for Web
|
|
475
|
-
list of specs
|
|
476
|
-
|
|
477
|
-
[MDN](https://developer.mozilla.org/).
|
|
478
|
+
deemed relevant for the Web platform. Roughly speaking, this list should match
|
|
479
|
+
the list of web specs actively developed by W3C, the WHATWG and a few other
|
|
480
|
+
organizations.
|
|
478
481
|
|
|
479
482
|
To try to make things more concrete, the following criteria are used to assess
|
|
480
483
|
whether a spec should a priori appear in the list:
|
|
@@ -484,9 +487,7 @@ appear in the list. For instance, the list contains the HTML LS spec, but not
|
|
|
484
487
|
HTML 4.01 or HTML 5).
|
|
485
488
|
2. The spec is being developed by a well-known standardization or
|
|
486
489
|
pre-standardization group. Today, this means a W3C Working Group or Community
|
|
487
|
-
Group, the WHATWG, or the Khronos Group.
|
|
488
|
-
3. Web browsers expressed some level of support for the spec, e.g. through a
|
|
489
|
-
public intent to implement.
|
|
490
|
+
Group, the WHATWG, the IETF, the TC39 group or the Khronos Group.
|
|
490
491
|
4. The spec sits at the application layer or is "close to it". For instance,
|
|
491
492
|
most IETF specs are likely out of scope, but some that are exposed to Web developers are in scope.
|
|
492
493
|
5. The spec defines normative content (terms, CSS, IDL), or it contains
|
|
@@ -516,74 +517,34 @@ removal of a spec should rather trigger a `major` update, please
|
|
|
516
517
|
how it affects your project.
|
|
517
518
|
- `patch`: Info about one or more specs changed. Minor updates were made to the
|
|
518
519
|
code that don't affect the list.
|
|
520
|
+
<!-- COMMON-BODY: end -->
|
|
519
521
|
|
|
522
|
+
## Spec selection criteria
|
|
520
523
|
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
```bash
|
|
528
|
-
npm run build
|
|
529
|
-
```
|
|
530
|
-
|
|
531
|
-
**Important:** The generation process will try to retrieve information about W3C
|
|
532
|
-
specification from the W3C API. For that to work, the code requires the presence
|
|
533
|
-
of a `config.json` file in the root folder with a `w3cApiKey` field set to a
|
|
534
|
-
valid [W3C API key](https://w3c.github.io/w3c-api/) and a `githubToken` field
|
|
535
|
-
set to a valid [GitHub Personal Token](https://github.com/settings/tokens)
|
|
536
|
-
(default read permissions are enough).
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
### Tests
|
|
540
|
-
|
|
541
|
-
To run all tests or to test a given module locally, use one of:
|
|
542
|
-
|
|
543
|
-
```bash
|
|
544
|
-
npm test
|
|
545
|
-
npm test test/compute-shortname
|
|
546
|
-
```
|
|
547
|
-
|
|
548
|
-
Tests are run automatically on pull requests.
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
### Debugging tool
|
|
552
|
-
|
|
553
|
-
The `index.js` module can be used as a command-line interface (CLI) to quickly
|
|
554
|
-
look at a given spec in the `index.json` file. The command outputs the spec or
|
|
555
|
-
list of specs that match the provided token as a formatted JSON string.
|
|
556
|
-
|
|
557
|
-
For instance, to retrieve all specs, the Compatibility Standard spec, the
|
|
558
|
-
CSS Media Queries Module Level 5 spec, all delta specs, and a spec identified by
|
|
559
|
-
its URL, run:
|
|
560
|
-
|
|
561
|
-
```bash
|
|
562
|
-
node index.js
|
|
563
|
-
node index.js compat
|
|
564
|
-
node index.js mediaqueries-5
|
|
565
|
-
node index.js delta
|
|
566
|
-
node index.js https://w3c.github.io/presentation-api/
|
|
567
|
-
```
|
|
568
|
-
|
|
569
|
-
**Note:** The `index.js` CLI is not part of the released package, which only
|
|
570
|
-
contains the actual list of specifications.
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
### How to release a new version
|
|
524
|
+
This repository contains a curated list of technical Web specifications that are
|
|
525
|
+
deemed relevant for Web browsers. Roughly speaking, this list should match the
|
|
526
|
+
list of specs that appear in projects such as [Web Platform
|
|
527
|
+
Tests](https://github.com/web-platform-tests/wpt) or
|
|
528
|
+
[MDN](https://developer.mozilla.org/).
|
|
574
529
|
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
Token](https://github.com/settings/tokens) with `repo` rights, you may release a
|
|
578
|
-
new version through the following command, to be run from an up-to-date local
|
|
579
|
-
`main` branch:
|
|
530
|
+
To try to make things more concrete, the following criteria are used to assess
|
|
531
|
+
whether a spec should a priori appear in the list:
|
|
580
532
|
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
533
|
+
1. The spec is stable or in development. Superseded and abandoned specs will not
|
|
534
|
+
appear in the list. For instance, the list contains the HTML LS spec, but not
|
|
535
|
+
HTML 4.01 or HTML 5).
|
|
536
|
+
2. The spec is being developed by a well-known standardization or
|
|
537
|
+
pre-standardization group. Today, this means a W3C Working Group or Community
|
|
538
|
+
Group, the WHATWG, the IETF, the TC39 group or the Khronos Group.
|
|
539
|
+
3. Web browsers expressed some level of support for the spec, e.g. through a
|
|
540
|
+
public intent to implement.
|
|
541
|
+
4. The spec sits at the application layer or is "close to it". For instance,
|
|
542
|
+
most IETF specs are likely out of scope, but some that are exposed to Web developers are in scope.
|
|
543
|
+
5. The spec defines normative content (terms, CSS, IDL), or it contains
|
|
544
|
+
informative content that other specs often need to refer to (e.g. guidelines
|
|
545
|
+
from horizontal activities such as accessibility, internationalization, privacy
|
|
546
|
+
and security).
|
|
584
547
|
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
ask you to confirm the different steps. Please check the [versioning
|
|
589
|
-
rules](#versioning) to select the right version part to increment!
|
|
548
|
+
There are and there will be exceptions to the rule. Besides, some of these
|
|
549
|
+
criteria remain fuzzy and/or arbitrary, and we expect them to evolve over time,
|
|
550
|
+
typically driven by needs expressed by projects that may want to use the list.
|