html-snapshots 0.18.3 → 1.0.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 (84) hide show
  1. package/.eslintrc.json +4 -5
  2. package/.github/workflows/verify.yml +2 -2
  3. package/HISTORY.md +42 -0
  4. package/README.md +109 -256
  5. package/examples/README.md +149 -0
  6. package/examples/custom/myFilter.js +2 -2
  7. package/examples/custom/package-lock.json +2021 -5
  8. package/examples/custom/package.json +1 -1
  9. package/examples/custom/snapshot.js +8 -10
  10. package/examples/debug-phantomjs/package-lock.json +6 -6
  11. package/examples/debug-phantomjs/package.json +1 -1
  12. package/examples/debug-phantomjs/snapshot.js +13 -14
  13. package/examples/debug-puppeteer/README.md +18 -0
  14. package/examples/debug-puppeteer/package-lock.json +2804 -0
  15. package/examples/debug-puppeteer/package.json +12 -0
  16. package/examples/debug-puppeteer/snapshot.js +30 -0
  17. package/examples/html5rocks/package-lock.json +1306 -5
  18. package/examples/html5rocks/package.json +1 -1
  19. package/examples/html5rocks/snapshot.js +14 -23
  20. package/examples/process-limit/package-lock.json +1306 -5
  21. package/examples/process-limit/package.json +1 -1
  22. package/examples/process-limit/snapshot.js +8 -10
  23. package/examples/simple-promise/package-lock.json +1306 -5
  24. package/examples/simple-promise/package.json +1 -1
  25. package/examples/simple-promise/snapshot.js +6 -8
  26. package/examples/sitemap-index/package-lock.json +1306 -5
  27. package/examples/sitemap-index/package.json +1 -1
  28. package/examples/sitemap-index/snapshot.js +6 -6
  29. package/examples/utils/index.js +2 -4
  30. package/examples/verbose/package-lock.json +1306 -5
  31. package/examples/verbose/package.json +1 -1
  32. package/examples/verbose/snapshot.js +12 -14
  33. package/lib/async/index.js +0 -1
  34. package/lib/common/index.js +1 -1
  35. package/lib/common/sitemap/index.js +16 -0
  36. package/lib/common/sitemap/sitemap-collection.js +94 -0
  37. package/lib/common/sitemap/sitemap-index.js +68 -0
  38. package/lib/common/{sitemap.js → sitemap/sitemap.js} +68 -57
  39. package/lib/html-snapshots.js +87 -5
  40. package/lib/input-generators/_base.js +7 -1
  41. package/lib/input-generators/array.js +0 -1
  42. package/lib/input-generators/robots.js +98 -58
  43. package/lib/input-generators/sitemap-index.js +3 -124
  44. package/lib/input-generators/sitemap.js +3 -7
  45. package/lib/input-generators/textfile.js +2 -6
  46. package/lib/puppeteer/index.js +98 -0
  47. package/lib/puppeteer/removeScripts.js +8 -0
  48. package/package.json +9 -4
  49. package/test/helpers/options.js +4 -2
  50. package/test/mocha/browsers/puppeteer.js +106 -0
  51. package/test/mocha/browsers/server/index.html +9 -0
  52. package/test/mocha/browsers/test.js +11 -0
  53. package/test/mocha/html-snapshots/basics.js +60 -47
  54. package/test/mocha/html-snapshots/phantomjs-options.js +54 -60
  55. package/test/mocha/html-snapshots/process-limit.js +126 -120
  56. package/test/mocha/html-snapshots/puppeteer.js +47 -0
  57. package/test/mocha/html-snapshots/robots.js +156 -121
  58. package/test/mocha/html-snapshots/server/public/page-sitemap.xml +16 -0
  59. package/test/mocha/html-snapshots/server/test_robots.txt +13 -0
  60. package/test/mocha/html-snapshots/server/test_robots_sitemap.txt +15 -0
  61. package/test/mocha/html-snapshots/server/test_robots_sitemap.xml +22 -0
  62. package/test/mocha/html-snapshots/sitemap-index.js +100 -90
  63. package/test/mocha/html-snapshots/sitemap.js +75 -31
  64. package/test/mocha/html-snapshots/snapshot-scripts.js +150 -145
  65. package/test/mocha/html-snapshots/test.js +23 -14
  66. package/test/mocha/html-snapshots/test_robots.txt +0 -2
  67. package/test/mocha/html-snapshots/use-jquery.js +65 -64
  68. package/test/mocha/html-snapshots/utils.js +29 -30
  69. package/test/mocha/input-generators/server/test_robots.txt +0 -2
  70. package/test/mocha/input-generators/server/test_robots_bad.txt +0 -2
  71. package/test/mocha/input-generators/server/test_robots_sitemap.txt +17 -0
  72. package/test/mocha/input-generators/server/test_robots_sitemap_bad.txt +17 -0
  73. package/test/mocha/input-generators/server/test_robots_sitemap_multi.txt +18 -0
  74. package/test/mocha/input-generators/server/test_sitemap_index_empty.xml +3 -0
  75. package/test/mocha/input-generators/server/test_sitemap_index_malformed.xml +2 -0
  76. package/test/mocha/input-generators/sitemap-index.js +65 -9
  77. package/test/mocha/input-generators/test.js +276 -280
  78. package/test/mocha/input-generators/test_robots.txt +0 -2
  79. package/test/mocha/input-generators/test_robots_bad.txt +0 -2
  80. package/test/mocha/input-generators/test_robots_sitemap.txt +17 -0
  81. package/test/mocha/input-generators/test_robots_sitemap_bad.txt +17 -0
  82. package/test/mocha/input-generators/test_robots_sitemap_multi.txt +18 -0
  83. package/lib/common/node.js +0 -26
  84. package/test/mocha/common/node.js +0 -100
