reffy 6.4.2 → 6.6.0

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.
Files changed (43) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +158 -158
  3. package/index.js +11 -11
  4. package/package.json +53 -53
  5. package/reffy.js +248 -248
  6. package/src/browserlib/canonicalize-url.mjs +50 -50
  7. package/src/browserlib/create-outline.mjs +352 -352
  8. package/src/browserlib/extract-cssdfn.mjs +319 -319
  9. package/src/browserlib/extract-dfns.mjs +687 -686
  10. package/src/browserlib/extract-editors.mjs~ +14 -0
  11. package/src/browserlib/extract-elements.mjs +205 -205
  12. package/src/browserlib/extract-headings.mjs +48 -48
  13. package/src/browserlib/extract-ids.mjs +28 -28
  14. package/src/browserlib/extract-links.mjs +28 -28
  15. package/src/browserlib/extract-references.mjs +203 -203
  16. package/src/browserlib/extract-webidl.mjs +134 -134
  17. package/src/browserlib/generate-es-dfn-report.sh~ +4 -0
  18. package/src/browserlib/get-absolute-url.mjs +21 -21
  19. package/src/browserlib/get-generator.mjs +26 -26
  20. package/src/browserlib/get-lastmodified-date.mjs +13 -13
  21. package/src/browserlib/get-title.mjs +11 -11
  22. package/src/browserlib/informative-selector.mjs +16 -16
  23. package/src/browserlib/map-ids-to-headings.mjs +136 -136
  24. package/src/browserlib/reffy.json +53 -53
  25. package/src/cli/check-missing-dfns.js +609 -609
  26. package/src/cli/csstree-grammar-check.js +28 -0
  27. package/src/cli/csstree-grammar-check.js~ +10 -0
  28. package/src/cli/csstree-grammar-parser.js +11 -0
  29. package/src/cli/csstree-grammar-parser.js~ +1 -0
  30. package/src/cli/extract-editors.js~ +38 -0
  31. package/src/cli/generate-idlnames.js +430 -430
  32. package/src/cli/generate-idlparsed.js +139 -139
  33. package/src/cli/merge-crawl-results.js +128 -128
  34. package/src/cli/parse-webidl.js +430 -430
  35. package/src/cli/process-specs.js~ +28 -0
  36. package/src/lib/css-grammar-parse-tree.schema.json +109 -109
  37. package/src/lib/css-grammar-parser.js +440 -440
  38. package/src/lib/fetch.js +56 -56
  39. package/src/lib/nock-server.js +127 -127
  40. package/src/lib/specs-crawler.js +631 -622
  41. package/src/lib/util.js +943 -943
  42. package/src/specs/missing-css-rules.json +197 -197
  43. package/src/specs/spec-equivalents.json +149 -149
@@ -0,0 +1,28 @@
1
+ const fs = require("fs");
2
+ const { definitionSyntax } = require('css-tree');
3
+
4
+ function parse(value, file) {
5
+ try {
6
+ if (value && !value === definitionSyntax.generate(definitionSyntax.parse(value))) {
7
+ console.error("Discrepancy when parsing " + value + " in " + file);
8
+ }
9
+ } catch (e) {
10
+ console.error("Error parsing " + value + " in " + file + ": " + e.message);
11
+ }
12
+ }
13
+
14
+ if (require.main === module) {
15
+ const file = process.argv[2];
16
+ if (!file) {
17
+ console.error('Required file parameter missing');
18
+ process.exit(2);
19
+ }
20
+ const data = fs.readFileSync(file, "utf-8");
21
+ const {properties, descriptors, valuespaces} = JSON.parse(data);
22
+ for (let dataset of [properties, descriptors, valuespaces].map(Object.values)) {
23
+ for (let dfn of dataset) {
24
+ parse(dfn.value);
25
+ parse(dfn.newValue);
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,10 @@
1
+ const { definitionSyntax } = require('css-tree');
2
+
3
+ if (require.main === module) {
4
+ const file = process.argv[2];
5
+ if (!file) {
6
+ console.error('Required file parameter missing');
7
+ process.exit(2);
8
+ }
9
+ console.log(JSON.stringify(definitionSyntax.parse(input), null, 2));
10
+ }
@@ -0,0 +1,11 @@
1
+ const { definitionSyntax } = require('css-tree');
2
+
3
+ if (require.main === module) {
4
+ const input = process.argv.slice(2).join(" ");
5
+ if (!input) {
6
+ console.error('Required input parameter missing');
7
+ process.exit(2);
8
+ }
9
+ console.log(JSON.stringify(definitionSyntax.parse(input), null, 2));
10
+ }
11
+
@@ -0,0 +1 @@
1
+ const { definitionSyntax } = require('css-tree');
@@ -0,0 +1,38 @@
1
+ async function processSpec(spec, crawlOptions) {
2
+ spec.crawled = crawlOptions.publishedVersion ?
3
+ (spec.release ? spec.release : spec.nightly) :
4
+ spec.nightly;
5
+ spec.date = "";
6
+ spec.links = {};
7
+ spec.refs = {};
8
+ spec.idl = {};
9
+ if (spec.error) {
10
+ return spec;
11
+ }
12
+
13
+ try {
14
+ const result = await processSpecification(spec.crawled, (spec) => {
15
+ const idToHeading = window.reffy.mapIdsToHeadings();
16
+ return {
17
+ crawled: window.location.toString(),
18
+ title: window.reffy.getTitle(),
19
+ generator: window.reffy.getGenerator(),
20
+ date: window.reffy.getLastModifiedDate(),
21
+ editors: window.reffy.extractEditors()
22
+ };
23
+ }, [spec]);
24
+
25
+ // Copy results back into initial spec object
26
+ spec.crawled = result.crawled;
27
+ spec.title = result.title ? result.title : spec.title;
28
+ spec.generator = result.generator;
29
+ spec.date = result.date;
30
+ spec.editors = result.editors;
31
+ }
32
+ catch (err) {
33
+ spec.title = spec.title || '[Could not be determined, see error]';
34
+ spec.error = err.toString() + (err.stack ? ' ' + err.stack : '');
35
+ }
36
+
37
+ return spec;
38
+ }