diff --git a/package-lock.json b/package-lock.json index 0541ac02d..eb0e50490 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2770,37 +2770,62 @@ "dev": true }, "@metascraper/helpers": { - "version": "3.11.8", - "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-3.11.8.tgz", - "integrity": "sha1-Dizn3eo376K+qBI4c5ZOTh/JaqQ=", + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.7.14.tgz", + "integrity": "sha512-xQa24LVinzyT/5H4LKNP4YDdR/kcz+j5GIIB123DyxvhQZTRuDu8BRmEUB/Yj+jY7U5qhwabIgwCT/eN1Y9Uag==", "requires": { - "condense-whitespace": "~1.0.0", - "is-relative-url": "~2.0.0", - "lodash": "~4.17.10", - "normalize-url": "~3.2.0", + "audio-extensions": "0.0.0", + "chrono-node": "~1.3.11", + "condense-whitespace": "~2.0.0", + "entities": "~2.0.0", + "file-extension": "~4.0.5", + "has-values": "~2.0.1", + "image-extensions": "~1.1.0", + "is-relative-url": "~3.0.0", + "is-uri": "~1.2.0", + "iso-639-3": "~1.2.0", + "isostring": "0.0.1", + "lodash": "~4.17.15", + "memoize-one": "~5.1.1", + "mime-types": "~2.1.24", + "normalize-url": "~4.5.0", "smartquotes": "~2.3.1", - "to-title-case": "~1.0.0", - "url-regex": "~4.1.1" + "title": "~3.4.1", + "truncate": "~2.1.0", + "url-regex": "~5.0.0", + "video-extensions": "~1.1.0" }, "dependencies": { - "ip-regex": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", - "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=" + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + }, + "has-values": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", + "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } }, "normalize-url": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.2.0.tgz", - "integrity": "sha512-WvF3Myk0NhXkG8S9bygFM4IC1KOvnVJGq0QoGeoqOYOBeinBZp5ybW3QuYbTc89lkWBMM9ZBO4QGRoc0353kKA==" - }, - "url-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-4.1.1.tgz", - "integrity": "sha512-ViSDgDPNKkrQHI81GLCjdDN+Rsk3tAW/uLXlBOJxtcHzWZjta58Z0APXhfXzS89YszsheMnEvXeDXsWUB53wwA==", - "requires": { - "ip-regex": "^1.0.1", - "tlds": "^1.187.0" - } + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" } } }, @@ -5015,7 +5040,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -5561,6 +5585,11 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, + "arch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", + "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==" + }, "archiver": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.0.3.tgz", @@ -6044,6 +6073,11 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" }, + "audio-extensions": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/audio-extensions/-/audio-extensions-0.0.0.tgz", + "integrity": "sha1-0O7+B3+562JYmO7ZmFiQVIzx+NI=" + }, "autoprefixer": { "version": "9.5.1", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.5.1.tgz", @@ -8149,11 +8183,18 @@ } }, "chrono-node": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-1.3.5.tgz", - "integrity": "sha1-oklSmKMtqCvMAa2b59d++l4kQSI=", + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-1.3.11.tgz", + "integrity": "sha512-jDWRnY6nYvzfV3HPYBqo+tot7tcsUs9i3arGbMdI0TouPSXP2C2y/Ctp27rxKTQDi6yuTxAB2cw+Q6igGhOhdQ==", "requires": { - "moment": "^2.10.3" + "moment": "2.21.0" + }, + "dependencies": { + "moment": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz", + "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==" + } } }, "ci-info": { @@ -8290,6 +8331,50 @@ "tiny-emitter": "^2.0.0" } }, + "clipboardy": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-1.2.2.tgz", + "integrity": "sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw==", + "requires": { + "arch": "^2.1.0", + "execa": "^0.8.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", @@ -8549,7 +8634,6 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "dev": true, "requires": { "color-name": "^1.1.1" } @@ -8557,8 +8641,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "color-string": { "version": "1.5.3", @@ -8771,9 +8854,9 @@ } }, "condense-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/condense-whitespace/-/condense-whitespace-1.0.0.tgz", - "integrity": "sha1-g3bZjvAo5sss0kaOKM5CxcZasak=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/condense-whitespace/-/condense-whitespace-2.0.0.tgz", + "integrity": "sha512-Ath9o58/0rxZXbyoy3zZgrVMoIemi30sukG/btuMKCLyqfQt3dNOWc9N3EHEMa2Q3i0tXQPDJluYFLwy7pJuQw==" }, "connect-history-api-fallback": { "version": "1.6.0", @@ -13324,11 +13407,6 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, - "escape-regexp-component": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", - "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=" - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -14298,6 +14376,11 @@ "flat-cache": "^2.0.1" } }, + "file-extension": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/file-extension/-/file-extension-4.0.5.tgz", + "integrity": "sha512-l0rOL3aKkoi6ea7MNZe6OHgqYYpn48Qfflr8Pe9G9JPPTx5A+sfboK91ZufzIs59/lPqh351l0eb6iKU9J5oGg==" + }, "file-loader": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", @@ -15719,8 +15802,7 @@ "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-uri": { "version": "2.0.3", @@ -18217,6 +18299,11 @@ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, + "image-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/image-extensions/-/image-extensions-1.1.0.tgz", + "integrity": "sha1-uOa/YDnfAFbjM1AqALZjejEF2JQ=" + }, "image-size": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", @@ -18528,7 +18615,8 @@ "is-absolute-url": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", @@ -18889,11 +18977,18 @@ } }, "is-relative-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-2.0.0.tgz", - "integrity": "sha1-cpAtf+BLPUeS59sV+duEtyBMnO8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-3.0.0.tgz", + "integrity": "sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA==", "requires": { - "is-absolute-url": "^2.0.0" + "is-absolute-url": "^3.0.0" + }, + "dependencies": { + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" + } } }, "is-resolvable": { @@ -18911,8 +19006,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-string": { "version": "1.0.4", @@ -18978,6 +19072,15 @@ "upper-case": "^1.1.0" } }, + "is-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-uri/-/is-uri-1.2.0.tgz", + "integrity": "sha1-uS/yNK9owO2X0u7UZJLQF5O31CA=", + "requires": { + "parse-uri": "~1.0.0", + "punycode2": "~1.0.0" + } + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -19043,6 +19146,11 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, + "iso-639-3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/iso-639-3/-/iso-639-3-1.2.0.tgz", + "integrity": "sha512-jNvD2P4JHNckQH7pc0R0SQ4oPCpyEtgs0nTtjB+DZCUDdygz0cOAxlcnq5KgNjjsqMHbR4Sbgwz2+DflzAZvlQ==" + }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", @@ -21942,14 +22050,10 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } + "memoize-one": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", + "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" }, "memoizee": { "version": "0.4.14", @@ -22080,47 +22184,345 @@ "dev": true }, "metascraper-author": { - "version": "3.11.8", - "resolved": "https://registry.npmjs.org/metascraper-author/-/metascraper-author-3.11.8.tgz", - "integrity": "sha1-4gMUZwsAZlQbBdxItfTbD2b2GBk=", + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/metascraper-author/-/metascraper-author-5.7.14.tgz", + "integrity": "sha512-P8xpHHoCzlbt1lb8qKbkz9XQ4MWC0c9ElKFORQ1GPmSVh0n+aTO1APKofFYcnl9rq6QIyYU4PLTqQZ54KXMqtA==", "requires": { - "@metascraper/helpers": "^3.11.8", - "lodash": "~4.17.10" + "@metascraper/helpers": "^5.7.14", + "lodash": "~4.17.15" + }, + "dependencies": { + "@metascraper/helpers": { + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.7.14.tgz", + "integrity": "sha512-xQa24LVinzyT/5H4LKNP4YDdR/kcz+j5GIIB123DyxvhQZTRuDu8BRmEUB/Yj+jY7U5qhwabIgwCT/eN1Y9Uag==", + "requires": { + "audio-extensions": "0.0.0", + "chrono-node": "~1.3.11", + "condense-whitespace": "~2.0.0", + "entities": "~2.0.0", + "file-extension": "~4.0.5", + "has-values": "~2.0.1", + "image-extensions": "~1.1.0", + "is-relative-url": "~3.0.0", + "is-uri": "~1.2.0", + "iso-639-3": "~1.2.0", + "isostring": "0.0.1", + "lodash": "~4.17.15", + "memoize-one": "~5.1.1", + "mime-types": "~2.1.24", + "normalize-url": "~4.5.0", + "smartquotes": "~2.3.1", + "title": "~3.4.1", + "truncate": "~2.1.0", + "url-regex": "~5.0.0", + "video-extensions": "~1.1.0" + } + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + }, + "has-values": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", + "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + } } }, "metascraper-date": { - "version": "3.11.4", - "resolved": "https://registry.npmjs.org/metascraper-date/-/metascraper-date-3.11.4.tgz", - "integrity": "sha1-tJEbUDPEZmU9H3xlBmbKqn49nII=", + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/metascraper-date/-/metascraper-date-5.7.14.tgz", + "integrity": "sha512-eJKMtIFeBrnkAavkNlIT/O2bKmF2gKVgMpPbdg/9yJ+OS0pH3QTdk/I/NeU91fS0dAaC2ztwFKUqw2zjC27vew==", "requires": { - "chrono-node": "~1.3.5", - "isostring": "0.0.1" + "@metascraper/helpers": "^5.7.14" + }, + "dependencies": { + "@metascraper/helpers": { + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.7.14.tgz", + "integrity": "sha512-xQa24LVinzyT/5H4LKNP4YDdR/kcz+j5GIIB123DyxvhQZTRuDu8BRmEUB/Yj+jY7U5qhwabIgwCT/eN1Y9Uag==", + "requires": { + "audio-extensions": "0.0.0", + "chrono-node": "~1.3.11", + "condense-whitespace": "~2.0.0", + "entities": "~2.0.0", + "file-extension": "~4.0.5", + "has-values": "~2.0.1", + "image-extensions": "~1.1.0", + "is-relative-url": "~3.0.0", + "is-uri": "~1.2.0", + "iso-639-3": "~1.2.0", + "isostring": "0.0.1", + "lodash": "~4.17.15", + "memoize-one": "~5.1.1", + "mime-types": "~2.1.24", + "normalize-url": "~4.5.0", + "smartquotes": "~2.3.1", + "title": "~3.4.1", + "truncate": "~2.1.0", + "url-regex": "~5.0.0", + "video-extensions": "~1.1.0" + } + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + }, + "has-values": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", + "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + } } }, "metascraper-description": { - "version": "3.11.8", - "resolved": "https://registry.npmjs.org/metascraper-description/-/metascraper-description-3.11.8.tgz", - "integrity": "sha1-N7Dx7E0V2uQ+R+u797NEX4LPwCc=", + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/metascraper-description/-/metascraper-description-5.7.14.tgz", + "integrity": "sha512-++qN4Rf0Hx13SbhJgRiLSuVOZHsYwhUkMfHa5sVVihSJkrLVjOSdBTpNBajRC7yHwG6m6/qIesuERbT1jdu5bw==", "requires": { - "@metascraper/helpers": "^3.11.8", - "lodash": "~4.17.10" + "@metascraper/helpers": "^5.7.14" + }, + "dependencies": { + "@metascraper/helpers": { + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.7.14.tgz", + "integrity": "sha512-xQa24LVinzyT/5H4LKNP4YDdR/kcz+j5GIIB123DyxvhQZTRuDu8BRmEUB/Yj+jY7U5qhwabIgwCT/eN1Y9Uag==", + "requires": { + "audio-extensions": "0.0.0", + "chrono-node": "~1.3.11", + "condense-whitespace": "~2.0.0", + "entities": "~2.0.0", + "file-extension": "~4.0.5", + "has-values": "~2.0.1", + "image-extensions": "~1.1.0", + "is-relative-url": "~3.0.0", + "is-uri": "~1.2.0", + "iso-639-3": "~1.2.0", + "isostring": "0.0.1", + "lodash": "~4.17.15", + "memoize-one": "~5.1.1", + "mime-types": "~2.1.24", + "normalize-url": "~4.5.0", + "smartquotes": "~2.3.1", + "title": "~3.4.1", + "truncate": "~2.1.0", + "url-regex": "~5.0.0", + "video-extensions": "~1.1.0" + } + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + }, + "has-values": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", + "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + } } }, "metascraper-image": { - "version": "3.11.8", - "resolved": "https://registry.npmjs.org/metascraper-image/-/metascraper-image-3.11.8.tgz", - "integrity": "sha1-tayRlls40bRjlEmOidy6hUBbyTI=", + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/metascraper-image/-/metascraper-image-5.7.14.tgz", + "integrity": "sha512-TxnUKYU92iWapq2G55E4AF7VjGyiDO2x01Z6AyjbmRxoM4U2IaHkNpE5msyc7TQhxGoYOSvdUtOeUnqdPqr+aA==", "requires": { - "@metascraper/helpers": "^3.11.8" + "@metascraper/helpers": "^5.7.14" + }, + "dependencies": { + "@metascraper/helpers": { + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.7.14.tgz", + "integrity": "sha512-xQa24LVinzyT/5H4LKNP4YDdR/kcz+j5GIIB123DyxvhQZTRuDu8BRmEUB/Yj+jY7U5qhwabIgwCT/eN1Y9Uag==", + "requires": { + "audio-extensions": "0.0.0", + "chrono-node": "~1.3.11", + "condense-whitespace": "~2.0.0", + "entities": "~2.0.0", + "file-extension": "~4.0.5", + "has-values": "~2.0.1", + "image-extensions": "~1.1.0", + "is-relative-url": "~3.0.0", + "is-uri": "~1.2.0", + "iso-639-3": "~1.2.0", + "isostring": "0.0.1", + "lodash": "~4.17.15", + "memoize-one": "~5.1.1", + "mime-types": "~2.1.24", + "normalize-url": "~4.5.0", + "smartquotes": "~2.3.1", + "title": "~3.4.1", + "truncate": "~2.1.0", + "url-regex": "~5.0.0", + "video-extensions": "~1.1.0" + } + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + }, + "has-values": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", + "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + } } }, "metascraper-title": { - "version": "3.11.8", - "resolved": "https://registry.npmjs.org/metascraper-title/-/metascraper-title-3.11.8.tgz", - "integrity": "sha1-bMLzleUe+DDUUD34ERkS514KQyA=", + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/metascraper-title/-/metascraper-title-5.7.14.tgz", + "integrity": "sha512-ZiVo4LEfqiNHlCGjht5OSZ3yRKxcZnbaXeRmUReMkCHcFujok5YZBj5ktDpAANmG9T3x2gn3twM3ZbBSyXLYyg==", "requires": { - "@metascraper/helpers": "^3.11.8", - "lodash": "~4.17.10" + "@metascraper/helpers": "^5.7.14", + "lodash": "~4.17.15" + }, + "dependencies": { + "@metascraper/helpers": { + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.7.14.tgz", + "integrity": "sha512-xQa24LVinzyT/5H4LKNP4YDdR/kcz+j5GIIB123DyxvhQZTRuDu8BRmEUB/Yj+jY7U5qhwabIgwCT/eN1Y9Uag==", + "requires": { + "audio-extensions": "0.0.0", + "chrono-node": "~1.3.11", + "condense-whitespace": "~2.0.0", + "entities": "~2.0.0", + "file-extension": "~4.0.5", + "has-values": "~2.0.1", + "image-extensions": "~1.1.0", + "is-relative-url": "~3.0.0", + "is-uri": "~1.2.0", + "iso-639-3": "~1.2.0", + "isostring": "0.0.1", + "lodash": "~4.17.15", + "memoize-one": "~5.1.1", + "mime-types": "~2.1.24", + "normalize-url": "~4.5.0", + "smartquotes": "~2.3.1", + "title": "~3.4.1", + "truncate": "~2.1.0", + "url-regex": "~5.0.0", + "video-extensions": "~1.1.0" + } + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + }, + "has-values": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", + "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + } } }, "methods": { @@ -22774,7 +23176,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, "requires": { "path-key": "^2.0.0" } @@ -23814,6 +24215,17 @@ "execa": "^0.7.0", "lcid": "^1.0.0", "mem": "^1.1.0" + }, + "dependencies": { + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + } } }, "os-tmpdir": { @@ -24030,6 +24442,11 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, + "parse-uri": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-uri/-/parse-uri-1.0.0.tgz", + "integrity": "sha1-KHLcwi8aeXrN4Vg9igrClVLdrCA=" + }, "parse5": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", @@ -27697,6 +28114,11 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, + "punycode2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/punycode2/-/punycode2-1.0.0.tgz", + "integrity": "sha1-4rS5qaj/FX0LhEOOIDGB7niS39g=" + }, "pym.js": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/pym.js/-/pym.js-1.3.2.tgz", @@ -30851,8 +31273,7 @@ "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "signal-numbers": { "version": "0.2.2", @@ -31714,8 +32135,7 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-indent": { "version": "2.0.0", @@ -32640,6 +33060,52 @@ "integrity": "sha512-rru86D9CpQRLvsFG5XFdy0KdLAvjdQDyZCsRcuu60WtzFylDM3eAWSxEVz5kzL2Gp544XiUvPbVKtOA/txLi9Q==", "dev": true }, + "title": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/title/-/title-3.4.1.tgz", + "integrity": "sha512-CoIakPr4Gi91bm4Xp6xTuZ3EENxPcKgOJzHzrhSdUatGtFMeVJa2qxI4WNhJHgz0Jak5Ck6jY2UNFM71/yBIsw==", + "requires": { + "arg": "1.0.0", + "chalk": "2.3.0", + "clipboardy": "1.2.2", + "titleize": "1.0.0" + }, + "dependencies": { + "arg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-1.0.0.tgz", + "integrity": "sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw==" + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "requires": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "^2.0.0" + } + }, + "titleize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-1.0.0.tgz", + "integrity": "sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo=" + } + } + }, "title-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", @@ -32650,11 +33116,6 @@ "upper-case": "^1.0.3" } }, - "title-case-minors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/title-case-minors/-/title-case-minors-1.0.0.tgz", - "integrity": "sha1-UfFwN8KUdHodHNpCS1AEyG2OsRU=" - }, "titleize": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/titleize/-/titleize-1.0.1.tgz", @@ -32697,25 +33158,12 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, - "to-capital-case": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-capital-case/-/to-capital-case-1.0.0.tgz", - "integrity": "sha1-pXxQFP1aNyF88FCZ/4pCG7+cm38=", - "requires": { - "to-space-case": "^1.0.0" - } - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "to-no-case": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/to-no-case/-/to-no-case-1.0.2.tgz", - "integrity": "sha1-xyKQcWTvaxeBMsjmmTAhLRtKoWo=" - }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -32754,22 +33202,6 @@ "repeat-string": "^1.6.1" } }, - "to-sentence-case": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-sentence-case/-/to-sentence-case-1.0.0.tgz", - "integrity": "sha1-xIO/NkdzflxzjvcAb+Ng1fmcVy4=", - "requires": { - "to-no-case": "^1.0.0" - } - }, - "to-space-case": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz", - "integrity": "sha1-sFLar7Gysp3HcM6gFj5ewOvJ/Bc=", - "requires": { - "to-no-case": "^1.0.0" - } - }, "to-style": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/to-style/-/to-style-1.3.3.tgz", @@ -32785,17 +33217,6 @@ "through2": "^2.0.3" } }, - "to-title-case": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-title-case/-/to-title-case-1.0.0.tgz", - "integrity": "sha1-rKiPidYGTeUBCKl86g20SCfoAGE=", - "requires": { - "escape-regexp-component": "^1.0.2", - "title-case-minors": "^1.0.0", - "to-capital-case": "^1.0.0", - "to-sentence-case": "^1.0.0" - } - }, "to-vfile": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-5.0.2.tgz", @@ -32916,6 +33337,11 @@ "integrity": "sha512-FHkoUZvG6Egrv9XZAyYGKEyb1JMsFphgPjoczkZC2y6W93U1jswcVURB8MUvtsahEPEVACyxD47JAL63vF4JsQ==", "dev": true }, + "truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/truncate/-/truncate-2.1.0.tgz", + "integrity": "sha512-em3E3SUDONOjTBcZ36DTm3RvDded3IRU9rX32oHwwXNt3rJD5MVaFlJTQvs8tJoHRoeYP36OuQ1eL/Q7bNEWIQ==" + }, "tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", @@ -34678,6 +35104,11 @@ "unist-util-stringify-position": "^1.1.1" } }, + "video-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/video-extensions/-/video-extensions-1.1.0.tgz", + "integrity": "sha1-6qhrRfKahTwrhz6djiO1E3Epl9Y=" + }, "vinyl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", diff --git a/package.json b/package.json index 0f4ecc491..e2aff36ef 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "license": "Apache-2.0", "dependencies": { "@coralproject/bunyan-prettystream": "^0.1.4", + "@metascraper/helpers": "^5.7.14", "akismet-api": "^4.2.0", "apollo-server-express": "^2.8.1", "archiver": "^3.0.3", @@ -104,11 +105,11 @@ "lodash": "^4.17.15", "lru-cache": "^5.1.1", "luxon": "^1.12.0", - "metascraper-author": "^3.11.8", - "metascraper-date": "^3.11.4", - "metascraper-description": "^3.11.8", - "metascraper-image": "^3.11.8", - "metascraper-title": "^3.11.8", + "metascraper-author": "^5.7.14", + "metascraper-date": "^5.7.14", + "metascraper-description": "^5.7.14", + "metascraper-image": "^5.7.14", + "metascraper-title": "^5.7.14", "mongodb": "^3.2.7", "mongodb-core": "^3.2.7", "ms": "^2.1.1", diff --git a/src/core/server/services/stories/scraper/rules/helpers.ts b/src/core/server/services/stories/scraper/rules/helpers.ts new file mode 100644 index 000000000..e6372603e --- /dev/null +++ b/src/core/server/services/stories/scraper/rules/helpers.ts @@ -0,0 +1,4 @@ +import { Rule, Ruler } from "metascraper"; + +export const wrap = (rule: Rule): Ruler => ({ htmlDom, url }) => + rule(htmlDom, url); diff --git a/src/core/server/services/stories/scraper/rules/modified.ts b/src/core/server/services/stories/scraper/rules/modified.ts index 732a7c68e..46729a6d4 100644 --- a/src/core/server/services/stories/scraper/rules/modified.ts +++ b/src/core/server/services/stories/scraper/rules/modified.ts @@ -1,8 +1,12 @@ +import { $jsonld } from "@metascraper/helpers"; import { Rules } from "metascraper"; +import { wrap } from "./helpers"; + export const modifiedScraper = (): Rules => ({ modified: [ // From: http://ogp.me/#type_article - ({ htmlDom: $ }) => $('meta[property="article:modified"]').attr("content"), + wrap($jsonld("dateModified")), + wrap($ => $('meta[property="article:modified"]').attr("content")), ], }); diff --git a/src/core/server/services/stories/scraper/rules/section.ts b/src/core/server/services/stories/scraper/rules/section.ts index 717d6b51a..fdf6bfac5 100644 --- a/src/core/server/services/stories/scraper/rules/section.ts +++ b/src/core/server/services/stories/scraper/rules/section.ts @@ -1,8 +1,12 @@ +import { $jsonld } from "@metascraper/helpers"; import { Rules } from "metascraper"; +import { wrap } from "./helpers"; + export const sectionScraper = (): Rules => ({ section: [ // From: http://ogp.me/#type_article - ({ htmlDom: $ }) => $('meta[property="article:section"]').attr("content"), + wrap($jsonld("articleSection")), + wrap($ => $('meta[property="article:section"]').attr("content")), ], }); diff --git a/src/types/metascraper.d.ts b/src/types/metascraper.d.ts index e8f3cf935..429d73a30 100644 --- a/src/types/metascraper.d.ts +++ b/src/types/metascraper.d.ts @@ -1,17 +1,21 @@ declare module "metascraper" { export interface Scraper { - ( - options: { - url: string; - html: string; - } - ): Promise>; + (options: { url: string; html: string }): Promise< + Record + >; } - export type Rules = Record< - string, - Array<(options: { htmlDom: CheerioSelector }) => string | undefined> - >; + export type Ruler = (options: { + htmlDom: CheerioSelector; + url: string; + }) => string | undefined; + + export type Rule = ( + htmlDom: CheerioSelector, + url: string + ) => string | undefined; + + export type Rules = Record>; export function load(rules: Rules[]): Scraper; } @@ -40,3 +44,7 @@ declare module "metascraper-title" { import { Rules } from "metascraper"; export default function def(): Rules; } + +declare module "@metascraper/helpers" { + export const $jsonld: any; +}