@@ -7,6 +7,6 @@
7
7
  "start": "node ./snapshot.js"
8
8
  },
9
9
  "dependencies": {
10
- "html-snapshots": "^0.18.2"
10
+ "html-snapshots": "^1.0.0"
11
11
  }
12
12
  }
@@ -5,26 +5,24 @@
5
5
  * Use sitemap.xml to snapshot an entire site.
6
6
  * Use a customFilter to update the output before the snapshots are written.
7
7
  */
8
- var path = require("path");
9
- var util = require("util");
10
- var htmlSnapshots = require("html-snapshots");
8
+ const path = require("path");
9
+ const util = require("util");
10
+ const htmlSnapshots = require("html-snapshots");
11
11
 
12
12
  htmlSnapshots.run({
13
13
  input: "sitemap",
14
- source: "http://enigmatic-refuge-9006.herokuapp.com/sitemap.xml",
14
+ source: "https://sitemaps.org/sitemap.xml",
15
15
  outputDir: path.join(__dirname, "./tmp"),
16
16
  outputDirClean: true,
17
- selector: ".page-content",
17
+ selector: "#mainContent",
18
18
  snapshotScript: {
19
19
  script: "customFilter",
20
20
  module: path.join(__dirname, "myFilter.js")
21
21
  },
22
- timeout: 15000
22
+ timeout: 10000
23
23
  })
24
- .then(function (completed) {
24
+ .then(completed => {
25
25
  console.log("completed snapshots:");
26
26
  console.log(util.inspect(completed));
27
27
  })
28
- .catch(function (err) {
29
- console.error(err);
30
- });
28
+ .catch(console.error);
@@ -297,9 +297,9 @@
297
297
  }
298
298
  },
299
299
  "html-snapshots": {
300
- "version": "0.18.2",
301
- "resolved": "https://registry.npmjs.org/html-snapshots/-/html-snapshots-0.18.2.tgz",
302
- "integrity": "sha512-92ddr6KWKWZZAcY6sV1dg+LIXYWN4UVFBe4Yumx+hs3U66ecUY3fMtQM72CJhBTA5xrQjzLO6EDhwn8o59zwEg==",
300
+ "version": "0.18.3",
301
+ "resolved": "https://registry.npmjs.org/html-snapshots/-/html-snapshots-0.18.3.tgz",
302
+ "integrity": "sha512-mNEyRLstWDTtP0VZxSu/+86snmWtgeH5ebIeiJXfiaMCjmj8ca+ASE0SSGy0aM63oVhHpXov4nipqCHCjctGQQ==",
303
303
  "requires": {
304
304
  "async": "3.2.4",
305
305
  "async-lock": "1.3.2",
@@ -571,9 +571,9 @@
571
571
  "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw=="
572
572
  },
573
573
  "psl": {
574
- "version": "1.8.0",
575
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
576
- "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
574
+ "version": "1.9.0",
575
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
576
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
577
577
  },
578
578
  "punycode": {
579
579
  "version": "2.1.1",
@@ -7,6 +7,6 @@
7
7
  "start": "node ./snapshot.js"
8
8
  },
9
9
  "dependencies": {
10
- "html-snapshots": "^0.18.2"
10
+ "html-snapshots": "^1.0.0"
11
11
  }
12
12
  }
@@ -8,20 +8,18 @@
8
8
  * Demonstrates phantomjsOptions usage on a per-page basis.
9
9
  *
10
10
  */
11
- var path = require("path");
12
- var util = require("util");
13
- var assert = require("assert");
14
- var htmlSnapshots = require("html-snapshots");
11
+ const path = require("path");
12
+ const util = require("util");
13
+ const assert = require("assert");
14
+ const htmlSnapshots = require("html-snapshots");
15
15
 
16
16
  // Assert if NOT an error
17
17
  function mustBeError(err) {
18
18
  assert.throws(
19
- function() {
19
+ () => {
20
20
  assert.ifError(err);
21
21
  },
22
- function(err) {
23
- return !!err;
24
- }
22
+ err => !!err
25
23
  );
26
24
  }
27
25
 
@@ -29,21 +27,22 @@ function mustBeError(err) {
29
27
  // but this also demonstrates the use of phantomjsOptions in the per-page case.
30
28
  htmlSnapshots.run({
31
29
  input: "sitemap",
32
- source: "http://enigmatic-refuge-9006.herokuapp.com/sitemap.xml",
30
+ source: "https://www.sitemaps.org/sitemap.xml",
33
31
  outputDir: path.join(__dirname, "./tmp"),
34
32
  outputDirClean: true,
35
- selector: ".page-content",
36
- timeout: 15000,
33
+ selector: "#mainContent",
34
+ timeout: 10000,
35
+ browser: "phantomjs",
37
36
  phantomjsOptions: {
38
37
  // The key must exactly match the loc as defined in the sitemap.xml
39
- "http://enigmatic-refuge-9006.herokuapp.com:80/hello-world": "--remote-debugger-port=9000"
38
+ "https://www.sitemaps.org/protocol.html": "--remote-debugger-port=9000"
40
39
  }
41
- }, function (err, completed) {
40
+ }, (err, completed) => {
42
41
 
43
42
  console.log("completed snapshots:");
44
43
  console.log(util.inspect(completed));
45
44
 
46
- // We expect the hello-world page will timeout because we've held it in the debugger
45
+ // We expect the protocol.html page will timeout because we've held it in the debugger
47
46
  // It will succeed if you use --remote-debugger-autorun=true
48
47
  // However, the PhantomJS process instances won't exit so that you can (re)debug
49
48
  mustBeError(err);
@@ -0,0 +1,18 @@
1
+ # Example
2
+
3
+ > Run a single page in the puppeteer debugger to see what is going on for a problem snapshot.
4
+
5
+ > All examples assume you already have NodeJS installed on your local machine
6
+
7
+ ## How To Run
8
+ 1. Clone this repo
9
+ 2. Open a command prompt
10
+ 3. Change to the examples/custom directory
11
+ 4. Run `npm install`
12
+ 5. Run `npm start`
13
+
14
+ ## What It Does
15
+ This example loads google.com into puppeteer, starts it in headed mode in slow motion with devtools.
16
+
17
+ ## Notes on Interpreting Results
18
+ This example starts headed chrome so you can inspect the page manually using devtools.