From e1568284de12d1e53f45d22e9b2fbf4e6be60acf Mon Sep 17 00:00:00 2001 From: Naftali Beder Date: Mon, 23 Jan 2023 20:13:11 -0600 Subject: [PATCH 1/3] fix: regenerate lockfile to avoid yarn install error --- yarn.lock | 8667 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 5549 insertions(+), 3118 deletions(-) diff --git a/yarn.lock b/yarn.lock index a23831dd8..6d9cac47d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,799 +2,1097 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/core@^7.0.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.2.2" - "@babel/helpers" "^7.2.0" - "@babel/parser" "^7.2.2" - "@babel/template" "^7.2.2" - "@babel/traverse" "^7.2.2" - "@babel/types" "^7.2.2" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.10" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.5.5": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" - integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.6" - "@babel/helper-module-transforms" "^7.11.0" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.5" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.5" - "@babel/types" "^7.11.5" +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.8.3": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" + integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== + +"@babel/core@^7.0.0", "@babel/core@^7.5.5": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" + integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.12" + "@babel/types" "^7.20.7" convert-source-map "^1.7.0" debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" -"@babel/generator@^7.11.5", "@babel/generator@^7.11.6": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" - integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== +"@babel/generator@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" + integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== dependencies: - "@babel/types" "^7.11.5" + "@babel/types" "^7.20.7" + "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" - source-map "^0.5.0" -"@babel/generator@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc" - dependencies: - "@babel/types" "^7.2.2" - jsesc "^2.5.1" - lodash "^4.17.10" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" - dependencies: - "@babel/helper-explode-assignable-expression" "^7.1.0" - "@babel/types" "^7.0.0" +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.9" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" + integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca" + integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.2.1" + +"@babel/helper-define-polyfill-provider@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-explode-assignable-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" + integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05" + integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw== + dependencies: + "@babel/types" "^7.20.7" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== + +"@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" + integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + dependencies: + "@babel/types" "^7.20.0" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helper-wrap-function@^7.18.9": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + +"@babel/helpers@^7.20.7": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" + integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.13" + "@babel/types" "^7.20.7" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" -"@babel/helper-call-delegate@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" +"@babel/parser@^7.20.13", "@babel/parser@^7.20.7", "@babel/parser@^7.7.0": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.13.tgz#ddf1eb5a813588d2fb1692b70c6fce75b945c088" + integrity sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" + integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.7" + +"@babel/plugin-proposal-async-generator-functions@^7.20.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-class-static-block@^7.18.6": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz#92592e9029b13b15be0f7ce6a7aedc2879ca45a7" + integrity sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-define-map@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.0.0" - lodash "^4.17.10" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.20.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" -"@babel/helper-explode-assignable-expression@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== dependencies: - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" +"@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55" + integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ== dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== +"@babel/plugin-proposal-private-methods@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" +"@babel/plugin-proposal-private-property-in-object@^7.18.6": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135" + integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ== dependencies: - "@babel/types" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/helper-get-function-arity@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" - integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== dependencies: - "@babel/types" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/helper-hoist-variables@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: - "@babel/types" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/helper-member-expression-to-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: - "@babel/types" "^7.0.0" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/helper-member-expression-to-functions@^7.10.4": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" - integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: - "@babel/types" "^7.11.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: - "@babel/types" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: - "@babel/types" "^7.10.4" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/helper-module-transforms@^7.1.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963" +"@babel/plugin-syntax-import-assertions@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/template" "^7.2.2" - "@babel/types" "^7.2.2" - lodash "^4.17.10" - -"@babel/helper-module-transforms@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" - integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/template" "^7.10.4" - "@babel/types" "^7.11.0" - lodash "^4.17.19" + "@babel/helper-plugin-utils" "^7.19.0" -"@babel/helper-optimise-call-expression@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: - "@babel/types" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/helper-optimise-call-expression@^7.10.4": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: - "@babel/types" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - -"@babel/helper-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: - lodash "^4.17.10" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-replace-supers@^7.1.0": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz#19970020cf22677d62b3a689561dbd9644d8c5e5" - dependencies: - "@babel/helper-member-expression-to-functions" "^7.0.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.2.3" - "@babel/types" "^7.0.0" - -"@babel/helper-replace-supers@^7.10.4": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/helper-split-export-declaration@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: - "@babel/types" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/helper-split-export-declaration@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" - integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/helper-wrap-function@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.2.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/helpers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== +"@babel/plugin-transform-arrow-functions@^7.18.6": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" + integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/helpers@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.2.0.tgz#8335f3140f3144270dc63c4732a4f8b0a50b7a21" +"@babel/plugin-transform-async-to-generator@^7.18.6": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" + integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== dependencies: - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.5" - "@babel/types" "^7.2.0" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== +"@babel/plugin-transform-block-scoping@^7.20.2": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz#9f5a3424bd112a3f32fe0cf9364fbb155cff262a" + integrity sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/highlight@^7.16.7": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" - integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== +"@babel/plugin-transform-classes@^7.20.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz#f438216f094f6bb31dc266ebfab8ff05aecad073" + integrity sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.0.0", "@babel/parser@^7.2.2", "@babel/parser@^7.2.3": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz#32f5df65744b70888d17872ec106b02434ba1489" - -"@babel/parser@^7.10.4", "@babel/parser@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" - integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + globals "^11.1.0" -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" +"@babel/plugin-transform-computed-properties@^7.18.9": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" + integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/template" "^7.20.7" -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" +"@babel/plugin-transform-destructuring@^7.20.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454" + integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-proposal-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz#88f5fec3e7ad019014c97f7ee3c992f0adbf7fb8" +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-proposal-unicode-property-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.2.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" +"@babel/plugin-transform-for-of@^7.18.8": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" + integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-syntax-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" +"@babel/plugin-transform-modules-amd@^7.19.6": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" + integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-async-to-generator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff" +"@babel/plugin-transform-modules-commonjs@^7.19.6": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607" + integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw== dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-simple-access" "^7.20.2" -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" +"@babel/plugin-transform-modules-systemjs@^7.19.6": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" + integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-identifier" "^7.19.1" -"@babel/plugin-transform-block-scoping@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4" +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.10" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-classes@^7.2.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" +"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" + integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.1.0" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - globals "^11.1.0" + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" +"@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-destructuring@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz#e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3" +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-dotall-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" +"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f" + integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-duplicate-keys@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" +"@babel/plugin-transform-regenerator@^7.18.6": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" + integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.20.2" + regenerator-transform "^0.15.1" -"@babel/plugin-transform-for-of@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-function-name@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" +"@babel/plugin-transform-runtime@^7.0.0": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194" + integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + semver "^6.3.0" -"@babel/plugin-transform-modules-amd@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" +"@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-commonjs@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" +"@babel/plugin-transform-spread@^7.19.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" -"@babel/plugin-transform-modules-systemjs@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068" +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-umd@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-new-target@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-object-super@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" +"@babel/plugin-transform-unicode-escapes@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-parameters@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2" +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== dependencies: - "@babel/helper-call-delegate" "^7.1.0" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-regenerator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" +"@babel/polyfill@^7.0.0": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.12.1.tgz#1f2d6371d1261bbd961f3c5d5909150e12d0bd96" + integrity sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g== dependencies: - regenerator-transform "^0.13.3" + core-js "^2.6.5" + regenerator-runtime "^0.13.4" -"@babel/plugin-transform-runtime@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea" +"@babel/preset-env@^7.0.0": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" + integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== + dependencies: + "@babel/compat-data" "^7.20.1" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.20.1" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.2" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.18.6" + "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.20.2" + "@babel/plugin-transform-classes" "^7.20.2" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.20.2" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.19.6" + "@babel/plugin-transform-modules-commonjs" "^7.19.6" + "@babel/plugin-transform-modules-systemjs" "^7.19.6" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.20.1" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.19.0" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.20.2" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + core-js-compat "^3.25.1" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== dependencies: - "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - resolve "^1.8.1" - semver "^5.5.1" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" +"@babel/runtime-corejs2@^7.2.0": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.20.13.tgz#a8f31b768d5b71b48bb288d6bca0b85e518ccf92" + integrity sha512-K2yRNithMJG4epI509n4ljPjogMhmYCB887iSD7rRecxWC9dkbfJZCPGj0BQaqG3d3Qkpb1SotEmyeMmtnvxhw== + dependencies: + core-js "^2.6.12" + regenerator-runtime "^0.13.11" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.8.4": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" + integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.4.4": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.0": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" + integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.13" + "@babel/types" "^7.20.7" + debug "^4.1.0" + globals "^11.1.0" -"@babel/plugin-transform-spread@^7.2.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" +"@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.7.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@babel/plugin-transform-template-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" +"@jesses/circle-github-bot@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@jesses/circle-github-bot/-/circle-github-bot-2.1.0.tgz#0f43429ff7bc17a962812c22adb25b890367b16d" + integrity sha512-c8f1j7Cdhb7bSq3i8VqpWhzuM/yDvMWxzXCV4r2FKpL8nHFjVN1UdggKm5TCym98drZm28abwuKLCEym2aTadg== -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" -"@babel/plugin-transform-unicode-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" -"@babel/polyfill@^7.0.0": - version "7.2.5" - resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.2.5.tgz#6c54b964f71ad27edddc567d065e57e87ed7fa7d" - dependencies: - core-js "^2.5.7" - regenerator-runtime "^0.12.0" +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@babel/preset-env@^7.0.0": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.3.tgz#948c8df4d4609c99c7e0130169f052ea6a7a8933" - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.2.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.2.0" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.2.0" - "@babel/plugin-transform-classes" "^7.2.0" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.2.0" - "@babel/plugin-transform-dotall-regex" "^7.2.0" - "@babel/plugin-transform-duplicate-keys" "^7.2.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.2.0" - "@babel/plugin-transform-function-name" "^7.2.0" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.2.0" - "@babel/plugin-transform-modules-systemjs" "^7.2.0" - "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-new-target" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.2.0" - "@babel/plugin-transform-parameters" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.2.0" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.2.0" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.2.0" - browserslist "^4.3.4" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.3.0" +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@babel/runtime-corejs2@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.2.0.tgz#5ccd722b72d2c18c6a7224b5751f4b9816b60ada" - dependencies: - core-js "^2.5.7" - regenerator-runtime "^0.12.0" +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@babel/runtime@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f" +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== dependencies: - regenerator-runtime "^0.12.0" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" -"@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907" +"@octokit/auth-token@^2.4.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.2.2" - "@babel/types" "^7.2.2" + "@octokit/types" "^6.0.3" -"@babel/template@^7.10.4", "@babel/template@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== +"@octokit/endpoint@^6.0.1": + version "6.0.12" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" + "@octokit/types" "^6.0.3" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2", "@babel/traverse@^7.2.3": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz#7ff50cefa9c7c0bd2d81231fdac122f3957748d8" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.2.2" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.2.3" - "@babel/types" "^7.2.2" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.10" - -"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" - integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.5" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.5" - "@babel/types" "^7.11.5" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" +"@octokit/openapi-types@^12.11.0": + version "12.11.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz#44e10fc24e33af524488b716cdaee5360ea8ed1e" +"@octokit/plugin-paginate-rest@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc" + integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q== dependencies: - esutils "^2.0.2" - lodash "^4.17.10" - to-fast-properties "^2.0.0" + "@octokit/types" "^2.0.1" -"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.5.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" - integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== +"@octokit/plugin-request-log@^1.0.0": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e" + integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" + "@octokit/types" "^2.0.1" + deprecation "^2.3.1" -"@iamstarkov/listr-update-renderer@0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz#d7c48092a2dcf90fd672b6c8b458649cb350c77e" +"@octokit/request-error@^1.0.2": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" + integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" + "@octokit/types" "^2.0.0" + deprecation "^2.0.0" + once "^1.4.0" -"@jesses/circle-github-bot@^2.1.0": +"@octokit/request-error@^2.1.0": version "2.1.0" - resolved "https://registry.yarnpkg.com/@jesses/circle-github-bot/-/circle-github-bot-2.1.0.tgz#0f43429ff7bc17a962812c22adb25b890367b16d" - -"@octokit/endpoint@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-3.1.1.tgz#ede9afefaa4d6b7584169e12346425c6fbb45cc3" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== dependencies: - deepmerge "3.0.0" - is-plain-object "^2.0.4" - universal-user-agent "^2.0.1" - url-template "^2.0.8" + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + once "^1.4.0" -"@octokit/request@2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-2.2.1.tgz#1b445e3052842b1f3ab94d68e2606840c85b4265" +"@octokit/request@^5.2.0": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== dependencies: - "@octokit/endpoint" "^3.1.1" - is-plain-object "^2.0.4" - node-fetch "^2.3.0" - universal-user-agent "^2.0.1" + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" "@octokit/rest@^16.9.0": - version "16.9.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.9.0.tgz#8fda1952b28c7671872620ad4f6884bd7d22802f" - dependencies: - "@octokit/request" "2.2.1" - before-after-hook "^1.2.0" + version "16.43.2" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.2.tgz#c53426f1e1d1044dee967023e3279c50993dd91b" + integrity sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ== + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/plugin-paginate-rest" "^1.1.1" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "2.4.0" + "@octokit/request" "^5.2.0" + "@octokit/request-error" "^1.0.2" + atob-lite "^2.0.0" + before-after-hook "^2.0.0" btoa-lite "^1.0.0" + deprecation "^2.0.0" lodash.get "^4.4.2" - lodash.pick "^4.4.0" lodash.set "^4.3.2" lodash.uniq "^4.5.0" octokit-pagination-methods "^1.1.0" - universal-user-agent "^2.0.0" - url-template "^2.0.8" + once "^1.4.0" + universal-user-agent "^4.0.0" + +"@octokit/types@^2.0.0", "@octokit/types@^2.0.1": + version "2.16.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2" + integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1": + version "6.41.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== + dependencies: + "@octokit/openapi-types" "^12.11.0" "@postlight/ci-failed-test-reporter@^1.0": - version "1.0.22" - resolved "https://registry.yarnpkg.com/@postlight/ci-failed-test-reporter/-/ci-failed-test-reporter-1.0.22.tgz#c382c3e75a4bcf078e4ed1abf14ea63d074d56b3" + version "1.0.26" + resolved "https://registry.yarnpkg.com/@postlight/ci-failed-test-reporter/-/ci-failed-test-reporter-1.0.26.tgz#dbb8a07bf2e500476dc6bac0611aac2c8fbbe567" + integrity sha512-xfXzxyOiKhco7Gx2OLTe9b66b0dFJw0elg94KGHoQXf5F8JqqFvdo35J8wayGOor64CSMvn+4Bjlu2NKV+yTGA== dependencies: dotenv "^6.2.0" node-fetch "^2.3.0" @@ -816,20 +1114,16 @@ safe-buffer "^5.0.1" "@samverschueren/stream-to-observable@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" + version "0.3.1" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== dependencies: any-observable "^0.3.0" -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/component-emitter@^1.2.10": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.11.tgz#50d47d42b347253817a39709fef03ce66a108506" - integrity sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ== +"@socket.io/component-emitter@~3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" + integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== "@types/cookie@^0.4.1": version "0.4.1" @@ -837,39 +1131,74 @@ integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== "@types/cors@^2.8.12": - version "2.8.12" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + version "2.8.13" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.13.tgz#b8ade22ba455a1b8cb3b5d3f35910fd204f84f94" + integrity sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA== + dependencies: + "@types/node" "*" + +"@types/debug@^4.0.0": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" +"@types/estree-jsx@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.0.tgz#7bfc979ab9f692b492017df42520f7f765e98df1" + integrity sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ== + dependencies: + "@types/estree" "*" -"@types/node@*": - version "10.12.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== -"@types/node@>=10.0.0": - version "17.0.31" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.31.tgz#a5bb84ecfa27eec5e1c802c6bbf8139bdb163a5d" - integrity sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q== +"@types/hast@^2.0.0": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" + integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + dependencies: + "@types/unist" "*" -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/unist@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.2.tgz#5dc0a7f76809b7518c0df58689cd16a19bd751c6" +"@types/mdast@^3.0.0": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" + integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + dependencies: + "@types/unist" "*" -"@types/unist@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" - integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + +"@types/node@*", "@types/node@>= 8", "@types/node@>=10.0.0": + version "18.11.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== JSONStream@^1.0.3: - version "1.2.1" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.2.1.tgz#32aa5790e799481083b49b4b7fa94e23bae69bf9" + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" @@ -879,20 +1208,13 @@ abab@^2.0.0: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abbrev@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -accepts@~1.3.4, accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" +accepts@~1.3.4, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" - -acorn-dynamic-import@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + mime-types "~2.1.34" + negotiator "0.6.3" acorn-globals@^4.1.0: version "4.3.4" @@ -903,54 +1225,45 @@ acorn-globals@^4.1.0: acorn-walk "^6.0.1" acorn-jsx@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-node@^1.3.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.6.2.tgz#b7d7ceca6f22e6417af933a62cad4de01048d5d2" +acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== dependencies: - acorn "^6.0.2" - acorn-dynamic-import "^4.0.0" - acorn-walk "^6.1.0" - xtend "^4.0.1" + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" acorn-walk@^6.0.1: version "6.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== -acorn-walk@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" - -acorn@^1.0.3: - version "1.2.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" - -acorn@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" +acorn-walk@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^5.5.3: +acorn@^5.5.3, acorn@^5.7.3: version "5.7.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== -acorn@^5.7.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - -acorn@^6.0.1: +acorn@^6.0.1, acorn@^6.0.7: version "6.4.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^6.0.2, acorn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.5.tgz#81730c0815f3f3b34d8efa95cb7430965f4d887a" +acorn@^7.0.0, acorn@^7.1.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -ajv@^6.5.3, ajv@^6.5.5, ajv@^6.6.1: +ajv@^6.10.2, ajv@^6.12.3, ajv@^6.9.1: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -963,39 +1276,34 @@ ajv@^6.5.3, ajv@^6.5.5, ajv@^6.6.1: ansi-colors@3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" + integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== -ansi-escapes@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: - type-fest "^0.11.0" + type-fest "^0.21.3" ansi-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-regex@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== ansi-regex@^5.0.1: version "5.0.1" @@ -1005,43 +1313,39 @@ ansi-regex@^5.0.1: ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" normalize-path "^2.1.1" anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -1049,65 +1353,64 @@ anymatch@~3.1.2: append-transform@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + integrity sha512-Yisb7ew0ZEyDtRYQ+b+26o9KbiYPFxwcsxKzbssigzRRMJ9LpExPVUg6Fos7eP7yP3q7///tzze4nm4lTptPBw== dependencies: default-require-extensions "^1.0.0" application-config-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.0.tgz#193c5f0a86541a4c66fba1e2dc38583362ea5e8f" + version "0.1.1" + resolved "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.1.tgz#8b5ac64ff6afdd9bd70ce69f6f64b6998f5f756e" + integrity sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw== -application-config@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/application-config/-/application-config-1.0.1.tgz#5aa2e2a5ed6abd2e5d1d473d3596f574044fe9e7" +application-config@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/application-config/-/application-config-2.0.0.tgz#15b4d54d61c0c082f9802227e3e85de876b47747" + integrity sha512-NC5/0guSZK3/UgUDfCk/riByXzqz0owL1L3r63JPSBzYk5QALrp3bLxbsR7qeSfvYfFmAhnp3dbqYsW3U9MpZQ== dependencies: application-config-path "^0.1.0" - mkdirp "^0.5.1" - -aproba@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" - -are-we-there-yet@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.0 || ^1.1.13" + load-json-file "^6.2.0" + write-json-file "^4.2.0" argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" -aria-query@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== dependencies: - ast-types-flow "0.0.7" - commander "^2.11.0" + deep-equal "^2.0.5" arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA== dependencies: arr-flatten "^1.0.1" arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== -arr-flatten@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" - -arr-flatten@^1.1.0: +arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== array-equal@^1.0.0: version "1.0.0" @@ -1117,47 +1420,102 @@ array-equal@^1.0.0: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== array-from@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + integrity sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg== -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" +array-includes@^3.1.5, array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg== array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.flat@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" -arrify@^1.0.0, arrify@^1.0.1: +array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.reduce@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" + integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +array.prototype.tosorted@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + +arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -asn1.js@^4.0.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.0.tgz#f71a1243f3e79d46d7b07d7fbf4824ee73af054a" +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" asn1@~0.2.3: version "0.2.6" @@ -1172,57 +1530,74 @@ assert-plus@1.0.0, assert-plus@^1.0.0: integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assert@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: + object-assign "^4.1.1" util "0.10.3" assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== -ast-types-flow@0.0.7, ast-types-flow@^0.0.7: +ast-types-flow@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - -astw@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astw/-/astw-2.0.0.tgz#08121ac8288d35611c0ceec663f6cd545604897d" - dependencies: - acorn "^1.0.3" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== async-each@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^2.1.4, async@~2.6.1: +async@^2.1.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" +async@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -atob@^2.1.1: +atob-lite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" + integrity sha512-LEeSAWeh2Gfa2FtlQE1shxQ8zi5F9GHarrGKz08TMdODD5T4eH6BMsvtnhbWZ+XQn+Gb6om/917ucvRu7l7ukw== + +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sign2@~0.7.0: version "0.7.0" @@ -1230,27 +1605,26 @@ aws-sign2@~0.7.0: integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axobject-query@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" - dependencies: - ast-types-flow "0.0.7" +axe-core@^4.6.2: + version "4.6.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" + integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== -babel-code-frame@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" +axobject-query@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== dependencies: - chalk "^1.1.0" - esutils "^2.0.2" - js-tokens "^2.0.0" + deep-equal "^2.0.5" babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -1259,6 +1633,7 @@ babel-code-frame@^6.26.0: babel-core@^6.0.0, babel-core@^6.26.0: version "6.26.3" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== dependencies: babel-code-frame "^6.26.0" babel-generator "^6.26.0" @@ -1283,33 +1658,24 @@ babel-core@^6.0.0, babel-core@^6.26.0: babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== babel-eslint@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed" + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - eslint-scope "3.7.1" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" -babel-generator@^6.18.0: - version "6.19.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.19.0.tgz#9b2f244204777a3d6810ec127c673c87b349fac5" - dependencies: - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.19.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.2.0" - source-map "^0.5.0" - -babel-generator@^6.26.0: +babel-generator@^6.18.0, babel-generator@^6.26.0: version "6.26.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== dependencies: babel-messages "^6.23.0" babel-runtime "^6.26.0" @@ -1323,6 +1689,7 @@ babel-generator@^6.26.0: babel-helpers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ== dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" @@ -1330,6 +1697,7 @@ babel-helpers@^6.24.1: babel-jest@^23.4.2, babel-jest@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" + integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew== dependencies: babel-plugin-istanbul "^4.1.6" babel-preset-jest "^23.2.0" @@ -1337,18 +1705,14 @@ babel-jest@^23.4.2, babel-jest@^23.6.0: babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== dependencies: babel-runtime "^6.22.0" -babel-messages@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" - dependencies: - babel-runtime "^6.0.0" - babel-plugin-istanbul@^4.1.6: version "4.1.6" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ== dependencies: babel-plugin-syntax-object-rest-spread "^6.13.0" find-up "^2.1.0" @@ -1358,14 +1722,17 @@ babel-plugin-istanbul@^4.1.6: babel-plugin-jest-hoist@^23.2.0: version "23.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" + integrity sha512-N0MlMjZtahXK0yb0K3V9hWPrq5e7tThbghvDr0k3X75UuOOqwsWW6mk8XHD2QvEC0Ca9dLIfTgNU36TeJD6Hnw== babel-plugin-module-alias@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/babel-plugin-module-alias/-/babel-plugin-module-alias-1.6.0.tgz#df7e3aaba3544f4c06a9d3314a26bbbff6d87b61" + integrity sha512-UXZKdjiV7kns1dw0SPpHPnFGOoH+SFbO81uqW4iX2tjx7YhkXMRkRIjD0WGxfo1jjgluHCbkWrf2goSPye0VNA== babel-plugin-module-resolver@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.1.2.tgz#5d4bd3572eb1d1d4c7ca37bd53de8ec82d251dcb" + version "3.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7" + integrity sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA== dependencies: find-babel-config "^1.1.0" glob "^7.1.2" @@ -1373,6 +1740,30 @@ babel-plugin-module-resolver@^3.1.2: reselect "^3.0.1" resolve "^1.4.0" +babel-plugin-polyfill-corejs2@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" + integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + core-js-compat "^3.25.1" + +babel-plugin-polyfill-regenerator@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" + integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + babel-plugin-static-fs@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/babel-plugin-static-fs/-/babel-plugin-static-fs-2.0.1.tgz#3d3df782e7063848c40b2a75ef4505e5cfc91215" @@ -1387,10 +1778,12 @@ babel-plugin-static-fs@^2.0.1: babel-plugin-syntax-object-rest-spread@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w== babel-preset-jest@^23.2.0: version "23.2.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" + integrity sha512-AdfWwc0PYvDtwr009yyVNh72Ev68os7SsPmOFVX7zSA+STXuk5CV2iMVazZU01bEoHCSwTkgv4E4HOOcODPkPg== dependencies: babel-plugin-jest-hoist "^23.2.0" babel-plugin-syntax-object-rest-spread "^6.13.0" @@ -1398,6 +1791,7 @@ babel-preset-jest@^23.2.0: babel-register@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A== dependencies: babel-core "^6.26.0" babel-runtime "^6.26.0" @@ -1407,33 +1801,18 @@ babel-register@^6.26.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@^6.0.0, babel-runtime@^6.9.0, babel-runtime@^6.9.1: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.9.5" - babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" - dependencies: - babel-runtime "^6.9.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" - babylon "^6.11.0" - lodash "^4.2.0" - -babel-template@^6.24.1, babel-template@^6.26.0: +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== dependencies: babel-runtime "^6.26.0" babel-traverse "^6.26.0" @@ -1441,9 +1820,10 @@ babel-template@^6.24.1, babel-template@^6.26.0: babylon "^6.18.0" lodash "^4.17.4" -babel-traverse@^6.0.0, babel-traverse@^6.26.0: +babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== dependencies: babel-code-frame "^6.26.0" babel-messages "^6.23.0" @@ -1455,69 +1835,49 @@ babel-traverse@^6.0.0, babel-traverse@^6.26.0: invariant "^2.2.2" lodash "^4.17.4" -babel-traverse@^6.16.0, babel-traverse@^6.18.0: - version "6.19.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.19.0.tgz#68363fb821e26247d52a519a84b2ceab8df4f55a" - dependencies: - babel-code-frame "^6.16.0" - babel-messages "^6.8.0" - babel-runtime "^6.9.0" - babel-types "^6.19.0" - babylon "^6.11.0" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-types@^6.0.0, babel-types@^6.26.0: +babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== dependencies: babel-runtime "^6.26.0" esutils "^2.0.2" lodash "^4.17.4" to-fast-properties "^1.0.3" -babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.19.0: - version "6.19.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.19.0.tgz#8db2972dbed01f1192a8b602ba1e1e4c516240b9" - dependencies: - babel-runtime "^6.9.1" - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" - babelify@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" + integrity sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg== babelrc-rollup@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/babelrc-rollup/-/babelrc-rollup-3.0.0.tgz#fcecdbe3eb6400cf4e769233c1786a2fafe8b56c" + integrity sha512-ebjjFiQbOxe5phU4XnDsrkQYF3UxcR28wY1fNg/rJq/8MJklJ7qS3Y/rFEDm6yPoAXJzIt1Q2a+vgx5ob2huXQ== dependencies: resolve "^1.1.7" -babylon@^6.11.0: - version "6.14.1" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" - babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== bail@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz#63cfb9ddbac829b02a3128cd53224be78e6c21a3" + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== -base64-js@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.1.2: +base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -1530,6 +1890,7 @@ base64id@2.0.0, base64id@~2.0.0: base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" class-utils "^0.3.5" @@ -1546,66 +1907,65 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -before-after-hook@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.3.2.tgz#7bfbf844ad670aa7a96b5a4e4e15bd74b08ed66b" +before-after-hook@^2.0.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== binary-extensions@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bl@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz#fc5421a28fd4226036c3b3891a66a25bc64d226e" +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== dependencies: - readable-stream "~2.0.5" + file-uri-to-path "1.0.0" -bl@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" +bl@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: - readable-stream "~2.0.5" + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" -bl@~1.2.0: - version "1.2.2" - resolved "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" +bl@~4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.4.tgz#f4fda39f81a811d0df6368c1ed91dae499d1c900" + integrity sha512-7tdr4EpSd7jJ6tuQ21vu2ke8w7pNEstzj1O8wwq6sNNzO3UDi5MA8Gny/gquCj7r2C6fHudg8tKRGyjRgmvNxQ== dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" bluebird@^2.6.2: version "2.11.0" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + integrity sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -body-parser@1.18.3: - version "1.18.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "~1.6.3" - iconv-lite "0.4.23" - on-finished "~2.3.0" - qs "6.5.2" - raw-body "2.3.3" - type-is "~1.6.16" +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@^1.19.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== +body-parser@1.20.1, body-parser@^1.19.0: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" content-type "~1.0.4" @@ -1615,7 +1975,7 @@ body-parser@^1.19.0: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.10.3" + qs "6.11.0" raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" @@ -1623,10 +1983,12 @@ body-parser@^1.19.0: boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -1634,6 +1996,7 @@ brace-expansion@^1.1.7: braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw== dependencies: expand-range "^1.8.1" preserve "^0.2.0" @@ -1642,6 +2005,7 @@ braces@^1.8.2: braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" array-unique "^0.3.2" @@ -1671,18 +2035,19 @@ brfs-babel@^2.0.0: through2 "^2.0.0" brfs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brfs/-/brfs-2.0.1.tgz#d19370b3fad787a24af1eee5474ad7ec9c305d3a" + version "2.0.2" + resolved "https://registry.yarnpkg.com/brfs/-/brfs-2.0.2.tgz#44237878fa82aa479ce4f5fe2c1796ec69f07845" + integrity sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ== dependencies: quote-stream "^1.0.1" resolve "^1.1.5" - static-module "^3.0.0" + static-module "^3.0.2" through2 "^2.0.0" brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== brotli@~1.3.2: version "1.3.3" @@ -1692,12 +2057,14 @@ brotli@~1.3.2: base64-js "^1.1.2" browser-pack@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.1.tgz#779887c792eaa1f64a46a22c8f1051cdcd96755f" + version "6.1.0" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" + integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== dependencies: JSONStream "^1.0.3" - combine-source-map "~0.7.1" + combine-source-map "~0.8.0" defined "^1.0.0" + safe-buffer "^5.1.1" through2 "^2.0.0" umd "^3.0.0" @@ -1712,83 +2079,97 @@ browser-process-hrtime@^1.0.0: dependencies: http-headers "^3.0.1" -browser-resolve@^1.11.0, browser-resolve@^1.7.0: - version "1.11.2" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" - dependencies: - resolve "1.1.7" - -browser-resolve@^1.11.3: +browser-resolve@^1.11.0, browser-resolve@^1.11.3: version "1.11.3" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== dependencies: resolve "1.1.7" +browser-resolve@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" + integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== + dependencies: + resolve "^1.17.0" + browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: - buffer-xor "^1.0.2" + buffer-xor "^1.0.3" cipher-base "^1.0.0" create-hash "^1.1.0" - evp_bytestokey "^1.0.0" + evp_bytestokey "^1.0.3" inherits "^2.0.1" + safe-buffer "^5.0.1" browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" evp_bytestokey "^1.0.0" browserify-des@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" des.js "^1.0.0" inherits "^2.0.1" + safe-buffer "^5.1.2" -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.0.tgz#10773910c3c206d5420a46aad8694f820b85968f" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" browserify-zlib@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" browserify@^16.1.0, browserify@^16.2.3: - version "16.2.3" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" + version "16.5.2" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.2.tgz#d926835e9280fa5fd57f5bc301f2ef24a972ddfe" + integrity sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g== dependencies: JSONStream "^1.0.3" assert "^1.4.0" browser-pack "^6.0.1" - browser-resolve "^1.11.0" + browser-resolve "^2.0.0" browserify-zlib "~0.2.0" - buffer "^5.0.2" + buffer "~5.2.1" cached-path-relative "^1.0.0" concat-stream "^1.6.0" console-browserify "^1.1.0" @@ -1806,8 +2187,8 @@ browserify@^16.1.0, browserify@^16.2.3: inherits "~2.0.1" insert-module-globals "^7.0.0" labeled-stream-splicer "^2.0.0" - mkdirp "^0.5.0" - module-deps "^6.0.0" + mkdirp-classic "^0.5.2" + module-deps "^6.2.3" os-browserify "~0.3.0" parents "^1.0.1" path-browserify "~0.0.0" @@ -1820,7 +2201,7 @@ browserify@^16.1.0, browserify@^16.2.3: shasum "^1.0.0" shell-quote "^1.6.1" stream-browserify "^2.0.0" - stream-http "^2.0.0" + stream-http "^3.0.0" string_decoder "^1.1.1" subarg "^1.0.0" syntax-error "^1.1.1" @@ -1832,70 +2213,78 @@ browserify@^16.1.0, browserify@^16.2.3: vm-browserify "^1.0.0" xtend "^4.0.0" -browserslist@^4.3.4: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== +browserslist@^4.21.3, browserslist@^4.21.4: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" -bser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== dependencies: node-int64 "^0.4.0" btoa-lite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA== buffer-equal@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + integrity sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA== buffer-es6@^4.9.3: version "4.9.3" resolved "https://registry.yarnpkg.com/buffer-es6/-/buffer-es6-4.9.3.tgz#f26347b82df76fd37e18bcb5288c4970cfd5c404" + integrity sha512-Ibt+oXxhmeYJSsCkODPqNpPmyegefiD8rfutH1NYGhMZQhSp95Rz7haemgnJ6dxa6LT+JLLbtgOMORRluwKktw== buffer-from@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" + integrity sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg== buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - -buffer-xor@^1.0.2: +buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" -buffer@^5.0.2: +buffer@~5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" -builtin-modules@^1.0.0, builtin-modules@^1.1.0: +builtin-modules@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ== -builtin-status-codes@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-2.0.0.tgz#6f22003baacf003ccd287afe6872151fddc58579" - -bytes@3.0.0: +builtin-status-codes@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== bytes@3.1.2: version "3.1.2" @@ -1905,6 +2294,7 @@ bytes@3.1.2: cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" component-emitter "^1.2.1" @@ -1916,12 +2306,12 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cached-path-relative@^1.0.0: +cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== -call-bind@^1.0.0: +call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== @@ -1932,39 +2322,46 @@ call-bind@^1.0.0: caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== callsites@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== camelcase@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001332: - version "1.0.30001338" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001338.tgz#b5dd7a7941a51a16480bdf6ff82bded1628eec0d" - integrity sha512-1gLHWyfVoRDsHieO+CaeYe7jSo/MT7D7lhaXUiwwbuR5BwQxORs0f1tAwUSQr3YbxRXJvxHM/PA5FfPQRnsPeQ== +caniuse-lite@^1.0.30001400: + version "1.0.30001447" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001447.tgz#ef1f39ae38d839d7176713735a8e467a0a2523bd" + integrity sha512-bdKU1BQDPeEXe9A39xJnGtY0uRq/z5osrnXUw0TcK+EYno45Y+U7QU9HhHEyzvMDffpYadFXi3idnSNkcwLkTw== capture-exit@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + integrity sha512-IS4lTgp57lUcpXzyCaiUQcRZBxZAkzl+jNXrMUXZjdnr2yujpKUMG9OYeYL29i6fL66ihypvVJ/MeX0B+9pWOg== dependencies: rsvp "^3.3.3" @@ -1974,23 +2371,32 @@ caseless@~0.12.0: integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== ccount@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz#f1cec43f332e2ea5a569fd46f9f5bde4e6102aff" + version "1.1.0" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== chai@^4.1.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + version "4.3.7" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" + integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== dependencies: assertion-error "^1.1.0" check-error "^1.0.2" - deep-eql "^3.0.1" + deep-eql "^4.1.2" get-func-name "^2.0.0" - pathval "^1.1.0" + loupe "^2.3.1" + pathval "^1.1.1" type-detect "^4.0.5" -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.3: +chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -2001,6 +2407,7 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.3: chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" @@ -2015,65 +2422,74 @@ chalk@^3.0.0: supports-color "^7.1.0" chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - changelog-maker@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/changelog-maker/-/changelog-maker-2.3.0.tgz#c60e71fdd0448fd33372eb4e14b69818a7b61c8c" - dependencies: - async "~2.6.1" - chalk "~2.4.1" - commit-stream "~1.1.0" - debug "~4.1.0" - ghauth "~3.2.1" - ghissues "~1.1.3" - gitexec "~1.0.0" - list-stream "~1.0.1" - minimist "~1.2.0" - pkg-to-id "~0.0.3" - split2 "~3.0.0" - strip-ansi "~5.0.0" + version "2.8.0" + resolved "https://registry.yarnpkg.com/changelog-maker/-/changelog-maker-2.8.0.tgz#86ec5a8bc8981428afd736947c7db84a361f4c81" + integrity sha512-Z9vLdLFRwOy49FSzZHZDtya/JewMGfIHNfk3+fNWs/h5zuYwuMEl+IMmpCl9jD+74QZnOjDzfXcybc6tlapeHw== + dependencies: + async "^3.2.0" + chalk "^4.1.0" + commit-stream "^1.1.0" + debug "^4.3.1" + ghauth "^5.0.1" + ghissues "^1.1.4" + gitexec "^2.0.1" + list-stream "^2.0.0" + minimist "^1.2.5" + pkg-to-id "0.0.3" + remark "^14.0.1" + remark-parse "^10.0.0" + remark-preset-lint-node "^3.2.0" + remark-stringify "^10.0.0" + split2 "^4.0.0" + strip-ansi "^6.0.0" character-entities-html4@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz#c44fdde3ce66b52e8d321d6c1bf46101f0150610" + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" + integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== character-entities-legacy@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz#7c6defb81648498222c9855309953d05f4d63a9c" + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== character-entities@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.2.tgz#58c8f371c0774ef0ba9b2aca5f00d8f100e6e363" + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== character-reference-invalid@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz#21e421ad3d84055952dab4a43a04e73cd425d3ed" + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== cheerio@^0.22.0: version "0.22.0" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA== dependencies: css-select "~1.2.0" dom-serializer "~0.1.0" @@ -2093,8 +2509,9 @@ cheerio@^0.22.0: lodash.some "^4.4.0" chokidar@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.2.tgz#9c23ea40b01638439e0513864d362aeacc5ad058" + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -2106,7 +2523,7 @@ chokidar@^2.1.1: normalize-path "^3.0.0" path-is-absolute "^1.0.0" readdirp "^2.2.1" - upath "^1.1.0" + upath "^1.1.1" optionalDependencies: fsevents "^1.2.7" @@ -2125,32 +2542,28 @@ chokidar@^3.0.0, chokidar@^3.5.1: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cipher-base@^1.0.0, cipher-base@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" - -circular-json@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + safe-buffer "^5.0.1" class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" define-property "^0.2.5" @@ -2160,6 +2573,7 @@ class-utils@^0.3.5: cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== dependencies: restore-cursor "^2.0.0" @@ -2171,20 +2585,22 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-spinners@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" - integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== dependencies: slice-ansi "0.0.4" string-width "^1.0.1" cli-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== cli-width@^3.0.0: version "3.0.0" @@ -2194,11 +2610,21 @@ cli-width@^3.0.0: cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -2209,28 +2635,34 @@ cliui@^7.0.2: wrap-ansi "^7.0.0" clone@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== co@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" + integrity sha512-CQsjCRiNObI8AtTsNIBDRMQ4oMR83CzEswHYahClvul7gKk+lDQiOKv+5qh7LQWf5sh6jkZNispz/QlsZxyNgA== co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== -collapse-white-space@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.4.tgz#ce05cf49e54c3277ae573036a26851ba430a0091" +collapse-white-space@^1.0.2, collapse-white-space@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== dependencies: map-visit "^1.0.0" object-visit "^1.0.0" @@ -2238,6 +2670,7 @@ collection-visit@^1.0.0: color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" @@ -2251,20 +2684,17 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colors@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combine-source-map@~0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.7.2.tgz#0870312856b307a87cc4ac486f3a9a62aeccc09e" +combine-source-map@^0.8.0, combine-source-map@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + integrity sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg== dependencies: convert-source-map "~1.1.0" inline-source-map "~0.6.0" @@ -2278,27 +2708,20 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.11.0, commander@^2.14.1, commander@^2.20.0, commander@^2.9.0: +commander@^2.14.1, commander@^2.20.0, commander@^2.9.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@~2.17.1: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - -commit-stream@~1.1.0: +commit-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/commit-stream/-/commit-stream-1.1.0.tgz#987de93a3e4705015854743f807de4303930f8bd" + integrity sha512-+ABU47SlJQFd6z7BwLOujoHrbdxUF42lL3N6lukQLZCbAKdIBiveGFmhVHQOA6+xzPI6YX7KhTV2gTMpWFgG4A== dependencies: strip-ansi "~3.0.0" through2 "~2.0.0" component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== @@ -2306,10 +2729,12 @@ component-emitter@~1.3.0: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.6.0, concat-stream@~1.6.0: +concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" inherits "^2.0.3" @@ -2326,13 +2751,10 @@ concat-stream@^2.0.0: readable-stream "^3.0.2" typedarray "^0.0.6" -concat-stream@~1.5.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" +confusing-browser-globals@^1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" + integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== connect@^3.7.0: version "3.7.0" @@ -2345,66 +2767,46 @@ connect@^3.7.0: utils-merge "1.0.1" console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== constants-browserify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" - -convert-source-map@^1.4.0, convert-source-map@^1.5.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" +convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.7.0, convert-source-map@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== convert-source-map@~1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + integrity sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== cookie@~0.4.1: version "0.4.2" @@ -2414,18 +2816,29 @@ cookie@~0.4.1: copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== -core-js@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" +core-js-compat@^3.25.1: + version "3.27.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.27.2.tgz#607c50ad6db8fd8326af0b2883ebb987be3786da" + integrity sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg== + dependencies: + browserslist "^4.21.4" -core-js@^2.5.0, core-js@^2.5.7: - version "2.6.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.2.tgz#267988d7268323b349e20b4588211655f0e83944" +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.12, core-js@^2.6.5: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cors@~2.8.5: version "2.8.5" @@ -2435,15 +2848,7 @@ cors@~2.8.5: object-assign "^4" vary "^1" -cosmiconfig@5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.9.0" - parse-json "^4.0.0" - -cosmiconfig@^5.2.1: +cosmiconfig@^5.2.0, cosmiconfig@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== @@ -2454,39 +2859,40 @@ cosmiconfig@^5.2.1: parse-json "^4.0.0" create-ecdh@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" - elliptic "^6.0.0" + elliptic "^6.5.3" -create-hash@^1.1.0, create-hash@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" inherits "^2.0.1" - ripemd160 "^1.0.0" - sha.js "^2.3.6" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170" +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: + cipher-base "^1.0.3" create-hash "^1.1.0" inherits "^2.0.1" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" path-key "^2.0.1" @@ -2495,8 +2901,9 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: which "^1.2.9" crypto-browserify@^3.0.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -2508,10 +2915,12 @@ crypto-browserify@^3.0.0: pbkdf2 "^3.0.3" public-encrypt "^4.0.0" randombytes "^2.0.0" + randomfill "^1.0.3" css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA== dependencies: boolbase "~1.0.0" css-what "2.1" @@ -2519,8 +2928,9 @@ css-select@~1.2.0: nth-check "~1.0.1" css-what@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.8" @@ -2537,16 +2947,30 @@ cssstyle@^1.0.0: custom-event@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: - es5-ext "^0.10.9" + es5-ext "^0.10.50" + type "^1.0.1" -damerau-levenshtein@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +dash-ast@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== + +dash-ast@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-2.0.1.tgz#8d0fd2e601c59bf874cc22877ee7dd889f54dee8" + integrity sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ== dashdash@^1.12.0: version "1.14.1" @@ -2567,144 +2991,168 @@ data-urls@^1.0.0: date-fns@^1.27.2: version "1.30.1" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== -date-format@^4.0.9: - version "4.0.9" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.9.tgz#4788015ac56dedebe83b03bc361f00c1ddcf1923" - integrity sha512-+8J+BOUpSrlKLQLeF8xJJVTxS8QfRSuJgwxSVvslzgO3E6khbI0F5mMEPf5mTYhCCm4h99knYP6H3W9n3BQFrg== - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" +date-format@^4.0.14: + version "4.0.14" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" + integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== -debug@2.6.9, debug@^2.1.2, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@3.2.6, debug@^3.1.0: +debug@3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debug@^2.2.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" - dependencies: - ms "0.7.2" - -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" +debug@^3.1.0, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@~4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" - dependencies: - ms "^2.1.1" - decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" +deep-eql@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" deep-equal@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-equal@^2.0.5: + version "2.2.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" + integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== + dependencies: + call-bind "^1.0.2" + es-get-iterator "^1.1.2" + get-intrinsic "^1.1.3" + is-arguments "^1.1.1" + is-array-buffer "^3.0.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.0.0.tgz#ca7903b34bfa1f8c2eab6779280775a411bfc6ba" - default-require-extensions@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + integrity sha512-Dn2eAftOqXhNXs5f/Xjn7QTZ6kDYkx7u0EXQInN1oyYwsZysu11q7oTtaKcbzLxZRJiDHa8VmwpWmb4lY5FqgA== dependencies: strip-bom "^2.0.0" defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: clone "^1.0.2" -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - object-keys "^1.0.12" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" isobject "^3.0.1" defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== del@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + integrity sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A== dependencies: globby "^6.1.0" is-path-cwd "^1.0.0" @@ -2718,31 +3166,35 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== deps-sort@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" + version "2.0.1" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" + integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== dependencies: JSONStream "^1.0.3" - shasum "^1.0.0" + shasum-object "^1.0.0" subarg "^1.0.0" through2 "^2.0.0" +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -2752,47 +3204,51 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - detect-indent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A== dependencies: repeating "^2.0.0" -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== -detective@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.1.0.tgz#7a20d89236d7b331ccea65832e7123b5551bb7cb" +detective@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" + integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== dependencies: - acorn-node "^1.3.0" + acorn-node "^1.8.2" defined "^1.0.0" - minimist "^1.1.1" + minimist "^1.2.6" di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== diff@3.5.0, diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -2804,47 +3260,60 @@ diffie-hellman@^5.0.0: dependencies: heap ">= 0.2.0" -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" dom-serialize@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= + integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== dependencies: custom-event "~1.0.0" ent "~2.2.0" extend "^3.0.0" void-elements "^2.0.0" -dom-serializer@0, dom-serializer@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1, domelementtype@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" +domelementtype@^2.0.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domexception@^1.0.1: version "1.0.1" @@ -2854,8 +3323,9 @@ domexception@^1.0.1: webidl-conversions "^4.0.2" domhandler@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== dependencies: domelementtype "1" @@ -2864,9 +3334,18 @@ domino@^2.1.6: resolved "https://registry.yarnpkg.com/domino/-/domino-2.1.6.tgz#fe4ace4310526e5e7b9d12c7de01b7f485a57ffe" integrity sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ== -domutils@1.5.1, domutils@^1.5.1: +domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" domelementtype "1" @@ -2874,16 +3353,19 @@ domutils@1.5.1, domutils@^1.5.1: dotenv@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" + integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2, duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== dependencies: readable-stream "^2.0.2" duplexer2@~0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + integrity sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g== dependencies: readable-stream "~1.1.9" @@ -2898,21 +3380,24 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.118: - version "1.4.136" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.136.tgz#b6a3595a9c29d6d8f60e092d40ac24f997e4e7ef" - integrity sha512-GnITX8rHnUrIVnTxU9UlsTnSemHUA2iF+6QrRqxFbp/mf0vfuSc/goEyyQhUX3TUUCE3mv/4BNuXOtaJ4ur0eA== +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== ellipsize@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/ellipsize/-/ellipsize-0.1.0.tgz#9d43682d44b91ad16ebd84268ac103170a6553f8" + integrity sha512-5gxbEjcb/Z2n6TTmXZx9wVi3N/DOzE7RXY3Xg9dakDuhX/izwumB9rGjeWUV6dTA0D0+juvo+JonZgNR9sgA5A== -elliptic@^6.0.0: +elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -2925,34 +3410,42 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emoji-regex@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" engine.io-parser@~5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" - integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== + version "5.0.6" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" + integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== -engine.io@~6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.0.tgz#003bec48f6815926f2b1b17873e576acd54f41d0" - integrity sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg== +engine.io@~6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.1.tgz#e3f7826ebc4140db9bbaa9021ad6b1efb175878f" + integrity sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" @@ -2968,53 +3461,122 @@ engine.io@~6.2.0: ent@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -error-ex@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" - dependencies: - is-arrayish "^0.2.1" +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -error-ex@^1.3.1: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" + integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.4" + is-array-buffer "^3.0.1" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-get-iterator@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== dependencies: - is-arrayish "^0.2.1" + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" -es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.47" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.47.tgz#d24232e1380daad5449a817be19bde9729024a11" +es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@~0.10.14: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "1" + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" -es6-iterator@~2.0.1, es6-iterator@~2.0.3: +es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" es5-ext "^0.10.35" @@ -3023,6 +3585,7 @@ es6-iterator@~2.0.1, es6-iterator@~2.0.3: es6-map@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + integrity sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A== dependencies: d "1" es5-ext "~0.10.14" @@ -3032,21 +3595,24 @@ es6-map@^0.1.5: event-emitter "~0.3.5" es6-set@^0.1.5, es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + version "0.1.6" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.6.tgz#5669e3b2aa01d61a50ba79964f733673574983b8" + integrity sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw== dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" + d "^1.0.1" + es5-ext "^0.10.62" + es6-iterator "~2.0.3" + es6-symbol "^3.1.3" + event-emitter "^0.3.5" + type "^2.7.2" -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" +es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== dependencies: - d "1" - es5-ext "~0.10.14" + d "^1.0.1" + ext "^1.1.2" escalade@^3.1.1: version "3.1.1" @@ -3056,10 +3622,22 @@ escalade@^3.1.1: escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== escodegen@^1.11.1, escodegen@^1.9.1: version "1.14.3" @@ -3073,125 +3651,135 @@ escodegen@^1.11.1, escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -escodegen@~1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-airbnb-base@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c" +eslint-config-airbnb-base@^13.2.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz#f6ea81459ff4dec2dda200c35f1d8f7419d57943" + integrity sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w== dependencies: - eslint-restricted-globals "^0.1.1" + confusing-browser-globals "^1.0.5" object.assign "^4.1.0" - object.entries "^1.0.4" + object.entries "^1.1.0" eslint-config-airbnb@^17.1.0: - version "17.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732" + version "17.1.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.1.tgz#2272e0b86bb1e2b138cdf88d07a3b6f4cda3d626" + integrity sha512-xCu//8a/aWqagKljt+1/qAM62BYZeNq04HmdevG5yUGWpja0I/xhqd6GdLRch5oetEGFiJAnvtGuTEAese53Qg== dependencies: - eslint-config-airbnb-base "^13.1.0" + eslint-config-airbnb-base "^13.2.0" object.assign "^4.1.0" - object.entries "^1.0.4" + object.entries "^1.1.0" eslint-config-prettier@^6.1.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1" - integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA== + version "6.15.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" + integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== dependencies: get-stdin "^6.0.0" eslint-import-resolver-babel-module@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/eslint-import-resolver-babel-module/-/eslint-import-resolver-babel-module-2.2.1.tgz#6c42f33a6f09f3944d8cfa9e1de470fc8a3c2cfc" + integrity sha512-DIsFnmdGQk+jor0HU5nBSuqBqS1zPFeTmwSVDLJ0uOhscQZPKHo+j3bQNjW5nyb0KiGEDEH/Sam0B5ep7l0X7A== dependencies: find-babel-config "^1.0.0" resolve "^1.1.7" -eslint-import-resolver-node@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: - debug "^2.6.9" - resolve "^1.5.0" + debug "^3.2.7" + is-core-module "^2.11.0" + resolve "^1.22.1" -eslint-module-utils@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" +eslint-module-utils@^2.7.4: + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== dependencies: - debug "^2.6.8" - pkg-dir "^1.0.0" + debug "^3.2.7" eslint-plugin-babel@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.0.tgz#2e7f251ccc249326da760c1a4c948a91c32d0023" + version "5.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.1.tgz#75a2413ffbf17e7be57458301c60291f2cfbf560" + integrity sha512-VsQEr6NH3dj664+EyxJwO4FCYm/00JhYb3Sk3ft8o+fpKuIfQ9TaW6uVUfvwMXHcf/lsnRIoyFPsLMyiWCSL/g== dependencies: eslint-rule-composer "^0.3.0" eslint-plugin-import@^2.14.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" - dependencies: - contains-path "^0.1.0" - debug "^2.6.8" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.2.0" - has "^1.0.1" - lodash "^4.17.4" - minimatch "^3.0.3" - read-pkg-up "^2.0.0" - resolve "^1.6.0" + version "2.27.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" + has "^1.0.3" + is-core-module "^2.11.0" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" + tsconfig-paths "^3.14.1" eslint-plugin-jsx-a11y@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88" - dependencies: - aria-query "^3.0.0" - array-includes "^3.0.3" + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== + dependencies: + "@babel/runtime" "^7.20.7" + aria-query "^5.1.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" ast-types-flow "^0.0.7" - axobject-query "^2.0.1" - damerau-levenshtein "^1.0.4" - emoji-regex "^6.5.1" + axe-core "^4.6.2" + axobject-query "^3.1.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" has "^1.0.3" - jsx-ast-utils "^2.0.1" + jsx-ast-utils "^3.3.3" + language-tags "=1.0.5" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + semver "^6.3.0" eslint-plugin-react@^7.12.3: - version "7.12.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.3.tgz#b9ca4cd7cd3f5d927db418a1950366a12d4568fd" + version "7.32.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz#88cdeb4065da8ca0b64e1274404f53a0f9890200" + integrity sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www== dependencies: - array-includes "^3.0.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" - has "^1.0.3" - jsx-ast-utils "^2.0.1" - object.fromentries "^2.0.0" - prop-types "^15.6.2" - resolve "^1.9.0" - -eslint-restricted-globals@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" + prop-types "^15.8.1" + resolve "^2.0.0-next.4" + semver "^6.3.0" + string.prototype.matchall "^4.0.8" eslint-rule-composer@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" + integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== -eslint-scope@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" @@ -3209,97 +3797,99 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint@^5.12.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.12.0.tgz#fab3b908f60c52671fb14e996a450b96c743c859" + version "5.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== dependencies: "@babel/code-frame" "^7.0.0" - ajv "^6.5.3" + ajv "^6.9.1" chalk "^2.1.0" cross-spawn "^6.0.5" debug "^4.0.1" - doctrine "^2.1.0" - eslint-scope "^4.0.0" + doctrine "^3.0.0" + eslint-scope "^4.0.3" eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" - espree "^5.0.0" + espree "^5.0.1" esquery "^1.0.1" esutils "^2.0.2" - file-entry-cache "^2.0.0" + file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" glob "^7.1.2" globals "^11.7.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^6.1.0" - js-yaml "^3.12.0" + inquirer "^6.2.2" + js-yaml "^3.13.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.5" + lodash "^4.17.11" minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" - pluralize "^7.0.0" progress "^2.0.0" regexpp "^2.0.1" semver "^5.5.1" strip-ansi "^4.0.0" strip-json-comments "^2.0.1" - table "^5.0.2" + table "^5.2.3" text-table "^0.2.0" -espree@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c" +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== dependencies: - acorn "^6.0.2" + acorn "^6.0.7" acorn-jsx "^5.0.0" eslint-visitor-keys "^1.0.0" -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: - estraverse "^4.0.0" + estraverse "^5.1.0" esrecurse@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - estraverse "~4.1.0" - object-assign "^4.0.1" + estraverse "^5.2.0" -estraverse@^4.0.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -estraverse@^4.2.0: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-is-function@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/estree-is-function/-/estree-is-function-1.0.0.tgz#c0adc29806d7f18a74db7df0f3b2666702e37ad2" + integrity sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA== estree-walker@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39" + integrity sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig== + +estree-walker@^0.6.0, estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== esutils@^2.0.2: version "2.0.3" @@ -3309,10 +3899,12 @@ esutils@^2.0.2: etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -event-emitter@~0.3.5: +event-emitter@^0.3.5, event-emitter@~0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== dependencies: d "1" es5-ext "~0.10.14" @@ -3325,50 +3917,32 @@ eventemitter3@^4.0.0: events@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== events@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" + integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== -evp_bytestokey@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: - create-hash "^1.1.1" + md5.js "^1.3.4" + safe-buffer "^5.1.1" exec-sh@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10" - dependencies: - merge "^1.1.3" - -execa@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" - dependencies: - cross-spawn "^6.0.0" - 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" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + version "0.2.2" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" + integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== dependencies: - 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" + merge "^1.2.0" execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: cross-spawn "^6.0.0" get-stream "^4.0.0" @@ -3381,16 +3955,19 @@ execa@^1.0.0: exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA== dependencies: is-posix-bracket "^0.1.0" expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -3403,18 +3980,14 @@ expand-brackets@^2.1.4: expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA== dependencies: fill-range "^2.1.0" -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - dependencies: - homedir-polyfill "^1.0.1" - expect@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" + integrity sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w== dependencies: ansi-styles "^3.2.0" jest-diff "^23.6.0" @@ -3424,70 +3997,69 @@ expect@^23.6.0: jest-regex-util "^23.3.0" express@^4.16.4: - version "4.16.4" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: - accepts "~1.3.5" + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.18.3" - content-disposition "0.5.2" + body-parser "1.20.1" + content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.3.1" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.1.1" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.2" + on-finished "2.4.1" + parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.4" - qs "6.5.2" - range-parser "~1.2.0" - safe-buffer "5.1.2" - send "0.16.2" - serve-static "1.13.2" - setprototypeof "1.1.0" - statuses "~1.4.0" - type-is "~1.6.16" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" - -extend@~3.0.2: +extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -3500,12 +4072,14 @@ external-editor@^3.0.3: extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg== dependencies: is-extglob "^1.0.0" extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" define-property "^1.0.0" @@ -3536,30 +4110,34 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" - fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + fault@^1.0.0, fault@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz#c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa" + version "1.0.4" + resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" + integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== dependencies: - format "^0.2.2" + format "^0.2.0" fb-watchman@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: - bser "^2.0.0" + bser "2.1.1" figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" @@ -3567,47 +4145,57 @@ figures@^1.7.0: figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== dependencies: escape-string-regexp "^1.0.5" figures@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9" - integrity sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g== + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" + flat-cache "^2.0.1" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== filename-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ== fileset@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + integrity sha512-UxowFKnAFIwtmSxgKjWAVgjE3Fk7MQJT0ZIyl0NwIFZTrx4913rLaonGJ84V+x/2+w/pe4ULHRns+GZPs1TVuw== dependencies: glob "^7.0.3" minimatch "^3.0.3" fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== dependencies: is-number "^2.1.0" isobject "^2.0.0" - randomatic "^1.1.3" + randomatic "^3.0.0" repeat-element "^1.1.2" repeat-string "^1.5.2" fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -3621,61 +4209,62 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.4.0" + parseurl "~1.3.3" + statuses "~1.5.0" unpipe "~1.0.0" -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" find-babel-config@^1.0.0, find-babel-config@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.1.0.tgz#acc01043a6749fec34429be6b64f542ebb5d6355" + version "1.2.0" + resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" + integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== dependencies: json5 "^0.5.1" path-exists "^3.0.0" -find-parent-dir@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.0.0, find-up@^2.1.0: +find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - dependencies: - locate-path "^3.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3684,58 +4273,60 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" -findup-sync@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" - dependencies: - detect-file "^1.0.0" - is-glob "^3.1.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -flat-cache@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== dependencies: - circular-json "^0.3.0" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" flat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" + version "4.1.1" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" + integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== dependencies: is-buffer "~2.0.3" -flatted@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flatted@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -fn-name@^2.0.1: +fn-name@^2.0.1, fn-name@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" + integrity sha512-oIDB1rXf3BUnn00bh2jVM0byuqr94rBh6g7ZfdKcbmp1we2GQtPzKdloyvBXHs+q3fvxB8EqX5ecFba3RwCSjA== follow-redirects@^1.0.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" - integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -for-in@^0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" -for-in@^1.0.2: +for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== for-own@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw== dependencies: - for-in "^0.1.5" + for-in "^1.0.1" forever-agent@~0.6.1: version "0.6.1" @@ -3751,110 +4342,105 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -format@^0.2.2: +format@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -fs-extra@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" + jsonfile "^4.0.0" + universalify "^0.1.0" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^1.2.3: - version "1.2.6" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.6.tgz#d3a1864a71876a2eb9b244e3bd8f606eb09568c0" - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -fsevents@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" +fsevents@^1.2.3, fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" + bindings "^1.5.0" + nan "^2.12.1" fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -function-bind@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== g-status@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97" + integrity sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA== dependencies: arrify "^1.0.1" matcher "^1.0.0" simple-git "^1.85.0" -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-assigned-identifiers@^1.1.0: +get-assigned-identifiers@^1.1.0, get-assigned-identifiers@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-caller-file@^2.0.5: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -3862,41 +4448,51 @@ get-caller-file@^2.0.5: get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-own-enumerable-property-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== get-stdin@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== getpass@^0.1.1: version "0.1.7" @@ -3905,39 +4501,41 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -ghauth@~3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ghauth/-/ghauth-3.2.1.tgz#45d7556437164ad8b4b037c02c627fd55019e31a" +ghauth@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ghauth/-/ghauth-5.0.1.tgz#ac47c8a4d40504641184c1f8141ada91740ec837" + integrity sha512-WzgL12dczZX/VrvVTkoFAJLU3pb6PDT+TS60kLlaU51fuNEv6VoYpRXlnwIjkMIhqWead9+dLBEzj0E1ghYMkg== dependencies: - application-config "~1.0.0" - bl "~1.1.2" - hyperquest "~2.0.0" - mkdirp "~0.5.1" - read "~1.0.7" - xtend "~4.0.1" + application-config "^2.0.0" + node-fetch "^2.6.0" + ora "^4.0.5" + read "^1.0.7" -ghissues@~1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/ghissues/-/ghissues-1.1.3.tgz#152e0da2591700922d25df0f062c2e432de69804" +ghissues@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/ghissues/-/ghissues-1.1.4.tgz#7b1ab20ead088e56adac65ce071618ee45b1f327" + integrity sha512-YFBe75cEank9WogH1i1kRqDoH8Z+l+O9Y/CopmWCGhsOg9NR0PdMo8E+8THTwCXFAFv4NPhqLQOOPZypnDStjQ== dependencies: - ghutils "~3.2.0" + ghutils "^4.0.0" -ghutils@~3.2.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/ghutils/-/ghutils-3.2.6.tgz#d43986e267da02787464d97a6489659e4609bb1f" +ghutils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ghutils/-/ghutils-4.0.0.tgz#7da12d0d1cc88778b56fc46d8ed6c3f5bf9ad8fc" + integrity sha512-WRme8qe6SX0WCN1cY9F4hE8/dhjZti2q7i7cDuT0kV7PZZrGceFRNP5ZSQM1+RjHpcqvODQi5YSZSsqG+Yk3zQ== dependencies: - jsonist "~2.1.0" - xtend "~4.0.1" + jsonist "~3.0.1" -gitexec@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gitexec/-/gitexec-1.0.0.tgz#ac589ca3177a99427465aa37b1f817176c1e3422" +gitexec@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/gitexec/-/gitexec-2.0.1.tgz#a2e63641080fc97915dd1e951ee243ca49bc19af" + integrity sha512-GH5WDye/Rewj74Rvp8RaezLcWM1ot7IQjZEA9/M/fIIsLWYAw2OBviOnJ85bUQXMSR+tfpZWtulhE+LtOqlxMA== dependencies: - bl "~1.0.0" + bl "^4.0.0" glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA== dependencies: glob-parent "^2.0.0" is-glob "^2.0.0" @@ -3945,12 +4543,14 @@ glob-base@^0.3.0: glob-parent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w== dependencies: is-glob "^2.0.0" glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" @@ -3965,6 +4565,7 @@ glob-parent@~5.1.2: glob@7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3974,61 +4575,38 @@ glob@7.1.3: path-is-absolute "^1.0.0" glob@^7.0.3, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.7: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - globals@^11.1.0, globals@^11.7.0: - version "11.10.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.10.0.tgz#1e09776dffda5e01816b3bb4077c8b59c24eaa50" - -globals@^9.0.0: - version "9.14.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" + define-properties "^1.1.3" globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -4036,7 +4614,14 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -4044,10 +4629,12 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, growl@1.10.5: version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== handlebars@^4.0.3: version "4.7.7" @@ -4067,47 +4654,68 @@ har-schema@^2.0.0: integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: - ajv "^6.5.5" + ajv "^6.12.3" har-schema "^2.0.0" has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== dependencies: ansi-regex "^2.0.0" +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0: +has-property-descriptors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== -has-symbols@^1.0.1: +has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -4116,6 +4724,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -4124,26 +4733,32 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== dependencies: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0, has@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - -has@^1.0.3: +has@^1.0.0, has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -4155,19 +4770,22 @@ hash.js@^1.0.0, hash.js@^1.0.3: hat@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" + integrity sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug== he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== "heap@>= 0.2.0": - version "0.2.6" - resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" + version "0.2.7" + resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" + integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -4176,16 +4794,11 @@ hmac-drbg@^1.0.1: home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" -homedir-polyfill@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" - dependencies: - parse-passwd "^1.0.0" - hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -4201,26 +4814,19 @@ html-encoding-sniffer@^1.0.2: htmlescape@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + integrity sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg== htmlparser2@^3.9.1: - version "3.9.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== dependencies: - domelementtype "^1.3.0" + domelementtype "^1.3.1" domhandler "^2.3.0" domutils "^1.5.1" entities "^1.1.1" inherits "^2.0.1" - readable-stream "^2.0.2" - -http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" + readable-stream "^3.1.1" http-errors@2.0.0: version "2.0.0" @@ -4236,6 +4842,7 @@ http-errors@2.0.0: http-headers@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/http-headers/-/http-headers-3.0.2.tgz#5147771292f0b39d6778d930a3a59a76fc7ef44d" + integrity sha512-87E1I+2Wg4dxxz4rcxElo3dxO/w1ZtgL1yA0Sb6vH3qU16vRKq1NjWQv9SCY3ly2OQROcoxHZOUpmelS+k6wOw== dependencies: next-line "^1.1.0" @@ -4269,47 +4876,38 @@ http-signature@~1.3.1: https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== husky@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/husky/-/husky-3.0.0.tgz#de63821a7049dc412b1afd753c259e2f6e227562" - integrity sha512-lKMEn7bRK+7f5eWPNGclDVciYNQt0GIkAQmhKl+uHP1qFzoN0h92kmH9HZ8PCwyVA2EQPD8KHf0FYWqnTxau+Q== + version "3.1.0" + resolved "https://registry.yarnpkg.com/husky/-/husky-3.1.0.tgz#5faad520ab860582ed94f0c1a77f0f04c90b57c0" + integrity sha512-FJkPoHHB+6s4a+jwPqBudBDvYZsoQW5/HBuMSehC8qDiCe50kpcxeqFoDSlow+9I6wg47YxBoT3WxaURlrDIIQ== dependencies: + chalk "^2.4.2" + ci-info "^2.0.0" cosmiconfig "^5.2.1" execa "^1.0.0" get-stdin "^7.0.0" - is-ci "^2.0.0" opencollective-postinstall "^2.0.2" pkg-dir "^4.2.0" - please-upgrade-node "^3.1.1" - read-pkg "^5.1.1" + please-upgrade-node "^3.2.0" + read-pkg "^5.2.0" run-node "^1.0.0" slash "^3.0.0" -hyperquest@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hyperquest/-/hyperquest-2.0.0.tgz#3d1a0c5d83295bcde5c75a978ddaae4096f83c02" - dependencies: - duplexer2 "~0.0.2" - through2 "~0.6.3" - -hyperquest@~2.1.2: +hyperquest@~2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/hyperquest/-/hyperquest-2.1.3.tgz#523127d7a343181b40bf324e231d2576edf52633" + integrity sha512-fUuDOrB47PqNK/BAMOS13v41UoaqIxqSLHX6CAbOD7OfT+/GCWO1/vPLfTNutOeXrv1ikuaZ3yux+33Z9vh+rw== dependencies: buffer-from "^0.1.1" duplexer2 "~0.0.2" through2 "~0.6.3" -iconv-lite@0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" @@ -4320,35 +4918,33 @@ iconv-lite@0.5.0: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - dependencies: - minimatch "^3.0.4" +ieee754@^1.1.13, ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.0.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" - integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" import-fresh@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -4356,6 +4952,7 @@ import-fresh@^3.0.0: import-local@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ== dependencies: pkg-dir "^2.0.0" resolve-cwd "^2.0.0" @@ -4363,19 +4960,22 @@ import-local@^1.0.0: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4383,12 +4983,14 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.4, ini@~1.3.0: +ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -4396,25 +4998,27 @@ ini@^1.3.4, ini@~1.3.0: inline-source-map@~0.6.0: version "0.6.2" resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + integrity sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA== dependencies: source-map "~0.5.3" -inquirer@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52" +inquirer@^6.2.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" + ansi-escapes "^3.2.0" + chalk "^2.4.2" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^3.0.0" + external-editor "^3.0.3" figures "^2.0.0" - lodash "^4.17.10" + lodash "^4.17.12" mute-stream "0.0.7" run-async "^2.2.0" - rxjs "^6.1.0" + rxjs "^6.4.0" string-width "^2.1.0" - strip-ansi "^5.0.0" + strip-ansi "^5.1.0" through "^2.3.6" inquirer@^7.0.0: @@ -4437,80 +5041,117 @@ inquirer@^7.0.0: through "^2.3.6" insert-module-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.0.1.tgz#c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3" + version "7.2.1" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3" + integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg== dependencies: JSONStream "^1.0.3" - combine-source-map "~0.7.1" - concat-stream "~1.5.1" + acorn-node "^1.5.2" + combine-source-map "^0.8.0" + concat-stream "^1.6.1" is-buffer "^1.1.0" - lexical-scope "^1.2.0" + path-is-absolute "^1.0.1" process "~0.11.0" through2 "^2.0.0" + undeclared-identifiers "^1.1.2" xtend "^4.0.0" -invariant@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" +internal-slot@^1.0.3, internal-slot@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== dependencies: - loose-envify "^1.0.0" + get-intrinsic "^1.1.3" + has "^1.0.3" + side-channel "^1.0.4" invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== -ipaddr.js@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== irregular-plurals@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-2.0.0.tgz#39d40f05b00f656d0b7fa471230dd3b714af2872" + integrity sha512-Y75zBYLkh0lJ9qxeHlMjQ7bSbyiSqNW/UOPWDmzC7cXskL1hekSITh1Oc6JV0XCWWZ9DE8VYSB71xocLk3gmGw== is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-alphabetical@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.2.tgz#1fa6e49213cb7885b75d15862fb3f3d96c884f41" + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== is-alphanumeric@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" + integrity sha512-ZmRL7++ZkcMOfDuWZuMJyIVLr2keE1o/DeNWh1EmgqGhUcV+9BIVsx0BcSBOHTZqzjs4+dISzr2KAeBEWGgXeA== is-alphanumerical@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz#1138e9ae5040158dc6ff76b820acd6b7a181fd40" + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== dependencies: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-arguments@^1.0.4, is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" + integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-typed-array "^1.1.10" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== dependencies: binary-extensions "^1.0.0" @@ -4521,68 +5162,73 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-buffer@^1.0.2, is-buffer@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" -is-buffer@^1.1.5: +is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0, is-buffer@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-ci@^1.0.10: version "1.2.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== dependencies: ci-info "^1.5.0" -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" +is-core-module@^2.11.0, is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: - ci-info "^2.0.0" + has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-decimal@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.2.tgz#894662d6a8709d307f3a276ca4339c8fa5dff0ff" +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" -is-decimal@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.3.tgz#381068759b9dc807d8c0dc0bfbae2b68e1da48b7" - integrity sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ== +is-decimal@^1.0.0, is-decimal@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" is-data-descriptor "^0.1.4" @@ -4591,6 +5237,7 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" is-data-descriptor "^1.0.0" @@ -4599,24 +5246,29 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== is-dotfile@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg== is-empty@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b" + integrity sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w== is-equal-shallow@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA== dependencies: is-primitive "^2.0.0" is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extendable@^1.0.1: version "1.0.1" @@ -4628,26 +5280,29 @@ is-extendable@^1.0.1: is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww== is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -4657,33 +5312,23 @@ is-fullwidth-code-point@^3.0.0: is-generator-fn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" + integrity sha512-95jJZX6O/gdekidH2usRBr9WdRw4LU56CttPstXFxvG0r3QUE9eaIdz2p2Y7zrm6jxz7SjByAo1AtzwGlRvfOg== is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg== dependencies: is-extglob "^1.0.0" is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -4691,30 +5336,56 @@ is-glob@~4.0.1: is-extglob "^2.1.1" is-hexadecimal@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz#b6e710d7d07bb66b98cb8cece5c9b4921deeb835" + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== is-hidden@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-hidden/-/is-hidden-1.1.1.tgz#82ee6a93aeef3fb007ad5b9457c0584d45329f38" + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-hidden/-/is-hidden-1.1.3.tgz#82e84cc7dbfffae42424d72037f80417f3b5e103" + integrity sha512-FFzhGKA9h59OFxeaJl0W5ILTYetI8WsdqdofKr69uLKZdV6hbDKxj8vkpG3L9uS/6Q/XYh1tkXm6xwRGFweETA== is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== -is-number@^2.0.2, is-number@^2.1.0: +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg== dependencies: kind-of "^3.0.2" is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== dependencies: kind-of "^3.0.2" +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -4723,78 +5394,132 @@ is-number@^7.0.0: is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== dependencies: symbol-observable "^1.1.0" is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + integrity sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw== is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g== dependencies: path-is-inside "^1.0.1" is-plain-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.0.0.tgz#7fd1a7f1b69e160cde9181d2313f445c68aa2679" - integrity sha512-EYisGhpgSCwspmIuRHGjROWTon2Xp8Z7U03Wubk/bTL5TTRC5R1rGVgyjzBrk9+ULdH6cRD06KRcw/xfqhVYKQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-posix-bracket@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ== is-primitive@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q== is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" +is-regex@^1.0.4, is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: - has "^1.0.1" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: - has-symbols "^1.0.0" + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" -is-typedarray@~1.0.0: +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== @@ -4802,50 +5527,84 @@ is-typedarray@~1.0.0: is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== -is-whitespace-character@^1.0.0: +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz#ede53b4c6f6fb3874533751ec9280d01928d03ed" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +is-whitespace-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" + integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-word-character@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.2.tgz#46a5dac3f2a1840898b91e576cd40d493f3ae553" + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" + integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== -isarray@0.0.1, isarray@~0.0.1: +isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isbinaryfile@^4.0.8: version "4.0.10" resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== -isexe@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== isstream@~0.1.2: version "0.1.2" @@ -4855,6 +5614,7 @@ isstream@~0.1.2: istanbul-api@^1.3.1: version "1.3.7" resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" + integrity sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA== dependencies: async "^2.1.4" fileset "^2.0.2" @@ -4871,16 +5631,19 @@ istanbul-api@^1.3.1: istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" + integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ== istanbul-lib-hook@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" + integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw== dependencies: append-transform "^0.4.0" istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" + integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A== dependencies: babel-generator "^6.18.0" babel-template "^6.16.0" @@ -4893,6 +5656,7 @@ istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: istanbul-lib-report@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" + integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw== dependencies: istanbul-lib-coverage "^1.2.1" mkdirp "^0.5.1" @@ -4902,6 +5666,7 @@ istanbul-lib-report@^1.1.5: istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" + integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg== dependencies: debug "^3.1.0" istanbul-lib-coverage "^1.2.1" @@ -4912,22 +5677,26 @@ istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: istanbul-reports@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" + integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw== dependencies: handlebars "^4.0.3" jasmine-core@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.5.2.tgz#6f61bd79061e27f43e6f9355e44b3c6cab6ff297" + version "2.99.1" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.99.1.tgz#e6400df1e6b56e130b61c4bcd093daa7f6e8ca15" + integrity sha512-ra97U4qu3OCcIxvN6eg3kyy8bLrID/TgxafSGMMICg3SFx5C/sUfDPpiOh7yoIsHdtjrOVdtT9rieYhqOsh9Ww== jest-changed-files@^23.4.2: version "23.4.2" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" + integrity sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA== dependencies: throat "^4.0.0" jest-cli@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" + integrity sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" @@ -4969,6 +5738,7 @@ jest-cli@^23.6.0: jest-config@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" + integrity sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ== dependencies: babel-core "^6.0.0" babel-jest "^23.6.0" @@ -4988,6 +5758,7 @@ jest-config@^23.6.0: jest-diff@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" + integrity sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g== dependencies: chalk "^2.0.1" diff "^3.2.0" @@ -4997,12 +5768,14 @@ jest-diff@^23.6.0: jest-docblock@^23.2.0: version "23.2.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" + integrity sha512-CB8MdScYLkzQ0Q/I4FYlt2UBkG9tFzi+ngSPVhSBB70nifaC+5iWz6GEfa/lB4T2KCqGy+DLzi1v34r9R1XzuA== dependencies: detect-newline "^2.1.0" jest-each@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" + integrity sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg== dependencies: chalk "^2.0.1" pretty-format "^23.6.0" @@ -5010,6 +5783,7 @@ jest-each@^23.6.0: jest-environment-jsdom@^23.4.0: version "23.4.0" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" + integrity sha512-UIXe32cMl/+DtyNHC15X+aFZMh04wx7PjWFBfz+nwoLgsIN2loKoNiKGSzUhMW/fVwbHrk8Qopglb7V4XB4EfQ== dependencies: jest-mock "^23.2.0" jest-util "^23.4.0" @@ -5018,6 +5792,7 @@ jest-environment-jsdom@^23.4.0: jest-environment-node@^23.4.0: version "23.4.0" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" + integrity sha512-bk8qScgIfkb+EdwJ0JZ9xGvN7N3m6Qok73G8hi6tzvNadpe4kOxxuGmK2cJzAM3tPC/HBulzrOeNHEvaThQFrQ== dependencies: jest-mock "^23.2.0" jest-util "^23.4.0" @@ -5025,10 +5800,12 @@ jest-environment-node@^23.4.0: jest-get-type@^22.1.0: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w== jest-haste-map@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" + integrity sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg== dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" @@ -5042,6 +5819,7 @@ jest-haste-map@^23.6.0: jest-jasmine2@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" + integrity sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ== dependencies: babel-traverse "^6.0.0" chalk "^2.0.1" @@ -5059,12 +5837,14 @@ jest-jasmine2@^23.6.0: jest-leak-detector@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" + integrity sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg== dependencies: pretty-format "^23.6.0" jest-matcher-utils@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" + integrity sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog== dependencies: chalk "^2.0.1" jest-get-type "^22.1.0" @@ -5073,6 +5853,7 @@ jest-matcher-utils@^23.6.0: jest-message-util@^23.4.0: version "23.4.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" + integrity sha512-Tjqy7T8jHhPgV4Gsi+pKMMfaz3uP5DPtMGnm8RWNWUHIk2igqxQ3/9rud3JkINCvZDGqlpJVuFGIDXbltG4xLA== dependencies: "@babel/code-frame" "^7.0.0-beta.35" chalk "^2.0.1" @@ -5083,14 +5864,17 @@ jest-message-util@^23.4.0: jest-mock@^23.2.0: version "23.2.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" + integrity sha512-lz+Rf6dwRNDVowuGCXm93ib8hMyPntl1GGVt9PuZfBAmTjP5yKYgK14IASiEjs7XoMo4i/R7+dkrJY3eESwTJg== jest-regex-util@^23.3.0: version "23.3.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" + integrity sha512-pNilf1tXhv5z0qjJy2Hl6Ar6dsi+XX2zpCAuzxRs4qoputI0Bm9rU7pa2ErrFTfiHYe8VboTR7WATPZXqzpQ/g== jest-resolve-dependencies@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" + integrity sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA== dependencies: jest-regex-util "^23.3.0" jest-snapshot "^23.6.0" @@ -5098,6 +5882,7 @@ jest-resolve-dependencies@^23.6.0: jest-resolve@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" + integrity sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA== dependencies: browser-resolve "^1.11.3" chalk "^2.0.1" @@ -5106,6 +5891,7 @@ jest-resolve@^23.6.0: jest-runner@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" + integrity sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA== dependencies: exit "^0.1.2" graceful-fs "^4.1.11" @@ -5124,6 +5910,7 @@ jest-runner@^23.6.0: jest-runtime@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" + integrity sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw== dependencies: babel-core "^6.0.0" babel-plugin-istanbul "^4.1.6" @@ -5150,10 +5937,12 @@ jest-runtime@^23.6.0: jest-serializer@^23.0.1: version "23.0.1" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" + integrity sha512-l6cPuiGEQI72H4+qMePF62E+URkZscnAqdHBYHkMrhKJOwU08AHvGmftXdosUzfCGhh/Ih4Xk1VgxnJSwrvQvQ== jest-snapshot@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" + integrity sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg== dependencies: babel-types "^6.0.0" chalk "^2.0.1" @@ -5169,6 +5958,7 @@ jest-snapshot@^23.6.0: jest-util@^23.4.0: version "23.4.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" + integrity sha512-OS1/0QSbbMF9N93MxF1hUmK93EF3NGQGbbaTBZZk95aytWtWmzxsFWwt/UXIIkfHbPCK1fXTrPklbL+ohuFFOA== dependencies: callsites "^2.0.0" chalk "^2.0.1" @@ -5179,9 +5969,10 @@ jest-util@^23.4.0: slash "^1.0.0" source-map "^0.6.0" -jest-validate@^23.5.0, jest-validate@^23.6.0: +jest-validate@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" + integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A== dependencies: chalk "^2.0.1" jest-get-type "^22.1.0" @@ -5191,6 +5982,7 @@ jest-validate@^23.5.0, jest-validate@^23.6.0: jest-watcher@^23.4.0: version "23.4.0" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" + integrity sha512-BZGZYXnte/vazfnmkD4ERByi2O2mW+C++W8Sb7dvOnwcSccvCKNQgmcz1L+9hxVD7HWtqymPctIY7v5ZbQGNyg== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" @@ -5199,9 +5991,18 @@ jest-watcher@^23.4.0: jest-worker@^23.2.0: version "23.2.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" + integrity sha512-zx0uwPCDxToGfYyQiSHh7T/sKIxQFnQqT6Uug7Y/L7PzEkFITPaufjQe6yaf1OXSnGvKC5Fwol1hIym0zDzyvw== dependencies: merge-stream "^1.0.1" +jest-worker@^24.0.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + jest-worker@^26.0.0: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -5214,56 +6015,53 @@ jest-worker@^26.0.0: jest@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" + integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw== dependencies: import-local "^1.0.0" jest-cli "^23.6.0" jquery@^3.5.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" - integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + version "3.6.3" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.3.tgz#23ed2ffed8a19e048814f13391a19afcdba160e6" + integrity sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg== js-string-escape@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" - -js-tokens@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" + integrity sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== -js-yaml@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" +js-yaml@3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.12.0, js-yaml@^3.6.1, js-yaml@^3.7.0, js-yaml@^3.9.0: - version "3.12.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600" +js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1, js-yaml@^3.7.0: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: - argparse "^1.0.7" - esprima "^4.0.0" + argparse "^2.0.1" jsbn@~0.1.0: version "0.1.1" @@ -5273,6 +6071,7 @@ jsbn@~0.1.0: jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== dependencies: abab "^2.0.0" acorn "^5.5.3" @@ -5304,18 +6103,27 @@ jsdom@^11.5.1: jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA== jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" @@ -5330,10 +6138,12 @@ json-schema@0.4.0: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stable-stringify@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + integrity sha512-nKtD/Qxm7tWdZqJoldEC7fF0S41v0mWbeaXG3637stOWfyGxTgWTYE2wtfKmjzpvxv2MA2xzxsXOIiwUpkX6Qw== dependencies: jsonify "~0.0.0" @@ -5345,45 +6155,45 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== -json5@^2.0.0, json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" +json5@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" +json5@^2.0.0, json5@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== -jsonist@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/jsonist/-/jsonist-2.1.0.tgz#4477a4d16cd377faec58d8cf870b7e392f6d7fe9" +jsonist@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonist/-/jsonist-3.0.1.tgz#b1b9765646cef979561c034a81209a662954952a" + integrity sha512-+lrAqdk5BO36j5RG7MSY2M8XqBqBwJRt/+iSfLmpelBBsi0kFflqhtlROeioDA5MlHNhZxm0Doslr7QSRzCqTQ== dependencies: - bl "~1.2.0" - hyperquest "~2.1.2" + bl "~4.0.0" + hyperquest "~2.1.3" json-stringify-safe "~5.0.1" - xtend "~4.0.1" jsonparse@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.2.0.tgz#5c0c5685107160e72fe7489bddea0b44c2bc67bd" + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== jsprim@^1.2.2: version "1.4.2" @@ -5405,11 +6215,13 @@ jsprim@^2.0.2: json-schema "0.4.0" verror "1.10.0" -jsx-ast-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== dependencies: - array-includes "^3.0.3" + array-includes "^3.1.5" + object.assign "^4.1.3" karma-browserify@8.1.0: version "8.1.0" @@ -5424,41 +6236,45 @@ karma-browserify@8.1.0: os-shim "^0.1.3" karma-chrome-launcher@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz#805a586799a4d05f4e54f72a204979f3f3066738" - integrity sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg== + version "3.1.1" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz#baca9cc071b1562a1db241827257bfe5cab597ea" + integrity sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ== dependencies: which "^1.2.1" karma-cli@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-2.0.0.tgz#481548d28661af4cc68f3d8e09708f17d2cba931" + integrity sha512-1Kb28UILg1ZsfqQmeELbPzuEb5C6GZJfVIk0qOr8LNYQuYWmAaqP16WpbpKEjhejDrDYyYOwwJXSZO6u7q5Pvw== dependencies: resolve "^1.3.3" karma-jasmine@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.0.2.tgz#c0b3ab327bf207db60e17fa27db37cfdef5d8e6c" + version "1.1.2" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.2.tgz#394f2b25ffb4a644b9ada6f22d443e2fd08886c3" + integrity sha512-SENGE9DhlIIFTSZWiNq4eGeXL8G6z9cqHIOdkx9jh1qhhQqwEy3tAoLRyER0vOcHqdOlKmGpOuXk+HOipIy7sg== karma-mocha@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" + integrity sha512-twRO+KCXIFOBs7o6i7oIpTJhVvjKZbIsUM96A+k2QaeXOzbVQXCkjVzXqNeQoczW4ruasPZYi0iWMTkfTrQVCw== dependencies: minimist "1.2.0" karma-requirejs@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/karma-requirejs/-/karma-requirejs-1.1.0.tgz#fddae2cb87d7ebc16fb0222893564d7fee578798" + integrity sha512-MHTOYKdwwJBkvYid0TaYvBzOnFH3TDtzo6ie5E4o9SaUSXXsfMRLa/whUz6efVIgTxj1xnKYasNn/XwEgJeB/Q== karma@^6.3.16: - version "6.3.16" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.3.16.tgz#76d1a705fd1cf864ee5ed85270b572641e0958ef" - integrity sha512-nEU50jLvDe5yvXqkEJRf8IuvddUkOY2x5Xc4WXHz6dxINgGDrgD2uqQWeVrJs4hbfNaotn+HQ1LZJ4yOXrL7xQ== + version "6.4.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.1.tgz#f2253716dd3a41aaa813fa9f54b6ee047e1127d9" + integrity sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA== dependencies: + "@colors/colors" "1.5.0" body-parser "^1.19.0" braces "^3.0.2" chokidar "^3.5.1" - colors "1.4.0" connect "^3.7.0" di "^0.0.1" dom-serialize "^2.2.1" @@ -5474,59 +6290,70 @@ karma@^6.3.16: qjobs "^1.2.0" range-parser "^1.2.1" rimraf "^3.0.2" - socket.io "^4.2.0" + socket.io "^4.4.1" source-map "^0.6.1" tmp "^0.2.1" ua-parser-js "^0.7.30" yargs "^16.1.1" -kind-of@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" - dependencies: - is-buffer "^1.0.2" - -kind-of@^3.0.3, kind-of@^3.2.0: +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== kleur@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" + integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ== + +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== labeled-stream-splicer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz#a52e1d138024c00b86b1c0c91f677918b8ae0a59" + version "2.0.2" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" + integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== dependencies: inherits "^2.0.1" - isarray "~0.0.1" stream-splicer "^2.0.0" -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" +language-subtag-registry@~0.3.2: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== + +language-tags@=1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== dependencies: - invert-kv "^1.0.0" + language-subtag-registry "~0.3.2" lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== dependencies: invert-kv "^2.0.0" @@ -5538,6 +6365,7 @@ left-pad@^1.3.0: leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -5547,31 +6375,29 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lexical-scope@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz#fcea5edc704a4b3a8796cdca419c3a0afaf22df4" - dependencies: - astw "^2.0.0" +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lint-staged@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.0.tgz#dbc3ae2565366d8f20efb9f9799d076da64863f2" + version "8.2.1" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.2.1.tgz#752fcf222d9d28f323a3b80f1e668f3654ff221f" + integrity sha512-n0tDGR/rTCgQNwXnUf/eWIpPNddGWxC32ANTNYsj2k02iZb7Cz5ox2tytwBu+2r0zDXMEMKw7Y9OD/qsav561A== dependencies: - "@iamstarkov/listr-update-renderer" "0.4.1" chalk "^2.3.1" commander "^2.14.1" - cosmiconfig "5.0.6" + cosmiconfig "^5.2.0" debug "^3.1.0" dedent "^0.7.0" del "^3.0.0" execa "^1.0.0" - find-parent-dir "^0.3.0" g-status "^2.0.2" is-glob "^4.0.0" is-windows "^1.0.2" - jest-validate "^23.5.0" listr "^0.14.2" - lodash "^4.17.5" + listr-update-renderer "^0.5.0" + lodash "^4.17.11" log-symbols "^2.2.0" micromatch "^3.1.8" npm-which "^3.0.1" @@ -5582,21 +6408,24 @@ lint-staged@^8.1.0: staged-git-files "1.1.2" string-argv "^0.0.2" stringify-object "^3.2.2" + yup "^0.27.0" -list-stream@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/list-stream/-/list-stream-1.0.1.tgz#e34492addccd1a165b028ad6d795a36c4fd95d29" +list-stream@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/list-stream/-/list-stream-2.1.0.tgz#514e7606de46474f3c25cee78f8cb2d08498b631" + integrity sha512-CkEgbERCsaO2qEf5WL9RGKtJtDQ/qsnIU95+5Pfikp2jYuh9TRLgTZpJ3Pyc3f2Sqt1Uj+1vSZCXRaa/VlRlyQ== dependencies: - readable-stream "~2.0.5" - xtend "~4.0.1" + readable-stream "~3.4.0" listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== listr-update-renderer@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== dependencies: chalk "^1.1.3" cli-truncate "^0.2.1" @@ -5610,6 +6439,7 @@ listr-update-renderer@^0.5.0: listr-verbose-renderer@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== dependencies: chalk "^2.4.1" cli-cursor "^2.1.0" @@ -5619,6 +6449,7 @@ listr-verbose-renderer@^0.5.0: listr@^0.14.2: version "0.14.3" resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== dependencies: "@samverschueren/stream-to-observable" "^0.3.0" is-observable "^1.1.0" @@ -5633,6 +6464,7 @@ listr@^0.14.2: load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -5640,25 +6472,28 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" +load-json-file@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" + integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" + graceful-fs "^4.1.15" + parse-json "^5.0.0" + strip-bom "^4.0.0" + type-fest "^0.6.0" load-plugin@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-2.3.0.tgz#577b6a956b344fd2ae80d8ecff5944febeea8eb7" + version "2.3.1" + resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-2.3.1.tgz#8024739afb4aa04de1e602e15e5b1a678c443d00" + integrity sha512-dYB1lbwqHgPTrruy9glukCu8Ya9vzj6TMfouCtj2H/GuJ+8syioisgKTBPxnCi6m8K8jINKfTOxOHngFkUYqHw== dependencies: npm-prefix "^1.2.0" - resolve-from "^4.0.0" + resolve-from "^5.0.0" locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -5666,6 +6501,7 @@ locate-path@^2.0.0: locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" path-exists "^3.0.0" @@ -5680,63 +6516,82 @@ locate-path@^5.0.0: lodash.assignin@^4.0.9: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg== lodash.bind@^4.1.4: version "4.2.1" resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.defaults@^4.0.1: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== lodash.filter@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ== lodash.flatten@^4.2.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== lodash.foreach@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ== lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.map@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + integrity sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A== lodash.merge@^4.4.0: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.pick@^4.2.1, lodash.pick@^4.4.0: +lodash.pick@^4.2.1: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== lodash.reduce@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw== lodash.reject@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ== lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg== lodash.some@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ== lodash.sortby@^4.7.0: version "4.7.0" @@ -5746,8 +6601,9 @@ lodash.sortby@^4.7.0: lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0: +lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -5755,12 +6611,14 @@ lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17 log-symbols@2.2.0, log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== dependencies: chalk "^1.0.0" @@ -5774,150 +6632,350 @@ log-symbols@^3.0.0: log-update@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== dependencies: ansi-escapes "^3.0.0" cli-cursor "^2.0.0" wrap-ansi "^3.0.1" log4js@^6.4.1: - version "6.4.6" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.4.6.tgz#1878aa3f09973298ecb441345fe9dd714e355c15" - integrity sha512-1XMtRBZszmVZqPAOOWczH+Q94AI42mtNWjvjA5RduKTSWjEc56uOBbyM1CJnfN4Ym0wSd8cQ43zOojlSHgRDAw== + version "6.7.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.7.1.tgz#06e12b1ac915dd1067146ffad8215f666f7d2c51" + integrity sha512-lzbd0Eq1HRdWM2abSD7mk6YIVY0AogGJzb/z+lqzRk+8+XJP+M6L1MS5FUSc3jjGru4dbKjEMJmqlsoYYpuivQ== dependencies: - date-format "^4.0.9" + date-format "^4.0.14" debug "^4.3.4" - flatted "^3.2.5" + flatted "^3.2.7" rfdc "^1.3.0" - streamroller "^3.0.8" + streamroller "^3.1.3" longest-streak@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.2.tgz#2421b6ba939a443bb9ffebf596585a50b4c38e2e" + version "2.0.4" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" + integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== -loose-envify@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" - dependencies: - js-tokens "^2.0.0" +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== -loose-envify@^1.3.1: +loose-envify@^1.0.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" +loupe@^2.3.1: + version "2.3.6" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== + dependencies: + get-func-name "^2.0.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" + yallist "^4.0.0" -macos-release@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.0.0.tgz#7dddf4caf79001a851eb4fba7fb6034f251276ab" +macos-release@^2.2.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2" + integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g== + +magic-string@0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" + integrity sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg== + dependencies: + sourcemap-codec "^1.4.1" -magic-string@^0.22.4, magic-string@^0.22.5: +magic-string@^0.22.5: version "0.22.5" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" + integrity sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w== dependencies: vlq "^0.2.2" -magic-string@^0.25.1: - version "0.25.1" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" +magic-string@^0.25.2: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== dependencies: - sourcemap-codec "^1.4.1" + sourcemap-codec "^1.4.8" -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: - tmpl "1.0.x" + semver "^6.0.0" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== dependencies: p-defer "^1.0.0" map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== dependencies: object-visit "^1.0.0" markdown-escapes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz#e639cbde7b99c841c0bacc8a07982873b46d2122" + version "1.0.4" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" + integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== markdown-extensions@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-1.1.1.tgz#fea03b539faeaee9b4ef02a3769b455b189f7fc3" + integrity sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q== markdown-table@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz#c78db948fa879903a41bce522e3b96f801c63786" + version "1.1.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" + integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== + +markdown-table@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== matcher@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2" + integrity sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg== dependencies: escape-string-regexp "^1.0.4" +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + mdast-comment-marker@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.0.3.tgz#1ead204b73e8759d29785ef3024a1e43510d38e5" + version "1.1.2" + resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz#5ad2e42cfcc41b92a10c1421a98c288d7b447a6d" + integrity sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ== + +mdast-comment-marker@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-2.1.0.tgz#67acce26def829b310016c7a186ec6ec3e7d6a3f" + integrity sha512-/+Cfm8A83PjkqjQDB9iYqHESGuXlriCWAwRGPJjkYmxXrF4r6saxeUlOKNrf+SogTwg9E8uyHRCFHLG6/BAAdA== + dependencies: + mdast-util-mdx-expression "^1.1.0" mdast-util-compact@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz#c12ebe16fffc84573d3e19767726de226e95f649" + version "1.0.4" + resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz#d531bb7667b5123abf20859be086c4d06c894593" + integrity sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg== dependencies: unist-util-visit "^1.1.0" +mdast-util-find-and-replace@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz#249901ef43c5f41d6e8a8d446b3b63b17e592d7c" + integrity sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw== + dependencies: + escape-string-regexp "^5.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + +mdast-util-from-markdown@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268" + integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-gfm-autolink-literal@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz#4032dcbaddaef7d4f2f3768ed830475bb22d3970" + integrity sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg== + dependencies: + "@types/mdast" "^3.0.0" + ccount "^2.0.0" + mdast-util-find-and-replace "^2.0.0" + micromark-util-character "^1.0.0" + +mdast-util-gfm-footnote@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz#11d2d40a1a673a399c459e467fa85e00223191fe" + integrity sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + micromark-util-normalize-identifier "^1.0.0" + +mdast-util-gfm-strikethrough@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.2.tgz#6b4fa4ae37d449ccb988192ac0afbb2710ffcefd" + integrity sha512-T/4DVHXcujH6jx1yqpcAYYwd+z5lAYMw4Ls6yhTfbMMtCt0PHY4gEfhW9+lKsLBtyhUGKRIzcUA2FATVqnvPDA== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm-table@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.6.tgz#184e900979fe790745fc3dabf77a4114595fcd7f" + integrity sha512-uHR+fqFq3IvB3Rd4+kzXW8dmpxUhvgCQZep6KdjsLK4O6meK5dYZEayLtIxNus1XO3gfjfcIFe8a7L0HZRGgag== + dependencies: + "@types/mdast" "^3.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm-task-list-item@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz#6f35f09c6e2bcbe88af62fdea02ac199cc802c5c" + integrity sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz#16fcf70110ae689a06d77e8f4e346223b64a0ea6" + integrity sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ== + dependencies: + mdast-util-from-markdown "^1.0.0" + mdast-util-gfm-autolink-literal "^1.0.0" + mdast-util-gfm-footnote "^1.0.0" + mdast-util-gfm-strikethrough "^1.0.0" + mdast-util-gfm-table "^1.0.0" + mdast-util-gfm-task-list-item "^1.0.0" + mdast-util-to-markdown "^1.0.0" + mdast-util-heading-style@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-1.0.4.tgz#8e796de77f91c141691620ebbb5c9140609e3fd2" + version "1.0.6" + resolved "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-1.0.6.tgz#6410418926fd5673d40f519406b35d17da10e3c5" + integrity sha512-8ZuuegRqS0KESgjAGW8zTx4tJ3VNIiIaGFNEzFpRSAQBavVc7AvOo9I4g3crcZBfYisHs4seYh0rAVimO6HyOw== + +mdast-util-heading-style@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-2.0.0.tgz#19bcc14d96b4a6f24efbe1318409bd34af64bb7f" + integrity sha512-q9+WW2hJduW51LgV2r/fcU5wIt2GLFf0yYHxyi0f2aaxnC63ErBSOAJlhP6nbQ6yeG5rTCozbwOi4QNDPKV0zw== + dependencies: + "@types/mdast" "^3.0.0" + +mdast-util-mdx-expression@^1.1.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.1.tgz#2224cf0b5b150093704a3c225bd529d2de21f50f" + integrity sha512-TTb6cKyTA1RD+1su1iStZ5PAv3rFfOUKcoU5EstUpv/IZo63uDX03R8+jXjMEhcobXnNOiG6/ccekvVl4eV1zQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-phrasing@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.0.tgz#c44fcf6be61a3cb8da54ab2df22320e61d4537ce" + integrity sha512-S+QYsDRLkGi8U7o5JF1agKa/sdP+CNGXXLqC17pdTVL8FHHgQEiwFGa9yE5aYtUxNiFGYoaDy9V1kC85Sz86Gg== + dependencies: + "@types/mdast" "^3.0.0" + unist-util-is "^5.0.0" + +mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" + integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" mdast-util-to-string@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.5.tgz#3552b05428af22ceda34f156afe62ec8e6d731ca" + version "1.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" + integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== + +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" + integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== mem@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.1.0.tgz#aeb9be2d21f47e78af29e4ac5978e8afa2ca5b8a" + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== dependencies: map-age-cleaner "^0.1.1" - mimic-fn "^1.0.0" + mimic-fn "^2.0.0" p-is-promise "^2.0.0" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-source-map@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" + integrity sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA== dependencies: source-map "^0.5.6" merge-stream@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA== dependencies: readable-stream "^2.0.1" @@ -5926,7 +6984,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge@^1.1.3: +merge@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== @@ -5934,10 +6992,287 @@ merge@^1.1.3: methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz#edff4c72e5993d93724a3c206970f5a15b0585ad" + integrity sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-extension-gfm-autolink-literal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz#dc589f9c37eaff31a175bab49f12290edcf96058" + integrity sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-footnote@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz#cbfd8873b983e820c494498c6dac0105920818d5" + integrity sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg== + dependencies: + micromark-core-commonmark "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-strikethrough@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz#162232c284ffbedd8c74e59c1525bda217295e18" + integrity sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-table@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz#7b708b728f8dc4d95d486b9e7a2262f9cddbcbb4" + integrity sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-tagfilter@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz#fb2e303f7daf616db428bb6a26e18fda14a90a4d" + integrity sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-extension-gfm-task-list-item@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz#7683641df5d4a09795f353574d7f7f66e47b7fc4" + integrity sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz#40f3209216127a96297c54c67f5edc7ef2d1a2a2" + integrity sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA== + dependencies: + micromark-extension-gfm-autolink-literal "^1.0.0" + micromark-extension-gfm-footnote "^1.0.0" + micromark-extension-gfm-strikethrough "^1.0.0" + micromark-extension-gfm-table "^1.0.0" + micromark-extension-gfm-tagfilter "^1.0.0" + micromark-extension-gfm-task-list-item "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz#fef1cb59ad4997c496f887b6977aa3034a5a277e" + integrity sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137" + integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-space@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz#cebff49968f2b9616c0fcb239e96685cb9497633" + integrity sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f" + integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-whitespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz#e991e043ad376c1ba52f4e49858ce0794678621c" + integrity sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz#d97c54d5742a0d9611a68ca0cd4124331f264d86" + integrity sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz#5b40d83f3d53b84c4c6bce30ed4257e9a4c79d06" + integrity sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz#cbd7b447cb79ee6997dd274a46fc4eb806460a20" + integrity sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz#91418e1e74fb893e3628b8d496085639124ff3d5" + integrity sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz#dcc85f13b5bd93ff8d2868c3dba28039d490b946" + integrity sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" + integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz#2c1c22d3800870ad770ece5686ebca5920353383" + integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== + +micromark-util-html-tag-name@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" + integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== + +micromark-util-normalize-identifier@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz#4a3539cb8db954bbec5203952bfe8cedadae7828" + integrity sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz#a7c363f49a0162e931960c44f3127ab58f031d88" + integrity sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee" + integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105" + integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz#b90344db62042ce454f351cf0bebcc0a6da4920e" + integrity sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20" + integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== + +micromark@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.1.0.tgz#eeba0fe0ac1c9aaef675157b52c166f125e89f62" + integrity sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA== dependencies: arr-diff "^2.0.0" array-unique "^0.2.1" @@ -5953,9 +7288,10 @@ micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -5972,8 +7308,9 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: to-regex "^3.0.2" miller-rabin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" @@ -5983,27 +7320,17 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-db@~1.37.0: - version "1.37.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" - integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime-types@~2.1.18: - version "2.1.21" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" - dependencies: - mime-db "~1.37.0" - -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.5.2: version "2.6.0" @@ -6013,8 +7340,9 @@ mime@^2.5.2: mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -mimic-fn@^2.1.0: +mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -6027,41 +7355,31 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" +minimatch@^3.0.0, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" minimist@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.0: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== mixin-deep@^1.2.0: version "1.3.2" @@ -6071,13 +7389,19 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" +mkdirp-classic@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== dependencies: - minimist "0.0.8" + minimist "^1.2.5" -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -6085,43 +7409,45 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: minimist "^1.2.6" mocha@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.0.0.tgz#b558da6245a09581aa4a1c6aee9e0fa6ad0e1767" + version "6.2.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912" + integrity sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== dependencies: ansi-colors "3.2.3" browser-stdout "1.3.1" debug "3.2.6" diff "3.5.0" escape-string-regexp "1.0.5" - findup-sync "2.0.0" + find-up "3.0.0" glob "7.1.3" growl "1.10.5" he "1.2.0" - js-yaml "3.12.0" + js-yaml "3.13.1" log-symbols "2.2.0" minimatch "3.0.4" - mkdirp "0.5.1" + mkdirp "0.5.4" ms "2.1.1" - node-environment-flags "1.0.4" + node-environment-flags "1.0.5" object.assign "4.1.0" strip-json-comments "2.0.1" supports-color "6.0.0" which "1.3.1" wide-align "1.1.3" - yargs "12.0.5" - yargs-parser "11.1.1" - yargs-unparser "1.5.0" + yargs "13.3.2" + yargs-parser "13.1.2" + yargs-unparser "1.6.0" -module-deps@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.0.tgz#d41a2e790245ce319171e4e7c4d8c73993ba3cd5" +module-deps@^6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee" + integrity sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA== dependencies: JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.0" + browser-resolve "^2.0.0" + cached-path-relative "^1.0.2" concat-stream "~1.6.0" defined "^1.0.0" - detective "^5.0.2" + detective "^5.2.0" duplexer2 "^0.1.2" inherits "^2.0.1" parents "^1.0.0" @@ -6135,6 +7461,7 @@ module-deps@^6.0.0: moment-parseformat@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/moment-parseformat/-/moment-parseformat-3.0.0.tgz#3a1dc438b4bc073b7e93cc298cfb6c5daac26dba" + integrity sha512-dVgXe6b6DLnv4CHG7a1zUe5mSXaIZ3c6lSHm/EKeVeQI2/4pwe0VRde8OyoCE1Ro2lKT5P6uT9JElF7KDLV+jw== moment-timezone@0.5.37: version "0.5.37" @@ -6148,39 +7475,50 @@ moment-timezone@0.5.37: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.1, ms@^2.1.1: +ms@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -mute-stream@0.0.7, mute-stream@~0.0.4: +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== -mute-stream@0.0.8: +mute-stream@0.0.8, mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.9.2: - version "2.12.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" +nan@^2.12.1: + version "2.17.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -6197,18 +7535,12 @@ nanomatch@^1.2.9: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -needle@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.6.0: version "2.6.2" @@ -6218,18 +7550,22 @@ neo-async@^2.6.0: next-line@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/next-line/-/next-line-1.1.0.tgz#fcae57853052b6a9bae8208e40dd7d3c2d304603" + integrity sha512-+I10J3wKNoKddNxn0CNpoZ3eTZuqxjNM3b1GImVx22+ePI+Y15P8g/j3WsbP0fhzzrFzrtjOAoq5NCCucswXOQ== -next-tick@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== nock@^10.0.6: version "10.0.6" resolved "https://registry.yarnpkg.com/nock/-/nock-10.0.6.tgz#e6d90ee7a68b8cfc2ab7f6127e7d99aa7d13d111" + integrity sha512-b47OWj1qf/LqSQYnmokNWM8D88KvUl2y7jT0567NB3ZBAZFz2bWp2PC81Xn7u8F2/vJxzkzNZybnemeFa7AZ2w== dependencies: chai "^4.1.2" debug "^4.1.0" @@ -6241,111 +7577,75 @@ nock@^10.0.6: qs "^6.5.1" semver "^5.5.0" -node-environment-flags@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.4.tgz#0b784a6551426bfc16d3b2208424dcbc2b2ff038" +node-environment-flags@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" + integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== dependencies: object.getownpropertydescriptors "^2.0.3" + semver "^5.7.0" -node-fetch@^2.3.0: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== +node-fetch@^2.3.0, node-fetch@^2.6.0, node-fetch@^2.6.7: + version "2.6.8" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e" + integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg== dependencies: whatwg-url "^5.0.0" node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-notifier@^5.2.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01" + version "5.4.5" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.5.tgz#0cbc1a2b0f658493b4025775a13ad938e96091ef" + integrity sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ== dependencies: growly "^1.3.0" + is-wsl "^1.1.0" semver "^5.5.0" shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" - integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2: - version "2.3.5" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" +node-releases@^2.0.6: + version "2.0.8" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" + integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== -normalize-package-data@^2.5.0: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" resolve "^1.10.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" - -normalize-path@^2.1.1: +normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - -npm-bundled@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" - -npm-packlist@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.2.0.tgz#55a60e793e272f00862c7089274439a4cc31fc7f" - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== npm-path@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" + integrity sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw== dependencies: which "^1.2.10" npm-prefix@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/npm-prefix/-/npm-prefix-1.2.0.tgz#e619455f7074ba54cc66d6d0d37dd9f1be6bcbc0" + integrity sha512-EkGZ7jtA2onsULFpnZ/P5S0DPy8w9qH1TVytPhY54s+dmtLXBmp1evt8W9nfg5JEay24K3bX9WWTIHR8WQcOJA== dependencies: rc "^1.1.0" shellsubstitute "^1.1.0" @@ -6354,35 +7654,30 @@ npm-prefix@^1.2.0: npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== dependencies: path-key "^2.0.0" npm-which@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" + integrity sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A== dependencies: commander "^2.9.0" npm-path "^2.0.2" which "^1.2.10" -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - nth-check@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== nwsapi@^2.0.7: version "2.2.2" @@ -6394,78 +7689,105 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== +object-inspect@^1.12.2, object-inspect@^1.6.0, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-inspect@~1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4" +object-is@^1.0.1, object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" -object-keys@^1.0.11, object-keys@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" +object-keys@^1.0.11, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== dependencies: isobject "^3.0.0" -object.assign@4.1.0, object.assign@^4.1.0: +object.assign@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== dependencies: define-properties "^1.1.2" function-bind "^1.1.1" has-symbols "^1.0.0" object-keys "^1.0.11" -object.entries@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" +object.assign@^4.1.0, object.assign@^4.1.3, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" - has "^1.0.3" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" -object.fromentries@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" +object.entries@^1.1.0, object.entries@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== dependencies: - define-properties "^1.1.2" - es-abstract "^1.11.0" - function-bind "^1.1.1" - has "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.1: + version "2.1.5" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" + integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== + dependencies: + array.prototype.reduce "^1.0.5" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.hasown@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.20.4" object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA== dependencies: for-own "^0.1.4" is-extendable "^0.1.1" @@ -6473,12 +7795,23 @@ object.omit@^2.0.0: object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== dependencies: - isobject "^3.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" octokit-pagination-methods@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" + integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== on-finished@2.4.1: version "2.4.1" @@ -6490,18 +7823,21 @@ on-finished@2.4.1: on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== dependencies: ee-first "1.1.1" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== dependencies: mimic-fn "^1.0.0" @@ -6513,11 +7849,11 @@ onetime@^5.1.0: mimic-fn "^2.1.0" opencollective-postinstall@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" - integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== -optionator@^0.8.1: +optionator@^0.8.1, optionator@^0.8.2: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== @@ -6529,18 +7865,7 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -ora@^4.0.0: +ora@^4.0.0, ora@^4.0.5: version "4.1.1" resolved "https://registry.yarnpkg.com/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== @@ -6557,95 +7882,87 @@ ora@^4.0.0: os-browserify@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-locale@^3.0.0: +os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== dependencies: execa "^1.0.0" lcid "^2.0.0" mem "^4.0.0" -os-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.0.0.tgz#e1434dbfddb8e74b44c98b56797d951b7648a5d9" +os-name@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== dependencies: - macos-release "^2.0.0" + macos-release "^2.2.0" windows-release "^3.1.0" os-shim@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + integrity sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A== -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== outpipe@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2" + integrity sha512-BnNY/RwnDrkmQdUa9U+OfN/Y7AWmKuUPCCd+hbRclZnnANvYpO72zp/a6Q4n829hPbdqEac31XCcsvlEvb+rtA== dependencies: shell-quote "^1.4.2" p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-is-promise@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" -p-limit@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" - dependencies: - p-try "^2.0.0" - -p-limit@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" @@ -6659,48 +7976,57 @@ p-locate@^4.1.0: p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== p-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50" + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== p-try@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pako@~1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.8.tgz#6844890aab9c635af868ad5fecc62e8acbba3ea4" + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parent-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5" + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parents@^1.0.0, parents@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + integrity sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg== dependencies: path-platform "~0.11.15" -parse-asn1@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.0.0.tgz#35060f6d5015d37628c770f4e091a0b5a278bc23" +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: - asn1.js "^4.0.0" + asn1.js "^5.2.0" browserify-aes "^1.0.0" - create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" parse-entities@^1.0.2, parse-entities@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.0.tgz#9deac087661b2e36814153cb78d7e54a4c5fd6f4" + version "1.2.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" + integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== dependencies: character-entities "^1.0.0" character-entities-legacy "^1.0.0" @@ -6712,6 +8038,7 @@ parse-entities@^1.0.2, parse-entities@^1.1.0: parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA== dependencies: glob-base "^0.3.0" is-dotfile "^1.0.0" @@ -6721,29 +8048,33 @@ parse-glob@^3.0.4: parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== dependencies: error-ex "^1.2.0" parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -6752,24 +8083,29 @@ parseurl@~1.3.3: pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== path-browserify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" @@ -6779,16 +8115,19 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== -path-parse@^1.0.5, path-parse@^1.0.6: +path-parse@^1.0.5, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -6796,35 +8135,37 @@ path-parse@^1.0.5, path-parse@^1.0.6: path-platform@~0.11.15: version "0.11.15" resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + integrity sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg== path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== dependencies: graceful-fs "^4.1.2" pify "^2.0.0" pinkie-promise "^2.0.0" -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -pathval@^1.1.0: +pathval@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== pbkdf2@^3.0.3: - version "3.0.9" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: - create-hmac "^1.1.2" + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" performance-now@^2.1.0: version "2.1.0" @@ -6836,12 +8177,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" - integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== - -picomatch@^2.2.1: +picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -6849,30 +8185,29 @@ picomatch@^2.2.1: pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - dependencies: - find-up "^1.0.0" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw== dependencies: find-up "^2.1.0" @@ -6883,31 +8218,36 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-to-id@~0.0.3: +pkg-to-id@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/pkg-to-id/-/pkg-to-id-0.0.3.tgz#34ff336cff53c27a8bf484bc7e3d31ea6c1ccca8" + integrity sha512-WdWM+R/Hya9FyLrG+IL/DwSMOgJyICsr5STNigGODRTiPrrAcsmVmSwVsnaCa+XG8ORycJsT3M7+lRw8WswV/w== pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg== dependencies: find-up "^2.1.0" -please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" +please-upgrade-node@^3.0.2, please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== dependencies: semver-compare "^1.0.0" plur@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/plur/-/plur-3.0.1.tgz#268652d605f816699b42b86248de73c9acd06a7c" + version "3.1.1" + resolved "https://registry.yarnpkg.com/plur/-/plur-3.1.1.tgz#60267967866a8d811504fe58f2faaba237546a5b" + integrity sha512-t1Ax8KUvV3FFII8ltczPn2tJdjqbd1sIzu6t4JL7nQ3EyeL/lTrj5PWKb06ic5/6XYDr65rQ4uzQEGN70/6X5w== dependencies: irregular-plurals "^2.0.0" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== pn@^1.1.0: version "1.1.0" @@ -6917,6 +8257,7 @@ pn@^1.1.0: posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== postman-request@^2.88.1-postman.31: version "2.88.1-postman.31" @@ -6954,74 +8295,80 @@ prelude-ls@~1.1.2: preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ== prettier@^1.15.3: - version "1.15.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.15.3.tgz#1feaac5bdd181237b54dbe65d874e02a1472786a" + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== pretty-format@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" + integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -private@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1" - private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== process-es6@^0.11.6: version "0.11.6" resolved "https://registry.yarnpkg.com/process-es6/-/process-es6-0.11.6.tgz#c6bb389f9a951f82bd4eb169600105bd2ff9c778" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha512-GYBRQtL4v3wgigq10Pv58jmTbFXlIiTbSfgnNqZLY0ldUPqy1rRxDI5fCjoCpnM6TqmHQI8ydzTBXW86OYc0gA== process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@~0.11.0: - version "0.11.9" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== prompts@^0.1.9: version "0.1.14" resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" + integrity sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w== dependencies: kleur "^2.0.1" sisteransi "^0.1.1" -prop-types@^15.6.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" +prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: - loose-envify "^1.3.1" + loose-envify "^1.4.0" object-assign "^4.1.1" + react-is "^16.13.1" propagate@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/propagate/-/propagate-1.0.0.tgz#00c2daeedda20e87e3782b344adba1cddd6ad709" + integrity sha512-T/rqCJJaIPYObiLSmaDsIf4PGA7y+pkgYFHmwoXQyOHiDDSO1YCxcztNiRBmV4EZha4QIbID3vQIHkqKu5k0Xg== -proxy-addr@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.8.0" +property-expr@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f" + integrity sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g== -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" psl@^1.1.28: version "1.9.0" @@ -7029,18 +8376,21 @@ psl@^1.1.28: integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" create-hash "^1.1.0" parse-asn1 "^5.0.0" randombytes "^2.0.1" + safe-buffer "^5.1.2" pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -7048,36 +8398,30 @@ pump@^3.0.0: punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== punycode@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== qjobs@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== +qs@6.11.0, qs@^6.5.1: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" -qs@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - -qs@^6.5.1: - version "6.6.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.6.0.tgz#a99c0f69a8d26bf7ef012f871cdabb0aee4424c2" - qs@~6.5.2: version "6.5.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" @@ -7086,51 +8430,51 @@ qs@~6.5.2: querystring-es3@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== quote-stream@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" + integrity sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ== dependencies: buffer-equal "0.0.1" minimist "^1.1.3" through2 "^2.0.0" -randomatic@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== dependencies: - is-number "^2.0.2" - kind-of "^3.0.2" - -randombytes@^2.0.0, randombytes@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" -randombytes@^2.1.0: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -range-parser@^1.2.1, range-parser@~1.2.0: +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" - dependencies: - bytes "3.0.0" - http-errors "1.6.3" - iconv-lite "0.4.23" - unpipe "1.0.0" - raw-body@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" @@ -7141,90 +8485,76 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.1.0, rc@^1.2.7: +rc@^1.1.0: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + read-only-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + integrity sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w== dependencies: readable-stream "^2.0.2" read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== dependencies: find-up "^1.0.0" read-pkg "^1.0.0" -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" path-type "^1.0.0" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read-pkg@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.1.1.tgz#5cf234dde7a405c90c88a519ab73c467e9cb83f5" +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: "@types/normalize-package-data" "^2.4.0" normalize-package-data "^2.5.0" - parse-json "^4.0.0" - type-fest "^0.4.1" + parse-json "^5.0.0" + type-fest "^0.6.0" -read@~1.0.7: +read@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: mute-stream "~0.0.4" "readable-stream@>=1.0.33-1 <1.1.0-0": version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@^2.3.5, readable-stream@~2.3.3, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@~2.3.3, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -7234,18 +8564,10 @@ readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@^2.3.5, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.0.tgz#19c2e9c1ce43507c53f6eefbcf1ee3d4aaa786f5" - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^3.0.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== +readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -7253,27 +8575,27 @@ readable-stream@^3.0.2: readable-stream@~1.1.9: version "1.1.14" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@~2.0.0, readable-stream@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" +readable-stream@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" micromatch "^3.1.10" @@ -7287,105 +8609,281 @@ readdirp@~3.6.0: picomatch "^2.2.1" realpath-native@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz#cd51ce089b513b45cf9b1516c82989b51ccc6560" + version "1.1.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== dependencies: util.promisify "^1.0.0" -regenerate-unicode-properties@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== dependencies: - regenerate "^1.4.0" + regenerate "^1.4.2" -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.12.0: - version "0.12.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" +regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.4: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-runtime@^0.9.5: - version "0.9.6" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" - -regenerator-transform@^0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" +regenerator-transform@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" + integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== dependencies: - private "^0.1.6" + "@babel/runtime" "^7.8.4" regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== dependencies: is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - -regexpu-core@^4.1.3, regexpu-core@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32" - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^7.0.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.0.2" - -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpu-core@^5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc" + integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsgen "^0.7.1" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsgen@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" + integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" remark-cli@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-7.0.0.tgz#ed12602a9ddd5475e375f76973314f04c1f9368c" - integrity sha512-gYomWviFnZsiRimG+Jdb4LQ9c8uSOcGmPTmzlvxImt0gvzabqlp1kaqndxTx4kYLsWGqwhQRO+M9iyqHDkoDlA== + version "7.0.1" + resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-7.0.1.tgz#2d19d77674e20ea20a3f8ae31694ac30fddb1f52" + integrity sha512-CUjBLLSbEay0mNwOO+pptnLIoS8UB6cHlhZVpTRKbtbIcw6YEzEfD7jGjW1HCA8lZK87IfY3/DuWE6DlXu+hfg== dependencies: markdown-extensions "^1.1.0" remark "^11.0.0" unified-args "^7.0.0" +remark-gfm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" + integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-gfm "^2.0.0" + micromark-extension-gfm "^2.0.0" + unified "^10.0.0" + +remark-lint-blockquote-indentation@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.1.tgz#756c099efd43a125f04df329bfe84398358758b6" + integrity sha512-u9cjedM6zcK8vRicis5n/xeOSDIC3FGBCKc3K9pqw+nNrOjY85FwxDQKZZ/kx7rmkdRZEhgyHak+wzPBllcxBQ== + dependencies: + "@types/mdast" "^3.0.0" + pluralize "^8.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-checkbox-character-style@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.1.tgz#8d42edf52e7b359cf76ff7a6ba344dc70c933025" + integrity sha512-KPSW3wfHfB8m9hzrtHiBHCTUIsOPX5nZR7VM+2pMjwqnhI6Mp94DKprkNo1ekNZALNeoZIDWZUSYxSiiwFfmVQ== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-checkbox-content-indent@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.1.tgz#fb6112b95bb2556491edb85660c6875718c9d12d" + integrity sha512-apkM6sqCwAHwNV0v6KuEbq50fH3mTAV4wKTwI1nWgEj33/nf4+RvLLPgznoc2olZyeAIHR69EKPQiernjCXPOw== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + vfile-location "^4.0.0" + +remark-lint-code-block-style@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-3.1.0.tgz#5a2d122d01f9175e762f81a144fc18e1a91a104c" + integrity sha512-Hv4YQ8ueLGpjItla4CkcOkcfGj+nlquqylDgCm1/xKnW+Ke2a4qVTMVJrP9Krp4FWmXgktJLDHjhRH+pzhDXLg== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-definition-spacing@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.1.tgz#403cb3a486cbc2cb703358e78115507f6ee1fc2b" + integrity sha512-PR+cYvc0FMtFWjkaXePysW88r7Y7eIwbpUGPFDIWE48fiRiz8U3VIk05P3loQCpCkbmUeInAAYD8tIFPTg4Jlg== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-fenced-code-flag@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.1.tgz#b1fccd801a79c302543302dd3041fa325d1bd727" + integrity sha512-FFVZmYsBccKIIEgOtgdZEpQdARtAat1LTLBydnIpyNIvcntzWwtrtlj9mtjL8ZoSRre8HtwmEnBFyOfmM/NWaA== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-fenced-code-marker@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.1.tgz#ee977552bd130f1f1305301f97160d31ff6b7461" + integrity sha512-x/t8sJWPvE46knKz6zW03j9VX5477srHUmRFbnXhZ3K8e37cYVUIvfbPhcPCAosSsOki9+dvGfZsWQiKuUNNfQ== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-file-extension@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-2.1.1.tgz#780ef3c3a2e5713a44f82f24eb45e075ce9ba428" + integrity sha512-r6OMe27YZzr2NFjPMbBxgm8RZxigRwzeFSjapPlqcxk0Q0w/6sosJsceBNlGGlk00pltvv7NPqSexbXUjirrQQ== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + +remark-lint-final-definition@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-3.1.1.tgz#c1077176e41b675302abf5057a82d7d5602df149" + integrity sha512-94hRV+EBIuLVFooiimsZwh5ZPEcTqjy5wr7LgqxoUUWy+srTanndaLoki7bxQJeIcWUnomZncsJAyL0Lo7toxw== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + remark-lint-final-newline@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remark-lint-final-newline/-/remark-lint-final-newline-1.0.2.tgz#13b9ff6bd3e9c377286b439d8f14b04efde3898f" + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-final-newline/-/remark-lint-final-newline-1.0.5.tgz#666f609a91f97c44f5ab7facf1fb3c5b3ffe398f" + integrity sha512-rfLlW8+Fz2dqnaEgU4JwLA55CQF1T4mfSs/GwkkeUCGPenvEYwSkCN2KO2Gr1dy8qPoOdTFE1rSufLjmeTW5HA== dependencies: unified-lint-rule "^1.0.0" +remark-lint-final-newline@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-final-newline/-/remark-lint-final-newline-2.1.1.tgz#dac4e5ae92638808fb6e2de6164c43890f1248a5" + integrity sha512-cgKYaI7ujUse/kV4KajLv2j1kmi1CxpAu+w7wIU0/Faihhb3sZAf4a5ACf2Wu8NoTSIr1Q//3hDysG507PIoDg== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + +remark-lint-first-heading-level@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.1.1.tgz#0e3d2fae58b0788a9b9577ab531c4c3c5b64b4fa" + integrity sha512-Z2+gn9sLyI/sT2c1JMPf1dj9kQkFCpL1/wT5Skm5nMbjI8/dIiTF2bKr9XKsFZUFP7GTA57tfeZvzD1rjWbMwg== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-visit "^4.0.0" + remark-lint-hard-break-spaces@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-1.0.3.tgz#0485fc09265dcea436f5eb3420a3b6f616c6fad7" + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-1.0.5.tgz#875c0b25d69eaadf71e6c5f2a5ebc8cd705e26ec" + integrity sha512-Rss7ujNtxipO/hasWYc0QdiO8D5VyliSwj3zAZ8GeDn0ix2KH+pY4/AJC7i9IGcVVbUGvvXLpJB3Pp1VeY7oKw== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-position "^3.0.0" unist-util-visit "^1.1.1" +remark-lint-hard-break-spaces@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.1.tgz#daaa6fbc9d08a0501dc6e3d4a844dc4783bdfaea" + integrity sha512-UfwFvESpX32qwyHJeluuUuRPWmxJDTkmjnWv2r49G9fC4Jrzm4crdJMs3sWsrGiQ3mSex6bgp/8rqDgtBng2IA== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-heading-style@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-3.1.1.tgz#19e321db9dc6c697f3ef8bf514a8b15323422776" + integrity sha512-Qm7ZAF+s46ns0Wo5TlHGIn/PPMMynytn8SSLEdMIo6Uo/+8PAcmQ3zU1pj57KYxfyDoN5iQPgPIwPYMLYQ2TSQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-heading-style "^2.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-visit "^4.0.0" + remark-lint-list-item-bullet-indent@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-1.0.2.tgz#82461e7295b9e208e7c41b62d30476a69727b0cb" + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-1.0.4.tgz#dd9a0de0109674731e12be109a639b8135c517a1" + integrity sha512-SqhAmVFkeFQYP5I1qztCi2rfhLWwfSvia3DZ56sz9+h1pMqWIj3FmWRueY36xrnQo3LxsLljM5atI7AJBWxQEw== dependencies: plur "^3.0.0" unified-lint-rule "^1.0.0" @@ -7393,9 +8891,21 @@ remark-lint-list-item-bullet-indent@^1.0.0: unist-util-position "^3.0.0" unist-util-visit "^1.1.1" +remark-lint-list-item-bullet-indent@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.1.tgz#1ff4498b680bb4a8ce94a4192a1b52eca4c9fe48" + integrity sha512-NFvXVj1Nm12+Ma48NOjZCGb/D0IhmUcxyrTCpPp+UNJhEWrmFxM8nSyIiZgXadgXErnuv+xm2Atw7TAcZ9a1Cg== + dependencies: + "@types/mdast" "^3.0.0" + pluralize "^8.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-visit "^4.0.0" + remark-lint-list-item-indent@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-1.0.3.tgz#93dac0cc312ee8dd9c8a0749b44b17b95b765f53" + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-1.0.5.tgz#873c51c24ec673af0816347ecf941361a04b1ff4" + integrity sha512-DjRgxjqaVMrnlQFJypizTPtLa9gSM5ad0LVIFDSstV2UVXSgpBi2+bSsFJEXb4Fkjo/d2JAgt27UhzhcoF2lnw== dependencies: plur "^3.0.0" unified-lint-rule "^1.0.0" @@ -7403,9 +8913,35 @@ remark-lint-list-item-indent@^1.0.0: unist-util-position "^3.0.0" unist-util-visit "^1.1.1" +remark-lint-list-item-indent@^3.0.0, remark-lint-list-item-indent@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.1.tgz#1591d291a9f81c8f14219bdb63f226a5e9f271c3" + integrity sha512-OSTG64e52v8XBmmeT0lefpiAfCMYHJxMMUrMnhTjLVyWAbEO0vqqR5bLvfLwzK+P4nY2D/8XKku0hw35dM86Rw== + dependencies: + "@types/mdast" "^3.0.0" + pluralize "^8.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-maximum-line-length@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.2.tgz#4c5c499279c80938878194d4e52102525b7a9e1b" + integrity sha512-KwddpVmNifTHNXwTQQgVufuUvv0hhu9kJVvmpNdEvfEc7tc3wBkaavyi3kKsUB8WwMhGtZuXVWy6OdPC1axzhw== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + remark-lint-no-auto-link-without-protocol@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-1.0.2.tgz#4532087419b1b131b4057ecf0a3a446f0afc2c6e" + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-1.0.4.tgz#c7417ee8f5ab7eb45aa1f7c6a345ff6db1acf843" + integrity sha512-dhDHQLeaI79p7SRoKfxJ9c8J5otQsGua7ILeNbs2Onzn46/tp9ir6zjq3Lfh4VJJr4OVign2e8u+MzXsS7Uu/A== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -7414,8 +8950,9 @@ remark-lint-no-auto-link-without-protocol@^1.0.0: unist-util-visit "^1.1.1" remark-lint-no-blockquote-without-marker@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-2.0.2.tgz#61b6a0a74fbfba8fd168ac0fcc2a673eb47b9880" + version "2.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-2.0.4.tgz#96fe200cd738ee2857c82a549622ed999243a990" + integrity sha512-a5LFGj7It2z7aBRGaAcztk4D2pax2b7dK9iOarIWv/JBus/PSjZJxzZCma2aAAOQhv3wbNTwqQwuQC0UJHMbPg== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" @@ -7423,19 +8960,88 @@ remark-lint-no-blockquote-without-marker@^2.0.0: unist-util-visit "^1.1.1" vfile-location "^2.0.1" +remark-lint-no-blockquote-without-marker@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.1.tgz#e07233866a742c41368886663d7caebbdebb1074" + integrity sha512-7jL7eKS25kKRhQ7SKKB5eRfNleDMWKWAmZ5Y/votJdDoM+6qsopLLumPWaSzP0onyV3dyHRhPfBtqelt3hvcyA== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + vfile-location "^4.0.0" + +remark-lint-no-consecutive-blank-lines@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.2.tgz#77d5c433830c306898deefbab370c0c5732ff99a" + integrity sha512-wRsR3kFgHaZ4mO3KASU43oXGLGezNZ64yNs1ChPUacKh0Bm7cwGnxN9GHGAbOXspwrYrN2eCDxzCbdPEZi2qKw== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + pluralize "^8.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + remark-lint-no-duplicate-definitions@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-1.0.3.tgz#d35e21718e230b2e75a88f166efcfe84267baa82" + version "1.0.6" + resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-1.0.6.tgz#07e5c24c7d29f442bf7d7492335d21456caf2c92" + integrity sha512-0biPtjVtGLRTN+ie7TzJpvKBau6sqkuQsQtuD07M0NSOmSvSU4vXUeOW73O5Q5xM3i6sYVESe+opaPefD3zEoA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-position "^3.0.0" - unist-util-stringify-position "^1.1.2" + unist-util-stringify-position "^2.0.0" unist-util-visit "^1.4.0" +remark-lint-no-duplicate-definitions@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.1.tgz#2f5042b8d2274d94a9423767c6e714b57c6a2dbf" + integrity sha512-9p+nBz8VvV+t4g/ALNLVN8naV+ffAzC4ADyg9QivzmKwLjyF93Avt4HYNlb2GZ+aoXRQSVG1wjjWFeDC9c7Tdg== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-stringify-position "^3.0.0" + unist-util-visit "^4.0.0" + +remark-lint-no-file-name-articles@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.1.tgz#9a202242fae3d9f6d7037bb71821659887ee84a4" + integrity sha512-7fiHKQUGvP4WOsieZ1dxm8WQWWjXjPj0Uix6pk2dSTJqxvaosjKH1AV0J/eVvliat0BGH8Cz4SUbuz5vG6YbdQ== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + +remark-lint-no-file-name-consecutive-dashes@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.1.tgz#d0d36ae694a486a9d8a39d9f3823f11234ed45c2" + integrity sha512-tM4IpURGuresyeIBsXT5jsY3lZakgO6IO59ixcFt015bFjTOW54MrBvdJxA60QHhf5DAyHzD8wGeULPSs7ZQfg== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + +remark-lint-no-file-name-outer-dashes@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.1.tgz#d0956441d1df6fb0a04a0efd375a739729fe5213" + integrity sha512-2kRcVNzZb0zS3jE+Iaa6MEpplhqXSdsHBILS+BxJ4cDGAAIdeipY8hKaDLdZi+34wvrfnDxNgvNLcHpgqO+OZA== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + remark-lint-no-heading-content-indent@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-1.0.2.tgz#812c4af2a18491bbf278f15a6f533169203a1b3c" + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-1.0.4.tgz#85b01524f50c3e6c4fc7f728e691b5fb95bcb163" + integrity sha512-z+hcAsGbGiy28ERAZuOT1pYf6lkkoR2YlFUt4po4azfXMz5lmidYTotkezsWvA3Bh8N0mIi7hs8syPt8RRIGqg== dependencies: mdast-util-heading-style "^1.0.2" plur "^3.0.0" @@ -7444,18 +9050,59 @@ remark-lint-no-heading-content-indent@^1.0.0: unist-util-position "^3.0.0" unist-util-visit "^1.1.1" +remark-lint-no-heading-content-indent@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.1.tgz#e4afb9872d12b29805c183999f5cb3adca9f394c" + integrity sha512-W4zF7MA72IDC5JB0qzciwsnioL5XlnoE0r1F7sDS0I5CJfQtHYOLlxb3UAIlgRCkBokPWCp0E4o1fsY/gQUKVg== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-heading-style "^2.0.0" + pluralize "^8.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-no-heading-indent@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.1.tgz#f9ec911c26b68df0362731a4bbb78b5a2743fc89" + integrity sha512-3vIfT7gPdpE9D7muIQ6YzSF1q27H9SbsDD7ClJRkEWxMiAzBg0obOZFOIBYukUkmGWdOR5P1EDn5n9TEzS1Fyg== + dependencies: + "@types/mdast" "^3.0.0" + pluralize "^8.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + remark-lint-no-inline-padding@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-1.0.3.tgz#a31e3a04ab0d47ea7e7be8416b5d2d668ad8f7cf" + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-1.0.5.tgz#01ec68b2be9154601f68805ae5f5f3173c866ee0" + integrity sha512-AjS34hBRasYiIAKZJ7/9U42LouRHok2WVTRdQPcVtRBswStNOuot59S+FRsatqlk1wvMmjytqxUKQfVTSeu9ag== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.4.0" +remark-lint-no-inline-padding@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.1.tgz#2f1dda78556f1f8a98b4cad52ff74f6a56b55c58" + integrity sha512-++IMm6ohOPKNOrybqjP9eiclEtVX/Rd2HpF2UD9icrC1X5nvrI6tlfN55tePaFvWAB7pe6MW4LzNEMnWse61Lw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-string "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-visit "^4.0.0" + remark-lint-no-literal-urls@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-1.0.2.tgz#1c60160a76bd9ddacd42819b43dadeb481a530df" + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-1.0.4.tgz#02152e46a6381a387f7f0bb887944a33e4b8aef4" + integrity sha512-sHjbzaSG4z6jMu1L0Qx1b7VvIQHy0bR4xZ6t9auJ5AoB5ua8hb/970s77irH1+46TF1ezhE7i+QDjmhcQi09xg== dependencies: mdast-util-to-string "^1.0.2" unified-lint-rule "^1.0.0" @@ -7463,65 +9110,295 @@ remark-lint-no-literal-urls@^1.0.0: unist-util-position "^3.0.0" unist-util-visit "^1.1.1" +remark-lint-no-literal-urls@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.1.tgz#9e3b71c013ffa3d3a493c98b54c3d5bd0ea0ad23" + integrity sha512-tZZ4gtZMA//ZAf7GJTE8S9yjzqXUfUTlR/lvU7ffc7NeSurqCBwAtHqeXVCHiD39JnlHVSW2MLYhvHp53lBGvA== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-string "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-no-multiple-toplevel-headings@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.1.tgz#0a0058b03e5d8c3539230a5987e0ef11edd987f2" + integrity sha512-bM//SIBvIkoGUpA8hR5QibJ+7C2R50PTIRrc4te93YNRG+ie8bJzjwuO9jIMedoDfJB6/+7EqO9FYBivjBZ3MA== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-stringify-position "^3.0.0" + unist-util-visit "^4.0.0" + +remark-lint-no-shell-dollars@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.1.tgz#27deee278650d72bca795788e195927f03059f9d" + integrity sha512-Q3Ad1TaOPxbYog5+Of/quPG3Fy+dMKiHjT8KsU7NDiHG6YJOnAJ3f3w+y13CIlNIaKc/MrisgcthhrZ7NsgXfA== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-visit "^4.0.0" + remark-lint-no-shortcut-reference-image@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-1.0.2.tgz#784011b832173ad9e87d4f40c90f935de0841764" + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-1.0.4.tgz#ed819f1af33738bb9003b3d92e043edcf7fd2d55" + integrity sha512-5/9QoesnOHIDwMHU9x+AGPBiFoMe9ZBKIR8nC17C6ZdksgwUIpjBJ3VX5POFlt5E6OhAZaeXqUCq9G2USccEdA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" +remark-lint-no-shortcut-reference-image@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.1.tgz#3714f31e98ca2063c43bb4cc4d7206e0581da501" + integrity sha512-m8tH+loDagd1JUns/T4eyulVXgVvE+ZSs7owRUOmP+dgsKJuO5sl1AdN9eyKDVMEvxHF3Pm5WqE62QIRNM48mA== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-visit "^4.0.0" + remark-lint-no-shortcut-reference-link@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-1.0.3.tgz#4210d37d234b427dd131eb11473a7a2d3719a819" + version "1.0.5" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-1.0.5.tgz#0c3c48a0ce80e85b89d3d2ec1d264b00eb151584" + integrity sha512-qDVL7/0ptOTd/nyd9u/4MYFWQtYQU8povdUB45UgTXy5Rrf1WsC+4DfzAEZkX3tOSTExdAIf1WOKqdC5xRcfvA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.1.1" +remark-lint-no-shortcut-reference-link@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.1.tgz#b29bc4bfdb02b30a596b5fed235c99e470805130" + integrity sha512-oDJ92/jXQ842HgrBGgZdP7FA+N2jBMCBU2+jRElkS+OWVut0UaDILtNavNy/e85B3SLPj3RoXKF96M4vfJ7B2A== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-visit "^4.0.0" + +remark-lint-no-table-indentation@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.1.tgz#985a0a1f7a533b58c9829db6579c7cac899e55e1" + integrity sha512-eklvBxUSrkVbJxeokepOvFZ3n2V6zaJERIiOowR+y/Bz4dRHDMij1Ojg55AMO9yUMvxWPV3JPOeThliAcPmrMg== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + vfile-location "^4.0.0" + +remark-lint-no-tabs@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.1.tgz#fdb87ee0aacdbc20bbf26d3cdce9a874038ed565" + integrity sha512-+MjXoHSSqRFUUz6XHgB1z7F5zIETxhkY+lC5LsOYb1r2ZdujZQWzBzNW5ya4HH5JiDVBPhp8MrqM9cP1v7tB5g== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + vfile-location "^4.0.0" + +remark-lint-no-trailing-spaces@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-trailing-spaces/-/remark-lint-no-trailing-spaces-2.0.1.tgz#70e5b1a9487c8f013a2c3ada29b17dd4be280844" + integrity sha512-cj8t+nvtO6eAY2lJC7o5du8VeOCK13XiDUHL4U6k5aw6ZLr3EYWbQ/rNc6cr60eHkh5Ldm09KiZjV3CWpxqJ0g== + dependencies: + unified-lint-rule "^1.0.2" + remark-lint-no-undefined-references@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-1.0.3.tgz#93255cfd5a8cb81850d7848d41fe176cc2be058a" + version "1.1.2" + resolved "https://registry.yarnpkg.com/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-1.1.2.tgz#6bea9168ce88dd1d71d56f62afa1aad9ddbc17b8" + integrity sha512-/MEXcusNFHx+BYUf4wuil+GVKTkofvT+VodjyGw5X0OuPZZJ9c/kL0QjHHzuLuGH+oJUsgOOfnJC/eyO0tV8bw== dependencies: + collapse-white-space "^1.0.4" unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.4.0" +remark-lint-no-undefined-references@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.2.0.tgz#11a3e579b9107493d7781973dde8517793f52e0c" + integrity sha512-EDV9B1ZXMLcKVtMQFvfvtbag4AkLcu8aUNGXoez5GJLcCAQ8Q+sG74yOtIW4xNVlVubEjl0vdkFhaKYLxvn2Sw== + dependencies: + "@types/mdast" "^3.0.0" + micromark-util-normalize-identifier "^1.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + vfile-location "^4.0.0" + remark-lint-no-unused-definitions@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-1.0.4.tgz#c627146f89ab8aec0f3c4e587e29e41ee6ab2ea9" + version "1.0.6" + resolved "https://registry.yarnpkg.com/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-1.0.6.tgz#ee48af96fe6c44961328d7fda3e301d24e37c14f" + integrity sha512-hYHMjbg3wBGT30R9PN74Bieejg2qRkXH9Rc2YakP1unuJoF+X+i5RMsW71spW11/r/+gW2mdzuwBuBoQrWpGTA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-visit "^1.4.0" +remark-lint-no-unused-definitions@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.1.tgz#584fcd0b1ad569d3e1933256e85b9fb308e88695" + integrity sha512-/GtyBukhAxi5MEX/g/m+FzDEflSbTe2/cpe2H+tJZyDmiLhjGXRdwWnPRDp+mB9g1iIZgVRCk7T4v90RbQX/mw== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-visit "^4.0.0" + remark-lint-ordered-list-marker-style@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-1.0.2.tgz#ad7461306a7701fc931245300dfd7dbd9fbb589f" + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-1.0.4.tgz#338f384094942389fd943af0523fdf639ccbf3d8" + integrity sha512-c6AIqeePzm3nfkPCbTdwBS3/AQICgwE76+ryOc7tsSq4ulyK/Nt8Syvi/oiHYuonBddZoGtFTNCn0jqen9qscA== dependencies: unified-lint-rule "^1.0.0" unist-util-generated "^1.1.0" unist-util-position "^3.0.0" unist-util-visit "^1.1.1" +remark-lint-ordered-list-marker-style@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.1.tgz#5431100f048ef44daa90a32251e8056f2de58449" + integrity sha512-IWcWaJoaSb4yoSOuvDbj9B2uXp9kSj58DqtrMKo8MoRShmbj1onVfulTxoTLeLtI11NvW+mj3jPSpqjMjls+5Q== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-prohibited-strings@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/remark-lint-prohibited-strings/-/remark-lint-prohibited-strings-3.1.0.tgz#6dd1fe8d88281131bd32d09d2d464f2a44f713ac" + integrity sha512-zwfDDdYl7ye0gEHcwhdkv1ZGXj1ibw4gnLLZkkvySnDdTz2tshY3fOJLY5NikbVseaIRVGOr5qa+8J9WNQT/fA== + dependencies: + escape-string-regexp "^5.0.0" + unified-lint-rule "^2.0.0" + unist-util-position "^4.0.1" + unist-util-visit "^4.0.0" + vfile-location "^4.0.1" + +remark-lint-rule-style@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-3.1.1.tgz#163b4f394422496c065c95227970657a57c786cf" + integrity sha512-+oZe0ph4DWHGwPkQ/FpqiGp4WULTXB1edftnnNbizYT+Wr+/ux7GNTx78oXH/PHwlnOtVIExMc4W/vDXrUj/DQ== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-strong-marker@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.1.tgz#4f77ba095cacbd8a8bcd7dd834dd792b50b1f3cb" + integrity sha512-tX9Os2C48Hh8P8CouY4dcnAhGnR3trL+NCDqIvJvFDR9Rvm9yfNQaY2N4ZHWVY0iUicq9DpqEiJTgUsT8AGv/w== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-table-cell-padding@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.2.tgz#a7087f4513523ca0473986a7a9348847d52e6dad" + integrity sha512-cx5BXjHtpACa7Z51Vuqzy9BI4Z8Hnxz7vklhhrubkoB7mbctP/mR+Nh4B8eE5VtgFYJNHFwIltl96PuoctFCeQ== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-table-pipes@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.1.tgz#8a9badb0daed86d561db681c150966549eb8528d" + integrity sha512-mJnB2FpjJTE4s9kE1JX8gcCjCFvtGPjzXUiQy0sbPHn2YM9EWG7kvFWYoqWK4w569CEQJyxZraEPltmhDjQTjg== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +remark-lint-unordered-list-marker-style@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.1.tgz#ad9a2aaa705bf3c1ec147f493c7b453ea612238f" + integrity sha512-JwH8oIDi9f5Z8cTQLimhJ/fkbPwI3OpNSifjYyObNNuc4PG4/NUoe5ZuD10uPmPYHZW+713RZ8S5ucVCkI8dDA== + dependencies: + "@types/mdast" "^3.0.0" + unified "^10.0.0" + unified-lint-rule "^2.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + remark-lint@^6.0.0, remark-lint@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-6.0.4.tgz#13def899efd7d7d105188c274663a60e0fe8fa59" + version "6.0.6" + resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-6.0.6.tgz#5bf64efe5d88f3caf859ad541ab00656e3ca9c63" + integrity sha512-JBY6zz5fYQFN724Vq6VeiHwhyjVIlrww/dE1+hWGcDyUuz7YNCqwZKwBdQGDvslICkzHw/wEExNEb8D4PNiLlA== dependencies: remark-message-control "^4.0.0" +remark-lint@^9.0.0: + version "9.1.1" + resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-9.1.1.tgz#58c27adc4edeca93b7ce81e2861f05cbcecef72c" + integrity sha512-zhe6twuqgkx/9KgZyNyaO0cceA4jQuJcyzMOBC+JZiAzMN6mFUmcssWZyY30ko8ut9vQDMX/pyQnolGn+Fg/Tw== + dependencies: + "@types/mdast" "^3.0.0" + remark-message-control "^7.0.0" + unified "^10.1.0" + remark-message-control@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-4.1.1.tgz#a3f0b08dffda484e7196f0539de1488220f1d251" + version "4.2.0" + resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-4.2.0.tgz#184c4a69ce6c4c707a5633fa35b0ce3dbf81f22c" + integrity sha512-WXH2t5ljTyhsXlK1zPBLF3iPHbXl58R94phPMreS1xcHWBZJt6Oiu8RtNjy1poZFb3PqKnbYLJeR/CWcZ1bTFw== dependencies: mdast-comment-marker "^1.0.0" unified-message-control "^1.0.0" xtend "^4.0.1" +remark-message-control@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-7.1.1.tgz#71e9b757b835fad2ac14fafa8b432f51b9b9bf52" + integrity sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-comment-marker "^2.0.0" + unified "^10.0.0" + unified-message-control "^4.0.0" + vfile "^5.0.0" + +remark-parse@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" + integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + remark-parse@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.1.tgz#0c13d67e0d7b82c2ad2d8b6604ec5fae6c333c2b" - integrity sha512-WOZLa545jYXtSy+txza6ACudKWByQac4S2DmGk+tAGO/3XnVTOxwyCIxB7nTcLlk8Aayhcuf3cV1WV6U6L7/DQ== + version "7.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.2.tgz#41e7170d9c1d96c3d32cf1109600a9ed50dba7cf" + integrity sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA== dependencies: collapse-white-space "^1.0.2" is-alphabetical "^1.0.0" @@ -7539,9 +9416,51 @@ remark-parse@^7.0.0: vfile-location "^2.0.0" xtend "^4.0.1" +remark-preset-lint-node@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/remark-preset-lint-node/-/remark-preset-lint-node-3.4.0.tgz#027c4b85df629d7ba59cf75a39700280255bd7a7" + integrity sha512-8y2zZMwME1f7WGJSTAJGpAH6QRCQUV0Q3d8w3ecGoK/veRWX1gNpsRB3TH4JLDFF3v3zEOL7bs9Sexq47mT+MQ== + dependencies: + js-yaml "^4.1.0" + remark-gfm "^3.0.1" + remark-lint-blockquote-indentation "^3.1.1" + remark-lint-checkbox-character-style "^4.1.1" + remark-lint-checkbox-content-indent "^4.1.1" + remark-lint-code-block-style "^3.1.0" + remark-lint-definition-spacing "^3.1.1" + remark-lint-fenced-code-flag "^3.1.1" + remark-lint-fenced-code-marker "^3.1.1" + remark-lint-file-extension "^2.1.1" + remark-lint-final-definition "^3.1.1" + remark-lint-first-heading-level "^3.1.1" + remark-lint-heading-style "^3.1.1" + remark-lint-list-item-indent "^3.1.1" + remark-lint-maximum-line-length "^3.1.2" + remark-lint-no-consecutive-blank-lines "^4.1.2" + remark-lint-no-file-name-articles "^2.1.1" + remark-lint-no-file-name-consecutive-dashes "^2.1.1" + remark-lint-no-file-name-outer-dashes "^2.1.1" + remark-lint-no-heading-indent "^4.1.1" + remark-lint-no-multiple-toplevel-headings "^3.1.1" + remark-lint-no-shell-dollars "^3.1.1" + remark-lint-no-table-indentation "^4.1.1" + remark-lint-no-tabs "^3.1.1" + remark-lint-no-trailing-spaces "^2.0.1" + remark-lint-prohibited-strings "^3.1.0" + remark-lint-rule-style "^3.1.1" + remark-lint-strong-marker "^3.1.1" + remark-lint-table-cell-padding "^4.1.2" + remark-lint-table-pipes "^4.1.1" + remark-lint-unordered-list-marker-style "^3.1.1" + remark-preset-lint-recommended "^6.1.2" + semver "^7.3.5" + unified-lint-rule "^2.1.1" + unist-util-visit "^4.1.0" + remark-preset-lint-recommended@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/remark-preset-lint-recommended/-/remark-preset-lint-recommended-3.0.2.tgz#5ce675678895ce7131326c12b6df9105a5d0632c" + version "3.0.4" + resolved "https://registry.yarnpkg.com/remark-preset-lint-recommended/-/remark-preset-lint-recommended-3.0.4.tgz#8e43940e46b2cb0dc6c89c71066f87f59321d5de" + integrity sha512-i4GoobwWKt5LDJxIZjhHnnYiQISacNE8Oxj1ViwSHJnTUCtd7vh3KwtsfV8DrLsFUqRogX49iJEuZWXipY3PJA== dependencies: remark-lint "^6.0.0" remark-lint-final-newline "^1.0.0" @@ -7560,10 +9479,42 @@ remark-preset-lint-recommended@^3.0.2: remark-lint-no-unused-definitions "^1.0.0" remark-lint-ordered-list-marker-style "^1.0.0" +remark-preset-lint-recommended@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.2.tgz#268eeaab887cef79e6b22fde046e65cf11abcf67" + integrity sha512-x9kWufNY8PNAhY4fsl+KD3atgQdo4imP3GDAQYbQ6ylWVyX13suPRLkqnupW0ODRynfUg8ZRt8pVX0wMHwgPAg== + dependencies: + "@types/mdast" "^3.0.0" + remark-lint "^9.0.0" + remark-lint-final-newline "^2.0.0" + remark-lint-hard-break-spaces "^3.0.0" + remark-lint-list-item-bullet-indent "^4.0.0" + remark-lint-list-item-indent "^3.0.0" + remark-lint-no-blockquote-without-marker "^5.0.0" + remark-lint-no-duplicate-definitions "^3.0.0" + remark-lint-no-heading-content-indent "^4.0.0" + remark-lint-no-inline-padding "^4.0.0" + remark-lint-no-literal-urls "^3.0.0" + remark-lint-no-shortcut-reference-image "^3.0.0" + remark-lint-no-shortcut-reference-link "^3.0.0" + remark-lint-no-undefined-references "^4.0.0" + remark-lint-no-unused-definitions "^3.0.0" + remark-lint-ordered-list-marker-style "^3.0.0" + unified "^10.0.0" + +remark-stringify@^10.0.0: + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.2.tgz#50414a6983f5008eb9e72eed05f980582d1f69d7" + integrity sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.0.0" + unified "^10.0.0" + remark-stringify@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-7.0.2.tgz#1b87716e3bf278ef5dd6c230e47c633d89b81d76" - integrity sha512-+Fr2xUe+P9b4XwRBjtIQF6DuHtQEQAVsBv8Uv+Gz3d3gkFxwEIzKFjzHo13KgWkASn/MQIY1C9vmOTm0kwlGXw== + version "7.0.4" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-7.0.4.tgz#3de1e3f93853288d3407da1cd44f2212321dd548" + integrity sha512-qck+8NeA1D0utk1ttKcWAoHRrJxERYQzkHDyn+pF5Z4whX1ug98uCNPPSeFgLSaNERRxnD6oxIug6DzZQth6Pg== dependencies: ccount "^1.0.0" is-alphanumeric "^1.0.0" @@ -7581,36 +9532,46 @@ remark-stringify@^7.0.0: xtend "^4.0.1" remark@^11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/remark/-/remark-11.0.1.tgz#3c16e1ed84c78a661299991bb8d5fa7ee5d18e3c" - integrity sha512-Fl2AvN+yU6sOBAjUz3xNC5iEvLkXV8PZicLOOLifjU8uKGusNvhHfGRCfETsqyvRHZ24JXqEyDY4hRLhoUd30A== + version "11.0.2" + resolved "https://registry.yarnpkg.com/remark/-/remark-11.0.2.tgz#12b90ea100ac3362b1976fa87a6e4e0ab5968202" + integrity sha512-bh+eJgn8wgmbHmIBOuwJFdTVRVpl3fcVP6HxmpPWO0ULGP9Qkh6INJh0N5Uy7GqlV7DQYGoqaKiEIpM5LLvJ8w== dependencies: remark-parse "^7.0.0" remark-stringify "^7.0.0" unified "^8.2.0" +remark@^14.0.1: + version "14.0.2" + resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.2.tgz#4a1833f7441a5c29e44b37bb1843fb820797b40f" + integrity sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA== + dependencies: + "@types/mdast" "^3.0.0" + remark-parse "^10.0.0" + remark-stringify "^10.0.0" + unified "^10.0.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.5.0, repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== dependencies: is-finite "^1.0.0" -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - request-promise-core@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" @@ -7656,75 +9617,87 @@ request@^2.87.0, request@^2.88.2: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== requirejs@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.6.tgz#e5093d9601c2829251258c0b9445d4d19fa9e7c9" + integrity sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg== requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== reselect@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147" + integrity sha512-b/6tFZCmRhtBMa4xGqiiRp9jh9Aqi2A687Lo265cN0/QohJQEBPiQ52f4QB6i0eF3yp3hmLL21LSGBcML2dlxA== resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== dependencies: resolve-from "^3.0.0" -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== -resolve@1.1.7, resolve@^1.1.4, resolve@^1.1.7: +resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== -resolve@^1.1.5, resolve@^1.1.6, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1, resolve@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06" - dependencies: - path-parse "^1.0.6" - -resolve@^1.10.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" +resolve@^1.1.4, resolve@^1.1.5, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.22.1, resolve@^1.3.3, resolve@^1.4.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - path-parse "^1.0.6" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.11.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== dependencies: - path-parse "^1.0.6" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== dependencies: onetime "^2.0.0" signal-exit "^3.0.2" @@ -7740,15 +9713,24 @@ restore-cursor@^3.1.0: ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== rfdc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1: +rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" @@ -7759,29 +9741,36 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -ripemd160@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" rollup-plugin-babel@^4.0.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.3.0.tgz#1900e66af70c3975fef26a54111b87ee22a50974" + version "4.4.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb" + integrity sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw== dependencies: "@babel/helper-module-imports" "^7.0.0" - rollup-pluginutils "^2.3.0" + rollup-pluginutils "^2.8.1" rollup-plugin-commonjs@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.2.0.tgz#4604e25069e0c78a09e08faa95dc32dec27f7c89" + version "9.3.4" + resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.3.4.tgz#2b3dddbbbded83d45c36ff101cdd29e924fd23bc" + integrity sha512-DTZOvRoiVIHHLFBCL4pFxOaJt8pagxsVldEXBOn6wl3/V21wVaj17HFfyzTsQUuou3sZL3lEJZVWKPFblJfI6w== dependencies: - estree-walker "^0.5.2" - magic-string "^0.25.1" - resolve "^1.8.1" - rollup-pluginutils "^2.3.3" + estree-walker "^0.6.0" + magic-string "^0.25.2" + resolve "^1.10.0" + rollup-pluginutils "^2.6.0" rollup-plugin-node-globals@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/rollup-plugin-node-globals/-/rollup-plugin-node-globals-1.4.0.tgz#5e1f24a9bb97c0ef51249f625e16c7e61b7c020b" + integrity sha512-xRkB+W/m1KLIzPUmG0ofvR+CPNcvuCuNdjVBVS7ALKSxr3EDhnzNceGkGi1m8MToSli13AzKFYH4ie9w3I5L3g== dependencies: acorn "^5.7.3" buffer-es6 "^4.9.3" @@ -7793,6 +9782,7 @@ rollup-plugin-node-globals@^1.4.0: rollup-plugin-node-resolve@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-2.1.1.tgz#cbb783b0d15b02794d58915350b2f0d902b8ddc8" + integrity sha512-UDDWQc9CzqzEhyoxSp6m0ZU29GhEJw+6HCqMfwoREwGlpKK7K68/4B3n/ysdU0tWz5YHwDKDpHF0MeH7fJIgaw== dependencies: browser-resolve "^1.11.0" builtin-modules "^1.1.0" @@ -7809,41 +9799,37 @@ rollup-plugin-terser@^6.1.0: terser "^4.7.0" rollup-plugin-uglify@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.1.tgz#f8d8e0309104af33981ec0956670b0bd7fac75f5" + version "6.0.4" + resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.4.tgz#65a0959d91586627f1e46a7db966fd504ec6c4e6" + integrity sha512-ddgqkH02klveu34TF0JqygPwZnsbhHVI6t8+hGTcYHngPkQb5MIHI0XiztXIN/d6V9j+efwHAqEL7LspSxQXGw== dependencies: "@babel/code-frame" "^7.0.0" - jest-worker "^23.2.0" - serialize-javascript "^1.5.0" + jest-worker "^24.0.0" + serialize-javascript "^2.1.2" uglify-js "^3.4.9" -rollup-pluginutils@^2.3.0, rollup-pluginutils@^2.3.1, rollup-pluginutils@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz#3aad9b1eb3e7fe8262820818840bf091e5ae6794" +rollup-pluginutils@^2.3.1, rollup-pluginutils@^2.6.0, rollup-pluginutils@^2.8.1: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== dependencies: - estree-walker "^0.5.2" - micromatch "^2.3.11" + estree-walker "^0.6.1" rollup@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.1.0.tgz#461a7534b55be48aa4a6e6810a1543a5769e75d1" + version "1.32.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4" + integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A== dependencies: - "@types/estree" "0.0.39" + "@types/estree" "*" "@types/node" "*" - acorn "^6.0.5" + acorn "^7.1.0" rsvp@^3.3.3: version "3.6.2" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== -run-async@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.2.0.tgz#8783abd83c7bb86f41ee0602fc82404b3bd6e8b9" - dependencies: - is-promise "^2.1.0" - pinkie-promise "^2.0.0" - -run-async@^2.4.0: +run-async@^2.2.0, run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== @@ -7851,32 +9837,45 @@ run-async@^2.4.0: run-node@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" + integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== -rxjs@^6.1.0, rxjs@^6.3.3: - version "6.3.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55" +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.6.0: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -rxjs@^6.6.0: - version "6.6.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" - integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== dependencies: - tslib "^1.9.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + mri "^1.1.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== dependencies: ret "~0.1.10" @@ -7888,6 +9887,7 @@ safe-regex@^1.1.0: sane@^2.0.0: version "2.5.2" resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" + integrity sha512-OuZwD1QJ2R9Dbnhd7Ur8zzD8l+oADp9npyxK63Q9nZ4AjhB2QwDQcQlD8iuUsGm5AZZqtEuCaJvK1rxGRxyQ1Q== dependencies: anymatch "^2.0.0" capture-exit "^1.2.0" @@ -7906,10 +9906,12 @@ sax@^1.2.4: integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== scope-analyzer@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/scope-analyzer/-/scope-analyzer-2.0.5.tgz#72c9c6770c3e66984f84c7d3c7045998a1a7db8a" + version "2.1.2" + resolved "https://registry.yarnpkg.com/scope-analyzer/-/scope-analyzer-2.1.2.tgz#b958162feb59823c2835c7b0229187a97c77e9cd" + integrity sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ== dependencies: array-from "^2.1.1" + dash-ast "^2.0.1" es6-map "^0.1.5" es6-set "^0.1.5" es6-symbol "^3.1.1" @@ -7919,36 +9921,48 @@ scope-analyzer@^2.0.1: semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== -"semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.7.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" +semver@^7.3.5: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" -serialize-javascript@^1.5.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== serialize-javascript@^3.0.0: version "3.1.0" @@ -7957,59 +9971,60 @@ serialize-javascript@^3.0.0: dependencies: randombytes "^2.1.0" -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" + parseurl "~1.3.3" + send "0.18.0" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" is-plain-object "^2.0.3" split-string "^3.0.1" -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sha.js@^2.3.6, sha.js@~2.4.4: - version "2.4.8" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" +sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" + safe-buffer "^5.0.1" shallow-copy@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" + integrity sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw== + +shasum-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" + integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== + dependencies: + fast-safe-stringify "^2.0.7" shasum@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + integrity sha512-UTzHm/+AzKfO9RgPgRpDIuMSNie1ubXRaljjlhFMNGYoG7z+rm9AHLPMf70R7887xboDH9Q+5YQbWKObFHEAtw== dependencies: json-stable-stringify "~0.0.0" sha.js "~2.4.4" @@ -8017,25 +10032,29 @@ shasum@^1.0.0: shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== shell-quote@^1.4.2, shell-quote@^1.6.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" - integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== + version "1.7.4" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" + integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== shellsubstitute@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shellsubstitute/-/shellsubstitute-1.2.0.tgz#e4f702a50c518b0f6fe98451890d705af29b6b70" + integrity sha512-CI1ViFC5a3ub86aaBmBVQ7kqg8eFypZLgBh+Bmq+ehHy9g7vu9kqCj5hS82cPzLwfdJRgiPB2hNHnd6oetiakQ== shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== side-channel@^1.0.4: version "1.0.4" @@ -8046,39 +10065,47 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-git@^1.85.0: - version "1.107.0" - resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.107.0.tgz#12cffaf261c14d6f450f7fdb86c21ccee968b383" + version "1.132.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.132.0.tgz#53ac4c5ec9e74e37c2fd461e23309f22fcdf09b1" + integrity sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg== dependencies: debug "^4.0.1" sisteransi@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" + integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g== slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== -slice-ansi@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz#5373bdb8559b45676e8541c66916cdd6251612e7" +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== dependencies: ansi-styles "^3.2.0" astral-regex "^1.0.0" @@ -8087,10 +10114,12 @@ slice-ansi@2.0.0: sliced@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" + integrity sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA== snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" isobject "^3.0.0" @@ -8099,12 +10128,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" debug "^2.2.0" @@ -8120,32 +10151,39 @@ socket.io-adapter@~2.4.0: resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6" integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg== -socket.io-parser@~4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" - integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== +socket.io-parser@~4.2.1: + version "4.2.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" + integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== dependencies: - "@types/component-emitter" "^1.2.10" - component-emitter "~1.3.0" + "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" -socket.io@^4.2.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.0.tgz#78ae2e84784c29267086a416620c18ef95b37186" - integrity sha512-slTYqU2jCgMjXwresG8grhUi/cC6GjzmcfqArzaH3BN/9I/42eZk9yamNvZJdBfTubkjEdKAKs12NEztId+bUA== +socket.io@^4.4.1: + version "4.5.4" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.4.tgz#a4513f06e87451c17013b8d13fdfaf8da5a86a90" + integrity sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ== dependencies: accepts "~1.3.4" base64id "~2.0.0" debug "~4.3.2" - engine.io "~6.2.0" + engine.io "~6.2.1" socket.io-adapter "~2.4.0" - socket.io-parser "~4.0.4" + socket.io-parser "~4.2.1" + +sort-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" + integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== + dependencies: + is-plain-obj "^2.0.0" source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: - atob "^2.1.1" + atob "^2.1.2" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" @@ -8154,6 +10192,7 @@ source-map-resolve@^0.5.0: source-map-support@^0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== dependencies: source-map "^0.5.6" @@ -8166,51 +10205,67 @@ source-map-support@^0.5.6, source-map-support@~0.5.12: source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: +source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -sourcemap-codec@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz#c63ea927c029dd6bd9a2b7fa03b3fec02ad56e9f" +sourcemap-codec@^1.4.1, sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: - spdx-license-ids "^1.0.2" + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" -split2@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.0.0.tgz#55057cd560687a7ef6464471597404577ff1735d" - dependencies: - readable-stream "^3.0.0" +split2@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" + integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.14.1, sshpk@^1.7.0: version "1.17.0" @@ -8228,18 +10283,23 @@ sshpk@^1.14.1, sshpk@^1.7.0: tweetnacl "~0.14.0" stack-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + version "1.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" + integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== + dependencies: + escape-string-regexp "^2.0.0" staged-git-files@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b" + integrity sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA== state-toggle@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz#c3cb0974f40a6a0f8e905b96789eb41afa1cde3a" + version "1.0.3" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" + integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== -static-eval@^2.0.0: +static-eval@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.1.0.tgz#a16dbe54522d7fa5ef1389129d813fd47b148014" integrity sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw== @@ -8249,27 +10309,29 @@ static-eval@^2.0.0: static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== dependencies: define-property "^0.2.5" object-copy "^0.1.0" -static-module@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/static-module/-/static-module-3.0.0.tgz#8583bfa2107b462ea462250871ceada4ea5d74b4" +static-module@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/static-module/-/static-module-3.0.4.tgz#bfbd1d1c38dd1fbbf0bb4af0c1b3ae18a93a2b68" + integrity sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw== dependencies: acorn-node "^1.3.0" concat-stream "~1.6.0" convert-source-map "^1.5.1" duplexer2 "~0.1.4" - escodegen "~1.9.0" + escodegen "^1.11.1" has "^1.0.1" - magic-string "^0.22.4" + magic-string "0.25.1" merge-source-map "1.0.4" - object-inspect "~1.4.0" + object-inspect "^1.6.0" readable-stream "~2.3.3" scope-analyzer "^2.0.1" shallow-copy "~0.0.1" - static-eval "^2.0.0" + static-eval "^2.0.5" through2 "~2.0.3" statuses@2.0.1: @@ -8277,22 +10339,27 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -"statuses@>= 1.4.0 < 2", statuses@~1.5.0: +statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + stream-browserify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== dependencies: inherits "~2.0.1" readable-stream "^2.0.2" @@ -8300,53 +10367,59 @@ stream-browserify@^2.0.0: stream-combiner2@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + integrity sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw== dependencies: duplexer2 "~0.1.0" readable-stream "^2.0.2" -stream-http@^2.0.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.5.0.tgz#585eee513217ed98fe199817e7313b6f772a6802" +stream-http@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" + integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== dependencies: - builtin-status-codes "^2.0.0" - inherits "^2.0.1" - readable-stream "^2.1.0" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" + builtin-status-codes "^3.0.0" + inherits "^2.0.4" + readable-stream "^3.6.0" + xtend "^4.0.2" stream-length@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/stream-length/-/stream-length-1.0.2.tgz#8277f3cbee49a4daabcfdb4e2f4a9b5e9f2c9f00" + integrity sha512-aI+qKFiwoDV4rsXiS7WRoCt+v2RX1nUj17+KJC5r2gfh5xoSJIfP6Y3Do/HtvesFcTSWthIuJ3l1cvKQY/+nZg== dependencies: bluebird "^2.6.2" stream-splicer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" + integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== dependencies: inherits "^2.0.1" readable-stream "^2.0.2" -streamroller@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.0.8.tgz#84b190e4080ee311ca1ebe0444e30ac8eedd028d" - integrity sha512-VI+ni3czbFZrd1MrlybxykWZ8sMDCMtTU7YJyhgb9M5X6d1DDxLdJr+gSnmRpXPMnIWxWKMaAE8K0WumBp3lDg== +streamroller@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.1.4.tgz#844a18e795d39c1089a8216e66a1cf1151271df0" + integrity sha512-Ha1Ccw2/N5C/IF8Do6zgNe8F3jQo8MPBnMBGvX0QjNv/I97BcNRzK6/mzOpZHHK7DjMLTI3c7Xw7Y1KvdChkvw== dependencies: - date-format "^4.0.9" + date-format "^4.0.14" debug "^4.3.4" - fs-extra "^10.1.0" + fs-extra "^8.1.0" string-argv@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" + integrity sha512-p6/Mqq0utTQWUeGMi/m0uBtlLZEwXSY3+mXzeRRqw7fz5ezUb28Wr0R99NlfbWaMmL/jCyT9be4jpn7Yz8IO8w== string-direction@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/string-direction/-/string-direction-0.1.2.tgz#3d8453e7274a2e44a142b3dc8449dfb64d9ade3a" + integrity sha512-NJHQRg6GlOEMLA6jEAlSy21KaXvJDNoAid/v6fBAJbqdvOEIiPpCrIPTHnl4636wUF/IGyktX5A9eddmETb1Cw== string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ== dependencies: astral-regex "^1.0.0" strip-ansi "^4.0.0" @@ -8354,44 +10427,30 @@ string-length@^2.0.0: string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: + emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" - strip-ansi "^3.0.0" - -string-width@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff" - integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^5.2.0" - -string-width@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" + strip-ansi "^5.1.0" -string-width@^4.2.0: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -8400,19 +10459,54 @@ string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string.prototype.matchall@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + string_decoder@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: - safe-buffer "~5.1.0" + safe-buffer "~5.2.0" string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" @@ -8430,6 +10524,7 @@ stringify-entities@^2.0.0: stringify-object@^3.2.2: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== dependencies: get-own-enumerable-property-symbols "^3.0.0" is-obj "^1.0.1" @@ -8438,36 +10533,25 @@ stringify-object@^3.2.2: strip-ansi@^3.0.0, strip-ansi@^3.0.1, strip-ansi@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0, strip-ansi@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" - dependencies: - ansi-regex "^4.0.0" - -strip-ansi@^5.2.0: +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -8477,50 +10561,64 @@ strip-ansi@^6.0.1: strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== subarg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg== dependencies: minimist "^1.1.0" supports-color@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" + integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== dependencies: has-flag "^3.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== supports-color@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== dependencies: has-flag "^1.0.0" supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^6.0.0: +supports-color@^6.0.0, supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== @@ -8534,42 +10632,42 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== symbol-tree@^3.2.2: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -syntax-error@^1.1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.1.6.tgz#b4549706d386cc1c1dc7c2423f18579b6cade710" - dependencies: - acorn "^2.7.0" +synchronous-promise@^2.0.6: + version "2.0.17" + resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.17.tgz#38901319632f946c982152586f2caf8ddc25c032" + integrity sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g== -table@^5.0.2: - version "5.2.1" - resolved "https://registry.yarnpkg.com/table/-/table-5.2.1.tgz#e78463702b1be9f7131c39860bcfb1b81114c2a1" - dependencies: - ajv "^6.6.1" - lodash "^4.17.11" - slice-ansi "2.0.0" - string-width "^2.1.1" +syntax-error@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== + dependencies: + acorn-node "^1.2.0" -tar@^4: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" terser@^4.7.0: version "4.8.1" @@ -8583,6 +10681,7 @@ terser@^4.7.0: test-exclude@^4.2.1: version "4.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" + integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA== dependencies: arrify "^1.0.1" micromatch "^2.3.11" @@ -8593,45 +10692,45 @@ test-exclude@^4.2.1: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== throat@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA== -through2@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.1.tgz#384e75314d49f32de12eebb8136b8eb6b5d59da9" +through2@^2.0.0, through2@~2.0.0, through2@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: - readable-stream "~2.0.0" - xtend "~4.0.0" + readable-stream "~2.3.6" + xtend "~4.0.1" through2@~0.6.3: version "0.6.5" - resolved "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + integrity sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg== dependencies: readable-stream ">=1.0.33-1 <1.1.0-0" xtend ">=4.0.0 <4.1.0-0" -through2@~2.0.0, through2@~2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - "through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== timers-browserify@^1.0.1: version "1.4.2" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q== dependencies: process "~0.11.0" tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" @@ -8642,36 +10741,32 @@ tmp@^0.2.1: dependencies: rimraf "^3.0.0" -tmpl@1.0.x: +tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" - to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== dependencies: is-number "^3.0.0" repeat-string "^1.6.1" @@ -8686,6 +10781,7 @@ to-regex-range@^5.0.1: to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" extend-shallow "^3.0.2" @@ -8693,9 +10789,9 @@ to-regex@^3.0.1, to-regex@^3.0.2: safe-regex "^1.1.0" to-vfile@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-6.0.0.tgz#96c4aa0ee09c51dd4e8fd0b9c11da040d7dba9ea" - integrity sha512-i9fwXXSsHLu7mzgixc1WjgnqSe6pGpjnzCYoFmrASvEueLfyKf09QAe+XQYu8OAJ62aFqHpe2EKXojeRVvEzqA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-6.1.0.tgz#5f7a3f65813c2c4e34ee1f7643a5646344627699" + integrity sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw== dependencies: is-buffer "^2.0.0" vfile "^4.0.0" @@ -8705,9 +10801,15 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== + tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" punycode "^2.1.1" @@ -8722,31 +10824,52 @@ tr46@^1.0.1: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== trim-trailing-lines@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz#e0ec0810fd3c3f1730516b45f49083caaf2774d9" + version "1.1.4" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" + integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== trim@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== trough@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz#e29bd1614c6458d44869fc28b255ab7857ef7c24" + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + +tsconfig-paths@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.6" + strip-bom "^3.0.0" tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tty-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== tunnel-agent@^0.6.0: version "0.6.0" @@ -8777,22 +10900,17 @@ type-check@~0.3.2: type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-fest@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.18" +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== type-is@~1.6.18: version "1.6.18" @@ -8802,56 +10920,103 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typedarray@^0.0.6, typedarray@~0.0.5: +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== ua-parser-js@^0.7.30: - version "0.7.31" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" - integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== + version "0.7.33" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.33.tgz#1d04acb4ccef9293df6f70f2c3d22f3030d8b532" + integrity sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw== + +uglify-js@^3.1.4, uglify-js@^3.4.9: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== -uglify-js@^3.1.4: - version "3.15.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.4.tgz#fa95c257e88f85614915b906204b9623d4fa340d" - integrity sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA== +umd@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" + integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== -uglify-js@^3.4.9: - version "3.4.9" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - commander "~2.17.1" - source-map "~0.6.1" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" -umd@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e" +undeclared-identifiers@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" + integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== + dependencies: + acorn-node "^1.3.0" + dash-ast "^1.0.0" + get-assigned-identifiers "^1.2.0" + simple-concat "^1.0.0" + xtend "^4.0.1" unherit@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.1.tgz#132748da3e88eab767e08fabfbb89c5e9d28628c" + version "1.1.3" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" + integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== dependencies: - inherits "^2.0.1" - xtend "^4.0.1" + inherits "^2.0.0" + xtend "^4.0.0" -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== -unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== unified-args@^7.0.0: version "7.1.0" @@ -8893,24 +11058,61 @@ unified-engine@^7.0.0: x-is-string "^0.1.0" xtend "^4.0.1" -unified-lint-rule@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.3.tgz#e302b0c4a7ac428c0980e049a500e59528001299" +unified-lint-rule@^1.0.0, unified-lint-rule@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz#b4ab801ff93c251faa917a8d1c10241af030de84" + integrity sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg== dependencies: wrapped "^1.0.1" +unified-lint-rule@^2.0.0, unified-lint-rule@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-2.1.1.tgz#2363f27064f0b44675d11119bb573a738e346f24" + integrity sha512-vsLHyLZFstqtGse2gvrGwasOmH8M2y+r2kQMoDSWzSqUkQx2MjHjvZuGSv5FUaiv4RQO1bHRajy7lSGp7XWq5A== + dependencies: + "@types/unist" "^2.0.0" + trough "^2.0.0" + unified "^10.0.0" + vfile "^5.0.0" + unified-message-control@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-1.0.4.tgz#a5e02c07112f78c6687b83a10392c2fba86dc09b" + integrity sha512-e1dEtN4Z/TvLn/qHm+xeZpzqhJTtfZusFErk336kkZVpqrJYiV9ptxq+SbRPFMlN0OkjDYHmVJ929KYjsMTo3g== dependencies: trim "0.0.1" unist-util-visit "^1.0.0" vfile-location "^2.0.0" +unified-message-control@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-4.0.0.tgz#7cd313df526fc660f218b19a56377bb6957019a8" + integrity sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit "^3.0.0" + vfile "^5.0.0" + vfile-location "^4.0.0" + vfile-message "^3.0.0" + +unified@^10.0.0, unified@^10.1.0: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + unified@^8.2.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-8.3.2.tgz#aed69d0e577d6ef27268431c63a10faef60e63ab" - integrity sha512-NDtUAXcd4c+mKppCbsZHzmhkKEQuhveZNBrFYmNgMIMk2K9bc8hmG3mLEGVtRmSNodobwyMePAnvIGVWZfPdzQ== + version "8.4.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1" + integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA== dependencies: bail "^1.0.0" extend "^3.0.0" @@ -8919,79 +11121,149 @@ unified@^8.2.0: vfile "^4.0.0" union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" get-value "^2.0.6" is-extendable "^0.1.1" - set-value "^0.4.3" + set-value "^2.0.1" unist-util-generated@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.3.tgz#ca650470aef2fbcc5fe54c465bc26b41ca109e2b" + version "1.1.6" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + +unist-util-generated@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== unist-util-inspect@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-4.1.3.tgz#39470e6d77485db285966df78431219aa1287822" + version "4.1.4" + resolved "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-4.1.4.tgz#fefc4794445d0f79bffea7a2421c6f556e73a37c" + integrity sha512-7xxyvKiZ1SC9vL5qrMqKub1T31gRHfau4242F69CcaOrXt//5PmRVOmDZ36UAEgiT+tZWzmQmbNZn+mVtnR9HQ== dependencies: is-empty "^1.0.0" -unist-util-is@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.2.tgz#1193fa8f2bfbbb82150633f3a8d2eb9a1c1d55db" +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== + +unist-util-is@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.0.tgz#37eed0617b76c114fd34d44c201aa96fd928b309" + integrity sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ== unist-util-position@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.2.tgz#80ad4a05efc4ab01a66886cc70493893ba73c5eb" + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + +unist-util-position@^4.0.0, unist-util-position@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" unist-util-remove-position@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz#86b5dad104d0bbfbeb1db5f5c92f3570575c12cb" + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" + integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== dependencies: unist-util-visit "^1.1.0" -unist-util-stringify-position@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" - unist-util-stringify-position@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz#de2a2bc8d3febfa606652673a91455b6a36fb9f3" - integrity sha512-Zqlf6+FRI39Bah8Q6ZnNGrEHUhwJOkHde2MHVk96lLyftfJJckaPslKgzhVcviXj8KcE9UJM9F+a4JEiBUTYgA== + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== dependencies: "@types/unist" "^2.0.2" +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-visit-parents@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz#63fffc8929027bee04bfef7d2cce474f71cb6217" + version "2.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" + integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== + dependencies: + unist-util-is "^3.0.0" + +unist-util-visit-parents@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" + integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== dependencies: - unist-util-is "^2.1.2" + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" + integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" unist-util-visit@^1.0.0, unist-util-visit@^1.1.0, unist-util-visit@^1.1.1, unist-util-visit@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.0.tgz#1cb763647186dc26f5e1df5db6bd1e48b3cc2fb1" + version "1.4.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" + integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== dependencies: unist-util-visit-parents "^2.0.0" -universal-user-agent@^2.0.0, universal-user-agent@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.0.3.tgz#9f6f09f9cc33de867bb720d84c08069b14937c6c" +unist-util-visit@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" + integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== dependencies: - os-name "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^4.0.0" -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unist-util-visit@^4.0.0, unist-util-visit@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" + integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + +universal-user-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" + integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg== + dependencies: + os-name "^3.1.0" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== dependencies: has-value "^0.3.1" isobject "^3.0.0" @@ -8999,12 +11271,22 @@ unset-value@^1.0.0: untildify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-2.1.0.tgz#17eb2807987f76952e9c0485fc311d06a826a2e0" + integrity sha512-sJjbDp2GodvkB0FZZcn7k6afVisqX5BZD7Yq3xp4nN2O15BBK0cLm3Vwn2vQaF7UDS0UUsrQMkkplmDI5fskig== dependencies: os-homedir "^1.0.0" -upath@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.1.tgz#497f7c1090b0818f310bbfb06783586a68d28014" +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" uri-js@^4.2.2: version "4.4.1" @@ -9016,14 +11298,12 @@ uri-js@^4.2.2: urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -url-template@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== url@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== dependencies: punycode "1.3.2" querystring "0.2.0" @@ -9031,47 +11311,75 @@ url@~0.11.0: use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util.promisify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + version "1.1.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b" + integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" + call-bind "^1.0.0" + define-properties "^1.1.3" + for-each "^0.3.3" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.1" -util@0.10.3, util@~0.10.1: +util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== dependencies: inherits "2.0.1" +util@~0.10.1: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + valid-url@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA== validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== verror@1.10.0: version "1.10.0" @@ -9083,21 +11391,38 @@ verror@1.10.0: extsprintf "^1.2.0" vfile-location@^2.0.0, vfile-location@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.4.tgz#2a5e7297dd0d9e2da4381464d04acc6b834d3e55" + version "2.0.6" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" + integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== + +vfile-location@^4.0.0, vfile-location@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.0.1.tgz#06f2b9244a3565bef91f099359486a08b10d3a95" + integrity sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw== + dependencies: + "@types/unist" "^2.0.0" + vfile "^5.0.0" vfile-message@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.1.tgz#951881861c22fc1eb39f873c0b93e336a64e8f6d" - integrity sha512-KtasSV+uVU7RWhUn4Lw+wW1Zl/nW8JWx7JCPps10Y9JRRIDeDXf8wfBLoOSsJLyo27DqMyAi54C6Jf/d6Kr2Bw== + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== dependencies: - "@types/unist" "^2.0.2" + "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" +vfile-message@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.3.tgz#1360c27a99234bebf7bddbbbca67807115e6b0dd" + integrity sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-reporter@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.0.tgz#753119f51dec9289b7508b457afc0cddf5e07f2e" - integrity sha512-8Is0XxFxWJUhPJdOg3CyZTqd3ICCWg6r304PuBl818ZG91h4FMS3Q+lrOPS+cs5/DZK3H0+AkJdH0J8JEwKtDA== + version "6.0.2" + resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.2.tgz#cbddaea2eec560f27574ce7b7b269822c191a676" + integrity sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA== dependencies: repeat-string "^1.5.0" string-width "^4.0.0" @@ -9107,35 +11432,49 @@ vfile-reporter@^6.0.0: vfile-statistics "^1.1.0" vfile-sort@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.0.tgz#383a8727ec4c5daf37c05683684a5eb686366d39" + version "2.2.2" + resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.2.tgz#720fe067ce156aba0b411a01bb0dc65596aa1190" + integrity sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA== vfile-statistics@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.2.tgz#c50132627e4669a3afa07c64ff1e7aa7695e8151" + version "1.1.4" + resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz#b99fd15ecf0f44ba088cc973425d666cb7a9f245" + integrity sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA== vfile@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.1.tgz#fc3d43a1c71916034216bf65926d5ee3c64ed60c" - integrity sha512-lRHFCuC4SQBFr7Uq91oJDJxlnftoTLQ7eKIpMdubhYcVMho4781a8MWXLy3qZrZ0/STD1kRiKc0cQOHm4OkPeA== + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" - replace-ext "1.0.0" unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" +vfile@^5.0.0: + version "5.3.6" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.6.tgz#61b2e70690cc835a5d0d0fd135beae74e5a39546" + integrity sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + vlq@^0.2.2: version "0.2.3" resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== vm-browserify@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== void-elements@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== w3c-hr-time@^1.0.1: version "1.0.2" @@ -9145,14 +11484,16 @@ w3c-hr-time@^1.0.1: browser-process-hrtime "^1.0.0" walker@~1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: - makeerror "1.0.x" + makeerror "1.0.12" watch@~0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + integrity sha512-oUcoHFG3UF2pBlHcMORAojsN09BfqSfWYWlR3eSSjUFR7eBEx53WT2HX/vZeVTTIVCGShcazb+t6IcBRCNXqvA== dependencies: exec-sh "^0.2.0" minimist "^1.2.0" @@ -9160,6 +11501,7 @@ watch@~0.18.0: watchify@^3.11.1: version "3.11.1" resolved "https://registry.yarnpkg.com/watchify/-/watchify-3.11.1.tgz#8e4665871fff1ef64c0430d1a2c9d084d9721881" + integrity sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog== dependencies: anymatch "^2.0.0" browserify "^16.1.0" @@ -9172,13 +11514,14 @@ watchify@^3.11.1: wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^4.0.2: version "4.0.2" @@ -9200,7 +11543,7 @@ whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -9223,62 +11566,100 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== -which@1.3.1, which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@1.3.1, which@^1.2.1, which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -which@^1.2.1: - version "1.2.12" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" - dependencies: - isexe "^1.1.1" - wide-align@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" -wide-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" - dependencies: - string-width "^1.0.1" - windows-release@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.1.0.tgz#8d4a7e266cbf5a233f6c717dac19ce00af36e12e" + version "3.3.3" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.3.tgz#1c10027c7225743eec6b89df160d64c2e0293999" + integrity sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg== dependencies: - execa "^0.10.0" + execa "^1.0.0" word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@^1.0.0, wordwrap@~1.0.0: +wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wrap-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.0.0.tgz#7d30f8f873f9a5bbc3a64dabc8d177e071ae426f" + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== dependencies: string-width "^1.0.1" + strip-ansi "^3.0.1" wrap-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -9291,6 +11672,7 @@ wrap-ansi@^7.0.0: wrapped@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wrapped/-/wrapped-1.0.1.tgz#c783d9d807b273e9b01e851680a938c87c907242" + integrity sha512-ZTKuqiTu3WXtL72UKCCnQLRax2IScKH7oQ+mvjbpvNE+NJxIWIemDqqM2GxNr4N16NCjOYpIgpin5pStM7kM5g== dependencies: co "3.1.0" sliced "^1.0.1" @@ -9298,18 +11680,43 @@ wrapped@^1.0.1: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" signal-exit "^3.0.2" -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write-json-file@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-4.3.0.tgz#908493d6fd23225344af324016e4ca8f702dd12d" + integrity sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ== + dependencies: + detect-indent "^6.0.0" + graceful-fs "^4.1.15" + is-plain-obj "^2.0.0" + make-dir "^3.0.0" + sort-keys "^4.0.0" + write-file-atomic "^3.0.0" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== dependencies: mkdirp "^0.5.1" @@ -9326,59 +11733,64 @@ ws@~8.2.3: integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== wuzzy@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/wuzzy/-/wuzzy-0.1.4.tgz#f2ea42c5c5a216ef7dc68158356a7d5f84432102" - integrity sha512-0I20vx7xWb+fZ1XKw54EhZukVsH3rRKnwtdu+MCb2nHITeypPZRr9Y1VOFdeZu48YvzxO33ReKoyIP5IG+WaOw== + version "0.1.8" + resolved "https://registry.yarnpkg.com/wuzzy/-/wuzzy-0.1.8.tgz#2e729f157b5757d4ed4d73c050f9f4ae12336f5c" + integrity sha512-FUzKQepFSTnANsDYwxpIzGJ/dIJaqxuMre6tzzbvWwFAiUHPsI1nVQVCLK4Xqr67KO7oYAK0kaCcI/+WYj/7JA== dependencies: lodash "^4.17.15" x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" + integrity sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w== xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^3.2.1: version "3.2.2" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== -"y18n@^3.2.1 || ^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yallist@^3.0.0, yallist@^3.1.1: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yargs-parser@11.1.1, yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@13.1.2, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs-parser@^15.0.1: - version "15.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" - integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== + version "15.0.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" + integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -9391,43 +11803,45 @@ yargs-parser@^20.2.2: yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + integrity sha512-CswCfdOgCr4MMsT1GzbEJ7Z2uYudWyrGX8Bgh/0eyCzj/DXWdKq6a/ADufkzI1WAOIW6jYaXJvRyLhDO0kfqBw== dependencies: camelcase "^4.1.0" -yargs-unparser@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.5.0.tgz#f2bb2a7e83cbc87bb95c8e572828a06c9add6e0d" +yargs-unparser@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" + integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== dependencies: flat "^4.1.0" - lodash "^4.17.11" - yargs "^12.0.5" + lodash "^4.17.15" + yargs "^13.3.0" -yargs@12.0.5, yargs@^12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" +yargs@13.3.2, yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" + cliui "^5.0.0" find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" + get-caller-file "^2.0.1" require-directory "^2.1.1" - require-main-filename "^1.0.1" + require-main-filename "^2.0.0" set-blocking "^2.0.0" - string-width "^2.0.0" + string-width "^3.0.0" which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" + y18n "^4.0.0" + yargs-parser "^13.1.2" yargs@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766" + integrity sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw== dependencies: cliui "^4.0.0" decamelize "^1.1.1" find-up "^2.1.0" get-caller-file "^1.0.1" - os-locale "^2.0.0" + os-locale "^3.1.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" @@ -9448,3 +11862,20 @@ yargs@^16.1.1: string-width "^4.2.0" y18n "^5.0.5" yargs-parser "^20.2.2" + +yup@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/yup/-/yup-0.27.0.tgz#f8cb198c8e7dd2124beddc2457571329096b06e7" + integrity sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ== + dependencies: + "@babel/runtime" "^7.0.0" + fn-name "~2.0.1" + lodash "^4.17.11" + property-expr "^1.5.0" + synchronous-promise "^2.0.6" + toposort "^2.0.2" + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== From 1a2e5a1777b935a93e3485574dc2138308433f91 Mon Sep 17 00:00:00 2001 From: Naftali Beder Date: Mon, 23 Jan 2023 20:22:25 -0600 Subject: [PATCH 2/3] fix: add import/no-cycle to ignore dep cycle errors --- .eslintrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc b/.eslintrc index c1b1ff361..73e5ecfe2 100644 --- a/.eslintrc +++ b/.eslintrc @@ -14,6 +14,7 @@ "rules": { "no-param-reassign": 0, "no-control-regex": 0, + "import/no-cycle": 0, "import/prefer-default-export": 0, "generator-star-spacing": 0, "babel/generator-star-spacing": 0, From 5f500ca6f4f674db1576ac136511145f540dd65d Mon Sep 17 00:00:00 2001 From: Naftali Beder Date: Mon, 23 Jan 2023 20:22:54 -0600 Subject: [PATCH 3/3] fix: build dist files to match existing source --- dist/mercury.js | 2598 ++++++++++++++++++++----------------------- dist/mercury.js.map | 2 +- 2 files changed, 1209 insertions(+), 1391 deletions(-) diff --git a/dist/mercury.js b/dist/mercury.js index 23817530d..3db4f790b 100644 --- a/dist/mercury.js +++ b/dist/mercury.js @@ -2,10 +2,16 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } -var _regeneratorRuntime = _interopDefault(require('@babel/runtime-corejs2/regenerator')); -var _objectSpread = _interopDefault(require('@babel/runtime-corejs2/helpers/objectSpread')); +var _Object$keys = _interopDefault(require('@babel/runtime-corejs2/core-js/object/keys')); +var _Object$getOwnPropertySymbols = _interopDefault(require('@babel/runtime-corejs2/core-js/object/get-own-property-symbols')); +var _Object$getOwnPropertyDescriptor = _interopDefault(require('@babel/runtime-corejs2/core-js/object/get-own-property-descriptor')); +var _Object$getOwnPropertyDescriptors = _interopDefault(require('@babel/runtime-corejs2/core-js/object/get-own-property-descriptors')); +var _Object$defineProperties = _interopDefault(require('@babel/runtime-corejs2/core-js/object/define-properties')); +var _Object$defineProperty = _interopDefault(require('@babel/runtime-corejs2/core-js/object/define-property')); +var _defineProperty = _interopDefault(require('@babel/runtime-corejs2/helpers/defineProperty')); var _objectWithoutProperties = _interopDefault(require('@babel/runtime-corejs2/helpers/objectWithoutProperties')); var _asyncToGenerator = _interopDefault(require('@babel/runtime-corejs2/helpers/asyncToGenerator')); +var _regeneratorRuntime = _interopDefault(require('@babel/runtime-corejs2/regenerator')); var URL = _interopDefault(require('url')); var cheerio = _interopDefault(require('cheerio')); var TurndownService = _interopDefault(require('turndown')); @@ -16,22 +22,21 @@ var _Promise = _interopDefault(require('@babel/runtime-corejs2/core-js/promise') var request = _interopDefault(require('postman-request')); var _Reflect$ownKeys = _interopDefault(require('@babel/runtime-corejs2/core-js/reflect/own-keys')); var _toConsumableArray = _interopDefault(require('@babel/runtime-corejs2/helpers/toConsumableArray')); -var _defineProperty = _interopDefault(require('@babel/runtime-corejs2/helpers/defineProperty')); var _parseFloat = _interopDefault(require('@babel/runtime-corejs2/core-js/parse-float')); var _Set = _interopDefault(require('@babel/runtime-corejs2/core-js/set')); +var _Array$from = _interopDefault(require('@babel/runtime-corejs2/core-js/array/from')); +var _Symbol = _interopDefault(require('@babel/runtime-corejs2/core-js/symbol')); +var _Symbol$iterator = _interopDefault(require('@babel/runtime-corejs2/core-js/symbol/iterator')); +var _Array$isArray = _interopDefault(require('@babel/runtime-corejs2/core-js/array/is-array')); var _typeof = _interopDefault(require('@babel/runtime-corejs2/helpers/typeof')); -var _getIterator = _interopDefault(require('@babel/runtime-corejs2/core-js/get-iterator')); var _Object$assign = _interopDefault(require('@babel/runtime-corejs2/core-js/object/assign')); -var _Object$keys = _interopDefault(require('@babel/runtime-corejs2/core-js/object/keys')); var stringDirection = _interopDefault(require('string-direction')); var validUrl = _interopDefault(require('valid-url')); var moment = _interopDefault(require('moment-timezone')); var parseFormat = _interopDefault(require('moment-parseformat')); var wuzzy = _interopDefault(require('wuzzy')); var difflib = _interopDefault(require('difflib')); -var _Array$from = _interopDefault(require('@babel/runtime-corejs2/core-js/array/from')); var ellipsize = _interopDefault(require('ellipsize')); -var _Array$isArray = _interopDefault(require('@babel/runtime-corejs2/core-js/array/is-array')); var NORMALIZE_RE = /\s{2,}(?![^<>]*<\/(pre|code|textarea)>)/g; function normalizeSpaces(text) { @@ -47,11 +52,9 @@ function extractFromUrl(url, regexList) { var matchRe = regexList.find(function (re) { return re.test(url); }); - if (matchRe) { return matchRe.exec(url)[1]; } - return null; } @@ -81,11 +84,10 @@ var DEFAULT_ENCODING = 'utf-8'; function pageNumFromUrl(url) { var matches = url.match(PAGE_IN_HREF_RE); if (!matches) return null; + var pageNum = _parseInt(matches[6], 10); - var pageNum = _parseInt(matches[6], 10); // Return pageNum < 100, otherwise + // Return pageNum < 100, otherwise // return null - - return pageNum < 100 ? pageNum : null; } @@ -94,70 +96,69 @@ function removeAnchor(url) { } function isGoodSegment(segment, index, firstSegmentHasLetters) { - var goodSegment = true; // If this is purely a number, and it's the first or second - // url_segment, it's probably a page number. Remove it. + var goodSegment = true; + // If this is purely a number, and it's the first or second + // url_segment, it's probably a page number. Remove it. if (index < 2 && IS_DIGIT_RE.test(segment) && segment.length < 3) { goodSegment = true; - } // If this is the first url_segment and it's just "index", - // remove it - + } + // If this is the first url_segment and it's just "index", + // remove it if (index === 0 && segment.toLowerCase() === 'index') { goodSegment = false; - } // If our first or second url_segment is smaller than 3 characters, - // and the first url_segment had no alphas, remove it. - + } + // If our first or second url_segment is smaller than 3 characters, + // and the first url_segment had no alphas, remove it. if (index < 2 && segment.length < 3 && !firstSegmentHasLetters) { goodSegment = false; } - return goodSegment; -} // Take a URL, and return the article base of said URL. That is, no +} + +// Take a URL, and return the article base of said URL. That is, no // pagination data exists in it. Useful for comparing to other links // that might have pagination data within them. - - function articleBaseUrl(url, parsed) { var parsedUrl = parsed || URL.parse(url); var protocol = parsedUrl.protocol, - host = parsedUrl.host, - path = parsedUrl.path; + host = parsedUrl.host, + path = parsedUrl.path; var firstSegmentHasLetters = false; var cleanedSegments = path.split('/').reverse().reduce(function (acc, rawSegment, index) { - var segment = rawSegment; // Split off and save anything that looks like a file type. + var segment = rawSegment; + // Split off and save anything that looks like a file type. if (segment.includes('.')) { var _segment$split = segment.split('.'), - _segment$split2 = _slicedToArray(_segment$split, 2), - possibleSegment = _segment$split2[0], - fileExt = _segment$split2[1]; - + _segment$split2 = _slicedToArray(_segment$split, 2), + possibleSegment = _segment$split2[0], + fileExt = _segment$split2[1]; if (IS_ALPHA_RE.test(fileExt)) { segment = possibleSegment; } - } // If our first or second segment has anything looking like a page - // number, remove it. - + } + // If our first or second segment has anything looking like a page + // number, remove it. if (PAGE_IN_HREF_RE.test(segment) && index < 2) { segment = segment.replace(PAGE_IN_HREF_RE, ''); - } // If we're on the first segment, check to see if we have any + } + + // If we're on the first segment, check to see if we have any // characters in it. The first segment is actually the last bit of // the URL, and this will be helpful to determine if we're on a URL // segment that looks like "/2/" for example. - - if (index === 0) { firstSegmentHasLetters = HAS_ALPHA_RE.test(segment); - } // If it's not marked for deletion, push it to cleaned_segments. - + } + // If it's not marked for deletion, push it to cleaned_segments. if (isGoodSegment(segment, index, firstSegmentHasLetters)) { acc.push(segment); } - return acc; }, []); return "".concat(protocol, "//").concat(host).concat(cleanedSegments.reverse().join('/')); @@ -175,38 +176,40 @@ function excerptContent(content) { return content.trim().split(/\s+/).slice(0, words).join(' '); } +// check a string for encoding; this is // used in our fetchResource function to // ensure correctly encoded responses - function getEncoding(str) { var encoding = DEFAULT_ENCODING; var matches = ENCODING_RE.exec(str); - if (matches !== null) { var _matches = _slicedToArray(matches, 2); - str = _matches[1]; } - if (iconv.encodingExists(str)) { encoding = str; } - return encoding; } +// Browser does not like us setting user agent var REQUEST_HEADERS = cheerio.browser ? {} : { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36' -}; // The number of milliseconds to attempt to fetch a resource before timing out. +}; -var FETCH_TIMEOUT = 10000; // Content types that we do not extract content from +// The number of milliseconds to attempt to fetch a resource before timing out. +var FETCH_TIMEOUT = 10000; +// Content types that we do not extract content from var BAD_CONTENT_TYPES = ['audio/mpeg', 'image/gif', 'image/jpeg', 'image/jpg']; -var BAD_CONTENT_TYPES_RE = new RegExp("^(".concat(BAD_CONTENT_TYPES.join('|'), ")$"), 'i'); // Use this setting as the maximum size an article can be -// for us to attempt parsing. Defaults to 5 MB. +var BAD_CONTENT_TYPES_RE = new RegExp("^(".concat(BAD_CONTENT_TYPES.join('|'), ")$"), 'i'); -var MAX_CONTENT_LENGTH = 5242880; // Turn the global proxy on or off +// Use this setting as the maximum size an article can be +// for us to attempt parsing. Defaults to 5 MB. +var MAX_CONTENT_LENGTH = 5242880; +function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; } function get(options) { return new _Promise(function (resolve, reject) { request(options, function (err, response, body) { @@ -220,15 +223,15 @@ function get(options) { } }); }); -} // Evaluate a response to ensure it's something we should be keeping. +} + +// Evaluate a response to ensure it's something we should be keeping. // This does not validate in the sense of a response being 200 or not. // Validation here means that we haven't found reason to bail from // further processing of this url. - function validateResponse(response) { var parseNon200 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - // Check if we got a valid status code // This isn't great, but I'm requiring a statusMessage to be set // before short circuiting b/c nock doesn't set it in tests @@ -242,22 +245,23 @@ function validateResponse(response) { throw new Error("Resource returned a response status code of ".concat(response.statusCode, " and resource was instructed to reject non-200 status codes.")); } } - var _response$headers = response.headers, - contentType = _response$headers['content-type'], - contentLength = _response$headers['content-length']; // Check that the content is not in BAD_CONTENT_TYPES + contentType = _response$headers['content-type'], + contentLength = _response$headers['content-length']; + // Check that the content is not in BAD_CONTENT_TYPES if (BAD_CONTENT_TYPES_RE.test(contentType)) { throw new Error("Content-type for this resource was ".concat(contentType, " and is not allowed.")); - } // Check that the content length is below maximum - + } + // Check that the content length is below maximum if (contentLength > MAX_CONTENT_LENGTH) { throw new Error("Content for this resource was too large. Maximum content length is ".concat(MAX_CONTENT_LENGTH, ".")); } - return true; -} // Grabs the last two pieces of the URL and joins them back together +} + +// Set our response attribute to the result of fetching our URL. // TODO: This should gracefully handle timeouts and raise the // proper exceptions on the many failure cases of HTTP. // TODO: Ensure we are not fetching something enormous. Always return @@ -266,69 +270,60 @@ function validateResponse(response) { function fetchResource(_x, _x2) { return _fetchResource.apply(this, arguments); } - function _fetchResource() { - _fetchResource = _asyncToGenerator( - /*#__PURE__*/ - _regeneratorRuntime.mark(function _callee(url, parsedUrl) { + _fetchResource = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(url, parsedUrl) { var headers, - options, - _ref2, - response, - body, - _args = arguments; - + options, + _yield$get, + response, + body, + _args = arguments; return _regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - headers = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}; - parsedUrl = parsedUrl || URL.parse(encodeURI(url)); - options = _objectSpread({ - url: parsedUrl.href, - headers: _objectSpread({}, REQUEST_HEADERS, headers), - timeout: FETCH_TIMEOUT, - // Accept cookies - jar: true, - // Set to null so the response returns as binary and body as buffer - // https://github.com/request/request#requestoptions-callback - encoding: null, - // Accept and decode gzip - gzip: true, - // Follow any non-GET redirects - followAllRedirects: true - }, typeof window !== 'undefined' ? {} : { - // Follow GET redirects; this option is for Node only - followRedirect: true - }); - _context.next = 5; - return get(options); - - case 5: - _ref2 = _context.sent; - response = _ref2.response; - body = _ref2.body; - _context.prev = 8; - validateResponse(response); - return _context.abrupt("return", { - body: body, - response: response - }); - - case 13: - _context.prev = 13; - _context.t0 = _context["catch"](8); - return _context.abrupt("return", { - error: true, - message: _context.t0.message - }); - - case 16: - case "end": - return _context.stop(); - } + while (1) switch (_context.prev = _context.next) { + case 0: + headers = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}; + parsedUrl = parsedUrl || URL.parse(encodeURI(url)); + options = _objectSpread({ + url: parsedUrl.href, + headers: _objectSpread(_objectSpread({}, REQUEST_HEADERS), headers), + timeout: FETCH_TIMEOUT, + // Accept cookies + jar: true, + // Set to null so the response returns as binary and body as buffer + // https://github.com/request/request#requestoptions-callback + encoding: null, + // Accept and decode gzip + gzip: true, + // Follow any non-GET redirects + followAllRedirects: true + }, typeof window !== 'undefined' ? {} : { + // Follow GET redirects; this option is for Node only + followRedirect: true + }); + _context.next = 5; + return get(options); + case 5: + _yield$get = _context.sent; + response = _yield$get.response; + body = _yield$get.body; + _context.prev = 8; + validateResponse(response); + return _context.abrupt("return", { + body: body, + response: response + }); + case 13: + _context.prev = 13; + _context.t0 = _context["catch"](8); + return _context.abrupt("return", { + error: true, + message: _context.t0.message + }); + case 16: + case "end": + return _context.stop(); } - }, _callee, this, [[8, 13]]); + }, _callee, null, [[8, 13]]); })); return _fetchResource.apply(this, arguments); } @@ -341,14 +336,15 @@ function convertMetaProp($, from, to) { $node.removeAttr(from); }); return $; -} // For ease of use in extracting from meta tags, +} + +// For ease of use in extracting from meta tags, // replace the "content" attribute on meta tags with the // "value" attribute. // // In addition, normalize 'property' attributes to 'name' for ease of // querying later. See, e.g., og or twitter meta tags. - function normalizeMetaTags($) { $ = convertMetaProp($, 'content', 'value'); $ = convertMetaProp($, 'property', 'name'); @@ -356,30 +352,42 @@ function normalizeMetaTags($) { } // Spacer images to be removed -var SPACER_RE = new RegExp('transparent|spacer|blank', 'i'); // The class we will use to mark elements we want to keep -// but would normally remove +var SPACER_RE = new RegExp('transparent|spacer|blank', 'i'); +// The class we will use to mark elements we want to keep +// but would normally remove var KEEP_CLASS = 'mercury-parser-keep'; -var KEEP_SELECTORS = ['iframe[src^="https://www.youtube.com"]', 'iframe[src^="https://www.youtube-nocookie.com"]', 'iframe[src^="http://www.youtube.com"]', 'iframe[src^="https://player.vimeo"]', 'iframe[src^="http://player.vimeo"]', 'iframe[src^="https://www.redditmedia.com"]']; // A list of tags to strip from the output if we encounter them. +var KEEP_SELECTORS = ['iframe[src^="https://www.youtube.com"]', 'iframe[src^="https://www.youtube-nocookie.com"]', 'iframe[src^="http://www.youtube.com"]', 'iframe[src^="https://player.vimeo"]', 'iframe[src^="http://player.vimeo"]', 'iframe[src^="https://www.redditmedia.com"]']; -var STRIP_OUTPUT_TAGS = ['title', 'script', 'noscript', 'link', 'style', 'hr', 'embed', 'iframe', 'object']; // cleanAttributes +// A list of tags to strip from the output if we encounter them. +var STRIP_OUTPUT_TAGS = ['title', 'script', 'noscript', 'link', 'style', 'hr', 'embed', 'iframe', 'object']; var WHITELIST_ATTRS = ['src', 'srcset', 'sizes', 'type', 'href', 'class', 'id', 'alt', 'xlink:href', 'width', 'height']; -var WHITELIST_ATTRS_RE = new RegExp("^(".concat(WHITELIST_ATTRS.join('|'), ")$"), 'i'); // removeEmpty +var WHITELIST_ATTRS_RE = new RegExp("^(".concat(WHITELIST_ATTRS.join('|'), ")$"), 'i'); -var CLEAN_CONDITIONALLY_TAGS = ['ul', 'ol', 'table', 'div', 'button', 'form'].join(','); // cleanHeaders +// cleanTags +var CLEAN_CONDITIONALLY_TAGS = ['ul', 'ol', 'table', 'div', 'button', 'form'].join(','); +// cleanHeaders var HEADER_TAGS = ['h2', 'h3', 'h4', 'h5', 'h6']; -var HEADER_TAG_LIST = HEADER_TAGS.join(','); // // CONTENT FETCHING CONSTANTS //// +var HEADER_TAG_LIST = HEADER_TAGS.join(','); + +// // CONTENT FETCHING CONSTANTS //// + // A list of strings that can be considered unlikely candidates when // extracting content from a resource. These strings are joined together // and then tested for existence using re:test, so may contain simple, // non-pipe style regular expression queries if necessary. - -var UNLIKELY_CANDIDATES_BLACKLIST = ['ad-break', 'adbox', 'advert', 'addthis', 'agegate', 'aux', 'blogger-labels', 'combx', 'comment', 'conversation', 'disqus', 'entry-unrelated', 'extra', 'foot', // 'form', // This is too generic, has too many false positives -'header', 'hidden', 'loader', 'login', // Note: This can hit 'blogindex'. -'menu', 'meta', 'nav', 'outbrain', 'pager', 'pagination', 'predicta', // readwriteweb inline ad box -'presence_control_external', // lifehacker.com container full of false positives -'popup', 'printfriendly', 'related', 'remove', 'remark', 'rss', 'share', 'shoutbox', 'sidebar', 'sociable', 'sponsor', 'taboola', 'tools']; // A list of strings that can be considered LIKELY candidates when +var UNLIKELY_CANDIDATES_BLACKLIST = ['ad-break', 'adbox', 'advert', 'addthis', 'agegate', 'aux', 'blogger-labels', 'combx', 'comment', 'conversation', 'disqus', 'entry-unrelated', 'extra', 'foot', +// 'form', // This is too generic, has too many false positives +'header', 'hidden', 'loader', 'login', +// Note: This can hit 'blogindex'. +'menu', 'meta', 'nav', 'outbrain', 'pager', 'pagination', 'predicta', +// readwriteweb inline ad box +'presence_control_external', +// lifehacker.com container full of false positives +'popup', 'printfriendly', 'related', 'remove', 'remark', 'rss', 'share', 'shoutbox', 'sidebar', 'sociable', 'sponsor', 'taboola', 'tools']; + +// A list of strings that can be considered LIKELY candidates when // extracting content from a resource. Essentially, the inverse of the // blacklist above - if something matches both blacklist and whitelist, // it is kept. This is useful, for example, if something has a className @@ -390,45 +398,59 @@ var UNLIKELY_CANDIDATES_BLACKLIST = ['ad-break', 'adbox', 'advert', 'addthis', ' // These strings are joined together and then tested for existence using // re:test, so may contain simple, non-pipe style regular expression queries // if necessary. +var UNLIKELY_CANDIDATES_WHITELIST = ['and', 'article', 'body', 'blogindex', 'column', 'content', 'entry-content-asset', 'format', +// misuse of form +'hfeed', 'hentry', 'hatom', 'main', 'page', 'posts', 'shadow']; -var UNLIKELY_CANDIDATES_WHITELIST = ['and', 'article', 'body', 'blogindex', 'column', 'content', 'entry-content-asset', 'format', // misuse of form -'hfeed', 'hentry', 'hatom', 'main', 'page', 'posts', 'shadow']; // A list of tags which, if found inside, should cause a
to NOT +// A list of tags which, if found inside, should cause a
to NOT // be turned into a paragraph tag. Shallow div tags without these elements // should be turned into

tags. +var DIV_TO_P_BLOCK_TAGS = ['a', 'blockquote', 'dl', 'div', 'img', 'p', 'pre', 'table'].join(','); -var DIV_TO_P_BLOCK_TAGS = ['a', 'blockquote', 'dl', 'div', 'img', 'p', 'pre', 'table'].join(','); // A list of tags that should be ignored when trying to find the top candidate +// A list of strings that denote a positive scoring for this content as being // an article container. Checked against className and id. // // TODO: Perhaps have these scale based on their odds of being quality? +var POSITIVE_SCORE_HINTS = ['article', 'articlecontent', 'instapaper_body', 'blog', 'body', 'content', 'entry-content-asset', 'entry', 'hentry', 'main', 'Normal', 'page', 'pagination', 'permalink', 'post', 'story', 'text', '[-_]copy', +// usatoday +'\\Bcopy']; -var POSITIVE_SCORE_HINTS = ['article', 'articlecontent', 'instapaper_body', 'blog', 'body', 'content', 'entry-content-asset', 'entry', 'hentry', 'main', 'Normal', 'page', 'pagination', 'permalink', 'post', 'story', 'text', '[-_]copy', // usatoday -'\\Bcopy']; // The above list, joined into a matching regular expression +// The above list, joined into a matching regular expression +var POSITIVE_SCORE_RE = new RegExp(POSITIVE_SCORE_HINTS.join('|'), 'i'); -var POSITIVE_SCORE_RE = new RegExp(POSITIVE_SCORE_HINTS.join('|'), 'i'); // Readability publisher-specific guidelines +// A list of strings that denote a negative scoring for this content as being // an article container. Checked against className and id. // // TODO: Perhaps have these scale based on their odds of being quality? - -var NEGATIVE_SCORE_HINTS = ['adbox', 'advert', 'author', 'bio', 'bookmark', 'bottom', 'byline', 'clear', 'com-', 'combx', 'comment', 'comment\\B', 'contact', 'copy', 'credit', 'crumb', 'date', 'deck', 'excerpt', 'featured', // tnr.com has a featured_content which throws us off -'foot', 'footer', 'footnote', 'graf', 'head', 'info', 'infotext', // newscientist.com copyright -'instapaper_ignore', 'jump', 'linebreak', 'link', 'masthead', 'media', 'meta', 'modal', 'outbrain', // slate.com junk -'promo', 'pr_', // autoblog - press release -'related', 'respond', 'roundcontent', // lifehacker restricted content warning -'scroll', 'secondary', 'share', 'shopping', 'shoutbox', 'side', 'sidebar', 'sponsor', 'stamp', 'sub', 'summary', 'tags', 'tools', 'widget']; // The above list, joined into a matching regular expression - -var NEGATIVE_SCORE_RE = new RegExp(NEGATIVE_SCORE_HINTS.join('|'), 'i'); // XPath to try to determine if a page is wordpress. Not always successful. - -var IS_WP_SELECTOR = 'meta[name=generator][value^=WordPress]'; // Match a digit. Pretty clear. - -var PAGE_RE = new RegExp('pag(e|ing|inat)', 'i'); // Match any link text/classname/id that looks like it could mean the next +var NEGATIVE_SCORE_HINTS = ['adbox', 'advert', 'author', 'bio', 'bookmark', 'bottom', 'byline', 'clear', 'com-', 'combx', 'comment', 'comment\\B', 'contact', 'copy', 'credit', 'crumb', 'date', 'deck', 'excerpt', 'featured', +// tnr.com has a featured_content which throws us off +'foot', 'footer', 'footnote', 'graf', 'head', 'info', 'infotext', +// newscientist.com copyright +'instapaper_ignore', 'jump', 'linebreak', 'link', 'masthead', 'media', 'meta', 'modal', 'outbrain', +// slate.com junk +'promo', 'pr_', +// autoblog - press release +'related', 'respond', 'roundcontent', +// lifehacker restricted content warning +'scroll', 'secondary', 'share', 'shopping', 'shoutbox', 'side', 'sidebar', 'sponsor', 'stamp', 'sub', 'summary', 'tags', 'tools', 'widget']; +// The above list, joined into a matching regular expression +var NEGATIVE_SCORE_RE = new RegExp(NEGATIVE_SCORE_HINTS.join('|'), 'i'); + +// XPath to try to determine if a page is wordpress. Not always successful. +var IS_WP_SELECTOR = 'meta[name=generator][value^=WordPress]'; + +// Match any phrase that looks like it could be page, or paging, or pagination +var PAGE_RE = new RegExp('pag(e|ing|inat)', 'i'); + +// A list of all of the block level tags known in HTML5 and below. Taken from // http://bit.ly/qneNIT - var BLOCK_LEVEL_TAGS = ['article', 'aside', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'col', 'colgroup', 'dd', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'li', 'map', 'object', 'ol', 'output', 'p', 'pre', 'progress', 'section', 'table', 'tbody', 'textarea', 'tfoot', 'th', 'thead', 'tr', 'ul', 'video']; -var BLOCK_LEVEL_TAGS_RE = new RegExp("^(".concat(BLOCK_LEVEL_TAGS.join('|'), ")$"), 'i'); // The removal is implemented as a blacklist and whitelist, this test finds +var BLOCK_LEVEL_TAGS_RE = new RegExp("^(".concat(BLOCK_LEVEL_TAGS.join('|'), ")$"), 'i'); + +// The removal is implemented as a blacklist and whitelist, this test finds // blacklisted elements that aren't whitelisted. We do this all in one // expression-both because it's only one pass, and because this skips the // serialization for whitelisted nodes. - var candidatesBlacklist = UNLIKELY_CANDIDATES_BLACKLIST.join('|'); var CANDIDATES_BLACKLIST = new RegExp(candidatesBlacklist, 'i'); var candidatesWhitelist = UNLIKELY_CANDIDATES_WHITELIST.join('|'); @@ -450,11 +472,9 @@ function stripUnlikelyCandidates($) { var id = $node.attr('id'); if (!id && !classes) return; var classAndId = "".concat(classes || '', " ").concat(id || ''); - if (CANDIDATES_WHITELIST.test(classAndId)) { return; } - if (CANDIDATES_BLACKLIST.test(classAndId)) { $node.remove(); } @@ -462,19 +482,20 @@ function stripUnlikelyCandidates($) { return $; } +// ## NOTES: // Another good candidate for refactoring/optimizing. // Very imperative code, I don't love it. - AP + // Given cheerio object, convert consecutive
tags into //

tags instead. // // :param $: A cheerio object -function brsToPs$$1($) { +function brsToPs($) { var collapsing = false; $('br').each(function (index, element) { var $element = $(element); var nextElement = $element.next().get(0); - if (nextElement && nextElement.tagName.toLowerCase() === 'br') { collapsing = true; $element.remove(); @@ -486,6 +507,7 @@ function brsToPs$$1($) { return $; } +// Given a node, turn it into a P if it is not already a P, and // make sure it conforms to the constraints of a P tag (I.E. does // not contain any other block tags.) // @@ -499,24 +521,22 @@ function brsToPs$$1($) { function paragraphize(node, $) { var br = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var $node = $(node); - if (br) { var sibling = node.nextSibling; - var p = $('

'); // while the next node is text or not a block level element - // append it to a new p node + var p = $('

'); + // while the next node is text or not a block level element + // append it to a new p node while (sibling && !(sibling.tagName && BLOCK_LEVEL_TAGS_RE.test(sibling.tagName))) { var _sibling = sibling, - nextSibling = _sibling.nextSibling; + nextSibling = _sibling.nextSibling; $(sibling).appendTo(p); sibling = nextSibling; } - $node.replaceWith(p); $node.remove(); return $; } - return $; } @@ -524,25 +544,24 @@ function convertDivs($) { $('div').each(function (index, div) { var $div = $(div); var convertible = $div.children(DIV_TO_P_BLOCK_TAGS).length === 0; - if (convertible) { - convertNodeTo$$1($div, $, 'p'); + convertNodeTo($div, $, 'p'); } }); return $; } - function convertSpans($) { $('span').each(function (index, span) { var $span = $(span); var convertible = $span.parents('p, div, li, figcaption').length === 0; - if (convertible) { - convertNodeTo$$1($span, $, 'p'); + convertNodeTo($span, $, 'p'); } }); return $; -} // Loop through the provided doc, and convert any p-like elements to +} + +// Loop through the provided doc, and convert any p-like elements to // actual paragraph tags. // // Things fitting this criteria: @@ -554,30 +573,24 @@ function convertSpans($) { // :return cheerio object with new p elements // (By-reference mutation, though. Returned just for convenience.) - -function convertToParagraphs$$1($) { - $ = brsToPs$$1($); +function convertToParagraphs($) { + $ = brsToPs($); $ = convertDivs($); $ = convertSpans($); return $; } -function convertNodeTo$$1($node, $) { +function convertNodeTo($node, $) { var tag = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'p'; var node = $node.get(0); - if (!node) { return $; } - var attrs = getAttrs(node) || {}; - var attribString = _Reflect$ownKeys(attrs).map(function (key) { return "".concat(key, "=").concat(attrs[key]); }).join(' '); - var html; - if ($.browser) { // In the browser, the contents of noscript tags aren't rendered, therefore // transforms on the noscript tag (commonly used for lazy-loading) don't work @@ -586,18 +599,17 @@ function convertNodeTo$$1($node, $) { } else { html = $node.contents(); } - $node.replaceWith("<".concat(tag, " ").concat(attribString, ">").concat(html, "")); return $; } function cleanForHeight($img, $) { var height = _parseInt($img.attr('height'), 10); + var width = _parseInt($img.attr('width'), 10) || 20; - var width = _parseInt($img.attr('width'), 10) || 20; // Remove images that explicitly have very small heights or + // Remove images that explicitly have very small heights or // widths, because they are most likely shims or icons, // which aren't very useful for reading. - if ((height || 20) < 10 || width < 10) { $img.remove(); } else if (height) { @@ -606,20 +618,17 @@ function cleanForHeight($img, $) { // aspect ratio. $img.removeAttr('height'); } - return $; -} // Cleans out images where the source string matches transparent/spacer/etc -// TODO This seems very aggressive - AP - +} +// Cleans out images where the source string matches transparent/spacer/etc +// TODO This seems very aggressive - AP function removeSpacers($img, $) { if (SPACER_RE.test($img.attr('src'))) { $img.remove(); } - return $; } - function cleanImages($article, $) { $article.find('img').each(function (index, img) { var $img = $(img); @@ -631,73 +640,68 @@ function cleanImages($article, $) { function markToKeep(article, $, url) { var tags = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; - if (tags.length === 0) { tags = KEEP_SELECTORS; } - if (url) { var _URL$parse = URL.parse(url), - protocol = _URL$parse.protocol, - hostname = _URL$parse.hostname; - + protocol = _URL$parse.protocol, + hostname = _URL$parse.hostname; tags = [].concat(_toConsumableArray(tags), ["iframe[src^=\"".concat(protocol, "//").concat(hostname, "\"]")]); } - $(tags.join(','), article).addClass(KEEP_CLASS); return $; } function stripJunkTags(article, $) { var tags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; - if (tags.length === 0) { tags = STRIP_OUTPUT_TAGS; - } // Remove matching elements, but ignore - // any element with a class of mercury-parser-keep - + } + // Remove matching elements, but ignore + // any element with a class of mercury-parser-keep $(tags.join(','), article).not(".".concat(KEEP_CLASS)).remove(); return $; } +// H1 tags are typically the article title, which should be extracted // by the title extractor instead. If there's less than 3 of them (<3), // strip them. Otherwise, turn 'em into H2s. - -function cleanHOnes$$1(article, $) { +function cleanHOnes(article, $) { var $hOnes = $('h1', article); - if ($hOnes.length < 3) { $hOnes.each(function (index, node) { return $(node).remove(); }); } else { $hOnes.each(function (index, node) { - convertNodeTo$$1($(node), $, 'h2'); + convertNodeTo($(node), $, 'h2'); }); } - return $; } +function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; } function removeAllButWhitelist($article, $) { $article.find('*').each(function (index, node) { var attrs = getAttrs(node); setAttrs(node, _Reflect$ownKeys(attrs).reduce(function (acc, attr) { if (WHITELIST_ATTRS_RE.test(attr)) { - return _objectSpread({}, acc, _defineProperty({}, attr, attrs[attr])); + return _objectSpread$1(_objectSpread$1({}, acc), {}, _defineProperty({}, attr, attrs[attr])); } - return acc; }, {})); - }); // Remove the mercury-parser-keep class from result + }); + // Remove the mercury-parser-keep class from result $(".".concat(KEEP_CLASS), $article).removeClass(KEEP_CLASS); return $article; -} // Remove attributes like style or align - +} -function cleanAttributes$$1($article, $) { +// Remove attributes like style or align +function cleanAttributes($article, $) { // Grabbing the parent because at this point // $article will be wrapped in a div which will // have a score set on it. @@ -713,58 +717,68 @@ function removeEmpty($article, $) { } // // CONTENT FETCHING CONSTANTS //// + +// A list of tags that should be ignored when trying to find the top candidate // for a document. +var NON_TOP_CANDIDATE_TAGS = ['br', 'b', 'i', 'label', 'hr', 'area', 'base', 'basefont', 'input', 'img', 'link', 'meta']; +var NON_TOP_CANDIDATE_TAGS_RE = new RegExp("^(".concat(NON_TOP_CANDIDATE_TAGS.join('|'), ")$"), 'i'); -var NON_TOP_CANDIDATE_TAGS$1 = ['br', 'b', 'i', 'label', 'hr', 'area', 'base', 'basefont', 'input', 'img', 'link', 'meta']; -var NON_TOP_CANDIDATE_TAGS_RE$1 = new RegExp("^(".concat(NON_TOP_CANDIDATE_TAGS$1.join('|'), ")$"), 'i'); // A list of selectors that specify, very clearly, either hNews or other +// A list of selectors that specify, very clearly, either hNews or other // very content-specific style content, like Blogger templates. // More examples here: http://microformats.org/wiki/blog-post-formats +var HNEWS_CONTENT_SELECTORS = [['.hentry', '.entry-content'], ['entry', '.entry-content'], ['.entry', '.entry_content'], ['.post', '.postbody'], ['.post', '.post_body'], ['.post', '.post-body']]; +var PHOTO_HINTS = ['figure', 'photo', 'image', 'caption']; +var PHOTO_HINTS_RE = new RegExp(PHOTO_HINTS.join('|'), 'i'); -var HNEWS_CONTENT_SELECTORS$1 = [['.hentry', '.entry-content'], ['entry', '.entry-content'], ['.entry', '.entry_content'], ['.post', '.postbody'], ['.post', '.post_body'], ['.post', '.post-body']]; -var PHOTO_HINTS$1 = ['figure', 'photo', 'image', 'caption']; -var PHOTO_HINTS_RE$1 = new RegExp(PHOTO_HINTS$1.join('|'), 'i'); // A list of strings that denote a positive scoring for this content as being +// A list of strings that denote a positive scoring for this content as being // an article container. Checked against className and id. // // TODO: Perhaps have these scale based on their odds of being quality? +var POSITIVE_SCORE_HINTS$1 = ['article', 'articlecontent', 'instapaper_body', 'blog', 'body', 'content', 'entry-content-asset', 'entry', 'hentry', 'main', 'Normal', 'page', 'pagination', 'permalink', 'post', 'story', 'text', '[-_]copy', +// usatoday +'\\Bcopy']; -var POSITIVE_SCORE_HINTS$1 = ['article', 'articlecontent', 'instapaper_body', 'blog', 'body', 'content', 'entry-content-asset', 'entry', 'hentry', 'main', 'Normal', 'page', 'pagination', 'permalink', 'post', 'story', 'text', '[-_]copy', // usatoday -'\\Bcopy']; // The above list, joined into a matching regular expression +// The above list, joined into a matching regular expression +var POSITIVE_SCORE_RE$1 = new RegExp(POSITIVE_SCORE_HINTS$1.join('|'), 'i'); -var POSITIVE_SCORE_RE$1 = new RegExp(POSITIVE_SCORE_HINTS$1.join('|'), 'i'); // Readability publisher-specific guidelines +// Readability publisher-specific guidelines +var READABILITY_ASSET = new RegExp('entry-content-asset', 'i'); -var READABILITY_ASSET$1 = new RegExp('entry-content-asset', 'i'); // A list of strings that denote a negative scoring for this content as being +// A list of strings that denote a negative scoring for this content as being // an article container. Checked against className and id. // // TODO: Perhaps have these scale based on their odds of being quality? - -var NEGATIVE_SCORE_HINTS$1 = ['adbox', 'advert', 'author', 'bio', 'bookmark', 'bottom', 'byline', 'clear', 'com-', 'combx', 'comment', 'comment\\B', 'contact', 'copy', 'credit', 'crumb', 'date', 'deck', 'excerpt', 'featured', // tnr.com has a featured_content which throws us off -'foot', 'footer', 'footnote', 'graf', 'head', 'info', 'infotext', // newscientist.com copyright -'instapaper_ignore', 'jump', 'linebreak', 'link', 'masthead', 'media', 'meta', 'modal', 'outbrain', // slate.com junk -'promo', 'pr_', // autoblog - press release -'related', 'respond', 'roundcontent', // lifehacker restricted content warning -'scroll', 'secondary', 'share', 'shopping', 'shoutbox', 'side', 'sidebar', 'sponsor', 'stamp', 'sub', 'summary', 'tags', 'tools', 'widget']; // The above list, joined into a matching regular expression - -var NEGATIVE_SCORE_RE$1 = new RegExp(NEGATIVE_SCORE_HINTS$1.join('|'), 'i'); // Match a digit. Pretty clear. -var PARAGRAPH_SCORE_TAGS$1 = new RegExp('^(p|li|span|pre)$', 'i'); -var CHILD_CONTENT_TAGS$1 = new RegExp('^(td|blockquote|ol|ul|dl)$', 'i'); -var BAD_TAGS$1 = new RegExp('^(address|form)$', 'i'); - +var NEGATIVE_SCORE_HINTS$1 = ['adbox', 'advert', 'author', 'bio', 'bookmark', 'bottom', 'byline', 'clear', 'com-', 'combx', 'comment', 'comment\\B', 'contact', 'copy', 'credit', 'crumb', 'date', 'deck', 'excerpt', 'featured', +// tnr.com has a featured_content which throws us off +'foot', 'footer', 'footnote', 'graf', 'head', 'info', 'infotext', +// newscientist.com copyright +'instapaper_ignore', 'jump', 'linebreak', 'link', 'masthead', 'media', 'meta', 'modal', 'outbrain', +// slate.com junk +'promo', 'pr_', +// autoblog - press release +'related', 'respond', 'roundcontent', +// lifehacker restricted content warning +'scroll', 'secondary', 'share', 'shopping', 'shoutbox', 'side', 'sidebar', 'sponsor', 'stamp', 'sub', 'summary', 'tags', 'tools', 'widget']; +// The above list, joined into a matching regular expression +var NEGATIVE_SCORE_RE$1 = new RegExp(NEGATIVE_SCORE_HINTS$1.join('|'), 'i'); +var PARAGRAPH_SCORE_TAGS = new RegExp('^(p|li|span|pre)$', 'i'); +var CHILD_CONTENT_TAGS = new RegExp('^(td|blockquote|ol|ul|dl)$', 'i'); +var BAD_TAGS = new RegExp('^(address|form)$', 'i'); + +// Get the score of a node based on its className and id. function getWeight(node) { var classes = node.attr('class'); var id = node.attr('id'); var score = 0; - if (id) { // if id exists, try to score on both positive and negative if (POSITIVE_SCORE_RE$1.test(id)) { score += 25; } - if (NEGATIVE_SCORE_RE$1.test(id)) { score -= 25; } } - if (classes) { if (score === 0) { // if classes exist and id did not contribute to score @@ -772,28 +786,26 @@ function getWeight(node) { if (POSITIVE_SCORE_RE$1.test(classes)) { score += 25; } - if (NEGATIVE_SCORE_RE$1.test(classes)) { score -= 25; } - } // even if score has been set by id, add score for + } + + // even if score has been set by id, add score for // possible photo matches // "try to keep photos if we can" - - - if (PHOTO_HINTS_RE$1.test(classes)) { + if (PHOTO_HINTS_RE.test(classes)) { score += 10; - } // add 25 if class matches entry-content-asset, + } + + // add 25 if class matches entry-content-asset, // a class apparently instructed for use in the // Readability publisher guidelines // https://www.readability.com/developers/guidelines - - - if (READABILITY_ASSET$1.test(classes)) { + if (READABILITY_ASSET.test(classes)) { score += 25; } } - return score; } @@ -813,50 +825,50 @@ var idkRe = new RegExp('^(p|pre)$', 'i'); function scoreLength(textLength) { var tagName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'p'; var chunks = textLength / 50; - if (chunks > 0) { - var lengthBonus; // No idea why p or pre are being tamped down here + var lengthBonus; + + // No idea why p or pre are being tamped down here // but just following the source for now // Not even sure why tagName is included here, // since this is only being called from the context // of scoreParagraph - if (idkRe.test(tagName)) { lengthBonus = chunks - 2; } else { lengthBonus = chunks - 1.25; } - return Math.min(Math.max(lengthBonus, 0), 3); } - return 0; } +// Score a paragraph using various methods. Things like number of // commas, etc. Higher is better. - -function scoreParagraph$$1(node) { +function scoreParagraph(node) { var score = 1; var text = node.text().trim(); - var textLength = text.length; // If this paragraph is less than 25 characters, don't count it. + var textLength = text.length; + // If this paragraph is less than 25 characters, don't count it. if (textLength < 25) { return 0; - } // Add points for any commas within this paragraph + } + // Add points for any commas within this paragraph + score += scoreCommas(text); - score += scoreCommas(text); // For every 50 characters in this paragraph, add another point. Up + // For every 50 characters in this paragraph, add another point. Up // to 3 points. + score += scoreLength(textLength); - score += scoreLength(textLength); // Articles can end with short paragraphs when people are being clever + // Articles can end with short paragraphs when people are being clever // but they can also end with short paragraphs setting up lists of junk // that we strip. This negative tweaks junk setup paragraphs just below // the cutoff threshold. - if (text.slice(-1) === ':') { score -= 1; } - return score; } @@ -865,249 +877,221 @@ function setScore($node, $, score) { return $node; } -function addScore$$1($node, $, amount) { +function addScore($node, $, amount) { try { - var score = getOrInitScore$$1($node, $) + amount; + var score = getOrInitScore($node, $) + amount; setScore($node, $, score); - } catch (e) {// Ignoring; error occurs in scoreNode + } catch (e) { + // Ignoring; error occurs in scoreNode } - return $node; } -function addToParent$$1(node, $, score) { +// Adds 1/4 of a child's score to its parent +function addToParent(node, $, score) { var parent = node.parent(); - if (parent) { - addScore$$1(parent, $, score * 0.25); + addScore(parent, $, score * 0.25); } - return node; } +// gets and returns the score if it exists // if not, initializes a score based on // the node's tag type - -function getOrInitScore$$1($node, $) { +function getOrInitScore($node, $) { var weightNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var score = getScore($node); - if (score) { return score; } - - score = scoreNode$$1($node); - + score = scoreNode($node); if (weightNodes) { score += getWeight($node); } - - addToParent$$1($node, $, score); + addToParent($node, $, score); return score; } +// Score an individual node. Has some smarts for paragraphs, otherwise // just scores based on tag. - -function scoreNode$$1($node) { +function scoreNode($node) { var _$node$get = $node.get(0), - tagName = _$node$get.tagName; // TODO: Consider ordering by most likely. + tagName = _$node$get.tagName; + + // TODO: Consider ordering by most likely. // E.g., if divs are a more common tag on a page, // Could save doing that regex test on every node – AP - - - if (PARAGRAPH_SCORE_TAGS$1.test(tagName)) { - return scoreParagraph$$1($node); + if (PARAGRAPH_SCORE_TAGS.test(tagName)) { + return scoreParagraph($node); } - if (tagName.toLowerCase() === 'div') { return 5; } - - if (CHILD_CONTENT_TAGS$1.test(tagName)) { + if (CHILD_CONTENT_TAGS.test(tagName)) { return 3; } - - if (BAD_TAGS$1.test(tagName)) { + if (BAD_TAGS.test(tagName)) { return -3; } - if (tagName.toLowerCase() === 'th') { return -5; } - return 0; } function convertSpans$1($node, $) { if ($node.get(0)) { var _$node$get = $node.get(0), - tagName = _$node$get.tagName; - + tagName = _$node$get.tagName; if (tagName === 'span') { // convert spans to divs - convertNodeTo$$1($node, $, 'div'); + convertNodeTo($node, $, 'div'); } } } - function addScoreTo($node, $, score) { if ($node) { convertSpans$1($node, $); - addScore$$1($node, $, score); + addScore($node, $, score); } } - function scorePs($, weightNodes) { $('p, pre').not('[score]').each(function (index, node) { // The raw score for this paragraph, before we add any parent/child // scores. var $node = $(node); - $node = setScore($node, $, getOrInitScore$$1($node, $, weightNodes)); + $node = setScore($node, $, getOrInitScore($node, $, weightNodes)); var $parent = $node.parent(); - var rawScore = scoreNode$$1($node); - addScoreTo($parent, $, rawScore, weightNodes); - + var rawScore = scoreNode($node); + addScoreTo($parent, $, rawScore); if ($parent) { // Add half of the individual content score to the // grandparent - addScoreTo($parent.parent(), $, rawScore / 2, weightNodes); + addScoreTo($parent.parent(), $, rawScore / 2); } }); return $; -} // score content. Parents get the full value of their children's -// content score, grandparents half - +} -function scoreContent$$1($) { +// score content. Parents get the full value of their children's +// content score, grandparents half +function scoreContent($) { var weightNodes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; // First, look for special hNews based selectors and give them a big // boost, if they exist - HNEWS_CONTENT_SELECTORS$1.forEach(function (_ref) { + HNEWS_CONTENT_SELECTORS.forEach(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), - parentSelector = _ref2[0], - childSelector = _ref2[1]; - + parentSelector = _ref2[0], + childSelector = _ref2[1]; $("".concat(parentSelector, " ").concat(childSelector)).each(function (index, node) { - addScore$$1($(node).parent(parentSelector), $, 80); + addScore($(node).parent(parentSelector), $, 80); }); - }); // Doubling this again + }); + + // Doubling this again // Previous solution caused a bug // in which parents weren't retaining // scores. This is not ideal, and // should be fixed. - scorePs($, weightNodes); scorePs($, weightNodes); return $; } +// Now that we have a top_candidate, look through the siblings of // it to see if any of them are decently scored. If they are, they // may be split parts of the content (Like two divs, a preamble and // a body.) Example: // http://articles.latimes.com/2009/oct/14/business/fi-bigtvs14 - function mergeSiblings($candidate, topScore, $) { if (!$candidate.parent().length) { return $candidate; } - var siblingScoreThreshold = Math.max(10, topScore * 0.25); var wrappingDiv = $('
'); $candidate.parent().children().each(function (index, sibling) { - var $sibling = $(sibling); // Ignore tags like BR, HR, etc - - if (NON_TOP_CANDIDATE_TAGS_RE$1.test(sibling.tagName)) { + var $sibling = $(sibling); + // Ignore tags like BR, HR, etc + if (NON_TOP_CANDIDATE_TAGS_RE.test(sibling.tagName)) { return null; } - var siblingScore = getScore($sibling); - if (siblingScore) { if ($sibling.get(0) === $candidate.get(0)) { wrappingDiv.append($sibling); } else { var contentBonus = 0; - var density = linkDensity($sibling); // If sibling has a very low link density, - // give it a small bonus + var density = linkDensity($sibling); + // If sibling has a very low link density, + // give it a small bonus if (density < 0.05) { contentBonus += 20; - } // If sibling has a high link density, - // give it a penalty - + } + // If sibling has a high link density, + // give it a penalty if (density >= 0.5) { contentBonus -= 20; - } // If sibling node has the same class as - // candidate, give it a bonus - + } + // If sibling node has the same class as + // candidate, give it a bonus if ($sibling.attr('class') === $candidate.attr('class')) { contentBonus += topScore * 0.2; } - var newScore = siblingScore + contentBonus; - if (newScore >= siblingScoreThreshold) { return wrappingDiv.append($sibling); } - if (sibling.tagName === 'p') { var siblingContent = $sibling.text(); var siblingContentLength = textLength(siblingContent); - if (siblingContentLength > 80 && density < 0.25) { return wrappingDiv.append($sibling); } - if (siblingContentLength <= 80 && density === 0 && hasSentenceEnd(siblingContent)) { return wrappingDiv.append($sibling); } } } } - return null; }); - if (wrappingDiv.children().length === 1 && wrappingDiv.children().first().get(0) === $candidate.get(0)) { return $candidate; } - return wrappingDiv; } +// After we've calculated scores, loop through all of the possible // candidate nodes we found and find the one with the highest score. - -function findTopCandidate$$1($) { +function findTopCandidate($) { var $candidate; var topScore = 0; $('[score]').each(function (index, node) { // Ignore tags like BR, HR, etc - if (NON_TOP_CANDIDATE_TAGS_RE$1.test(node.tagName)) { + if (NON_TOP_CANDIDATE_TAGS_RE.test(node.tagName)) { return; } - var $node = $(node); var score = getScore($node); - if (score > topScore) { topScore = score; $candidate = $node; } - }); // If we don't have a candidate, return the body - // or whatever the first element is + }); + // If we don't have a candidate, return the body + // or whatever the first element is if (!$candidate) { return $('body') || $('*').first(); } - $candidate = mergeSiblings($candidate, topScore, $); return $candidate; } -// Scoring - function removeUnlessContent($node, $, weight) { // Explicitly save entry-content-asset tags, which are // noted as valuable in the Publisher guidelines. For now @@ -1116,85 +1100,80 @@ function removeUnlessContent($node, $, weight) { if ($node.hasClass('entry-content-asset')) { return; } - var content = normalizeSpaces($node.text()); - if (scoreCommas(content) < 10) { var pCount = $('p', $node).length; - var inputCount = $('input', $node).length; // Looks like a form, too many inputs. + var inputCount = $('input', $node).length; + // Looks like a form, too many inputs. if (inputCount > pCount / 3) { $node.remove(); return; } - var contentLength = content.length; - var imgCount = $('img', $node).length; // Content is too short, and there are no images, so - // this is probably junk content. + var imgCount = $('img', $node).length; + // Content is too short, and there are no images, so + // this is probably junk content. if (contentLength < 25 && imgCount === 0) { $node.remove(); return; } + var density = linkDensity($node); - var density = linkDensity($node); // Too high of link density, is probably a menu or + // Too high of link density, is probably a menu or // something similar. // console.log(weight, density, contentLength) - if (weight < 25 && density > 0.2 && contentLength > 75) { $node.remove(); return; - } // Too high of a link density, despite the score being - // high. - + } + // Too high of a link density, despite the score being + // high. if (weight >= 25 && density > 0.5) { // Don't remove the node if it's a list and the // previous sibling starts with a colon though. That // means it's probably content. var tagName = $node.get(0).tagName.toLowerCase(); var nodeIsList = tagName === 'ol' || tagName === 'ul'; - if (nodeIsList) { var previousNode = $node.prev(); - if (previousNode && normalizeSpaces(previousNode.text()).slice(-1) === ':') { return; } } - $node.remove(); return; } + var scriptCount = $('script', $node).length; - var scriptCount = $('script', $node).length; // Too many script tags, not enough content. - + // Too many script tags, not enough content. if (scriptCount > 0 && contentLength < 150) { $node.remove(); } } -} // Given an article, clean it of some superfluous content specified by +} + +// Given an article, clean it of some superfluous content specified by // tags. Things like forms, ads, etc. // // Tags is an array of tag name's to search through. (like div, form, // etc) // // Return this same doc. - - -function cleanTags$$1($article, $) { +function cleanTags($article, $) { $(CLEAN_CONDITIONALLY_TAGS, $article).each(function (index, node) { - var $node = $(node); // If marked to keep, skip it - + var $node = $(node); + // If marked to keep, skip it if ($node.hasClass(KEEP_CLASS) || $node.find(".".concat(KEEP_CLASS)).length > 0) return; var weight = getScore($node); - if (!weight) { - weight = getOrInitScore$$1($node, $); + weight = getOrInitScore($node, $); setScore($node, $, weight); - } // drop node if its weight is < 0 - + } + // drop node if its weight is < 0 if (weight < 0) { $node.remove(); } else { @@ -1208,39 +1187,38 @@ function cleanTags$$1($article, $) { function cleanHeaders($article, $) { var title = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; $(HEADER_TAG_LIST, $article).each(function (index, header) { - var $header = $(header); // Remove any headers that appear before all other p tags in the + var $header = $(header); + // Remove any headers that appear before all other p tags in the // document. This probably means that it was part of the title, a // subtitle or something else extraneous like a datestamp or byline, // all of which should be handled by other metadata handling. - if ($($header, $article).prevAll('p').length === 0) { return $header.remove(); - } // Remove any headers that match the title exactly. - + } + // Remove any headers that match the title exactly. if (normalizeSpaces($(header).text()) === title) { return $header.remove(); - } // If this header has a negative weight, it's probably junk. - // Get rid of it. - + } + // If this header has a negative weight, it's probably junk. + // Get rid of it. if (getWeight($(header)) < 0) { return $header.remove(); } - return $header; }); return $; } +// Rewrite the tag name to div if it's a top level node like body or // html to avoid later complications with multiple body tags. - -function rewriteTopLevel$$1(article, $) { +function rewriteTopLevel(article, $) { // I'm not using context here because // it's problematic when converting the // top-level/root node - AP - $ = convertNodeTo$$1($('html'), $, 'div'); - $ = convertNodeTo$$1($('body'), $, 'div'); + $ = convertNodeTo($('html'), $, 'div'); + $ = convertNodeTo($('body'), $, 'div'); return $; } @@ -1254,12 +1232,10 @@ function absolutize($, rootUrl, attr) { setAttr(node, attr, absoluteUrl); }); } - function absolutizeSet($, rootUrl, $content) { $('[srcset]', $content).each(function (_, node) { var attrs = getAttrs(node); var urlSet = attrs.srcset; - if (urlSet) { // a comma should be considered part of the candidate URL unless preceded by a descriptor // descriptors can only contain positive numbers followed immediately by either 'w' or 'x' @@ -1273,15 +1249,12 @@ function absolutizeSet($, rootUrl, $content) { parts[0] = URL.resolve(rootUrl, parts[0]); return parts.join(' '); }); - var absoluteUrlSet = _toConsumableArray(new _Set(absoluteCandidates)).join(', '); - setAttr(node, 'srcset', absoluteUrlSet); } }); } - -function makeLinksAbsolute$$1($content, $, url) { +function makeLinksAbsolute($content, $, url) { ['href', 'src'].forEach(function (attr) { return absolutize($, url, attr); }); @@ -1291,142 +1264,129 @@ function makeLinksAbsolute$$1($content, $, url) { function textLength(text) { return text.trim().replace(/\s+/g, ' ').length; -} // Determines what percentage of the text +} + +// Determines what percentage of the text // in a node is link text // Takes a node, returns a float - function linkDensity($node) { var totalTextLength = textLength($node.text()); var linkText = $node.find('a').text(); var linkLength = textLength(linkText); - if (totalTextLength > 0) { return linkLength / totalTextLength; } - if (totalTextLength === 0 && linkLength > 0) { return 1; } - return 0; } -// search for, find a meta tag associated. +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } -function extractFromMeta$$1($, metaNames, cachedNames) { +// Given a node type to search for, and a list of meta tag names to +// search for, find a meta tag associated. +function extractFromMeta($, metaNames, cachedNames) { var cleanTags = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; var foundNames = metaNames.filter(function (name) { return cachedNames.indexOf(name) !== -1; - }); // eslint-disable-next-line no-restricted-syntax - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + }); + // eslint-disable-next-line no-restricted-syntax + var _iterator = _createForOfIteratorHelper(foundNames), + _step; try { var _loop = function _loop() { var name = _step.value; var type = 'name'; var value = 'value'; - var nodes = $("meta[".concat(type, "=\"").concat(name, "\"]")); // Get the unique value of every matching node, in case there + var nodes = $("meta[".concat(type, "=\"").concat(name, "\"]")); + + // Get the unique value of every matching node, in case there // are two meta tags with the same name and value. // Remove empty values. - var values = nodes.map(function (index, node) { return $(node).attr(value); }).toArray().filter(function (text) { return text !== ''; - }); // If we have more than one value for the same name, we have a + }); + + // If we have more than one value for the same name, we have a // conflict and can't trust any of them. Skip this name. If we have // zero, that means our meta tags had no values. Skip this name // also. - if (values.length === 1) { - var metaValue; // Meta values that contain HTML should be stripped, as they + var metaValue; + // Meta values that contain HTML should be stripped, as they // weren't subject to cleaning previously. - if (cleanTags) { metaValue = stripTags(values[0], $); } else { var _values = _slicedToArray(values, 1); - metaValue = _values[0]; } - return { v: metaValue }; } }; - - for (var _iterator = _getIterator(foundNames), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + for (_iterator.s(); !(_step = _iterator.n()).done;) { var _ret = _loop(); - if (_typeof(_ret) === "object") return _ret.v; - } // If nothing is found, return null + } + // If nothing is found, return null } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _iterator.e(err); } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + _iterator.f(); } - return null; } +function _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); } +function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function isGoodNode($node, maxChildren) { // If it has a number of children, it's more likely a container // element. Skip it. if ($node.children().length > maxChildren) { return false; - } // If it looks to be within a comment, skip it. - - - if (withinComment$$1($node)) { + } + // If it looks to be within a comment, skip it. + if (withinComment($node)) { return false; } - return true; -} // Given a a list of selectors find content that may +} + +// Given a a list of selectors find content that may // be extractable from the document. This is for flat // meta-information, like author, title, date published, etc. - - -function extractFromSelectors$$1($, selectors) { +function extractFromSelectors($, selectors) { var maxChildren = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; var textOnly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; // eslint-disable-next-line no-restricted-syntax - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - + var _iterator = _createForOfIteratorHelper$1(selectors), + _step; try { - for (var _iterator = _getIterator(selectors), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + for (_iterator.s(); !(_step = _iterator.n()).done;) { var selector = _step.value; - var nodes = $(selector); // If we didn't get exactly one of this selector, this may be - // a list of articles or comments. Skip it. + var nodes = $(selector); + // If we didn't get exactly one of this selector, this may be + // a list of articles or comments. Skip it. if (nodes.length === 1) { var $node = $(nodes[0]); - if (isGoodNode($node, maxChildren)) { var content = void 0; - if (textOnly) { content = $node.text(); } else { content = $node.html(); } - if (content) { return content; } @@ -1434,20 +1394,10 @@ function extractFromSelectors$$1($, selectors) { } } } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _iterator.e(err); } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + _iterator.f(); } - return null; } @@ -1459,12 +1409,12 @@ function stripTags(text, $) { return cleanText === '' ? text : cleanText; } -function withinComment$$1($node) { +function withinComment($node) { var parents = $node.parents().toArray(); var commentParent = parents.find(function (parent) { var attrs = getAttrs(parent); - var nodeClass = attrs.class, - id = attrs.id; + var nodeClass = attrs["class"], + id = attrs.id; var classAndId = "".concat(nodeClass, " ").concat(id); return classAndId.includes('comment'); }); @@ -1474,6 +1424,7 @@ function withinComment$$1($node) { // Given a node, determine if it's article-like enough to return // param: node (a cheerio node) // return: boolean + function nodeIsSufficient($node) { return $node.text().trim().length >= 100; } @@ -1484,8 +1435,7 @@ function isWordpress($) { function getAttrs(node) { var attribs = node.attribs, - attributes = node.attributes; - + attributes = node.attributes; if (!attribs && attributes) { var attrs = _Reflect$ownKeys(attributes).reduce(function (acc, index) { var attr = attributes[index]; @@ -1493,10 +1443,8 @@ function getAttrs(node) { acc[attr.name] = attr.value; return acc; }, {}); - return attrs; } - return attribs; } @@ -1506,7 +1454,6 @@ function setAttr(node, attr, val) { } else if (node.attributes) { node.setAttribute(attr, val); } - return node; } @@ -1517,54 +1464,44 @@ function setAttrs(node, attrs) { while (node.attributes.length > 0) { node.removeAttribute(node.attributes[0].name); } - _Reflect$ownKeys(attrs).forEach(function (key) { node.setAttribute(key, attrs[key]); }); } - return node; } -// DOM manipulation - var IS_LINK = new RegExp('https?://', 'i'); var IMAGE_RE = '.(png|gif|jpe?g)'; var IS_IMAGE = new RegExp("".concat(IMAGE_RE), 'i'); var IS_SRCSET = new RegExp("".concat(IMAGE_RE, "(\\?\\S+)?(\\s*[\\d.]+[wx])"), 'i'); var TAGS_TO_REMOVE = ['script', 'style', 'form'].join(','); +// Convert all instances of images with potentially // lazy loaded images into normal images. // Many sites will have img tags with no source, or an image tag with a src // attribute that a is a placeholer. We need to be able to properly fill in // the src attribute so the images are no longer lazy loaded. - function convertLazyLoadedImages($) { var extractSrcFromJSON = function extractSrcFromJSON(str) { try { var _JSON$parse = JSON.parse(str), - src = _JSON$parse.src; - + src = _JSON$parse.src; if (typeof src === 'string') return src; } catch (_) { return false; } - return false; }; - $('img').each(function (_, img) { var attrs = getAttrs(img); - _Reflect$ownKeys(attrs).forEach(function (attr) { var value = attrs[attr]; - if (attr !== 'srcset' && IS_LINK.test(value) && IS_SRCSET.test(value)) { $(img).attr('srcset', value); } else if (attr !== 'src' && attr !== 'srcset' && IS_LINK.test(value) && IS_IMAGE.test(value)) { // Is the value a JSON object? If so, we should attempt to extract the image src from the data. var existingSrc = extractSrcFromJSON(value); - if (existingSrc) { $(img).attr('src', existingSrc); } else { @@ -1579,12 +1516,10 @@ function convertLazyLoadedImages($) { function isComment(index, node) { return node.type === 'comment'; } - function cleanComments($) { $.root().find('*').contents().filter(isComment).remove(); return $; } - function clean($) { $(TAGS_TO_REMOVE).remove(); $ = cleanComments($); @@ -1599,97 +1534,76 @@ var Resource = { // attempting to fetch it ourselves. Expects a // string. // :param headers: Custom headers to be included in the request - create: function () { - var _create = _asyncToGenerator( - /*#__PURE__*/ - _regeneratorRuntime.mark(function _callee(url, preparedResponse, parsedUrl) { - var headers, - result, - validResponse, - _args = arguments; + create: function create(url, preparedResponse, parsedUrl) { + var _arguments = arguments, + _this = this; + return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { + var headers, result, validResponse; return _regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - headers = _args.length > 3 && _args[3] !== undefined ? _args[3] : {}; - - if (!preparedResponse) { - _context.next = 6; - break; - } - - validResponse = { - statusMessage: 'OK', - statusCode: 200, - headers: { - 'content-type': 'text/html', - 'content-length': 500 - } - }; - result = { - body: preparedResponse, - response: validResponse, - alreadyDecoded: true - }; - _context.next = 9; + while (1) switch (_context.prev = _context.next) { + case 0: + headers = _arguments.length > 3 && _arguments[3] !== undefined ? _arguments[3] : {}; + if (!preparedResponse) { + _context.next = 6; break; - - case 6: - _context.next = 8; - return fetchResource(url, parsedUrl, headers); - - case 8: - result = _context.sent; - - case 9: - if (!result.error) { - _context.next = 12; - break; + } + validResponse = { + statusMessage: 'OK', + statusCode: 200, + headers: { + 'content-type': 'text/html', + 'content-length': 500 } - - result.failed = true; - return _context.abrupt("return", result); - - case 12: - return _context.abrupt("return", this.generateDoc(result)); - - case 13: - case "end": - return _context.stop(); - } + }; + result = { + body: preparedResponse, + response: validResponse, + alreadyDecoded: true + }; + _context.next = 9; + break; + case 6: + _context.next = 8; + return fetchResource(url, parsedUrl, headers); + case 8: + result = _context.sent; + case 9: + if (!result.error) { + _context.next = 12; + break; + } + result.failed = true; + return _context.abrupt("return", result); + case 12: + return _context.abrupt("return", _this.generateDoc(result)); + case 13: + case "end": + return _context.stop(); } - }, _callee, this); - })); - - function create(_x, _x2, _x3) { - return _create.apply(this, arguments); - } - - return create; - }(), + }, _callee); + }))(); + }, generateDoc: function generateDoc(_ref) { var content = _ref.body, - response = _ref.response, - _ref$alreadyDecoded = _ref.alreadyDecoded, - alreadyDecoded = _ref$alreadyDecoded === void 0 ? false : _ref$alreadyDecoded; + response = _ref.response, + _ref$alreadyDecoded = _ref.alreadyDecoded, + alreadyDecoded = _ref$alreadyDecoded === void 0 ? false : _ref$alreadyDecoded; var _response$headers$con = response.headers['content-type'], - contentType = _response$headers$con === void 0 ? '' : _response$headers$con; // TODO: Implement is_text function from - // https://github.com/ReadabilityHoldings/readability/blob/8dc89613241d04741ebd42fa9fa7df1b1d746303/readability/utils/text.py#L57 + contentType = _response$headers$con === void 0 ? '' : _response$headers$con; + // TODO: Implement is_text function from + // https://github.com/ReadabilityHoldings/readability/blob/8dc89613241d04741ebd42fa9fa7df1b1d746303/readability/utils/text.py#L57 if (!contentType.includes('html') && !contentType.includes('text')) { throw new Error('Content does not appear to be text.'); } - var $ = this.encodeDoc({ content: content, contentType: contentType, alreadyDecoded: alreadyDecoded }); - if ($.root().children().length === 0) { throw new Error('No children, likely a bad parse.'); } - $ = normalizeMetaTags($); $ = convertLazyLoadedImages($); $ = clean($); @@ -1697,65 +1611,51 @@ var Resource = { }, encodeDoc: function encodeDoc(_ref2) { var content = _ref2.content, - contentType = _ref2.contentType, - _ref2$alreadyDecoded = _ref2.alreadyDecoded, - alreadyDecoded = _ref2$alreadyDecoded === void 0 ? false : _ref2$alreadyDecoded; - + contentType = _ref2.contentType, + _ref2$alreadyDecoded = _ref2.alreadyDecoded, + alreadyDecoded = _ref2$alreadyDecoded === void 0 ? false : _ref2$alreadyDecoded; if (alreadyDecoded) { return cheerio.load(content); } - var encoding = getEncoding(contentType); var decodedContent = iconv.decode(content, encoding); - var $ = cheerio.load(decodedContent); // after first cheerio.load, check to see if encoding matches - + var $ = cheerio.load(decodedContent); + // after first cheerio.load, check to see if encoding matches var contentTypeSelector = cheerio.browser ? 'meta[http-equiv=content-type]' : 'meta[http-equiv=content-type i]'; var metaContentType = $(contentTypeSelector).attr('content') || $('meta[charset]').attr('charset'); - var properEncoding = getEncoding(metaContentType); // if encodings in the header/body dont match, use the one in the body + var properEncoding = getEncoding(metaContentType); + // if encodings in the header/body dont match, use the one in the body if (metaContentType && properEncoding !== encoding) { decodedContent = iconv.decode(content, properEncoding); $ = cheerio.load(decodedContent); } - return $; } }; -var _marked = -/*#__PURE__*/ -_regeneratorRuntime.mark(range); - function range() { - var start, - end, - _args = arguments; - return _regeneratorRuntime.wrap(function range$(_context) { - while (1) { - switch (_context.prev = _context.next) { + var start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + var end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + return /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { + return _regeneratorRuntime.wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: - start = _args.length > 0 && _args[0] !== undefined ? _args[0] : 1; - end = _args.length > 1 && _args[1] !== undefined ? _args[1] : 1; - - case 2: if (!(start <= end)) { - _context.next = 7; + _context.next = 5; break; } - - _context.next = 5; + _context.next = 3; return start += 1; - - case 5: - _context.next = 2; + case 3: + _context.next = 0; break; - - case 7: + case 5: case "end": return _context.stop(); } - } - }, _marked, this); + }, _callee); + })(); } // extremely simple url validation as a first step @@ -1771,7 +1671,6 @@ var merge = function merge(extractor, domains) { return acc; }, {}); }; - function mergeSupportedDomains(extractor) { return extractor.supportedDomains ? merge(extractor, [extractor.domain].concat(_toConsumableArray(extractor.supportedDomains))) : merge(extractor, [extractor.domain]); } @@ -1784,9 +1683,7 @@ function addExtractor(extractor) { message: 'Unable to add custom extractor. Invalid parameters.' }; } - _Object$assign(apiExtractors, mergeSupportedDomains(extractor)); - return apiExtractors; } @@ -1834,11 +1731,9 @@ var NYMagExtractor = { // Convert lazy-loaded noscript images to figures noscript: function noscript($node, $) { var $children = $.browser ? $($node.text()) : $node.children(); - if ($children.length === 1 && $children.get(0) !== undefined && $children.get(0).tagName.toLowerCase() === 'img') { return 'figure'; } - return null; } } @@ -1865,8 +1760,8 @@ var WikipediaExtractor = { // transform top infobox to an image with caption transforms: { '.infobox img': function infoboxImg($node) { - var $parent = $node.parents('.infobox'); // Only prepend the first image in .infobox - + var $parent = $node.parents('.infobox'); + // Only prepend the first image in .infobox if ($parent.children('img').length === 0) { $parent.prepend($node); } @@ -2024,13 +1919,22 @@ var NewYorkerExtractor = { var WiredExtractor = { domain: 'www.wired.com', title: { - selectors: ['h1[data-testId="ContentHeaderHed"]'] + selectors: ['h1[data-testId="ContentHeaderHed"]' + // enter title selectors + ] }, + author: { - selectors: [['meta[name="article:author"]', 'value'], 'a[rel="author"]'] + selectors: [['meta[name="article:author"]', 'value'], 'a[rel="author"]' + // enter author selectors + ] }, + content: { - selectors: ['article.article.main-content', 'article.content'], + selectors: ['article.article.main-content', 'article.content' + // enter content selectors + ], + // Is there anything in the content you selected that needs transformed // before it's consumable content? E.g., unusual lazy loaded images transforms: [], @@ -2058,13 +1962,22 @@ var WiredExtractor = { var MSNExtractor = { domain: 'www.msn.com', title: { - selectors: ['h1'] + selectors: ['h1' + // enter title selectors + ] }, + author: { - selectors: ['span.authorname-txt'] + selectors: ['span.authorname-txt' + // enter author selectors + ] }, + content: { - selectors: ['div.richtext'], + selectors: ['div.richtext' + // enter content selectors + ], + // Is there anything in the content you selected that needs transformed // before it's consumable content? E.g., unusual lazy loaded images transforms: [], @@ -2092,13 +2005,20 @@ var MSNExtractor = { var YahooExtractor = { domain: 'www.yahoo.com', title: { - selectors: ['header.canvas-header'] + selectors: ['header.canvas-header' + // enter title selectors + ] }, + author: { - selectors: ['span.provider-name'] + selectors: ['span.provider-name' + // enter author selectors + ] }, + content: { - selectors: [// enter content selectors + selectors: [ + // enter content selectors '.content-canvas'], // Is there anything in the content you selected that needs transformed // before it's consumable content? E.g., unusual lazy loaded images @@ -2115,7 +2035,8 @@ var YahooExtractor = { selectors: [['meta[name="og:image"]', 'value']] }, dek: { - selectors: [// enter dek selectors + selectors: [ + // enter dek selectors ] }, next_page_url: null, @@ -2129,11 +2050,17 @@ var BuzzfeedExtractor = { domain: 'www.buzzfeed.com', supportedDomains: ['www.buzzfeednews.com'], title: { - selectors: ['h1.embed-headline-title'] + selectors: ['h1.embed-headline-title' + // enter title selectors + ] }, + author: { - selectors: ['a[data-action="user/username"]', 'byline__author', ['meta[name="author"]', 'value']] + selectors: ['a[data-action="user/username"]', 'byline__author', ['meta[name="author"]', 'value'] + // enter author selectors + ] }, + content: { selectors: [['div[class^="featureimage_featureImageWrapper"]', '.js-subbuzz-wrapper'], ['.js-subbuzz-wrapper']], defaultCleaner: false, @@ -2145,7 +2072,6 @@ var BuzzfeedExtractor = { if ($node.has('img') && $node.has('.longform_header_image_source')) { return 'figure'; } - return null; }, 'figure.longform_custom_header_media .longform_header_image_source': 'figcaption' @@ -2174,13 +2100,22 @@ var BuzzfeedExtractor = { var WikiaExtractor = { domain: 'fandom.wikia.com', title: { - selectors: ['h1.entry-title'] + selectors: ['h1.entry-title' + // enter title selectors + ] }, + author: { - selectors: ['.author vcard', '.fn'] + selectors: ['.author vcard', '.fn' + // enter author selectors + ] }, + content: { - selectors: ['.grid-content', '.entry-content'], + selectors: ['.grid-content', '.entry-content' + // enter content selectors + ], + // Is there anything in the content you selected that needs transformed // before it's consumable content? E.g., unusual lazy loaded images transforms: [], @@ -2208,13 +2143,20 @@ var WikiaExtractor = { var LittleThingsExtractor = { domain: 'www.littlethings.com', title: { - selectors: ['h1[class*="PostHeader"]', 'h1.post-title'] + selectors: ['h1[class*="PostHeader"]', 'h1.post-title' + // enter title selectors + ] }, + author: { - selectors: ['div[class^="PostHeader__ScAuthorNameSection"]', ['meta[name="author"]', 'value']] + selectors: ['div[class^="PostHeader__ScAuthorNameSection"]', ['meta[name="author"]', 'value'] + // enter author selectors + ] }, + content: { - selectors: [// enter content selectors + selectors: [ + // enter content selectors 'section[class*="PostMainArticle"]', '.mainContentIntro', '.content-wrapper'], // Is there anything in the content you selected that needs transformed // before it's consumable content? E.g., unusual lazy loaded images @@ -2287,15 +2229,18 @@ var DeadspinExtractor = { selectors: [['meta[name="og:image"]', 'value']] }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, next_page_url: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, excerpt: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] } }; @@ -2331,11 +2276,13 @@ var BroadwayWorldExtractor = { selectors: [] }, next_page_url: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, excerpt: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] } }; @@ -2378,11 +2325,13 @@ var ApartmentTherapyExtractor = { selectors: [] }, next_page_url: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, excerpt: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] } }; @@ -2403,7 +2352,6 @@ var MediumExtractor = { // Allow drop cap character. 'section span:first-of-type': function sectionSpanFirstOfType($node) { var $text = $node.html(); - if ($text.length === 1 && /^[a-zA-Z()]+$/.test($text)) { $node.replaceWith($text); } @@ -2413,21 +2361,18 @@ var MediumExtractor = { var ytRe = /https:\/\/i.embed.ly\/.+url=https:\/\/i\.ytimg\.com\/vi\/(\w+)\//; var thumb = decodeURIComponent($node.attr('data-thumbnail')); var $parent = $node.parents('figure'); - if (ytRe.test(thumb)) { var _thumb$match = thumb.match(ytRe), - _thumb$match2 = _slicedToArray(_thumb$match, 2), - _ = _thumb$match2[0], - youtubeId = _thumb$match2[1]; // eslint-disable-line - - + _thumb$match2 = _slicedToArray(_thumb$match, 2), + _ = _thumb$match2[0], + youtubeId = _thumb$match2[1]; // eslint-disable-line $node.attr('src', "https://www.youtube.com/embed/".concat(youtubeId)); var $caption = $parent.find('figcaption'); $parent.empty().append([$node, $caption]); return; - } // If we can't draw the YouTube preview, remove the figure. - + } + // If we can't draw the YouTube preview, remove the figure. $parent.remove(); }, // rewrite figures to pull out image and caption, remove rest @@ -2442,7 +2387,6 @@ var MediumExtractor = { // cleaner (author photo 48px, leading sentence images 79px, etc.). img: function img($node) { var width = _parseInt($node.attr('width'), 10); - if (width < 100) $node.remove(); } }, @@ -2459,11 +2403,13 @@ var MediumExtractor = { }, dek: null, next_page_url: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, excerpt: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] } }; @@ -2479,7 +2425,8 @@ var WwwTmzComExtractor = { timezone: 'America/Los_Angeles' }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { @@ -2523,7 +2470,6 @@ var WwwWashingtonpostComExtractor = { if ($node.has('img,iframe,video').length > 0) { return 'figure'; } - $node.remove(); return null; }, @@ -2645,27 +2591,30 @@ var WwwThevergeComExtractor = { selectors: [['meta[name="og:image"]', 'value']] }, content: { - selectors: [// feature template multi-match - ['.c-entry-hero .e-image', '.c-entry-intro', '.c-entry-content'], // regular post multi-match - ['.e-image--hero', '.c-entry-content'], // feature template fallback - '.l-wrapper .l-feature', // regular post fallback + selectors: [ + // feature template multi-match + ['.c-entry-hero .e-image', '.c-entry-intro', '.c-entry-content'], + // regular post multi-match + ['.e-image--hero', '.c-entry-content'], + // feature template fallback + '.l-wrapper .l-feature', + // regular post fallback 'div.c-entry-content'], // Transform lazy-loaded images transforms: { noscript: function noscript($node) { var $children = $node.children(); - if ($children.length === 1 && $children.get(0).tagName === 'img') { return 'span'; } - return null; } }, // Is there anything that is in the result that shouldn't be? // The clean selectors will remove anything that matches from // the result - clean: ['.aside', 'img.c-dynamic-image'] + clean: ['.aside', 'img.c-dynamic-image' // images come from noscript transform + ] } }; @@ -2684,19 +2633,19 @@ var WwwCnnComExtractor = { selectors: [['meta[name="og:image"]', 'value']] }, content: { - selectors: [// a more specific selector to grab the lead image and the body - ['.media__video--thumbnail', '.zn-body-text'], // a fallback for the above + selectors: [ + // a more specific selector to grab the lead image and the body + ['.media__video--thumbnail', '.zn-body-text'], + // a fallback for the above '.zn-body-text', 'div[itemprop="articleBody"]'], // Is there anything in the content you selected that needs transformed // before it's consumable content? E.g., unusual lazy loaded images transforms: { '.zn-body__paragraph, .el__leafmedia--sourced-paragraph': function znBody__paragraphEl__leafmediaSourcedParagraph($node) { var $text = $node.html(); - if ($text) { return 'p'; } - return null; }, // this transform cleans the short, all-link sections linking @@ -2730,7 +2679,8 @@ var WwwAolComExtractor = { timezone: 'America/New_York' }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { @@ -2761,7 +2711,8 @@ var WwwYoutubeComExtractor = { timezone: 'GMT' }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { @@ -2851,14 +2802,19 @@ var WwwSbnationComExtractor = { var WwwBloombergComExtractor = { domain: 'www.bloomberg.com', title: { - selectors: [// normal articles - '.lede-headline', // /graphics/ template - 'h1.article-title', // /news/ template + selectors: [ + // normal articles + '.lede-headline', + // /graphics/ template + 'h1.article-title', + // /news/ template 'h1[class^="headline"]', 'h1.lede-text-only__hed'] }, author: { - selectors: [['meta[name="parsely-author"]', 'value'], '.byline-details__link', // /graphics/ template - '.bydek', // /news/ template + selectors: [['meta[name="parsely-author"]', 'value'], '.byline-details__link', + // /graphics/ template + '.bydek', + // /news/ template '.author', 'p[class*="author"]'] }, date_published: { @@ -2871,8 +2827,10 @@ var WwwBloombergComExtractor = { selectors: [['meta[name="og:image"]', 'value'], ['meta[name="og:image"]', 'content']] }, content: { - selectors: ['.article-body__content', '.body-content', // /graphics/ template - ['section.copy-block'], // /news/ template + selectors: ['.article-body__content', '.body-content', + // /graphics/ template + ['section.copy-block'], + // /news/ template '.body-copy'], // Is there anything in the content you selected that needs transformed // before it's consumable content? E.g., unusual lazy loaded images @@ -3003,7 +2961,8 @@ var WwwDmagazineComExtractor = { selectors: ['.story__info .story__info__item:first-child'] }, date_published: { - selectors: [// enter selectors + selectors: [ + // enter selectors '.story__info'], timezone: 'America/Chicago', format: 'MMMM D, YYYY h:mm a' @@ -3169,7 +3128,6 @@ var NewsNationalgeographicComExtractor = { transforms: { '.parsys.content': function parsysContent($node, $) { var $imgSrc = $node.find('.image.parbase.section').find('.picturefill').first().data('platform-src'); - if ($imgSrc) { $node.prepend($(""))); } @@ -3206,18 +3164,15 @@ var WwwNationalgeographicComExtractor = { transforms: { '.parsys.content': function parsysContent($node, $) { var $imageParent = $node.children().first(); - if ($imageParent.hasClass('imageGroup')) { var $dataAttrContainer = $imageParent.find('.media--medium__container').children().first(); var imgPath1 = $dataAttrContainer.data('platform-image1-path'); var imgPath2 = $dataAttrContainer.data('platform-image2-path'); - if (imgPath2 && imgPath1) { $node.prepend($("
\n \n \n
"))); } } else { var $imgSrc = $node.find('.image.parbase.section').find('.picturefill').first().data('platform-src'); - if ($imgSrc) { $node.prepend($(""))); } @@ -3375,11 +3330,9 @@ var WwwMsnbcComExtractor = { transforms: { '.pane-node-body': function paneNodeBody($node, $) { var _WwwMsnbcComExtractor = _slicedToArray(WwwMsnbcComExtractor.lead_image_url.selectors[0], 2), - selector = _WwwMsnbcComExtractor[0], - attr = _WwwMsnbcComExtractor[1]; - + selector = _WwwMsnbcComExtractor[0], + attr = _WwwMsnbcComExtractor[1]; var src = $(selector).attr(attr); - if (src) { $node.prepend("")); } @@ -3405,12 +3358,15 @@ var WwwThepoliticalinsiderComExtractor = { timezone: 'America/New_York' }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { - selectors: [['meta[name="og:image"]', 'value']] + selectors: [['meta[name="og:image"]', 'value'] // enter selectors + ] }, + content: { selectors: ['div#article-body'], // Is there anything in the content you selected that needs transformed @@ -3899,11 +3855,9 @@ var WwwSiComExtractor = { transforms: { noscript: function noscript($node) { var $children = $node.children(); - if ($children.length === 1 && $children.get(0).tagName === 'img') { return 'figure'; } - return null; } }, @@ -4099,7 +4053,8 @@ var WwwAmericanowComExtractor = { selectors: [['meta[name="publish_date"]', 'value']] }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { @@ -4129,7 +4084,8 @@ var ScienceflyComExtractor = { selectors: [['meta[name="article:published_time"]', 'value']] }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { @@ -4292,7 +4248,8 @@ var WwwLinkedinComExtractor = { timezone: 'America/Los_Angeles' }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { @@ -4353,7 +4310,8 @@ var WwwOpposingviewsComExtractor = { selectors: [['meta[name="published"]', 'value'], ['meta[name="publish_date"]', 'value']] }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { @@ -4413,7 +4371,8 @@ var ForwardComExtractor = { selectors: [['meta[name="article:published_time"]', 'value'], ['meta[name="date"]', 'value']] }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { @@ -4614,11 +4573,9 @@ var WwwFortinetComExtractor = { transforms: { noscript: function noscript($node) { var $children = $node.children(); - if ($children.length === 1 && $children.get(0).tagName === 'img') { return 'figure'; } - return null; } } @@ -4659,7 +4616,8 @@ var BlisterreviewComExtractor = { selectors: [['meta[name="article:published_time"]', 'value'], ['time.entry-date', 'datetime'], ['meta[itemprop="datePublished"]', 'content']] }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { @@ -4703,7 +4661,6 @@ var NewsMynaviJpExtractor = { transforms: { img: function img($node) { var src = $node.attr('data-original'); - if (src !== '') { $node.attr('src', src); } @@ -4746,7 +4703,8 @@ var GithubComExtractor = { selectors: [['meta[name="og:title"]', 'value']] }, author: { - selectors: [// enter author selectors + selectors: [ + // enter author selectors ] }, date_published: { @@ -4785,11 +4743,17 @@ var WwwRedditComExtractor = { selectors: [['meta[name="og:image"]', 'value']] }, content: { - selectors: [['div[data-test-id="post-content"] p'], // text post - ['div[data-test-id="post-content"] a[target="_blank"]:not([data-click-id="timestamp"])', // external link - 'div[data-test-id="post-content"] div[data-click-id="media"]'], // external link with media preview (YouTube, imgur album, etc...) - ['div[data-test-id="post-content"] div[data-click-id="media"]'], // Embedded media (Reddit video) - ['div[data-test-id="post-content"] a'], // external link + selectors: [['div[data-test-id="post-content"] p'], + // text post + ['div[data-test-id="post-content"] a[target="_blank"]:not([data-click-id="timestamp"])', + // external link + 'div[data-test-id="post-content"] div[data-click-id="media"]' // embedded media + ], + // external link with media preview (YouTube, imgur album, etc...) + ['div[data-test-id="post-content"] div[data-click-id="media"]'], + // Embedded media (Reddit video) + ['div[data-test-id="post-content"] a'], + // external link 'div[data-test-id="post-content"]'], // Is there anything in the content you selected that needs transformed // before it's consumable content? E.g., unusual lazy loaded images @@ -4798,12 +4762,10 @@ var WwwRedditComExtractor = { // External link image preview var $img = $node.find('img'); var bgImg = $node.css('background-image'); - if ($img.length === 1 && bgImg) { $img.attr('src', bgImg.match(/\((.*?)\)/)[1].replace(/('|")/g, '')); return $img; } - return $node; } }, @@ -5018,7 +4980,8 @@ var GeniusComExtractor = { }]] }, dek: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, lead_image_url: { @@ -5762,16 +5725,18 @@ var MaTtiasBeExtractor = { h2: function h2($node) { // The "id" attribute values would result in low scores and the element being // removed. - $node.attr('id', null); // h1 elements will be demoted to h2, so demote h2 elements to h3. + $node.attr('id', null); + // h1 elements will be demoted to h2, so demote h2 elements to h3. return 'h3'; }, h1: function h1($node) { // The "id" attribute values would result in low scores and the element being // removed. - $node.attr('id', null); // A subsequent h2 will be removed if there is not a paragraph before it, so - // add a paragraph here. It will be removed anyway because it is empty. + $node.attr('id', null); + // A subsequent h2 will be removed if there is not a paragraph before it, so + // add a paragraph here. It will be removed anyway because it is empty. $node.after('

'); }, ul: function ul($node) { @@ -5815,7 +5780,6 @@ var PastebinComExtractor = { }; /* eslint-disable no-nested-ternary */ - /* eslint-disable no-unused-expressions */ var WwwAbendblattDeExtractor = { domain: 'www.abendblatt.de', @@ -5843,12 +5807,10 @@ var WwwAbendblattDeExtractor = { if (!$node.hasClass('obfuscated')) return null; var o = ''; var n = 0; - for (var i = $node.text(); n < i.length; n += 1) { var r = i.charCodeAt(n); r === 177 ? o += '%' : r === 178 ? o += '!' : r === 180 ? o += ';' : r === 181 ? o += '=' : r === 32 ? o += ' ' : r === 10 ? o += '\n' : r > 33 && (o += String.fromCharCode(r - 1)); } - $node.html(o); $node.removeClass('obfuscated'); $node.addClass('deobfuscated'); @@ -5858,12 +5820,10 @@ var WwwAbendblattDeExtractor = { if (!$node.hasClass('obfuscated')) return null; var o = ''; var n = 0; - for (var i = $node.text(); n < i.length; n += 1) { var r = i.charCodeAt(n); r === 177 ? o += '%' : r === 178 ? o += '!' : r === 180 ? o += ';' : r === 181 ? o += '=' : r === 32 ? o += ' ' : r === 10 ? o += '\n' : r > 33 && (o += String.fromCharCode(r - 1)); } - $node.html(o); $node.removeClass('obfuscated'); $node.addClass('deobfuscated'); @@ -5913,7 +5873,8 @@ var WwwEngadgetComExtractor = { // is in a format like "2h ago". There are also these tags with blank values: // date_published: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, dek: { @@ -5923,11 +5884,13 @@ var WwwEngadgetComExtractor = { // the value attribute of that tag fails. I believe the "ℑ" sequence of characters // is triggering this inability to select the attribute value. lead_image_url: { - selectors: [// enter selectors + selectors: [ + // enter selectors ] }, content: { - selectors: [[// Some figures will be inside div.article-text, but some header figures/images + selectors: [[ + // Some figures will be inside div.article-text, but some header figures/images // will not. '#page_body figure:not(div.article-text figure)', 'div.article-text']], // Is there anything in the content you selected that needs transformed @@ -5947,6 +5910,7 @@ var ArstechnicaComExtractor = { // selector indicating that the previous page is next. But the parser appears to find // the next page without this extractor finding it, as long as the fallback option is // left at its default value of true. + title: { selectors: ['title'] }, @@ -5977,10 +5941,13 @@ var ArstechnicaComExtractor = { // Is there anything that is in the result that shouldn't be? // The clean selectors will remove anything that matches from // the result. - clean: [// Remove enlarge links and separators inside image captions. - 'figcaption .enlarge-link', 'figcaption .sep', // I could not transform the video into usable elements, so I + clean: [ + // Remove enlarge links and separators inside image captions. + 'figcaption .enlarge-link', 'figcaption .sep', + // I could not transform the video into usable elements, so I // removed them. - 'figure.video', // Image galleries that do not work. + 'figure.video', + // Image galleries that do not work. '.gallery', 'aside', '.sidebar'] } }; @@ -6013,7 +5980,6 @@ var WwwNdtvComExtractor = { '.place_cont': function place_cont($node) { if (!$node.parents('p').length) { var nextSibling = $node.next('p'); - if (nextSibling) { $node.remove(); nextSibling.prepend($node); @@ -6044,10 +6010,13 @@ var SpektrumExtractor = { selectors: ['.content__intro'] }, lead_image_url: { - selectors: [// This is how the meta tag appears in the original source code. - ['meta[name="og:image"]', 'value'], // This is how the meta tag appears in the DOM in Chrome. + selectors: [ + // This is how the meta tag appears in the original source code. + ['meta[name="og:image"]', 'value'], + // This is how the meta tag appears in the DOM in Chrome. // The selector is included here to make the code work within the browser as well. - ['meta[property="og:image"]', 'content'], // This is the image that is shown on the page. + ['meta[property="og:image"]', 'content'], + // This is the image that is shown on the page. // It can be slightly cropped compared to the original in the meta tag. '.image__article__top img'] }, @@ -6141,6 +6110,7 @@ var WwwCbcCaExtractor = { var CustomExtractors = /*#__PURE__*/Object.freeze({ + __proto__: null, BloggerExtractor: BloggerExtractor, NYMagExtractor: NYMagExtractor, WikipediaExtractor: WikipediaExtractor, @@ -6286,16 +6256,20 @@ var CustomExtractors = /*#__PURE__*/Object.freeze({ WwwCbcCaExtractor: WwwCbcCaExtractor }); +function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; } var Extractors = _Object$keys(CustomExtractors).reduce(function (acc, key) { var extractor = CustomExtractors[key]; - return _objectSpread({}, acc, mergeSupportedDomains(extractor)); + return _objectSpread$2(_objectSpread$2({}, acc), mergeSupportedDomains(extractor)); }, {}); // CLEAN AUTHOR CONSTANTS -var CLEAN_AUTHOR_RE = /^\s*(posted |written )?by\s*:?\s*(.*)/i; // CLEAN DEK CONSTANTS +var CLEAN_AUTHOR_RE = /^\s*(posted |written )?by\s*:?\s*(.*)/i; -var TEXT_LINK_RE = new RegExp('http(s)?://', 'i'); // An ordered list of meta tag names that denote likely article deks. +// CLEAN DEK CONSTANTS +var TEXT_LINK_RE = new RegExp('http(s)?://', 'i'); +// CLEAN DATE PUBLISHED CONSTANTS var MS_DATE_STRING = /^\d{13}$/i; var SEC_DATE_STRING = /^\d{10}$/i; var CLEAN_DATE_STRING_RE = /^\s*published\s*:?\s*(.*)/i; @@ -6310,44 +6284,46 @@ var allMonths = months.join('|'); var timestamp1 = '[0-9]{1,2}:[0-9]{2,2}( ?[ap].?m.?)?'; var timestamp2 = '[0-9]{1,2}[/-][0-9]{1,2}[/-][0-9]{2,4}'; var timestamp3 = '-[0-9]{3,4}$'; -var SPLIT_DATE_STRING = new RegExp("(".concat(timestamp1, ")|(").concat(timestamp2, ")|(").concat(timestamp3, ")|([0-9]{1,4})|(").concat(allMonths, ")"), 'ig'); // 2016-11-22T08:57-500 +var SPLIT_DATE_STRING = new RegExp("(".concat(timestamp1, ")|(").concat(timestamp2, ")|(").concat(timestamp3, ")|([0-9]{1,4})|(").concat(allMonths, ")"), 'ig'); + +// 2016-11-22T08:57-500 // Check if datetime string has an offset at the end +var TIME_WITH_OFFSET_RE = /-\d{3,4}$/; -var TIME_WITH_OFFSET_RE = /-\d{3,4}$/; // CLEAN TITLE CONSTANTS +// CLEAN TITLE CONSTANTS // A regular expression that will match separating characters on a // title, that usually denote breadcrumbs or something similar. - var TITLE_SPLITTERS_RE = /(: | - | \| )/g; var DOMAIN_ENDINGS_RE = new RegExp('.com$|.net$|.org$|.co.uk$', 'g'); +// Take an author string (like 'By David Smith ') and clean it to // just the name(s): 'David Smith'. - function cleanAuthor(author) { return normalizeSpaces(author.replace(CLEAN_AUTHOR_RE, '$2').trim()); } function clean$1(leadImageUrl) { leadImageUrl = leadImageUrl.trim(); - if (validUrl.isWebUri(leadImageUrl)) { return leadImageUrl; } - return null; } +// Take a dek HTML fragment, and return the cleaned version of it. // Return None if the dek wasn't good enough. - function cleanDek(dek, _ref) { var $ = _ref.$, - excerpt = _ref.excerpt; + excerpt = _ref.excerpt; // Sanity check that we didn't get too short or long of a dek. - if (dek.length > 1000 || dek.length < 5) return null; // Check that dek isn't the same as excerpt + if (dek.length > 1000 || dek.length < 5) return null; + // Check that dek isn't the same as excerpt if (excerpt && excerptContent(excerpt, 10) === excerptContent(dek, 10)) return null; - var dekText = stripTags(dek, $); // Plain text links shouldn't exist in the dek. If we have some, it's - // not a good dek - bail. + var dekText = stripTags(dek, $); + // Plain text links shouldn't exist in the dek. If we have some, it's + // not a good dek - bail. if (TEXT_LINK_RE.test(dekText)) return null; return normalizeSpaces(dekText.trim()); } @@ -6359,110 +6335,110 @@ function createDate(dateString, timezone, format) { if (TIME_WITH_OFFSET_RE.test(dateString)) { return moment(new Date(dateString)); } - if (TIME_AGO_STRING.test(dateString)) { var fragments = TIME_AGO_STRING.exec(dateString); return moment().subtract(fragments[1], fragments[2]); } - if (TIME_NOW_STRING.test(dateString)) { return moment(); } - return timezone ? moment.tz(dateString, format || parseFormat(dateString), timezone) : moment(dateString, format || parseFormat(dateString)); -} // Take a date published string, and hopefully return a date out of -// it. Return none if we fail. +} +// Take a date published string, and hopefully return a date out of +// it. Return none if we fail. function cleanDatePublished(dateString) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - timezone = _ref.timezone, - format = _ref.format; - + timezone = _ref.timezone, + format = _ref.format; // If string is in milliseconds or seconds, convert to int and return if (MS_DATE_STRING.test(dateString)) { return new Date(_parseInt(dateString, 10)).toISOString(); } - if (SEC_DATE_STRING.test(dateString)) { return new Date(_parseInt(dateString, 10) * 1000).toISOString(); } - var date = createDate(dateString, timezone, format); - if (!date.isValid()) { dateString = cleanDateString(dateString); date = createDate(dateString, timezone, format); } - return date.isValid() ? date.toISOString() : null; } +// Clean our article content, returning a new, cleaned node. function extractCleanNode(article, _ref) { var $ = _ref.$, - _ref$cleanConditional = _ref.cleanConditionally, - cleanConditionally = _ref$cleanConditional === void 0 ? true : _ref$cleanConditional, - _ref$title = _ref.title, - title = _ref$title === void 0 ? '' : _ref$title, - _ref$url = _ref.url, - url = _ref$url === void 0 ? '' : _ref$url, - _ref$defaultCleaner = _ref.defaultCleaner, - defaultCleaner = _ref$defaultCleaner === void 0 ? true : _ref$defaultCleaner; + _ref$cleanConditional = _ref.cleanConditionally, + _ref$title = _ref.title, + title = _ref$title === void 0 ? '' : _ref$title, + _ref$url = _ref.url, + url = _ref$url === void 0 ? '' : _ref$url, + _ref$defaultCleaner = _ref.defaultCleaner, + defaultCleaner = _ref$defaultCleaner === void 0 ? true : _ref$defaultCleaner; // Rewrite the tag name to div if it's a top level node like body or // html to avoid later complications with multiple body tags. - rewriteTopLevel$$1(article, $); // Drop small images and spacer images + rewriteTopLevel(article, $); + + // Drop small images and spacer images // Only do this is defaultCleaner is set to true; // this can sometimes be too aggressive. + if (defaultCleaner) cleanImages(article, $); - if (defaultCleaner) cleanImages(article, $); // Make links absolute + // Make links absolute + makeLinksAbsolute(article, $, url); - makeLinksAbsolute$$1(article, $, url); // Mark elements to keep that would normally be removed. + // Mark elements to keep that would normally be removed. // E.g., stripJunkTags will remove iframes, so we're going to mark // YouTube/Vimeo videos as elements we want to keep. + markToKeep(article, $, url); - markToKeep(article, $, url); // Drop certain tags like , etc + // Drop certain tags like <title>, etc // This is -mostly- for cleanliness, not security. + stripJunkTags(article, $); - stripJunkTags(article, $); // H1 tags are typically the article title, which should be extracted + // H1 tags are typically the article title, which should be extracted // by the title extractor instead. If there's less than 3 of them (<3), // strip them. Otherwise, turn 'em into H2s. + cleanHOnes(article, $); - cleanHOnes$$1(article, $); // Clean headers + // Clean headers + cleanHeaders(article, $, title); - cleanHeaders(article, $, title); // We used to clean UL's and OL's here, but it was leading to + // We used to clean UL's and OL's here, but it was leading to // too many in-article lists being removed. Consider a better // way to detect menus particularly and remove them. // Also optionally running, since it can be overly aggressive. + if (defaultCleaner) cleanTags(article, $); - if (defaultCleaner) cleanTags$$1(article, $, cleanConditionally); // Remove empty paragraph nodes - - removeEmpty(article, $); // Remove unnecessary attributes + // Remove empty paragraph nodes + removeEmpty(article, $); - cleanAttributes$$1(article, $); + // Remove unnecessary attributes + cleanAttributes(article, $); return article; } -function cleanTitle$$1(title, _ref) { +function cleanTitle(title, _ref) { var url = _ref.url, - $ = _ref.$; - + $ = _ref.$; // If title has |, :, or - in it, see if // we can clean it up. if (TITLE_SPLITTERS_RE.test(title)) { title = resolveSplitTitle(title, url); - } // Final sanity check that we didn't get a crazy title. - // if (title.length > 150 || title.length < 15) { - + } + // Final sanity check that we didn't get a crazy title. + // if (title.length > 150 || title.length < 15) { if (title.length > 150) { // If we did, return h1 from the document if it exists var h1 = $('h1'); - if (h1.length === 1) { title = h1.text(); } - } // strip any html tags in the title text - + } + // strip any html tags in the title text return normalizeSpaces(stripTags(title, $).trim()); } @@ -6478,41 +6454,34 @@ function extractBreadcrumbTitle(splitTitle, text) { acc[titleText] = acc[titleText] ? acc[titleText] + 1 : 1; return acc; }, {}); - var _Reflect$ownKeys$redu = _Reflect$ownKeys(termCounts).reduce(function (acc, key) { - if (acc[1] < termCounts[key]) { - return [key, termCounts[key]]; - } + if (acc[1] < termCounts[key]) { + return [key, termCounts[key]]; + } + return acc; + }, [0, 0]), + _Reflect$ownKeys$redu2 = _slicedToArray(_Reflect$ownKeys$redu, 2), + maxTerm = _Reflect$ownKeys$redu2[0], + termCount = _Reflect$ownKeys$redu2[1]; - return acc; - }, [0, 0]), - _Reflect$ownKeys$redu2 = _slicedToArray(_Reflect$ownKeys$redu, 2), - maxTerm = _Reflect$ownKeys$redu2[0], - termCount = _Reflect$ownKeys$redu2[1]; // We found a splitter that was used more than once, so it + // We found a splitter that was used more than once, so it // is probably the breadcrumber. Split our title on that instead. // Note: max_term should be <= 4 characters, so that " >> " // will match, but nothing longer than that. - - if (termCount >= 2 && maxTerm.length <= 4) { splitTitle = text.split(maxTerm); } - var splitEnds = [splitTitle[0], splitTitle.slice(-1)]; var longestEnd = splitEnds.reduce(function (acc, end) { return acc.length > end.length ? acc : end; }, ''); - if (longestEnd.length > 10) { return longestEnd; } - return text; } - return null; } - function cleanDomainFromTitle(splitTitle, url) { // Search the ends of the title, looking for bits that fuzzy match // the URL too closely. If one is found, discard it and return the @@ -6521,44 +6490,38 @@ function cleanDomainFromTitle(splitTitle, url) { // Strip out the big TLDs - it just makes the matching a bit more // accurate. Not the end of the world if it doesn't strip right. var _URL$parse = URL.parse(url), - host = _URL$parse.host; - + host = _URL$parse.host; var nakedDomain = host.replace(DOMAIN_ENDINGS_RE, ''); var startSlug = splitTitle[0].toLowerCase().replace(' ', ''); var startSlugRatio = wuzzy.levenshtein(startSlug, nakedDomain); - if (startSlugRatio > 0.4 && startSlug.length > 5) { return splitTitle.slice(2).join(''); } - var endSlug = splitTitle.slice(-1)[0].toLowerCase().replace(' ', ''); var endSlugRatio = wuzzy.levenshtein(endSlug, nakedDomain); - if (endSlugRatio > 0.4 && endSlug.length >= 5) { return splitTitle.slice(0, -2).join(''); } - return null; -} // Given a title with separators in it (colons, dashes, etc), -// resolve whether any of the segments should be removed. - +} +// Given a title with separators in it (colons, dashes, etc), +// resolve whether any of the segments should be removed. function resolveSplitTitle(title) { var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; // Splits while preserving splitters, like: // ['The New New York', ' - ', 'The Washington Post'] var splitTitle = title.split(TITLE_SPLITTERS_RE); - if (splitTitle.length === 1) { return title; } - var newTitle = extractBreadcrumbTitle(splitTitle, title); if (newTitle) return newTitle; newTitle = cleanDomainFromTitle(splitTitle, url); - if (newTitle) return newTitle; // Fuzzy ratio didn't find anything, so this title is probably legit. - // Just return it all. + if (newTitle) return newTitle; + // Fuzzy ratio didn't find anything, so this title is probably legit. + // Just return it all. return title; } @@ -6568,9 +6531,10 @@ var Cleaners = { dek: cleanDek, date_published: cleanDatePublished, content: extractCleanNode, - title: cleanTitle$$1 + title: cleanTitle }; +// Using a variety of scoring techniques, extract the content most // likely to be article text. // // If strip_unlikely_candidates is True, remove any elements that @@ -6581,18 +6545,21 @@ var Cleaners = { // worthiness of nodes. // // Returns a cheerio object $ - function extractBestNode($, opts) { if (opts.stripUnlikelyCandidates) { $ = stripUnlikelyCandidates($); } - - $ = convertToParagraphs$$1($); - $ = scoreContent$$1($, opts.weightNodes); - var $topCandidate = findTopCandidate$$1($); + $ = convertToParagraphs($); + $ = scoreContent($, opts.weightNodes); + var $topCandidate = findTopCandidate($); return $topCandidate; } +function _createForOfIteratorHelper$2(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray$2(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray$2(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$2(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen); } +function _arrayLikeToArray$2(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } +function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; } var GenericContentExtractor = { defaultOpts: { stripUnlikelyCandidates: true, @@ -6620,54 +6587,41 @@ var GenericContentExtractor = { // superfluous content. Things like forms, ads, etc. extract: function extract(_ref, opts) { var $ = _ref.$, - html = _ref.html, - title = _ref.title, - url = _ref.url; - opts = _objectSpread({}, this.defaultOpts, opts); - $ = $ || cheerio.load(html); // Cascade through our extraction-specific opts in an ordered fashion, - // turning them off as we try to extract content. + html = _ref.html, + title = _ref.title, + url = _ref.url; + opts = _objectSpread$3(_objectSpread$3({}, this.defaultOpts), opts); + $ = $ || cheerio.load(html); + // Cascade through our extraction-specific opts in an ordered fashion, + // turning them off as we try to extract content. var node = this.getContentNode($, title, url, opts); - if (nodeIsSufficient(node)) { return this.cleanAndReturnNode(node, $); - } // We didn't succeed on first pass, one by one disable our + } + + // We didn't succeed on first pass, one by one disable our // extraction opts and try again. // eslint-disable-next-line no-restricted-syntax - - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = _getIterator(_Reflect$ownKeys(opts).filter(function (k) { + var _iterator = _createForOfIteratorHelper$2(_Reflect$ownKeys(opts).filter(function (k) { return opts[k] === true; - })), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + })), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { var key = _step.value; opts[key] = false; $ = cheerio.load(html); node = this.getContentNode($, title, url, opts); - if (nodeIsSufficient(node)) { break; } } } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _iterator.e(err); } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + _iterator.f(); } - return this.cleanAndReturnNode(node, $); }, // Get node given current options @@ -6686,7 +6640,6 @@ var GenericContentExtractor = { if (!node) { return null; } - return normalizeSpaces($.html(node)); } }; @@ -6694,56 +6647,63 @@ var GenericContentExtractor = { // TODO: It would be great if we could merge the meta and selector lists into // a list of objects, because we could then rank them better. For example, // .hentry .entry-title is far better suited than <meta title>. + // An ordered list of meta tag names that denote likely article titles. All // attributes should be lowercase for faster case-insensitive matching. From // most distinct to least distinct. -var STRONG_TITLE_META_TAGS = ['tweetmeme-title', 'dc.title', 'rbtitle', 'headline', 'title']; // og:title is weak because it typically contains context that we don't like, +var STRONG_TITLE_META_TAGS = ['tweetmeme-title', 'dc.title', 'rbtitle', 'headline', 'title']; + +// og:title is weak because it typically contains context that we don't like, // for example the source site's name. Gotta get that brand into facebook! +var WEAK_TITLE_META_TAGS = ['og:title']; -var WEAK_TITLE_META_TAGS = ['og:title']; // An ordered list of XPath Selectors to find likely article titles. From +// An ordered list of XPath Selectors to find likely article titles. From // most explicit to least explicit. // // Note - this does not use classes like CSS. This checks to see if the string // exists in the className, which is not as accurate as .className (which // splits on spaces/endlines), but for our purposes it's close enough. The // speed tradeoff is worth the accuracy hit. - var STRONG_TITLE_SELECTORS = ['.hentry .entry-title', 'h1#articleHeader', 'h1.articleHeader', 'h1.article', '.instapaper_title', '#meebo-title']; var WEAK_TITLE_SELECTORS = ['article h1', '#entry-title', '.entry-title', '#entryTitle', '#entrytitle', '.entryTitle', '.entrytitle', '#articleTitle', '.articleTitle', 'post post-title', 'h1.title', 'h2.article', 'h1', 'html head title', 'title']; var GenericTitleExtractor = { extract: function extract(_ref) { var $ = _ref.$, - url = _ref.url, - metaCache = _ref.metaCache; + url = _ref.url, + metaCache = _ref.metaCache; // First, check to see if we have a matching meta tag that we can make // use of that is strongly associated with the headline. var title; - title = extractFromMeta$$1($, STRONG_TITLE_META_TAGS, metaCache); - if (title) return cleanTitle$$1(title, { + title = extractFromMeta($, STRONG_TITLE_META_TAGS, metaCache); + if (title) return cleanTitle(title, { url: url, $: $ - }); // Second, look through our content selectors for the most likely - // article title that is strongly associated with the headline. + }); - title = extractFromSelectors$$1($, STRONG_TITLE_SELECTORS); - if (title) return cleanTitle$$1(title, { + // Second, look through our content selectors for the most likely + // article title that is strongly associated with the headline. + title = extractFromSelectors($, STRONG_TITLE_SELECTORS); + if (title) return cleanTitle(title, { url: url, $: $ - }); // Third, check for weaker meta tags that may match. + }); - title = extractFromMeta$$1($, WEAK_TITLE_META_TAGS, metaCache); - if (title) return cleanTitle$$1(title, { + // Third, check for weaker meta tags that may match. + title = extractFromMeta($, WEAK_TITLE_META_TAGS, metaCache); + if (title) return cleanTitle(title, { url: url, $: $ - }); // Last, look for weaker selector tags that may match. + }); - title = extractFromSelectors$$1($, WEAK_TITLE_SELECTORS); - if (title) return cleanTitle$$1(title, { + // Last, look for weaker selector tags that may match. + title = extractFromSelectors($, WEAK_TITLE_SELECTORS); + if (title) return cleanTitle(title, { url: url, $: $ - }); // If no matches, return an empty string + }); + // If no matches, return an empty string return ''; } }; @@ -6755,78 +6715,67 @@ var GenericTitleExtractor = { // Note: "author" is too often the -developer- of the page, so it is not // added here. var AUTHOR_META_TAGS = ['byl', 'clmst', 'dc.author', 'dcsext.author', 'dc.creator', 'rbauthors', 'authors']; -var AUTHOR_MAX_LENGTH = 300; // An ordered list of XPath Selectors to find likely article authors. From +var AUTHOR_MAX_LENGTH = 300; + +// An ordered list of XPath Selectors to find likely article authors. From // most explicit to least explicit. // // Note - this does not use classes like CSS. This checks to see if the string // exists in the className, which is not as accurate as .className (which // splits on spaces/endlines), but for our purposes it's close enough. The // speed tradeoff is worth the accuracy hit. +var AUTHOR_SELECTORS = ['.entry .entry-author', '.author.vcard .fn', '.author .vcard .fn', '.byline.vcard .fn', '.byline .vcard .fn', '.byline .by .author', '.byline .by', '.byline .author', '.post-author.vcard', '.post-author .vcard', 'a[rel=author]', '#by_author', '.by_author', '#entryAuthor', '.entryAuthor', '.byline a[href*=author]', '#author .authorname', '.author .authorname', '#author', '.author', '.articleauthor', '.ArticleAuthor', '.byline']; -var AUTHOR_SELECTORS = ['.entry .entry-author', '.author.vcard .fn', '.author .vcard .fn', '.byline.vcard .fn', '.byline .vcard .fn', '.byline .by .author', '.byline .by', '.byline .author', '.post-author.vcard', '.post-author .vcard', 'a[rel=author]', '#by_author', '.by_author', '#entryAuthor', '.entryAuthor', '.byline a[href*=author]', '#author .authorname', '.author .authorname', '#author', '.author', '.articleauthor', '.ArticleAuthor', '.byline']; // An ordered list of Selectors to find likely article authors, with +// An ordered list of Selectors to find likely article authors, with // regular expression for content. - var bylineRe = /^[\n\s]*By/i; var BYLINE_SELECTORS_RE = [['#byline', bylineRe], ['.byline', bylineRe]]; +function _createForOfIteratorHelper$3(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray$3(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray$3(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$3(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen); } +function _arrayLikeToArray$3(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var GenericAuthorExtractor = { extract: function extract(_ref) { var $ = _ref.$, - metaCache = _ref.metaCache; - var author; // First, check to see if we have a matching - // meta tag that we can make use of. - - author = extractFromMeta$$1($, AUTHOR_META_TAGS, metaCache); + metaCache = _ref.metaCache; + var author; + // First, check to see if we have a matching + // meta tag that we can make use of. + author = extractFromMeta($, AUTHOR_META_TAGS, metaCache); if (author && author.length < AUTHOR_MAX_LENGTH) { return cleanAuthor(author); - } // Second, look through our selectors looking for potential authors. - - - author = extractFromSelectors$$1($, AUTHOR_SELECTORS, 2); + } + // Second, look through our selectors looking for potential authors. + author = extractFromSelectors($, AUTHOR_SELECTORS, 2); if (author && author.length < AUTHOR_MAX_LENGTH) { return cleanAuthor(author); - } // Last, use our looser regular-expression based selectors for + } + + // Last, use our looser regular-expression based selectors for // potential authors. // eslint-disable-next-line no-restricted-syntax - - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - + var _iterator = _createForOfIteratorHelper$3(BYLINE_SELECTORS_RE), + _step; try { - for (var _iterator = _getIterator(BYLINE_SELECTORS_RE), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + for (_iterator.s(); !(_step = _iterator.n()).done;) { var _step$value = _slicedToArray(_step.value, 2), - selector = _step$value[0], - regex = _step$value[1]; - + selector = _step$value[0], + regex = _step$value[1]; var node = $(selector); - if (node.length === 1) { var text = node.text(); - if (regex.test(text)) { return cleanAuthor(text); } } } } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _iterator.e(err); } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + _iterator.f(); } - return null; } }; @@ -6835,33 +6784,37 @@ var GenericAuthorExtractor = { // likely date published dates. All attributes // should be lowercase for faster case-insensitive matching. // From most distinct to least distinct. -var DATE_PUBLISHED_META_TAGS = ['article:published_time', 'displaydate', 'dc.date', 'dc.date.issued', 'rbpubdate', 'publish_date', 'pub_date', 'pagedate', 'pubdate', 'revision_date', 'doc_date', 'date_created', 'content_create_date', 'lastmodified', 'created', 'date']; // An ordered list of XPath Selectors to find +var DATE_PUBLISHED_META_TAGS = ['article:published_time', 'displaydate', 'dc.date', 'dc.date.issued', 'rbpubdate', 'publish_date', 'pub_date', 'pagedate', 'pubdate', 'revision_date', 'doc_date', 'date_created', 'content_create_date', 'lastmodified', 'created', 'date']; + +// An ordered list of XPath Selectors to find // likely date published dates. From most explicit // to least explicit. +var DATE_PUBLISHED_SELECTORS = ['.hentry .dtstamp.published', '.hentry .published', '.hentry .dtstamp.updated', '.hentry .updated', '.single .published', '.meta .published', '.meta .postDate', '.entry-date', '.byline .date', '.postmetadata .date', '.article_datetime', '.date-header', '.story-date', '.dateStamp', '#story .datetime', '.dateline', '.pubdate']; -var DATE_PUBLISHED_SELECTORS = ['.hentry .dtstamp.published', '.hentry .published', '.hentry .dtstamp.updated', '.hentry .updated', '.single .published', '.meta .published', '.meta .postDate', '.entry-date', '.byline .date', '.postmetadata .date', '.article_datetime', '.date-header', '.story-date', '.dateStamp', '#story .datetime', '.dateline', '.pubdate']; // An ordered list of compiled regular expressions to find likely date +// An ordered list of compiled regular expressions to find likely date // published dates from the URL. These should always have the first // reference be a date string that is parseable by dateutil.parser.parse - var abbrevMonthsStr = '(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)'; var DATE_PUBLISHED_URL_RES = [new RegExp('/(20\\d{2}/\\d{2}/\\d{2})/', 'i'), new RegExp('(20\\d{2}-[01]\\d-[0-3]\\d)', 'i'), new RegExp("/(20\\d{2}/".concat(abbrevMonthsStr, "/[0-3]\\d)/"), 'i')]; var GenericDatePublishedExtractor = { extract: function extract(_ref) { var $ = _ref.$, - url = _ref.url, - metaCache = _ref.metaCache; - var datePublished; // First, check to see if we have a matching meta tag + url = _ref.url, + metaCache = _ref.metaCache; + var datePublished; + // First, check to see if we have a matching meta tag // that we can make use of. // Don't try cleaning tags from this string + datePublished = extractFromMeta($, DATE_PUBLISHED_META_TAGS, metaCache, false); + if (datePublished) return cleanDatePublished(datePublished); - datePublished = extractFromMeta$$1($, DATE_PUBLISHED_META_TAGS, metaCache, false); - if (datePublished) return cleanDatePublished(datePublished); // Second, look through our selectors looking for potential + // Second, look through our selectors looking for potential // date_published's. + datePublished = extractFromSelectors($, DATE_PUBLISHED_SELECTORS); + if (datePublished) return cleanDatePublished(datePublished); - datePublished = extractFromSelectors$$1($, DATE_PUBLISHED_SELECTORS); - if (datePublished) return cleanDatePublished(datePublished); // Lastly, look to see if a dately string exists in the URL - + // Lastly, look to see if a dately string exists in the URL datePublished = extractFromUrl(url, DATE_PUBLISHED_URL_RES); if (datePublished) return cleanDatePublished(datePublished); return null; @@ -6892,104 +6845,93 @@ var JPG_RE = /\.jpe?g(\?.*)?$/i; function getSig($node) { return "".concat($node.attr('class') || '', " ").concat($node.attr('id') || ''); -} // Scores image urls based on a variety of heuristics. - +} +// Scores image urls based on a variety of heuristics. function scoreImageUrl(url) { url = url.trim(); var score = 0; - if (POSITIVE_LEAD_IMAGE_URL_HINTS_RE.test(url)) { score += 20; } - if (NEGATIVE_LEAD_IMAGE_URL_HINTS_RE.test(url)) { score -= 20; - } // TODO: We might want to consider removing this as - // gifs are much more common/popular than they once were - + } + // TODO: We might want to consider removing this as + // gifs are much more common/popular than they once were if (GIF_RE.test(url)) { score -= 10; } - if (JPG_RE.test(url)) { score += 10; - } // PNGs are neutral. + } + // PNGs are neutral. return score; -} // Alt attribute usually means non-presentational image. +} +// Alt attribute usually means non-presentational image. function scoreAttr($img) { if ($img.attr('alt')) { return 5; } - return 0; -} // Look through our parent and grandparent for figure-like -// container elements, give a bonus if we find them +} +// Look through our parent and grandparent for figure-like +// container elements, give a bonus if we find them function scoreByParents($img) { var score = 0; var $figParent = $img.parents('figure').first(); - if ($figParent.length === 1) { score += 25; } - var $parent = $img.parent(); var $gParent; - if ($parent.length === 1) { $gParent = $parent.parent(); } - [$parent, $gParent].forEach(function ($node) { - if (PHOTO_HINTS_RE$1.test(getSig($node))) { + if (PHOTO_HINTS_RE.test(getSig($node))) { score += 15; } }); return score; -} // Look at our immediate sibling and see if it looks like it's a -// caption. Bonus if so. +} +// Look at our immediate sibling and see if it looks like it's a +// caption. Bonus if so. function scoreBySibling($img) { var score = 0; var $sibling = $img.next(); var sibling = $sibling.get(0); - if (sibling && sibling.tagName.toLowerCase() === 'figcaption') { score += 25; } - - if (PHOTO_HINTS_RE$1.test(getSig($sibling))) { + if (PHOTO_HINTS_RE.test(getSig($sibling))) { score += 15; } - return score; } function scoreByDimensions($img) { var score = 0; - var width = _parseFloat($img.attr('width')); - var height = _parseFloat($img.attr('height')); + var src = $img.attr('src'); - var src = $img.attr('src'); // Penalty for skinny images - + // Penalty for skinny images if (width && width <= 50) { score -= 50; - } // Penalty for short images - + } + // Penalty for short images if (height && height <= 50) { score -= 50; } - if (width && height && !src.includes('sprite')) { var area = width * height; - if (area < 5000) { // Smaller than 50 x 100 score -= 100; @@ -6997,13 +6939,17 @@ function scoreByDimensions($img) { score += Math.round(area / 1000); } } - return score; } function scoreByPosition($imgs, index) { return $imgs.length / 2 - index; } +function _createForOfIteratorHelper$4(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray$4(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } +function _unsupportedIterableToArray$4(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$4(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$4(o, minLen); } +function _arrayLikeToArray$4(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } + +// Given a resource, try to find the lead image URL from within // it. Like content and next page extraction, uses a scoring system // to determine what the most likely image may be. Short circuits // on really probable things like og:image meta tags. @@ -7011,33 +6957,30 @@ function scoreByPosition($imgs, index) { // Potential signals to still take advantage of: // * domain // * weird aspect ratio - var GenericLeadImageUrlExtractor = { extract: function extract(_ref) { var $ = _ref.$, - content = _ref.content, - metaCache = _ref.metaCache, - html = _ref.html; + content = _ref.content, + metaCache = _ref.metaCache, + html = _ref.html; var cleanUrl; - if (!$.browser && $('head').length === 0) { $('*').first().prepend(html); - } // Check to see if we have a matching meta tag that we can make use of. + } + + // Check to see if we have a matching meta tag that we can make use of. // Moving this higher because common practice is now to use large // images on things like Open Graph or Twitter cards. // images usually have for things like Open Graph. - - - var imageUrl = extractFromMeta$$1($, LEAD_IMAGE_URL_META_TAGS, metaCache, false); - + var imageUrl = extractFromMeta($, LEAD_IMAGE_URL_META_TAGS, metaCache, false); if (imageUrl) { cleanUrl = clean$1(imageUrl); if (cleanUrl) return cleanUrl; - } // Next, try to find the "best" image via the content. + } + + // Next, try to find the "best" image via the content. // We'd rather not have to fetch each image and check dimensions, // so try to do some analysis and determine them instead. - - var $content = $(content); var imgs = $('img', $content).toArray(); var imgScores = {}; @@ -7053,66 +6996,47 @@ var GenericLeadImageUrlExtractor = { score += scoreByPosition(imgs, index); imgScores[src] = score; }); - var _Reflect$ownKeys$redu = _Reflect$ownKeys(imgScores).reduce(function (acc, key) { - return imgScores[key] > acc[1] ? [key, imgScores[key]] : acc; - }, [null, 0]), - _Reflect$ownKeys$redu2 = _slicedToArray(_Reflect$ownKeys$redu, 2), - topUrl = _Reflect$ownKeys$redu2[0], - topScore = _Reflect$ownKeys$redu2[1]; - + return imgScores[key] > acc[1] ? [key, imgScores[key]] : acc; + }, [null, 0]), + _Reflect$ownKeys$redu2 = _slicedToArray(_Reflect$ownKeys$redu, 2), + topUrl = _Reflect$ownKeys$redu2[0], + topScore = _Reflect$ownKeys$redu2[1]; if (topScore > 0) { cleanUrl = clean$1(topUrl); if (cleanUrl) return cleanUrl; - } // If nothing else worked, check to see if there are any really + } + + // If nothing else worked, check to see if there are any really // probable nodes in the doc, like <link rel="image_src" />. // eslint-disable-next-line no-restricted-syntax - - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - + var _iterator = _createForOfIteratorHelper$4(LEAD_IMAGE_URL_SELECTORS), + _step; try { - for (var _iterator = _getIterator(LEAD_IMAGE_URL_SELECTORS), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + for (_iterator.s(); !(_step = _iterator.n()).done;) { var selector = _step.value; var $node = $(selector).first(); var src = $node.attr('src'); - if (src) { cleanUrl = clean$1(src); if (cleanUrl) return cleanUrl; } - var href = $node.attr('href'); - if (href) { cleanUrl = clean$1(href); if (cleanUrl) return cleanUrl; } - var value = $node.attr('value'); - if (value) { cleanUrl = clean$1(value); if (cleanUrl) return cleanUrl; } } } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _iterator.e(err); } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + _iterator.f(); } - return null; } }; @@ -7124,18 +7048,17 @@ function scoreSimilarity(score, articleUrl, href) { // sliding scale, subtract points from this link based on // similarity. if (score > 0) { - var similarity = new difflib.SequenceMatcher(null, articleUrl, href).ratio(); // Subtract .1 from diff_percent when calculating modifier, + var similarity = new difflib.SequenceMatcher(null, articleUrl, href).ratio(); + // Subtract .1 from diff_percent when calculating modifier, // which means that if it's less than 10% different, we give a // bonus instead. Ex: // 3% different = +17.5 points // 10% different = 0 points // 20% different = -25 points - var diffPercent = 1.0 - similarity; var diffModifier = -(250 * (diffPercent - 0.2)); return score + diffModifier; } - return 0; } @@ -7145,27 +7068,24 @@ function scoreLinkText(linkText, pageNum) { // so that pages that might not have 'next' in their text can still // get scored, and sorted properly by score. var score = 0; - if (IS_DIGIT_RE.test(linkText.trim())) { - var linkTextAsNum = _parseInt(linkText, 10); // If it's the first page, we already got it on the first call. + var linkTextAsNum = _parseInt(linkText, 10); + // If it's the first page, we already got it on the first call. // Give it a negative score. Otherwise, up to page 10, give a // small bonus. - - if (linkTextAsNum < 2) { score = -30; } else { score = Math.max(0, 10 - linkTextAsNum); - } // If it appears that the current page number is greater than + } + + // If it appears that the current page number is greater than // this links page number, it's a very bad sign. Give it a big // penalty. - - if (pageNum && pageNum >= linkTextAsNum) { score -= 50; } } - return score; } @@ -7176,39 +7096,40 @@ function scorePageInLink(pageNum, isWp) { if (pageNum && !isWp) { return 50; } - return 0; } -var DIGIT_RE$2 = /\d/; // A list of words that, if found in link text or URLs, likely mean that +var DIGIT_RE = /\d/; + +// A list of words that, if found in link text or URLs, likely mean that // this link is not a next page link. +var EXTRANEOUS_LINK_HINTS = ['print', 'archive', 'comment', 'discuss', 'e-mail', 'email', 'share', 'reply', 'all', 'login', 'sign', 'single', 'adx', 'entry-unrelated']; +var EXTRANEOUS_LINK_HINTS_RE = new RegExp(EXTRANEOUS_LINK_HINTS.join('|'), 'i'); -var EXTRANEOUS_LINK_HINTS$1 = ['print', 'archive', 'comment', 'discuss', 'e-mail', 'email', 'share', 'reply', 'all', 'login', 'sign', 'single', 'adx', 'entry-unrelated']; -var EXTRANEOUS_LINK_HINTS_RE$1 = new RegExp(EXTRANEOUS_LINK_HINTS$1.join('|'), 'i'); // Match any link text/classname/id that looks like it could mean the next +// Match any link text/classname/id that looks like it could mean the next // page. Things like: next, continue, >, >>, » but not >|, »| as those can // mean last page. +var NEXT_LINK_TEXT_RE = new RegExp('(next|weiter|continue|>([^|]|$)|»([^|]|$))', 'i'); -var NEXT_LINK_TEXT_RE$1 = new RegExp('(next|weiter|continue|>([^|]|$)|»([^|]|$))', 'i'); // Match any link text/classname/id that looks like it is an end link: things +// Match any link text/classname/id that looks like it is an end link: things // like "first", "last", "end", etc. +var CAP_LINK_TEXT_RE = new RegExp('(first|last|end)', 'i'); -var CAP_LINK_TEXT_RE$1 = new RegExp('(first|last|end)', 'i'); // Match any link text/classname/id that looks like it means the previous +// Match any link text/classname/id that looks like it means the previous // page. - -var PREV_LINK_TEXT_RE$1 = new RegExp('(prev|earl|old|new|<|«)', 'i'); // Match any phrase that looks like it could be page, or paging, or pagination +var PREV_LINK_TEXT_RE = new RegExp('(prev|earl|old|new|<|«)', 'i'); function scoreExtraneousLinks(href) { // If the URL itself contains extraneous values, give a penalty. - if (EXTRANEOUS_LINK_HINTS_RE$1.test(href)) { + if (EXTRANEOUS_LINK_HINTS_RE.test(href)) { return -25; } - return 0; } function makeSig($link) { return "".concat($link.attr('class') || '', " ").concat($link.attr('id') || ''); } - function scoreByParents$1($link) { // If a parent node contains paging-like classname or id, give a // bonus. Additionally, if a parent_node contains bad content @@ -7217,43 +7138,39 @@ function scoreByParents$1($link) { var positiveMatch = false; var negativeMatch = false; var score = 0; - _Array$from(range(0, 4)).forEach(function () { if ($parent.length === 0) { return; } + var parentData = makeSig($parent); - var parentData = makeSig($parent, ' '); // If we have 'page' or 'paging' in our data, that's a good + // If we have 'page' or 'paging' in our data, that's a good // sign. Add a bonus. - if (!positiveMatch && PAGE_RE.test(parentData)) { positiveMatch = true; score += 25; - } // If we have 'comment' or something in our data, and + } + + // If we have 'comment' or something in our data, and // we don't have something like 'content' as well, that's // a bad sign. Give a penalty. - - - if (!negativeMatch && NEGATIVE_SCORE_RE.test(parentData) && EXTRANEOUS_LINK_HINTS_RE$1.test(parentData)) { + if (!negativeMatch && NEGATIVE_SCORE_RE.test(parentData) && EXTRANEOUS_LINK_HINTS_RE.test(parentData)) { if (!POSITIVE_SCORE_RE.test(parentData)) { negativeMatch = true; score -= 25; } } - $parent = $parent.parent(); }); - return score; } function scorePrevLink(linkData) { // If the link has something like "previous", its definitely // an old link, skip it. - if (PREV_LINK_TEXT_RE$1.test(linkData)) { + if (PREV_LINK_TEXT_RE.test(linkData)) { return -200; } - return 0; } @@ -7263,43 +7180,39 @@ function shouldScore(href, articleUrl, baseUrl, parsedUrl, linkText, previousUrl return href === url; }) !== undefined) { return false; - } // If we've already parsed this URL, or the URL matches the base - // URL, or is empty, skip it. - + } + // If we've already parsed this URL, or the URL matches the base + // URL, or is empty, skip it. if (!href || href === articleUrl || href === baseUrl) { return false; } - var hostname = parsedUrl.hostname; - var _URL$parse = URL.parse(href), - linkHost = _URL$parse.hostname; // Domain mismatch. - + linkHost = _URL$parse.hostname; + // Domain mismatch. if (linkHost !== hostname) { return false; - } // If href doesn't contain a digit after removing the base URL, - // it's certainly not the next page. - + } + // If href doesn't contain a digit after removing the base URL, + // it's certainly not the next page. var fragment = href.replace(baseUrl, ''); - - if (!DIGIT_RE$2.test(fragment)) { + if (!DIGIT_RE.test(fragment)) { return false; - } // This link has extraneous content (like "comment") in its link - // text, so we skip it. - + } - if (EXTRANEOUS_LINK_HINTS_RE$1.test(linkText)) { + // This link has extraneous content (like "comment") in its link + // text, so we skip it. + if (EXTRANEOUS_LINK_HINTS_RE.test(linkText)) { return false; - } // Next page link text is never long, skip if it is too long. - + } + // Next page link text is never long, skip if it is too long. if (linkText.length > 25) { return false; } - return true; } @@ -7311,76 +7224,72 @@ function scoreBaseUrl(href, baseRegex) { if (!baseRegex.test(href)) { return -25; } - return 0; } function scoreNextLinkText(linkData) { // Things like "next", ">>", etc. - if (NEXT_LINK_TEXT_RE$1.test(linkData)) { + if (NEXT_LINK_TEXT_RE.test(linkData)) { return 50; } - return 0; } function scoreCapLinks(linkData) { // Cap links are links like "last", etc. - if (CAP_LINK_TEXT_RE$1.test(linkData)) { + if (CAP_LINK_TEXT_RE.test(linkData)) { // If we found a link like "last", but we've already seen that // this link is also "next", it's fine. If it's not been // previously marked as "next", then it's probably bad. // Penalize. - if (NEXT_LINK_TEXT_RE$1.test(linkData)) { + if (NEXT_LINK_TEXT_RE.test(linkData)) { return -65; } } - return 0; } function makeBaseRegex(baseUrl) { return new RegExp("^".concat(baseUrl), 'i'); } - function makeSig$1($link, linkText) { return "".concat(linkText || $link.text(), " ").concat($link.attr('class') || '', " ").concat($link.attr('id') || ''); } - function scoreLinks(_ref) { var links = _ref.links, - articleUrl = _ref.articleUrl, - baseUrl = _ref.baseUrl, - parsedUrl = _ref.parsedUrl, - $ = _ref.$, - _ref$previousUrls = _ref.previousUrls, - previousUrls = _ref$previousUrls === void 0 ? [] : _ref$previousUrls; + articleUrl = _ref.articleUrl, + baseUrl = _ref.baseUrl, + parsedUrl = _ref.parsedUrl, + $ = _ref.$, + _ref$previousUrls = _ref.previousUrls, + previousUrls = _ref$previousUrls === void 0 ? [] : _ref$previousUrls; parsedUrl = parsedUrl || URL.parse(articleUrl); var baseRegex = makeBaseRegex(baseUrl); - var isWp = isWordpress($); // Loop through all links, looking for hints that they may be next-page + var isWp = isWordpress($); + + // Loop through all links, looking for hints that they may be next-page // links. Things like having "page" in their textContent, className or // id, or being a child of a node with a page-y className or id. // // After we do that, assign each page a score, and pick the one that // looks most like the next page link, as long as its score is strong // enough to have decent confidence. - var scoredPages = links.reduce(function (possiblePages, link) { // Remove any anchor data since we don't do a good job // standardizing URLs (it's hard), we're going to do // some checking with and without a trailing slash - var attrs = getAttrs(link); // if href is undefined, return + var attrs = getAttrs(link); + // if href is undefined, return if (!attrs.href) return possiblePages; var href = removeAnchor(attrs.href); var $link = $(link); var linkText = $link.text(); - if (!shouldScore(href, articleUrl, baseUrl, parsedUrl, linkText, previousUrls)) { return possiblePages; - } // ## PASSED THE FIRST-PASS TESTS. Start scoring. ## - + } + // ## PASSED THE FIRST-PASS TESTS. Start scoring. ## if (!possiblePages[href]) { possiblePages[href] = { score: 0, @@ -7390,7 +7299,6 @@ function scoreLinks(_ref) { } else { possiblePages[href].linkText = "".concat(possiblePages[href].linkText, "|").concat(linkText); } - var possiblePage = possiblePages[href]; var linkData = makeSig$1($link, linkText); var pageNum = pageNumFromUrl(href); @@ -7409,15 +7317,15 @@ function scoreLinks(_ref) { return _Reflect$ownKeys(scoredPages).length === 0 ? null : scoredPages; } +// Looks for and returns next page url // for multi-page articles - var GenericNextPageUrlExtractor = { extract: function extract(_ref) { var $ = _ref.$, - url = _ref.url, - parsedUrl = _ref.parsedUrl, - _ref$previousUrls = _ref.previousUrls, - previousUrls = _ref$previousUrls === void 0 ? [] : _ref$previousUrls; + url = _ref.url, + parsedUrl = _ref.parsedUrl, + _ref$previousUrls = _ref.previousUrls, + previousUrls = _ref$previousUrls === void 0 ? [] : _ref$previousUrls; parsedUrl = parsedUrl || URL.parse(url); var articleUrl = removeAnchor(url); var baseUrl = articleBaseUrl(url, parsedUrl); @@ -7429,24 +7337,25 @@ var GenericNextPageUrlExtractor = { parsedUrl: parsedUrl, $: $, previousUrls: previousUrls - }); // If no links were scored, return null + }); - if (!scoredLinks) return null; // now that we've scored all possible pages, - // find the biggest one. + // If no links were scored, return null + if (!scoredLinks) return null; + // now that we've scored all possible pages, + // find the biggest one. var topPage = _Reflect$ownKeys(scoredLinks).reduce(function (acc, link) { var scoredLink = scoredLinks[link]; return scoredLink.score > acc.score ? scoredLink : acc; }, { score: -100 - }); // If the score is less than 50, we're not confident enough to use it, - // so we fail. - + }); + // If the score is less than 50, we're not confident enough to use it, + // so we fail. if (topPage.score >= 50) { return topPage.href; } - return null; } }; @@ -7458,35 +7367,28 @@ function parseDomain(url) { var hostname = parsedUrl.hostname; return hostname; } - function result(url) { return { url: url, domain: parseDomain(url) }; } - var GenericUrlExtractor = { extract: function extract(_ref) { var $ = _ref.$, - url = _ref.url, - metaCache = _ref.metaCache; + url = _ref.url, + metaCache = _ref.metaCache; var $canonical = $('link[rel=canonical]'); - if ($canonical.length !== 0) { var href = $canonical.attr('href'); - if (href) { return result(href); } } - - var metaUrl = extractFromMeta$$1($, CANONICAL_META_SELECTORS, metaCache); - + var metaUrl = extractFromMeta($, CANONICAL_META_SELECTORS, metaCache); if (metaUrl) { return result(metaUrl); } - return result(url); } }; @@ -7503,15 +7405,13 @@ function clean$2(content, $) { var GenericExcerptExtractor = { extract: function extract(_ref) { var $ = _ref.$, - content = _ref.content, - metaCache = _ref.metaCache; - var excerpt = extractFromMeta$$1($, EXCERPT_META_SELECTORS, metaCache); - + content = _ref.content, + metaCache = _ref.metaCache; + var excerpt = extractFromMeta($, EXCERPT_META_SELECTORS, metaCache); if (excerpt) { return clean$2(stripTags(excerpt, $)); - } // Fall back to excerpting from the extracted content - - + } + // Fall back to excerpting from the extracted content var maxLength = 200; var shortContent = content.slice(0, maxLength * 5); return clean$2($(shortContent).text(), $, maxLength); @@ -7524,14 +7424,12 @@ var getWordCount = function getWordCount(content) { var text = normalizeSpaces($content.text()); return text.split(/\s/).length; }; - var getWordCountAlt = function getWordCountAlt(content) { content = content.replace(/<[^>]*>/g, ' '); content = content.replace(/\s+/g, ' '); content = content.trim(); return content.split(' ').length; }; - var GenericWordCountExtractor = { extract: function extract(_ref) { var content = _ref.content; @@ -7541,6 +7439,8 @@ var GenericWordCountExtractor = { } }; +function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; } var GenericExtractor = { // This extractor is the default for all domains domain: '*', @@ -7560,40 +7460,36 @@ var GenericExtractor = { }, extract: function extract(options) { var html = options.html, - $ = options.$; - + $ = options.$; if (html && !$) { var loaded = cheerio.load(html); options.$ = loaded; } - var title = this.title(options); var date_published = this.date_published(options); var author = this.author(options); - var content = this.content(_objectSpread({}, options, { + var content = this.content(_objectSpread$4(_objectSpread$4({}, options), {}, { title: title })); - var lead_image_url = this.lead_image_url(_objectSpread({}, options, { + var lead_image_url = this.lead_image_url(_objectSpread$4(_objectSpread$4({}, options), {}, { content: content })); - var dek = this.dek(_objectSpread({}, options, { + var dek = this.dek(_objectSpread$4(_objectSpread$4({}, options), {}, { content: content })); var next_page_url = this.next_page_url(options); - var excerpt = this.excerpt(_objectSpread({}, options, { + var excerpt = this.excerpt(_objectSpread$4(_objectSpread$4({}, options), {}, { content: content })); - var word_count = this.word_count(_objectSpread({}, options, { + var word_count = this.word_count(_objectSpread$4(_objectSpread$4({}, options), {}, { content: content })); var direction = this.direction({ title: title }); - var _this$url_and_domain = this.url_and_domain(options), - url = _this$url_and_domain.url, - domain = _this$url_and_domain.domain; - + url = _this$url_and_domain.url, + domain = _this$url_and_domain.domain; return { title: title, author: author, @@ -7619,52 +7515,54 @@ function detectByHtml($) { var selector = _Reflect$ownKeys(Detectors).find(function (s) { return $(s).length > 0; }); - return Detectors[selector]; } function getExtractor(url, parsedUrl, $) { parsedUrl = parsedUrl || URL.parse(url); var _parsedUrl = parsedUrl, - hostname = _parsedUrl.hostname; + hostname = _parsedUrl.hostname; var baseDomain = hostname.split('.').slice(-2).join('.'); return apiExtractors[hostname] || apiExtractors[baseDomain] || Extractors[hostname] || Extractors[baseDomain] || detectByHtml($) || GenericExtractor; } +function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; } + +// Remove elements by an array of selectors function cleanBySelectors($content, $, _ref) { var clean = _ref.clean; if (!clean) return $content; $(clean.join(','), $content).remove(); return $content; -} // Transform matching elements +} +// Transform matching elements function transformElements($content, $, _ref2) { var transforms = _ref2.transforms; if (!transforms) return $content; - _Reflect$ownKeys(transforms).forEach(function (key) { var $matches = $(key, $content); - var value = transforms[key]; // If value is a string, convert directly + var value = transforms[key]; + // If value is a string, convert directly if (typeof value === 'string') { $matches.each(function (index, node) { - convertNodeTo$$1($(node), $, transforms[key]); + convertNodeTo($(node), $, transforms[key]); }); } else if (typeof value === 'function') { // If value is function, apply function to node $matches.each(function (index, node) { - var result = value($(node), $); // If function returns a string, convert node to that value - + var result = value($(node), $); + // If function returns a string, convert node to that value if (typeof result === 'string') { - convertNodeTo$$1($(node), $, result); + convertNodeTo($(node), $, result); } }); } }); - return $content; } - function findMatchingSelector($, selectors, extractHtml, allowMultiple) { return selectors.find(function (selector) { if (_Array$isArray(selector)) { @@ -7673,52 +7571,48 @@ function findMatchingSelector($, selectors, extractHtml, allowMultiple) { return acc && $(s).length > 0; }, true); } - var _selector = _slicedToArray(selector, 2), - s = _selector[0], - attr = _selector[1]; - + s = _selector[0], + attr = _selector[1]; return (allowMultiple || !allowMultiple && $(s).length === 1) && $(s).attr(attr) && $(s).attr(attr).trim() !== ''; } - return (allowMultiple || !allowMultiple && $(selector).length === 1) && $(selector).text().trim() !== ''; }); } - function select(opts) { var $ = opts.$, - type = opts.type, - extractionOpts = opts.extractionOpts, - _opts$extractHtml = opts.extractHtml, - extractHtml = _opts$extractHtml === void 0 ? false : _opts$extractHtml; // Skip if there's not extraction for this type - - if (!extractionOpts) return null; // If a string is hardcoded for a type (e.g., Wikipedia + type = opts.type, + extractionOpts = opts.extractionOpts, + _opts$extractHtml = opts.extractHtml, + extractHtml = _opts$extractHtml === void 0 ? false : _opts$extractHtml; + // Skip if there's not extraction for this type + if (!extractionOpts) return null; + + // If a string is hardcoded for a type (e.g., Wikipedia // contributors), return the string - if (typeof extractionOpts === 'string') return extractionOpts; var selectors = extractionOpts.selectors, - _extractionOpts$defau = extractionOpts.defaultCleaner, - defaultCleaner = _extractionOpts$defau === void 0 ? true : _extractionOpts$defau, - allowMultiple = extractionOpts.allowMultiple; + _extractionOpts$defau = extractionOpts.defaultCleaner, + defaultCleaner = _extractionOpts$defau === void 0 ? true : _extractionOpts$defau, + allowMultiple = extractionOpts.allowMultiple; var overrideAllowMultiple = type === 'lead_image_url' || allowMultiple; var matchingSelector = findMatchingSelector($, selectors, extractHtml, overrideAllowMultiple); if (!matchingSelector) return null; - function transformAndClean($node) { - makeLinksAbsolute$$1($node, $, opts.url || ''); + makeLinksAbsolute($node, $, opts.url || ''); cleanBySelectors($node, $, extractionOpts); transformElements($node, $, extractionOpts); return $node; } - function selectHtml() { // If the selector type requests html as its return type // transform and clean the element with provided selectors - var $content; // If matching selector is an array, we're considering this a + var $content; + + // If matching selector is an array, we're considering this a // multi-match selection, which allows the parser to choose several // selectors to include in the result. Note that all selectors in the // array must match in order for this selector to trigger - if (_Array$isArray(matchingSelector)) { $content = $(matchingSelector.join(',')); var $wrapper = $('<div></div>'); @@ -7728,42 +7622,36 @@ function select(opts) { $content = $wrapper; } else { $content = $(matchingSelector); - } // Wrap in div so transformation can take place on root element - + } + // Wrap in div so transformation can take place on root element $content.wrap($('<div></div>')); $content = $content.parent(); $content = transformAndClean($content); - if (Cleaners[type]) { - Cleaners[type]($content, _objectSpread({}, opts, { + Cleaners[type]($content, _objectSpread$5(_objectSpread$5({}, opts), {}, { defaultCleaner: defaultCleaner })); } - if (allowMultiple) { return $content.children().toArray().map(function (el) { return $.html($(el)); }); } - return $.html($content); } - if (extractHtml) { - return selectHtml(matchingSelector); + return selectHtml(); } - var $match; - var result; // if selector is an array (e.g., ['img', 'src']), + var result; + // if selector is an array (e.g., ['img', 'src']), // extract the attr - if (_Array$isArray(matchingSelector)) { var _matchingSelector = _slicedToArray(matchingSelector, 3), - selector = _matchingSelector[0], - attr = _matchingSelector[1], - transform = _matchingSelector[2]; - + selector = _matchingSelector[0], + attr = _matchingSelector[1], + transform = _matchingSelector[2]; $match = $(selector); $match = transformAndClean($match); result = $match.map(function (_, el) { @@ -7777,130 +7665,118 @@ function select(opts) { return $(el).text().trim(); }); } - - result = _Array$isArray(result.toArray()) && allowMultiple ? result.toArray() : result[0]; // Allow custom extractor to skip default cleaner + result = _Array$isArray(result.toArray()) && allowMultiple ? result.toArray() : result[0]; + // Allow custom extractor to skip default cleaner // for this type; defaults to true - if (defaultCleaner && Cleaners[type]) { - return Cleaners[type](result, _objectSpread({}, opts, extractionOpts)); + return Cleaners[type](result, _objectSpread$5(_objectSpread$5({}, opts), extractionOpts)); } - return result; } function selectExtendedTypes(extend, opts) { var results = {}; - _Reflect$ownKeys(extend).forEach(function (t) { if (!results[t]) { - results[t] = select(_objectSpread({}, opts, { + results[t] = select(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: t, extractionOpts: extend[t] })); } }); - return results; } - function extractResult(opts) { var type = opts.type, - extractor = opts.extractor, - _opts$fallback = opts.fallback, - fallback = _opts$fallback === void 0 ? true : _opts$fallback; - var result = select(_objectSpread({}, opts, { + extractor = opts.extractor, + _opts$fallback = opts.fallback, + fallback = _opts$fallback === void 0 ? true : _opts$fallback; + var result = select(_objectSpread$5(_objectSpread$5({}, opts), {}, { extractionOpts: extractor[type] - })); // If custom parser succeeds, return the result + })); + // If custom parser succeeds, return the result if (result) { return result; - } // If nothing matches the selector, and fallback is enabled, - // run the Generic extraction - + } + // If nothing matches the selector, and fallback is enabled, + // run the Generic extraction if (fallback) return GenericExtractor[type](opts); return null; } - var RootExtractor = { extract: function extract() { var extractor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : GenericExtractor; var opts = arguments.length > 1 ? arguments[1] : undefined; var _opts = opts, - contentOnly = _opts.contentOnly, - extractedTitle = _opts.extractedTitle; // This is the generic extractor. Run its extract method - + contentOnly = _opts.contentOnly, + extractedTitle = _opts.extractedTitle; + // This is the generic extractor. Run its extract method if (extractor.domain === '*') return extractor.extract(opts); - opts = _objectSpread({}, opts, { + opts = _objectSpread$5(_objectSpread$5({}, opts), {}, { extractor: extractor }); - if (contentOnly) { - var _content = extractResult(_objectSpread({}, opts, { + var _content = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'content', extractHtml: true, title: extractedTitle })); - return { content: _content }; } - - var title = extractResult(_objectSpread({}, opts, { + var title = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'title' })); - var date_published = extractResult(_objectSpread({}, opts, { + var date_published = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'date_published' })); - var author = extractResult(_objectSpread({}, opts, { + var author = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'author' })); - var next_page_url = extractResult(_objectSpread({}, opts, { + var next_page_url = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'next_page_url' })); - var content = extractResult(_objectSpread({}, opts, { + var content = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'content', extractHtml: true, title: title })); - var lead_image_url = extractResult(_objectSpread({}, opts, { + var lead_image_url = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'lead_image_url', content: content })); - var excerpt = extractResult(_objectSpread({}, opts, { + var excerpt = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'excerpt', content: content })); - var dek = extractResult(_objectSpread({}, opts, { + var dek = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'dek', content: content, excerpt: excerpt })); - var word_count = extractResult(_objectSpread({}, opts, { + var word_count = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'word_count', content: content })); - var direction = extractResult(_objectSpread({}, opts, { + var direction = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { type: 'direction', title: title })); - - var _ref3 = extractResult(_objectSpread({}, opts, { - type: 'url_and_domain' - })) || { - url: null, - domain: null - }, - url = _ref3.url, - domain = _ref3.domain; - + var _ref3 = extractResult(_objectSpread$5(_objectSpread$5({}, opts), {}, { + type: 'url_and_domain' + })) || { + url: null, + domain: null + }, + url = _ref3.url, + domain = _ref3.domain; var extendedResults = {}; - if (extractor.extend) { extendedResults = selectExtendedTypes(extractor.extend, opts); } - - return _objectSpread({ + return _objectSpread$5({ title: title, content: content, author: author, @@ -7917,247 +7793,189 @@ var RootExtractor = { } }; +function ownKeys$6(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; } function collectAllPages(_x) { return _collectAllPages.apply(this, arguments); } - function _collectAllPages() { - _collectAllPages = _asyncToGenerator( - /*#__PURE__*/ - _regeneratorRuntime.mark(function _callee(_ref) { + _collectAllPages = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) { var next_page_url, html, $, metaCache, result, Extractor, title, url, pages, previousUrls, extractorOpts, nextPageResult, word_count; return _regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - next_page_url = _ref.next_page_url, html = _ref.html, $ = _ref.$, metaCache = _ref.metaCache, result = _ref.result, Extractor = _ref.Extractor, title = _ref.title, url = _ref.url; - // At this point, we've fetched just the first page - pages = 1; - previousUrls = [removeAnchor(url)]; // If we've gone over 26 pages, something has - // likely gone wrong. - - case 3: - if (!(next_page_url && pages < 26)) { - _context.next = 16; - break; - } - - pages += 1; // eslint-disable-next-line no-await-in-loop - - _context.next = 7; - return Resource.create(next_page_url); - - case 7: - $ = _context.sent; - html = $.html(); - extractorOpts = { - url: next_page_url, - html: html, - $: $, - metaCache: metaCache, - extractedTitle: title, - previousUrls: previousUrls - }; - nextPageResult = RootExtractor.extract(Extractor, extractorOpts); - previousUrls.push(next_page_url); - result = _objectSpread({}, result, { - content: "".concat(result.content, "<hr><h4>Page ").concat(pages, "</h4>").concat(nextPageResult.content) - }); // eslint-disable-next-line prefer-destructuring - - next_page_url = nextPageResult.next_page_url; - _context.next = 3; + while (1) switch (_context.prev = _context.next) { + case 0: + next_page_url = _ref.next_page_url, html = _ref.html, $ = _ref.$, metaCache = _ref.metaCache, result = _ref.result, Extractor = _ref.Extractor, title = _ref.title, url = _ref.url; + // At this point, we've fetched just the first page + pages = 1; + previousUrls = [removeAnchor(url)]; // If we've gone over 26 pages, something has + // likely gone wrong. + case 3: + if (!(next_page_url && pages < 26)) { + _context.next = 16; break; - - case 16: - word_count = GenericExtractor.word_count({ - content: "<div>".concat(result.content, "</div>") - }); - return _context.abrupt("return", _objectSpread({}, result, { - total_pages: pages, - rendered_pages: pages, - word_count: word_count - })); - - case 18: - case "end": - return _context.stop(); - } + } + pages += 1; + // eslint-disable-next-line no-await-in-loop + _context.next = 7; + return Resource.create(next_page_url); + case 7: + $ = _context.sent; + html = $.html(); + extractorOpts = { + url: next_page_url, + html: html, + $: $, + metaCache: metaCache, + extractedTitle: title, + previousUrls: previousUrls + }; + nextPageResult = RootExtractor.extract(Extractor, extractorOpts); + previousUrls.push(next_page_url); + result = _objectSpread$6(_objectSpread$6({}, result), {}, { + content: "".concat(result.content, "<hr><h4>Page ").concat(pages, "</h4>").concat(nextPageResult.content) + }); + + // eslint-disable-next-line prefer-destructuring + next_page_url = nextPageResult.next_page_url; + _context.next = 3; + break; + case 16: + word_count = GenericExtractor.word_count({ + content: "<div>".concat(result.content, "</div>") + }); + return _context.abrupt("return", _objectSpread$6(_objectSpread$6({}, result), {}, { + total_pages: pages, + rendered_pages: pages, + word_count: word_count + })); + case 18: + case "end": + return _context.stop(); } - }, _callee, this); + }, _callee); })); return _collectAllPages.apply(this, arguments); } +var _excluded = ["html"]; +function ownKeys$7(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; } var Parser = { - parse: function () { - var _parse = _asyncToGenerator( - /*#__PURE__*/ - _regeneratorRuntime.mark(function _callee(url) { - var _ref, - html, - opts, - _opts$fetchAllPages, - fetchAllPages, - _opts$fallback, - fallback, - _opts$contentType, - contentType, - _opts$headers, - headers, - extend, - customExtractor, - parsedUrl, - $, - Extractor, - metaCache, - extendedTypes, - result, - _result, - title, - next_page_url, - turndownService, - _args = arguments; - + parse: function parse(url) { + var _arguments = arguments; + return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { + var _ref, html, opts, _opts$fetchAllPages, fetchAllPages, _opts$fallback, fallback, _opts$contentType, contentType, _opts$headers, headers, extend, customExtractor, parsedUrl, $, Extractor, metaCache, extendedTypes, result, _result, title, next_page_url, turndownService; return _regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _ref = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}, html = _ref.html, opts = _objectWithoutProperties(_ref, ["html"]); - _opts$fetchAllPages = opts.fetchAllPages, fetchAllPages = _opts$fetchAllPages === void 0 ? true : _opts$fetchAllPages, _opts$fallback = opts.fallback, fallback = _opts$fallback === void 0 ? true : _opts$fallback, _opts$contentType = opts.contentType, contentType = _opts$contentType === void 0 ? 'html' : _opts$contentType, _opts$headers = opts.headers, headers = _opts$headers === void 0 ? {} : _opts$headers, extend = opts.extend, customExtractor = opts.customExtractor; // if no url was passed and this is the browser version, - // set url to window.location.href and load the html - // from the current page - - if (!url && cheerio.browser) { - url = window.location.href; // eslint-disable-line no-undef - - html = html || cheerio.html(); - } - - parsedUrl = URL.parse(url); - - if (validateUrl(parsedUrl)) { - _context.next = 6; - break; - } - - return _context.abrupt("return", { - error: true, - message: 'The url parameter passed does not look like a valid URL. Please check your URL and try again.' - }); - - case 6: - _context.next = 8; - return Resource.create(url, html, parsedUrl, headers); - - case 8: - $ = _context.sent; - - if (!$.failed) { - _context.next = 11; - break; - } - - return _context.abrupt("return", $); - - case 11: - // Add custom extractor via cli. - if (customExtractor) { - addExtractor(customExtractor); - } - - Extractor = getExtractor(url, parsedUrl, $); // console.log(`Using extractor for ${Extractor.domain}`); - // if html still has not been set (i.e., url passed to Parser.parse), - // set html from the response of Resource.create - - if (!html) { - html = $.html(); - } // Cached value of every meta name in our document. - // Used when extracting title/author/date_published/dek - - - metaCache = $('meta').map(function (_, node) { - return $(node).attr('name'); - }).toArray(); - extendedTypes = {}; - - if (extend) { - extendedTypes = selectExtendedTypes(extend, { - $: $, - url: url, - html: html - }); - } - - result = RootExtractor.extract(Extractor, { - url: url, - html: html, - $: $, - metaCache: metaCache, - parsedUrl: parsedUrl, - fallback: fallback, - contentType: contentType - }); - _result = result, title = _result.title, next_page_url = _result.next_page_url; // Fetch more pages if next_page_url found - - if (!(fetchAllPages && next_page_url)) { - _context.next = 25; - break; - } + while (1) switch (_context.prev = _context.next) { + case 0: + _ref = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : {}, html = _ref.html, opts = _objectWithoutProperties(_ref, _excluded); + _opts$fetchAllPages = opts.fetchAllPages, fetchAllPages = _opts$fetchAllPages === void 0 ? true : _opts$fetchAllPages, _opts$fallback = opts.fallback, fallback = _opts$fallback === void 0 ? true : _opts$fallback, _opts$contentType = opts.contentType, contentType = _opts$contentType === void 0 ? 'html' : _opts$contentType, _opts$headers = opts.headers, headers = _opts$headers === void 0 ? {} : _opts$headers, extend = opts.extend, customExtractor = opts.customExtractor; // if no url was passed and this is the browser version, + // set url to window.location.href and load the html + // from the current page + if (!url && cheerio.browser) { + url = window.location.href; // eslint-disable-line no-undef + html = html || cheerio.html(); + } + parsedUrl = URL.parse(url); + if (validateUrl(parsedUrl)) { + _context.next = 6; + break; + } + return _context.abrupt("return", { + error: true, + message: 'The url parameter passed does not look like a valid URL. Please check your URL and try again.' + }); + case 6: + _context.next = 8; + return Resource.create(url, html, parsedUrl, headers); + case 8: + $ = _context.sent; + if (!$.failed) { + _context.next = 11; + break; + } + return _context.abrupt("return", $); + case 11: + // Add custom extractor via cli. + if (customExtractor) { + addExtractor(customExtractor); + } + Extractor = getExtractor(url, parsedUrl, $); // console.log(`Using extractor for ${Extractor.domain}`); + // if html still has not been set (i.e., url passed to Parser.parse), + // set html from the response of Resource.create + if (!html) { + html = $.html(); + } - _context.next = 22; - return collectAllPages({ - Extractor: Extractor, - next_page_url: next_page_url, - html: html, + // Cached value of every meta name in our document. + // Used when extracting title/author/date_published/dek + metaCache = $('meta').map(function (_, node) { + return $(node).attr('name'); + }).toArray(); + extendedTypes = {}; + if (extend) { + extendedTypes = selectExtendedTypes(extend, { $: $, - metaCache: metaCache, - result: result, - title: title, - url: url + url: url, + html: html }); - - case 22: - result = _context.sent; - _context.next = 26; + } + result = RootExtractor.extract(Extractor, { + url: url, + html: html, + $: $, + metaCache: metaCache, + parsedUrl: parsedUrl, + fallback: fallback, + contentType: contentType + }); + _result = result, title = _result.title, next_page_url = _result.next_page_url; // Fetch more pages if next_page_url found + if (!(fetchAllPages && next_page_url)) { + _context.next = 25; break; - - case 25: - result = _objectSpread({}, result, { - total_pages: 1, - rendered_pages: 1 - }); - - case 26: - if (contentType === 'markdown') { - turndownService = new TurndownService(); - result.content = turndownService.turndown(result.content); - } else if (contentType === 'text') { - result.content = $.text($(result.content)); - } - - return _context.abrupt("return", _objectSpread({}, result, extendedTypes)); - - case 28: - case "end": - return _context.stop(); - } + } + _context.next = 22; + return collectAllPages({ + Extractor: Extractor, + next_page_url: next_page_url, + html: html, + $: $, + metaCache: metaCache, + result: result, + title: title, + url: url + }); + case 22: + result = _context.sent; + _context.next = 26; + break; + case 25: + result = _objectSpread$7(_objectSpread$7({}, result), {}, { + total_pages: 1, + rendered_pages: 1 + }); + case 26: + if (contentType === 'markdown') { + turndownService = new TurndownService(); + result.content = turndownService.turndown(result.content); + } else if (contentType === 'text') { + result.content = $.text($(result.content)); + } + return _context.abrupt("return", _objectSpread$7(_objectSpread$7({}, result), extendedTypes)); + case 28: + case "end": + return _context.stop(); } - }, _callee, this); - })); - - function parse(_x) { - return _parse.apply(this, arguments); - } - - return parse; - }(), + }, _callee); + }))(); + }, browser: !!cheerio.browser, // A convenience method for getting a resource // to work with, e.g., for custom extractor generator fetchResource: function fetchResource(url) { return Resource.create(url); }, - addExtractor: function addExtractor$$1(extractor) { + addExtractor: function addExtractor$1(extractor) { return addExtractor(extractor); } }; diff --git a/dist/mercury.js.map b/dist/mercury.js.map index 560544722..0cb3a2b22 100644 --- a/dist/mercury.js.map +++ b/dist/mercury.js.map @@ -1 +1 @@ -{"version":3,"file":"mercury.js","sources":["../src/utils/text/normalize-spaces.js","../src/utils/text/extract-from-url.js","../src/utils/text/constants.js","../src/utils/text/page-num-from-url.js","../src/utils/text/remove-anchor.js","../src/utils/text/article-base-url.js","../src/utils/text/has-sentence-end.js","../src/utils/text/excerpt-content.js","../src/utils/text/get-encoding.js","../src/resource/utils/constants.js","../src/resource/utils/fetch-resource.js","../src/resource/utils/dom/normalize-meta-tags.js","../src/utils/dom/constants.js","../src/utils/dom/strip-unlikely-candidates.js","../src/utils/dom/brs-to-ps.js","../src/utils/dom/paragraphize.js","../src/utils/dom/convert-to-paragraphs.js","../src/utils/dom/convert-node-to.js","../src/utils/dom/clean-images.js","../src/utils/dom/mark-to-keep.js","../src/utils/dom/strip-junk-tags.js","../src/utils/dom/clean-h-ones.js","../src/utils/dom/clean-attributes.js","../src/utils/dom/remove-empty.js","../src/extractors/generic/content/scoring/constants.js","../src/extractors/generic/content/scoring/get-weight.js","../src/extractors/generic/content/scoring/get-score.js","../src/extractors/generic/content/scoring/score-commas.js","../src/extractors/generic/content/scoring/score-length.js","../src/extractors/generic/content/scoring/score-paragraph.js","../src/extractors/generic/content/scoring/set-score.js","../src/extractors/generic/content/scoring/add-score.js","../src/extractors/generic/content/scoring/add-to-parent.js","../src/extractors/generic/content/scoring/get-or-init-score.js","../src/extractors/generic/content/scoring/score-node.js","../src/extractors/generic/content/scoring/score-content.js","../src/extractors/generic/content/scoring/merge-siblings.js","../src/extractors/generic/content/scoring/find-top-candidate.js","../src/extractors/generic/content/scoring/index.js","../src/utils/dom/clean-tags.js","../src/utils/dom/clean-headers.js","../src/utils/dom/rewrite-top-level.js","../src/utils/dom/make-links-absolute.js","../src/utils/dom/link-density.js","../src/utils/dom/extract-from-meta.js","../src/utils/dom/extract-from-selectors.js","../src/utils/dom/strip-tags.js","../src/utils/dom/within-comment.js","../src/utils/dom/node-is-sufficient.js","../src/utils/dom/is-wordpress.js","../src/utils/dom/get-attrs.js","../src/utils/dom/set-attr.js","../src/utils/dom/set-attrs.js","../src/utils/dom/index.js","../src/resource/utils/dom/constants.js","../src/resource/utils/dom/convert-lazy-loaded-images.js","../src/resource/utils/dom/clean.js","../src/resource/index.js","../src/utils/range.js","../src/utils/validate-url.js","../src/utils/merge-supported-domains.js","../src/extractors/add-extractor.js","../src/extractors/custom/blogspot.com/index.js","../src/extractors/custom/nymag.com/index.js","../src/extractors/custom/wikipedia.org/index.js","../src/extractors/custom/twitter.com/index.js","../src/extractors/custom/www.nytimes.com/index.js","../src/extractors/custom/www.theatlantic.com/index.js","../src/extractors/custom/www.newyorker.com/index.js","../src/extractors/custom/www.wired.com/index.js","../src/extractors/custom/www.msn.com/index.js","../src/extractors/custom/www.yahoo.com/index.js","../src/extractors/custom/www.buzzfeed.com/index.js","../src/extractors/custom/fandom.wikia.com/index.js","../src/extractors/custom/www.littlethings.com/index.js","../src/extractors/custom/www.politico.com/index.js","../src/extractors/custom/deadspin.com/index.js","../src/extractors/custom/www.broadwayworld.com/index.js","../src/extractors/custom/www.apartmenttherapy.com/index.js","../src/extractors/custom/medium.com/index.js","../src/extractors/custom/www.tmz.com/index.js","../src/extractors/custom/www.washingtonpost.com/index.js","../src/extractors/custom/www.huffingtonpost.com/index.js","../src/extractors/custom/newrepublic.com/index.js","../src/extractors/custom/money.cnn.com/index.js","../src/extractors/custom/www.theverge.com/index.js","../src/extractors/custom/www.cnn.com/index.js","../src/extractors/custom/www.aol.com/index.js","../src/extractors/custom/www.youtube.com/index.js","../src/extractors/custom/www.theguardian.com/index.js","../src/extractors/custom/www.sbnation.com/index.js","../src/extractors/custom/www.bloomberg.com/index.js","../src/extractors/custom/www.bustle.com/index.js","../src/extractors/custom/www.npr.org/index.js","../src/extractors/custom/www.recode.net/index.js","../src/extractors/custom/qz.com/index.js","../src/extractors/custom/www.dmagazine.com/index.js","../src/extractors/custom/www.reuters.com/index.js","../src/extractors/custom/mashable.com/index.js","../src/extractors/custom/www.chicagotribune.com/index.js","../src/extractors/custom/www.vox.com/index.js","../src/extractors/custom/news.nationalgeographic.com/index.js","../src/extractors/custom/www.nationalgeographic.com/index.js","../src/extractors/custom/www.latimes.com/index.js","../src/extractors/custom/pagesix.com/index.js","../src/extractors/custom/thefederalistpapers.org/index.js","../src/extractors/custom/www.cbssports.com/index.js","../src/extractors/custom/www.msnbc.com/index.js","../src/extractors/custom/www.thepoliticalinsider.com/index.js","../src/extractors/custom/www.mentalfloss.com/index.js","../src/extractors/custom/abcnews.go.com/index.js","../src/extractors/custom/www.nydailynews.com/index.js","../src/extractors/custom/www.cnbc.com/index.js","../src/extractors/custom/www.popsugar.com/index.js","../src/extractors/custom/observer.com/index.js","../src/extractors/custom/people.com/index.js","../src/extractors/custom/www.usmagazine.com/index.js","../src/extractors/custom/www.rollingstone.com/index.js","../src/extractors/custom/247sports.com/index.js","../src/extractors/custom/uproxx.com/index.js","../src/extractors/custom/www.eonline.com/index.js","../src/extractors/custom/www.miamiherald.com/index.js","../src/extractors/custom/www.refinery29.com/index.js","../src/extractors/custom/www.macrumors.com/index.js","../src/extractors/custom/www.androidcentral.com/index.js","../src/extractors/custom/www.si.com/index.js","../src/extractors/custom/www.rawstory.com/index.js","../src/extractors/custom/www.cnet.com/index.js","../src/extractors/custom/www.today.com/index.js","../src/extractors/custom/www.al.com/index.js","../src/extractors/custom/www.thepennyhoarder.com/index.js","../src/extractors/custom/www.westernjournalism.com/index.js","../src/extractors/custom/www.americanow.com/index.js","../src/extractors/custom/sciencefly.com/index.js","../src/extractors/custom/hellogiggles.com/index.js","../src/extractors/custom/thoughtcatalog.com/index.js","../src/extractors/custom/www.inquisitr.com/index.js","../src/extractors/custom/www.nbcnews.com/index.js","../src/extractors/custom/fortune.com/index.js","../src/extractors/custom/www.linkedin.com/index.js","../src/extractors/custom/obamawhitehouse.archives.gov/index.js","../src/extractors/custom/www.opposingviews.com/index.js","../src/extractors/custom/www.prospectmagazine.co.uk/index.js","../src/extractors/custom/forward.com/index.js","../src/extractors/custom/www.qdaily.com/index.js","../src/extractors/custom/gothamist.com/index.js","../src/extractors/custom/www.fool.com/index.js","../src/extractors/custom/www.slate.com/index.js","../src/extractors/custom/ici.radio-canada.ca/index.js","../src/extractors/custom/www.fortinet.com/index.js","../src/extractors/custom/www.fastcompany.com/index.js","../src/extractors/custom/blisterreview.com/index.js","../src/extractors/custom/news.mynavi.jp/index.js","../src/extractors/custom/clinicaltrials.gov/index.js","../src/extractors/custom/github.com/index.js","../src/extractors/custom/www.reddit.com/index.js","../src/extractors/custom/otrs.com/index.js","../src/extractors/custom/www.ossnews.jp/index.js","../src/extractors/custom/buzzap.jp/index.js","../src/extractors/custom/www.asahi.com/index.js","../src/extractors/custom/www.sanwa.co.jp/index.js","../src/extractors/custom/www.elecom.co.jp/index.js","../src/extractors/custom/scan.netsecurity.ne.jp/index.js","../src/extractors/custom/jvndb.jvn.jp/index.js","../src/extractors/custom/genius.com/index.js","../src/extractors/custom/www.jnsa.org/index.js","../src/extractors/custom/phpspot.org/index.js","../src/extractors/custom/www.infoq.com/index.js","../src/extractors/custom/www.moongift.jp/index.js","../src/extractors/custom/www.itmedia.co.jp/index.js","../src/extractors/custom/www.publickey1.jp/index.js","../src/extractors/custom/takagi-hiromitsu.jp/index.js","../src/extractors/custom/bookwalker.jp/index.js","../src/extractors/custom/www.yomiuri.co.jp/index.js","../src/extractors/custom/japan.cnet.com/index.js","../src/extractors/custom/deadline.com/index.js","../src/extractors/custom/www.gizmodo.jp/index.js","../src/extractors/custom/getnews.jp/index.js","../src/extractors/custom/www.lifehacker.jp/index.js","../src/extractors/custom/sect.iij.ad.jp/index.js","../src/extractors/custom/www.oreilly.co.jp/index.js","../src/extractors/custom/www.ipa.go.jp/index.js","../src/extractors/custom/weekly.ascii.jp/index.js","../src/extractors/custom/techlog.iij.ad.jp/index.js","../src/extractors/custom/wired.jp/index.js","../src/extractors/custom/japan.zdnet.com/index.js","../src/extractors/custom/www.rbbtoday.com/index.js","../src/extractors/custom/www.lemonde.fr/index.js","../src/extractors/custom/www.phoronix.com/index.js","../src/extractors/custom/pitchfork.com/index.js","../src/extractors/custom/biorxiv.org/index.js","../src/extractors/custom/epaper.zeit.de/index.js","../src/extractors/custom/www.ladbible.com/index.js","../src/extractors/custom/timesofindia.indiatimes.com/index.js","../src/extractors/custom/ma.ttias.be/index.js","../src/extractors/custom/pastebin.com/index.js","../src/extractors/custom/www.abendblatt.de/index.js","../src/extractors/custom/www.gruene.de/index.js","../src/extractors/custom/www.engadget.com/index.js","../src/extractors/custom/arstechnica.com/index.js","../src/extractors/custom/www.ndtv.com/index.js","../src/extractors/custom/www.spektrum.de/index.js","../src/extractors/custom/postlight.com/index.js","../src/extractors/custom/www.investmentexecutive.com/index.js","../src/extractors/custom/www.cbc.ca/index.js","../src/extractors/all.js","../src/cleaners/constants.js","../src/cleaners/author.js","../src/cleaners/lead-image-url.js","../src/cleaners/dek.js","../src/cleaners/date-published.js","../src/cleaners/content.js","../src/cleaners/title.js","../src/cleaners/resolve-split-title.js","../src/cleaners/index.js","../src/extractors/generic/content/extract-best-node.js","../src/extractors/generic/content/extractor.js","../src/extractors/generic/title/constants.js","../src/extractors/generic/title/extractor.js","../src/extractors/generic/author/constants.js","../src/extractors/generic/author/extractor.js","../src/extractors/generic/date-published/constants.js","../src/extractors/generic/date-published/extractor.js","../src/extractors/generic/dek/extractor.js","../src/extractors/generic/lead-image-url/constants.js","../src/extractors/generic/lead-image-url/score-image.js","../src/extractors/generic/lead-image-url/extractor.js","../src/extractors/generic/next-page-url/scoring/utils/score-similarity.js","../src/extractors/generic/next-page-url/scoring/utils/score-link-text.js","../src/extractors/generic/next-page-url/scoring/utils/score-page-in-link.js","../src/extractors/generic/next-page-url/scoring/constants.js","../src/extractors/generic/next-page-url/scoring/utils/score-extraneous-links.js","../src/extractors/generic/next-page-url/scoring/utils/score-by-parents.js","../src/extractors/generic/next-page-url/scoring/utils/score-prev-link.js","../src/extractors/generic/next-page-url/scoring/utils/should-score.js","../src/extractors/generic/next-page-url/scoring/utils/score-base-url.js","../src/extractors/generic/next-page-url/scoring/utils/score-next-link-text.js","../src/extractors/generic/next-page-url/scoring/utils/score-cap-links.js","../src/extractors/generic/next-page-url/scoring/score-links.js","../src/extractors/generic/next-page-url/extractor.js","../src/extractors/generic/url/constants.js","../src/extractors/generic/url/extractor.js","../src/extractors/generic/excerpt/constants.js","../src/extractors/generic/excerpt/extractor.js","../src/extractors/generic/word-count/extractor.js","../src/extractors/generic/index.js","../src/extractors/detect-by-html.js","../src/extractors/get-extractor.js","../src/extractors/root-extractor.js","../src/extractors/collect-all-pages.js","../src/mercury.js"],"sourcesContent":["const NORMALIZE_RE = /\\s{2,}(?![^<>]*<\\/(pre|code|textarea)>)/g;\n\nexport default function normalizeSpaces(text) {\n return text.replace(NORMALIZE_RE, ' ').trim();\n}\n","// Given a node type to search for, and a list of regular expressions,\n// look to see if this extraction can be found in the URL. Expects\n// that each expression in r_list will return group(1) as the proper\n// string to be cleaned.\n// Only used for date_published currently.\nexport default function extractFromUrl(url, regexList) {\n const matchRe = regexList.find(re => re.test(url));\n if (matchRe) {\n return matchRe.exec(url)[1];\n }\n\n return null;\n}\n","// An expression that looks to try to find the page digit within a URL, if\n// it exists.\n// Matches:\n// page=1\n// pg=1\n// p=1\n// paging=12\n// pag=7\n// pagination/1\n// paging/88\n// pa/83\n// p/11\n//\n// Does not match:\n// pg=102\n// page:2\nexport const PAGE_IN_HREF_RE = new RegExp(\n '(page|paging|(p(a|g|ag)?(e|enum|ewanted|ing|ination)))?(=|/)([0-9]{1,3})',\n 'i'\n);\n\nexport const HAS_ALPHA_RE = /[a-z]/i;\n\nexport const IS_ALPHA_RE = /^[a-z]+$/i;\nexport const IS_DIGIT_RE = /^[0-9]+$/i;\n\nexport const ENCODING_RE = /charset=([\\w-]+)\\b/;\nexport const DEFAULT_ENCODING = 'utf-8';\n","import { PAGE_IN_HREF_RE } from './constants';\n\nexport default function pageNumFromUrl(url) {\n const matches = url.match(PAGE_IN_HREF_RE);\n if (!matches) return null;\n\n const pageNum = parseInt(matches[6], 10);\n\n // Return pageNum < 100, otherwise\n // return null\n return pageNum < 100 ? pageNum : null;\n}\n","export default function removeAnchor(url) {\n return url.split('#')[0].replace(/\\/$/, '');\n}\n","import URL from 'url';\n\nimport {\n HAS_ALPHA_RE,\n IS_ALPHA_RE,\n IS_DIGIT_RE,\n PAGE_IN_HREF_RE,\n} from './constants';\n\nfunction isGoodSegment(segment, index, firstSegmentHasLetters) {\n let goodSegment = true;\n\n // If this is purely a number, and it's the first or second\n // url_segment, it's probably a page number. Remove it.\n if (index < 2 && IS_DIGIT_RE.test(segment) && segment.length < 3) {\n goodSegment = true;\n }\n\n // If this is the first url_segment and it's just \"index\",\n // remove it\n if (index === 0 && segment.toLowerCase() === 'index') {\n goodSegment = false;\n }\n\n // If our first or second url_segment is smaller than 3 characters,\n // and the first url_segment had no alphas, remove it.\n if (index < 2 && segment.length < 3 && !firstSegmentHasLetters) {\n goodSegment = false;\n }\n\n return goodSegment;\n}\n\n// Take a URL, and return the article base of said URL. That is, no\n// pagination data exists in it. Useful for comparing to other links\n// that might have pagination data within them.\nexport default function articleBaseUrl(url, parsed) {\n const parsedUrl = parsed || URL.parse(url);\n const { protocol, host, path } = parsedUrl;\n\n let firstSegmentHasLetters = false;\n const cleanedSegments = path\n .split('/')\n .reverse()\n .reduce((acc, rawSegment, index) => {\n let segment = rawSegment;\n\n // Split off and save anything that looks like a file type.\n if (segment.includes('.')) {\n const [possibleSegment, fileExt] = segment.split('.');\n if (IS_ALPHA_RE.test(fileExt)) {\n segment = possibleSegment;\n }\n }\n\n // If our first or second segment has anything looking like a page\n // number, remove it.\n if (PAGE_IN_HREF_RE.test(segment) && index < 2) {\n segment = segment.replace(PAGE_IN_HREF_RE, '');\n }\n\n // If we're on the first segment, check to see if we have any\n // characters in it. The first segment is actually the last bit of\n // the URL, and this will be helpful to determine if we're on a URL\n // segment that looks like \"/2/\" for example.\n if (index === 0) {\n firstSegmentHasLetters = HAS_ALPHA_RE.test(segment);\n }\n\n // If it's not marked for deletion, push it to cleaned_segments.\n if (isGoodSegment(segment, index, firstSegmentHasLetters)) {\n acc.push(segment);\n }\n\n return acc;\n }, []);\n\n return `${protocol}//${host}${cleanedSegments.reverse().join('/')}`;\n}\n","// Given a string, return True if it appears to have an ending sentence\n// within it, false otherwise.\nconst SENTENCE_END_RE = new RegExp('.( |$)');\nexport default function hasSentenceEnd(text) {\n return SENTENCE_END_RE.test(text);\n}\n","export default function excerptContent(content, words = 10) {\n return content\n .trim()\n .split(/\\s+/)\n .slice(0, words)\n .join(' ');\n}\n","import iconv from 'iconv-lite';\nimport { DEFAULT_ENCODING, ENCODING_RE } from './constants';\n\n// check a string for encoding; this is\n// used in our fetchResource function to\n// ensure correctly encoded responses\nexport default function getEncoding(str) {\n let encoding = DEFAULT_ENCODING;\n const matches = ENCODING_RE.exec(str);\n if (matches !== null) {\n [, str] = matches;\n }\n if (iconv.encodingExists(str)) {\n encoding = str;\n }\n return encoding;\n}\n","import cheerio from 'cheerio';\n\n// Browser does not like us setting user agent\nexport const REQUEST_HEADERS = cheerio.browser\n ? {}\n : {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',\n };\n\n// The number of milliseconds to attempt to fetch a resource before timing out.\nexport const FETCH_TIMEOUT = 10000;\n\n// Content types that we do not extract content from\nconst BAD_CONTENT_TYPES = [\n 'audio/mpeg',\n 'image/gif',\n 'image/jpeg',\n 'image/jpg',\n];\n\nexport const BAD_CONTENT_TYPES_RE = new RegExp(\n `^(${BAD_CONTENT_TYPES.join('|')})$`,\n 'i'\n);\n\n// Use this setting as the maximum size an article can be\n// for us to attempt parsing. Defaults to 5 MB.\nexport const MAX_CONTENT_LENGTH = 5242880;\n\n// Turn the global proxy on or off\n// Proxying is not currently enabled in Python source\n// so not implementing logic in port.\nexport const PROXY_DOMAINS = false;\nexport const REQUESTS_PROXIES = {\n http: 'http://38.98.105.139:33333',\n https: 'http://38.98.105.139:33333',\n};\n\nexport const DOMAINS_TO_PROXY = ['nih.gov', 'gutenberg.org'];\n","import URL from 'url';\nimport request from 'postman-request';\n\nimport {\n REQUEST_HEADERS,\n FETCH_TIMEOUT,\n BAD_CONTENT_TYPES_RE,\n MAX_CONTENT_LENGTH,\n} from './constants';\n\nfunction get(options) {\n return new Promise((resolve, reject) => {\n request(options, (err, response, body) => {\n if (err) {\n reject(err);\n } else {\n resolve({ body, response });\n }\n });\n });\n}\n\n// Evaluate a response to ensure it's something we should be keeping.\n// This does not validate in the sense of a response being 200 or not.\n// Validation here means that we haven't found reason to bail from\n// further processing of this url.\n\nexport function validateResponse(response, parseNon200 = false) {\n // Check if we got a valid status code\n // This isn't great, but I'm requiring a statusMessage to be set\n // before short circuiting b/c nock doesn't set it in tests\n // statusMessage only not set in nock response, in which case\n // I check statusCode, which is currently only 200 for OK responses\n // in tests\n if (\n (response.statusMessage && response.statusMessage !== 'OK') ||\n response.statusCode !== 200\n ) {\n if (!response.statusCode) {\n throw new Error(\n `Unable to fetch content. Original exception was ${response.error}`\n );\n } else if (!parseNon200) {\n throw new Error(\n `Resource returned a response status code of ${\n response.statusCode\n } and resource was instructed to reject non-200 status codes.`\n );\n }\n }\n\n const {\n 'content-type': contentType,\n 'content-length': contentLength,\n } = response.headers;\n\n // Check that the content is not in BAD_CONTENT_TYPES\n if (BAD_CONTENT_TYPES_RE.test(contentType)) {\n throw new Error(\n `Content-type for this resource was ${contentType} and is not allowed.`\n );\n }\n\n // Check that the content length is below maximum\n if (contentLength > MAX_CONTENT_LENGTH) {\n throw new Error(\n `Content for this resource was too large. Maximum content length is ${MAX_CONTENT_LENGTH}.`\n );\n }\n\n return true;\n}\n\n// Grabs the last two pieces of the URL and joins them back together\n// This is to get the 'livejournal.com' from 'erotictrains.livejournal.com'\nexport function baseDomain({ host }) {\n return host\n .split('.')\n .slice(-2)\n .join('.');\n}\n\n// Set our response attribute to the result of fetching our URL.\n// TODO: This should gracefully handle timeouts and raise the\n// proper exceptions on the many failure cases of HTTP.\n// TODO: Ensure we are not fetching something enormous. Always return\n// unicode content for HTML, with charset conversion.\n\nexport default async function fetchResource(url, parsedUrl, headers = {}) {\n parsedUrl = parsedUrl || URL.parse(encodeURI(url));\n const options = {\n url: parsedUrl.href,\n headers: { ...REQUEST_HEADERS, ...headers },\n timeout: FETCH_TIMEOUT,\n // Accept cookies\n jar: true,\n // Set to null so the response returns as binary and body as buffer\n // https://github.com/request/request#requestoptions-callback\n encoding: null,\n // Accept and decode gzip\n gzip: true,\n // Follow any non-GET redirects\n followAllRedirects: true,\n ...(typeof window !== 'undefined'\n ? {}\n : {\n // Follow GET redirects; this option is for Node only\n followRedirect: true,\n }),\n };\n\n const { response, body } = await get(options);\n\n try {\n validateResponse(response);\n return {\n body,\n response,\n };\n } catch (e) {\n return {\n error: true,\n message: e.message,\n };\n }\n}\n","function convertMetaProp($, from, to) {\n $(`meta[${from}]`).each((_, node) => {\n const $node = $(node);\n\n const value = $node.attr(from);\n $node.attr(to, value);\n $node.removeAttr(from);\n });\n\n return $;\n}\n\n// For ease of use in extracting from meta tags,\n// replace the \"content\" attribute on meta tags with the\n// \"value\" attribute.\n//\n// In addition, normalize 'property' attributes to 'name' for ease of\n// querying later. See, e.g., og or twitter meta tags.\n\nexport default function normalizeMetaTags($) {\n $ = convertMetaProp($, 'content', 'value');\n $ = convertMetaProp($, 'property', 'name');\n return $;\n}\n","// Spacer images to be removed\nexport const SPACER_RE = new RegExp('transparent|spacer|blank', 'i');\n\n// The class we will use to mark elements we want to keep\n// but would normally remove\nexport const KEEP_CLASS = 'mercury-parser-keep';\n\nexport const KEEP_SELECTORS = [\n 'iframe[src^=\"https://www.youtube.com\"]',\n 'iframe[src^=\"https://www.youtube-nocookie.com\"]',\n 'iframe[src^=\"http://www.youtube.com\"]',\n 'iframe[src^=\"https://player.vimeo\"]',\n 'iframe[src^=\"http://player.vimeo\"]',\n 'iframe[src^=\"https://www.redditmedia.com\"]',\n];\n\n// A list of tags to strip from the output if we encounter them.\nexport const STRIP_OUTPUT_TAGS = [\n 'title',\n 'script',\n 'noscript',\n 'link',\n 'style',\n 'hr',\n 'embed',\n 'iframe',\n 'object',\n];\n\n// cleanAttributes\nexport const REMOVE_ATTRS = ['style', 'align'];\nexport const REMOVE_ATTR_SELECTORS = REMOVE_ATTRS.map(\n selector => `[${selector}]`\n);\nexport const REMOVE_ATTR_LIST = REMOVE_ATTRS.join(',');\nexport const WHITELIST_ATTRS = [\n 'src',\n 'srcset',\n 'sizes',\n 'type',\n 'href',\n 'class',\n 'id',\n 'alt',\n 'xlink:href',\n 'width',\n 'height',\n];\n\nexport const WHITELIST_ATTRS_RE = new RegExp(\n `^(${WHITELIST_ATTRS.join('|')})$`,\n 'i'\n);\n\n// removeEmpty\nexport const REMOVE_EMPTY_TAGS = ['p'];\nexport const REMOVE_EMPTY_SELECTORS = REMOVE_EMPTY_TAGS.map(\n tag => `${tag}:empty`\n).join(',');\n\n// cleanTags\nexport const CLEAN_CONDITIONALLY_TAGS = [\n 'ul',\n 'ol',\n 'table',\n 'div',\n 'button',\n 'form',\n].join(',');\n\n// cleanHeaders\nconst HEADER_TAGS = ['h2', 'h3', 'h4', 'h5', 'h6'];\nexport const HEADER_TAG_LIST = HEADER_TAGS.join(',');\n\n// // CONTENT FETCHING CONSTANTS ////\n\n// A list of strings that can be considered unlikely candidates when\n// extracting content from a resource. These strings are joined together\n// and then tested for existence using re:test, so may contain simple,\n// non-pipe style regular expression queries if necessary.\nexport const UNLIKELY_CANDIDATES_BLACKLIST = [\n 'ad-break',\n 'adbox',\n 'advert',\n 'addthis',\n 'agegate',\n 'aux',\n 'blogger-labels',\n 'combx',\n 'comment',\n 'conversation',\n 'disqus',\n 'entry-unrelated',\n 'extra',\n 'foot',\n // 'form', // This is too generic, has too many false positives\n 'header',\n 'hidden',\n 'loader',\n 'login', // Note: This can hit 'blogindex'.\n 'menu',\n 'meta',\n 'nav',\n 'outbrain',\n 'pager',\n 'pagination',\n 'predicta', // readwriteweb inline ad box\n 'presence_control_external', // lifehacker.com container full of false positives\n 'popup',\n 'printfriendly',\n 'related',\n 'remove',\n 'remark',\n 'rss',\n 'share',\n 'shoutbox',\n 'sidebar',\n 'sociable',\n 'sponsor',\n 'taboola',\n 'tools',\n];\n\n// A list of strings that can be considered LIKELY candidates when\n// extracting content from a resource. Essentially, the inverse of the\n// blacklist above - if something matches both blacklist and whitelist,\n// it is kept. This is useful, for example, if something has a className\n// of \"rss-content entry-content\". It matched 'rss', so it would normally\n// be removed, however, it's also the entry content, so it should be left\n// alone.\n//\n// These strings are joined together and then tested for existence using\n// re:test, so may contain simple, non-pipe style regular expression queries\n// if necessary.\nexport const UNLIKELY_CANDIDATES_WHITELIST = [\n 'and',\n 'article',\n 'body',\n 'blogindex',\n 'column',\n 'content',\n 'entry-content-asset',\n 'format', // misuse of form\n 'hfeed',\n 'hentry',\n 'hatom',\n 'main',\n 'page',\n 'posts',\n 'shadow',\n];\n\n// A list of tags which, if found inside, should cause a <div /> to NOT\n// be turned into a paragraph tag. Shallow div tags without these elements\n// should be turned into <p /> tags.\nexport const DIV_TO_P_BLOCK_TAGS = [\n 'a',\n 'blockquote',\n 'dl',\n 'div',\n 'img',\n 'p',\n 'pre',\n 'table',\n].join(',');\n\n// A list of tags that should be ignored when trying to find the top candidate\n// for a document.\nexport const NON_TOP_CANDIDATE_TAGS = [\n 'br',\n 'b',\n 'i',\n 'label',\n 'hr',\n 'area',\n 'base',\n 'basefont',\n 'input',\n 'img',\n 'link',\n 'meta',\n];\n\nexport const NON_TOP_CANDIDATE_TAGS_RE = new RegExp(\n `^(${NON_TOP_CANDIDATE_TAGS.join('|')})$`,\n 'i'\n);\n\n// A list of selectors that specify, very clearly, either hNews or other\n// very content-specific style content, like Blogger templates.\n// More examples here: http://microformats.org/wiki/blog-post-formats\nexport const HNEWS_CONTENT_SELECTORS = [\n ['.hentry', '.entry-content'],\n ['entry', '.entry-content'],\n ['.entry', '.entry_content'],\n ['.post', '.postbody'],\n ['.post', '.post_body'],\n ['.post', '.post-body'],\n];\n\nexport const PHOTO_HINTS = ['figure', 'photo', 'image', 'caption'];\nexport const PHOTO_HINTS_RE = new RegExp(PHOTO_HINTS.join('|'), 'i');\n\n// A list of strings that denote a positive scoring for this content as being\n// an article container. Checked against className and id.\n//\n// TODO: Perhaps have these scale based on their odds of being quality?\nexport const POSITIVE_SCORE_HINTS = [\n 'article',\n 'articlecontent',\n 'instapaper_body',\n 'blog',\n 'body',\n 'content',\n 'entry-content-asset',\n 'entry',\n 'hentry',\n 'main',\n 'Normal',\n 'page',\n 'pagination',\n 'permalink',\n 'post',\n 'story',\n 'text',\n '[-_]copy', // usatoday\n '\\\\Bcopy',\n];\n\n// The above list, joined into a matching regular expression\nexport const POSITIVE_SCORE_RE = new RegExp(\n POSITIVE_SCORE_HINTS.join('|'),\n 'i'\n);\n\n// Readability publisher-specific guidelines\nexport const READABILITY_ASSET = new RegExp('entry-content-asset', 'i');\n\n// A list of strings that denote a negative scoring for this content as being\n// an article container. Checked against className and id.\n//\n// TODO: Perhaps have these scale based on their odds of being quality?\nexport const NEGATIVE_SCORE_HINTS = [\n 'adbox',\n 'advert',\n 'author',\n 'bio',\n 'bookmark',\n 'bottom',\n 'byline',\n 'clear',\n 'com-',\n 'combx',\n 'comment',\n 'comment\\\\B',\n 'contact',\n 'copy',\n 'credit',\n 'crumb',\n 'date',\n 'deck',\n 'excerpt',\n 'featured', // tnr.com has a featured_content which throws us off\n 'foot',\n 'footer',\n 'footnote',\n 'graf',\n 'head',\n 'info',\n 'infotext', // newscientist.com copyright\n 'instapaper_ignore',\n 'jump',\n 'linebreak',\n 'link',\n 'masthead',\n 'media',\n 'meta',\n 'modal',\n 'outbrain', // slate.com junk\n 'promo',\n 'pr_', // autoblog - press release\n 'related',\n 'respond',\n 'roundcontent', // lifehacker restricted content warning\n 'scroll',\n 'secondary',\n 'share',\n 'shopping',\n 'shoutbox',\n 'side',\n 'sidebar',\n 'sponsor',\n 'stamp',\n 'sub',\n 'summary',\n 'tags',\n 'tools',\n 'widget',\n];\n// The above list, joined into a matching regular expression\nexport const NEGATIVE_SCORE_RE = new RegExp(\n NEGATIVE_SCORE_HINTS.join('|'),\n 'i'\n);\n\n// XPath to try to determine if a page is wordpress. Not always successful.\nexport const IS_WP_SELECTOR = 'meta[name=generator][value^=WordPress]';\n\n// Match a digit. Pretty clear.\nexport const DIGIT_RE = new RegExp('[0-9]');\n\n// A list of words that, if found in link text or URLs, likely mean that\n// this link is not a next page link.\nexport const EXTRANEOUS_LINK_HINTS = [\n 'print',\n 'archive',\n 'comment',\n 'discuss',\n 'e-mail',\n 'email',\n 'share',\n 'reply',\n 'all',\n 'login',\n 'sign',\n 'single',\n 'adx',\n 'entry-unrelated',\n];\nexport const EXTRANEOUS_LINK_HINTS_RE = new RegExp(\n EXTRANEOUS_LINK_HINTS.join('|'),\n 'i'\n);\n\n// Match any phrase that looks like it could be page, or paging, or pagination\nexport const PAGE_RE = new RegExp('pag(e|ing|inat)', 'i');\n\n// Match any link text/classname/id that looks like it could mean the next\n// page. Things like: next, continue, >, >>, » but not >|, »| as those can\n// mean last page.\n// export const NEXT_LINK_TEXT_RE = new RegExp('(next|weiter|continue|>([^\\|]|$)|»([^\\|]|$))', 'i');\nexport const NEXT_LINK_TEXT_RE = /(next|weiter|continue|>([^|]|$)|»([^|]|$))/i;\n\n// Match any link text/classname/id that looks like it is an end link: things\n// like \"first\", \"last\", \"end\", etc.\nexport const CAP_LINK_TEXT_RE = new RegExp('(first|last|end)', 'i');\n\n// Match any link text/classname/id that looks like it means the previous\n// page.\nexport const PREV_LINK_TEXT_RE = new RegExp('(prev|earl|old|new|<|«)', 'i');\n\n// Match 2 or more consecutive <br> tags\nexport const BR_TAGS_RE = new RegExp('(<br[^>]*>[ \\n\\r\\t]*){2,}', 'i');\n\n// Match 1 BR tag.\nexport const BR_TAG_RE = new RegExp('<br[^>]*>', 'i');\n\n// A list of all of the block level tags known in HTML5 and below. Taken from\n// http://bit.ly/qneNIT\nexport const BLOCK_LEVEL_TAGS = [\n 'article',\n 'aside',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'col',\n 'colgroup',\n 'dd',\n 'div',\n 'dl',\n 'dt',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'li',\n 'map',\n 'object',\n 'ol',\n 'output',\n 'p',\n 'pre',\n 'progress',\n 'section',\n 'table',\n 'tbody',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'tr',\n 'ul',\n 'video',\n];\nexport const BLOCK_LEVEL_TAGS_RE = new RegExp(\n `^(${BLOCK_LEVEL_TAGS.join('|')})$`,\n 'i'\n);\n\n// The removal is implemented as a blacklist and whitelist, this test finds\n// blacklisted elements that aren't whitelisted. We do this all in one\n// expression-both because it's only one pass, and because this skips the\n// serialization for whitelisted nodes.\nconst candidatesBlacklist = UNLIKELY_CANDIDATES_BLACKLIST.join('|');\nexport const CANDIDATES_BLACKLIST = new RegExp(candidatesBlacklist, 'i');\n\nconst candidatesWhitelist = UNLIKELY_CANDIDATES_WHITELIST.join('|');\nexport const CANDIDATES_WHITELIST = new RegExp(candidatesWhitelist, 'i');\n\nexport const UNLIKELY_RE = new RegExp(\n `!(${candidatesWhitelist})|(${candidatesBlacklist})`,\n 'i'\n);\n\nexport const PARAGRAPH_SCORE_TAGS = new RegExp('^(p|li|span|pre)$', 'i');\nexport const CHILD_CONTENT_TAGS = new RegExp('^(td|blockquote|ol|ul|dl)$', 'i');\nexport const BAD_TAGS = new RegExp('^(address|form)$', 'i');\n\nexport const HTML_OR_BODY_RE = new RegExp('^(html|body)$', 'i');\n","import { CANDIDATES_WHITELIST, CANDIDATES_BLACKLIST } from './constants';\n\nexport default function stripUnlikelyCandidates($) {\n // Loop through the provided document and remove any non-link nodes\n // that are unlikely candidates for article content.\n //\n // Links are ignored because there are very often links to content\n // that are identified as non-body-content, but may be inside\n // article-like content.\n //\n // :param $: a cheerio object to strip nodes from\n // :return $: the cleaned cheerio object\n $('*')\n .not('a')\n .each((index, node) => {\n const $node = $(node);\n const classes = $node.attr('class');\n const id = $node.attr('id');\n if (!id && !classes) return;\n\n const classAndId = `${classes || ''} ${id || ''}`;\n if (CANDIDATES_WHITELIST.test(classAndId)) {\n return;\n }\n if (CANDIDATES_BLACKLIST.test(classAndId)) {\n $node.remove();\n }\n });\n\n return $;\n}\n","import { paragraphize } from './index';\n\n// ## NOTES:\n// Another good candidate for refactoring/optimizing.\n// Very imperative code, I don't love it. - AP\n\n// Given cheerio object, convert consecutive <br /> tags into\n// <p /> tags instead.\n//\n// :param $: A cheerio object\n\nexport default function brsToPs($) {\n let collapsing = false;\n $('br').each((index, element) => {\n const $element = $(element);\n const nextElement = $element.next().get(0);\n\n if (nextElement && nextElement.tagName.toLowerCase() === 'br') {\n collapsing = true;\n $element.remove();\n } else if (collapsing) {\n collapsing = false;\n paragraphize(element, $, true);\n }\n });\n\n return $;\n}\n","import { BLOCK_LEVEL_TAGS_RE } from './constants';\n\n// Given a node, turn it into a P if it is not already a P, and\n// make sure it conforms to the constraints of a P tag (I.E. does\n// not contain any other block tags.)\n//\n// If the node is a <br />, it treats the following inline siblings\n// as if they were its children.\n//\n// :param node: The node to paragraphize; this is a raw node\n// :param $: The cheerio object to handle dom manipulation\n// :param br: Whether or not the passed node is a br\n\nexport default function paragraphize(node, $, br = false) {\n const $node = $(node);\n\n if (br) {\n let sibling = node.nextSibling;\n const p = $('<p></p>');\n\n // while the next node is text or not a block level element\n // append it to a new p node\n while (\n sibling &&\n !(sibling.tagName && BLOCK_LEVEL_TAGS_RE.test(sibling.tagName))\n ) {\n const { nextSibling } = sibling;\n $(sibling).appendTo(p);\n sibling = nextSibling;\n }\n\n $node.replaceWith(p);\n $node.remove();\n return $;\n }\n\n return $;\n}\n","import { brsToPs, convertNodeTo } from 'utils/dom';\n\nimport { DIV_TO_P_BLOCK_TAGS } from './constants';\n\nfunction convertDivs($) {\n $('div').each((index, div) => {\n const $div = $(div);\n const convertible = $div.children(DIV_TO_P_BLOCK_TAGS).length === 0;\n\n if (convertible) {\n convertNodeTo($div, $, 'p');\n }\n });\n\n return $;\n}\n\nfunction convertSpans($) {\n $('span').each((index, span) => {\n const $span = $(span);\n const convertible = $span.parents('p, div, li, figcaption').length === 0;\n if (convertible) {\n convertNodeTo($span, $, 'p');\n }\n });\n\n return $;\n}\n\n// Loop through the provided doc, and convert any p-like elements to\n// actual paragraph tags.\n//\n// Things fitting this criteria:\n// * Multiple consecutive <br /> tags.\n// * <div /> tags without block level elements inside of them\n// * <span /> tags who are not children of <p /> or <div /> tags.\n//\n// :param $: A cheerio object to search\n// :return cheerio object with new p elements\n// (By-reference mutation, though. Returned just for convenience.)\n\nexport default function convertToParagraphs($) {\n $ = brsToPs($);\n $ = convertDivs($);\n $ = convertSpans($);\n\n return $;\n}\n","import { getAttrs } from 'utils/dom';\n\nexport default function convertNodeTo($node, $, tag = 'p') {\n const node = $node.get(0);\n if (!node) {\n return $;\n }\n const attrs = getAttrs(node) || {};\n\n const attribString = Reflect.ownKeys(attrs)\n .map(key => `${key}=${attrs[key]}`)\n .join(' ');\n let html;\n\n if ($.browser) {\n // In the browser, the contents of noscript tags aren't rendered, therefore\n // transforms on the noscript tag (commonly used for lazy-loading) don't work\n // as expected. This test case handles that\n html =\n node.tagName.toLowerCase() === 'noscript' ? $node.text() : $node.html();\n } else {\n html = $node.contents();\n }\n $node.replaceWith(`<${tag} ${attribString}>${html}</${tag}>`);\n return $;\n}\n","import { SPACER_RE } from './constants';\n\nfunction cleanForHeight($img, $) {\n const height = parseInt($img.attr('height'), 10);\n const width = parseInt($img.attr('width'), 10) || 20;\n\n // Remove images that explicitly have very small heights or\n // widths, because they are most likely shims or icons,\n // which aren't very useful for reading.\n if ((height || 20) < 10 || width < 10) {\n $img.remove();\n } else if (height) {\n // Don't ever specify a height on images, so that we can\n // scale with respect to width without screwing up the\n // aspect ratio.\n $img.removeAttr('height');\n }\n\n return $;\n}\n\n// Cleans out images where the source string matches transparent/spacer/etc\n// TODO This seems very aggressive - AP\nfunction removeSpacers($img, $) {\n if (SPACER_RE.test($img.attr('src'))) {\n $img.remove();\n }\n\n return $;\n}\n\nexport default function cleanImages($article, $) {\n $article.find('img').each((index, img) => {\n const $img = $(img);\n\n cleanForHeight($img, $);\n removeSpacers($img, $);\n });\n\n return $;\n}\n","import URL from 'url';\n\nimport { KEEP_SELECTORS, KEEP_CLASS } from './constants';\n\nexport default function markToKeep(article, $, url, tags = []) {\n if (tags.length === 0) {\n tags = KEEP_SELECTORS;\n }\n\n if (url) {\n const { protocol, hostname } = URL.parse(url);\n tags = [...tags, `iframe[src^=\"${protocol}//${hostname}\"]`];\n }\n\n $(tags.join(','), article).addClass(KEEP_CLASS);\n\n return $;\n}\n","import { STRIP_OUTPUT_TAGS, KEEP_CLASS } from './constants';\n\nexport default function stripJunkTags(article, $, tags = []) {\n if (tags.length === 0) {\n tags = STRIP_OUTPUT_TAGS;\n }\n\n // Remove matching elements, but ignore\n // any element with a class of mercury-parser-keep\n $(tags.join(','), article)\n .not(`.${KEEP_CLASS}`)\n .remove();\n\n return $;\n}\n","import { convertNodeTo } from 'utils/dom';\n\n// H1 tags are typically the article title, which should be extracted\n// by the title extractor instead. If there's less than 3 of them (<3),\n// strip them. Otherwise, turn 'em into H2s.\nexport default function cleanHOnes(article, $) {\n const $hOnes = $('h1', article);\n\n if ($hOnes.length < 3) {\n $hOnes.each((index, node) => $(node).remove());\n } else {\n $hOnes.each((index, node) => {\n convertNodeTo($(node), $, 'h2');\n });\n }\n\n return $;\n}\n","import { getAttrs, setAttrs } from 'utils/dom';\n\nimport { WHITELIST_ATTRS_RE, KEEP_CLASS } from './constants';\n\nfunction removeAllButWhitelist($article, $) {\n $article.find('*').each((index, node) => {\n const attrs = getAttrs(node);\n\n setAttrs(\n node,\n Reflect.ownKeys(attrs).reduce((acc, attr) => {\n if (WHITELIST_ATTRS_RE.test(attr)) {\n return { ...acc, [attr]: attrs[attr] };\n }\n\n return acc;\n }, {})\n );\n });\n\n // Remove the mercury-parser-keep class from result\n $(`.${KEEP_CLASS}`, $article).removeClass(KEEP_CLASS);\n\n return $article;\n}\n\n// Remove attributes like style or align\nexport default function cleanAttributes($article, $) {\n // Grabbing the parent because at this point\n // $article will be wrapped in a div which will\n // have a score set on it.\n return removeAllButWhitelist(\n $article.parent().length ? $article.parent() : $article,\n $\n );\n}\n","export default function removeEmpty($article, $) {\n $article.find('p').each((index, p) => {\n const $p = $(p);\n if ($p.find('iframe, img').length === 0 && $p.text().trim() === '')\n $p.remove();\n });\n\n return $;\n}\n","// // CONTENT FETCHING CONSTANTS ////\n\n// A list of strings that can be considered unlikely candidates when\n// extracting content from a resource. These strings are joined together\n// and then tested for existence using re:test, so may contain simple,\n// non-pipe style regular expression queries if necessary.\nexport const UNLIKELY_CANDIDATES_BLACKLIST = [\n 'ad-break',\n 'adbox',\n 'advert',\n 'addthis',\n 'agegate',\n 'aux',\n 'blogger-labels',\n 'combx',\n 'comment',\n 'conversation',\n 'disqus',\n 'entry-unrelated',\n 'extra',\n 'foot',\n 'form',\n 'header',\n 'hidden',\n 'loader',\n 'login', // Note: This can hit 'blogindex'.\n 'menu',\n 'meta',\n 'nav',\n 'pager',\n 'pagination',\n 'predicta', // readwriteweb inline ad box\n 'presence_control_external', // lifehacker.com container full of false positives\n 'popup',\n 'printfriendly',\n 'related',\n 'remove',\n 'remark',\n 'rss',\n 'share',\n 'shoutbox',\n 'sidebar',\n 'sociable',\n 'sponsor',\n 'tools',\n];\n\n// A list of strings that can be considered LIKELY candidates when\n// extracting content from a resource. Essentially, the inverse of the\n// blacklist above - if something matches both blacklist and whitelist,\n// it is kept. This is useful, for example, if something has a className\n// of \"rss-content entry-content\". It matched 'rss', so it would normally\n// be removed, however, it's also the entry content, so it should be left\n// alone.\n//\n// These strings are joined together and then tested for existence using\n// re:test, so may contain simple, non-pipe style regular expression queries\n// if necessary.\nexport const UNLIKELY_CANDIDATES_WHITELIST = [\n 'and',\n 'article',\n 'body',\n 'blogindex',\n 'column',\n 'content',\n 'entry-content-asset',\n 'format', // misuse of form\n 'hfeed',\n 'hentry',\n 'hatom',\n 'main',\n 'page',\n 'posts',\n 'shadow',\n];\n\n// A list of tags which, if found inside, should cause a <div /> to NOT\n// be turned into a paragraph tag. Shallow div tags without these elements\n// should be turned into <p /> tags.\nexport const DIV_TO_P_BLOCK_TAGS = [\n 'a',\n 'blockquote',\n 'dl',\n 'div',\n 'img',\n 'p',\n 'pre',\n 'table',\n].join(',');\n\n// A list of tags that should be ignored when trying to find the top candidate\n// for a document.\nexport const NON_TOP_CANDIDATE_TAGS = [\n 'br',\n 'b',\n 'i',\n 'label',\n 'hr',\n 'area',\n 'base',\n 'basefont',\n 'input',\n 'img',\n 'link',\n 'meta',\n];\n\nexport const NON_TOP_CANDIDATE_TAGS_RE = new RegExp(\n `^(${NON_TOP_CANDIDATE_TAGS.join('|')})$`,\n 'i'\n);\n\n// A list of selectors that specify, very clearly, either hNews or other\n// very content-specific style content, like Blogger templates.\n// More examples here: http://microformats.org/wiki/blog-post-formats\nexport const HNEWS_CONTENT_SELECTORS = [\n ['.hentry', '.entry-content'],\n ['entry', '.entry-content'],\n ['.entry', '.entry_content'],\n ['.post', '.postbody'],\n ['.post', '.post_body'],\n ['.post', '.post-body'],\n];\n\nexport const PHOTO_HINTS = ['figure', 'photo', 'image', 'caption'];\nexport const PHOTO_HINTS_RE = new RegExp(PHOTO_HINTS.join('|'), 'i');\n\n// A list of strings that denote a positive scoring for this content as being\n// an article container. Checked against className and id.\n//\n// TODO: Perhaps have these scale based on their odds of being quality?\nexport const POSITIVE_SCORE_HINTS = [\n 'article',\n 'articlecontent',\n 'instapaper_body',\n 'blog',\n 'body',\n 'content',\n 'entry-content-asset',\n 'entry',\n 'hentry',\n 'main',\n 'Normal',\n 'page',\n 'pagination',\n 'permalink',\n 'post',\n 'story',\n 'text',\n '[-_]copy', // usatoday\n '\\\\Bcopy',\n];\n\n// The above list, joined into a matching regular expression\nexport const POSITIVE_SCORE_RE = new RegExp(\n POSITIVE_SCORE_HINTS.join('|'),\n 'i'\n);\n\n// Readability publisher-specific guidelines\nexport const READABILITY_ASSET = new RegExp('entry-content-asset', 'i');\n\n// A list of strings that denote a negative scoring for this content as being\n// an article container. Checked against className and id.\n//\n// TODO: Perhaps have these scale based on their odds of being quality?\nexport const NEGATIVE_SCORE_HINTS = [\n 'adbox',\n 'advert',\n 'author',\n 'bio',\n 'bookmark',\n 'bottom',\n 'byline',\n 'clear',\n 'com-',\n 'combx',\n 'comment',\n 'comment\\\\B',\n 'contact',\n 'copy',\n 'credit',\n 'crumb',\n 'date',\n 'deck',\n 'excerpt',\n 'featured', // tnr.com has a featured_content which throws us off\n 'foot',\n 'footer',\n 'footnote',\n 'graf',\n 'head',\n 'info',\n 'infotext', // newscientist.com copyright\n 'instapaper_ignore',\n 'jump',\n 'linebreak',\n 'link',\n 'masthead',\n 'media',\n 'meta',\n 'modal',\n 'outbrain', // slate.com junk\n 'promo',\n 'pr_', // autoblog - press release\n 'related',\n 'respond',\n 'roundcontent', // lifehacker restricted content warning\n 'scroll',\n 'secondary',\n 'share',\n 'shopping',\n 'shoutbox',\n 'side',\n 'sidebar',\n 'sponsor',\n 'stamp',\n 'sub',\n 'summary',\n 'tags',\n 'tools',\n 'widget',\n];\n// The above list, joined into a matching regular expression\nexport const NEGATIVE_SCORE_RE = new RegExp(\n NEGATIVE_SCORE_HINTS.join('|'),\n 'i'\n);\n\n// Match a digit. Pretty clear.\nexport const DIGIT_RE = new RegExp('[0-9]');\n\n// Match 2 or more consecutive <br> tags\nexport const BR_TAGS_RE = new RegExp('(<br[^>]*>[ \\n\\r\\t]*){2,}', 'i');\n\n// Match 1 BR tag.\nexport const BR_TAG_RE = new RegExp('<br[^>]*>', 'i');\n\n// A list of all of the block level tags known in HTML5 and below. Taken from\n// http://bit.ly/qneNIT\nexport const BLOCK_LEVEL_TAGS = [\n 'article',\n 'aside',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'col',\n 'colgroup',\n 'dd',\n 'div',\n 'dl',\n 'dt',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'li',\n 'map',\n 'object',\n 'ol',\n 'output',\n 'p',\n 'pre',\n 'progress',\n 'section',\n 'table',\n 'tbody',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'tr',\n 'ul',\n 'video',\n];\nexport const BLOCK_LEVEL_TAGS_RE = new RegExp(\n `^(${BLOCK_LEVEL_TAGS.join('|')})$`,\n 'i'\n);\n\n// The removal is implemented as a blacklist and whitelist, this test finds\n// blacklisted elements that aren't whitelisted. We do this all in one\n// expression-both because it's only one pass, and because this skips the\n// serialization for whitelisted nodes.\nconst candidatesBlacklist = UNLIKELY_CANDIDATES_BLACKLIST.join('|');\nexport const CANDIDATES_BLACKLIST = new RegExp(candidatesBlacklist, 'i');\n\nconst candidatesWhitelist = UNLIKELY_CANDIDATES_WHITELIST.join('|');\nexport const CANDIDATES_WHITELIST = new RegExp(candidatesWhitelist, 'i');\n\nexport const UNLIKELY_RE = new RegExp(\n `!(${candidatesWhitelist})|(${candidatesBlacklist})`,\n 'i'\n);\n\nexport const PARAGRAPH_SCORE_TAGS = new RegExp('^(p|li|span|pre)$', 'i');\nexport const CHILD_CONTENT_TAGS = new RegExp('^(td|blockquote|ol|ul|dl)$', 'i');\nexport const BAD_TAGS = new RegExp('^(address|form)$', 'i');\n\nexport const HTML_OR_BODY_RE = new RegExp('^(html|body)$', 'i');\n","import {\n NEGATIVE_SCORE_RE,\n POSITIVE_SCORE_RE,\n PHOTO_HINTS_RE,\n READABILITY_ASSET,\n} from './constants';\n\n// Get the score of a node based on its className and id.\nexport default function getWeight(node) {\n const classes = node.attr('class');\n const id = node.attr('id');\n let score = 0;\n\n if (id) {\n // if id exists, try to score on both positive and negative\n if (POSITIVE_SCORE_RE.test(id)) {\n score += 25;\n }\n if (NEGATIVE_SCORE_RE.test(id)) {\n score -= 25;\n }\n }\n\n if (classes) {\n if (score === 0) {\n // if classes exist and id did not contribute to score\n // try to score on both positive and negative\n if (POSITIVE_SCORE_RE.test(classes)) {\n score += 25;\n }\n if (NEGATIVE_SCORE_RE.test(classes)) {\n score -= 25;\n }\n }\n\n // even if score has been set by id, add score for\n // possible photo matches\n // \"try to keep photos if we can\"\n if (PHOTO_HINTS_RE.test(classes)) {\n score += 10;\n }\n\n // add 25 if class matches entry-content-asset,\n // a class apparently instructed for use in the\n // Readability publisher guidelines\n // https://www.readability.com/developers/guidelines\n if (READABILITY_ASSET.test(classes)) {\n score += 25;\n }\n }\n\n return score;\n}\n","// returns the score of a node based on\n// the node's score attribute\n// returns null if no score set\nexport default function getScore($node) {\n return parseFloat($node.attr('score')) || null;\n}\n","// return 1 for every comma in text\nexport default function scoreCommas(text) {\n return (text.match(/,/g) || []).length;\n}\n","const idkRe = new RegExp('^(p|pre)$', 'i');\n\nexport default function scoreLength(textLength, tagName = 'p') {\n const chunks = textLength / 50;\n\n if (chunks > 0) {\n let lengthBonus;\n\n // No idea why p or pre are being tamped down here\n // but just following the source for now\n // Not even sure why tagName is included here,\n // since this is only being called from the context\n // of scoreParagraph\n if (idkRe.test(tagName)) {\n lengthBonus = chunks - 2;\n } else {\n lengthBonus = chunks - 1.25;\n }\n\n return Math.min(Math.max(lengthBonus, 0), 3);\n }\n\n return 0;\n}\n","import { scoreCommas, scoreLength } from './index';\n\n// Score a paragraph using various methods. Things like number of\n// commas, etc. Higher is better.\nexport default function scoreParagraph(node) {\n let score = 1;\n const text = node.text().trim();\n const textLength = text.length;\n\n // If this paragraph is less than 25 characters, don't count it.\n if (textLength < 25) {\n return 0;\n }\n\n // Add points for any commas within this paragraph\n score += scoreCommas(text);\n\n // For every 50 characters in this paragraph, add another point. Up\n // to 3 points.\n score += scoreLength(textLength);\n\n // Articles can end with short paragraphs when people are being clever\n // but they can also end with short paragraphs setting up lists of junk\n // that we strip. This negative tweaks junk setup paragraphs just below\n // the cutoff threshold.\n if (text.slice(-1) === ':') {\n score -= 1;\n }\n\n return score;\n}\n","export default function setScore($node, $, score) {\n $node.attr('score', score);\n return $node;\n}\n","import { getOrInitScore, setScore } from './index';\n\nexport default function addScore($node, $, amount) {\n try {\n const score = getOrInitScore($node, $) + amount;\n setScore($node, $, score);\n } catch (e) {\n // Ignoring; error occurs in scoreNode\n }\n\n return $node;\n}\n","import { addScore } from './index';\n\n// Adds 1/4 of a child's score to its parent\nexport default function addToParent(node, $, score) {\n const parent = node.parent();\n if (parent) {\n addScore(parent, $, score * 0.25);\n }\n\n return node;\n}\n","import { getScore, scoreNode, getWeight, addToParent } from './index';\n\n// gets and returns the score if it exists\n// if not, initializes a score based on\n// the node's tag type\nexport default function getOrInitScore($node, $, weightNodes = true) {\n let score = getScore($node);\n\n if (score) {\n return score;\n }\n\n score = scoreNode($node);\n\n if (weightNodes) {\n score += getWeight($node);\n }\n\n addToParent($node, $, score);\n\n return score;\n}\n","import { scoreParagraph } from './index';\nimport {\n PARAGRAPH_SCORE_TAGS,\n CHILD_CONTENT_TAGS,\n BAD_TAGS,\n} from './constants';\n\n// Score an individual node. Has some smarts for paragraphs, otherwise\n// just scores based on tag.\nexport default function scoreNode($node) {\n const { tagName } = $node.get(0);\n\n // TODO: Consider ordering by most likely.\n // E.g., if divs are a more common tag on a page,\n // Could save doing that regex test on every node – AP\n if (PARAGRAPH_SCORE_TAGS.test(tagName)) {\n return scoreParagraph($node);\n }\n if (tagName.toLowerCase() === 'div') {\n return 5;\n }\n if (CHILD_CONTENT_TAGS.test(tagName)) {\n return 3;\n }\n if (BAD_TAGS.test(tagName)) {\n return -3;\n }\n if (tagName.toLowerCase() === 'th') {\n return -5;\n }\n\n return 0;\n}\n","import { convertNodeTo } from 'utils/dom';\n\nimport { HNEWS_CONTENT_SELECTORS } from './constants';\nimport { scoreNode, setScore, getOrInitScore, addScore } from './index';\n\nfunction convertSpans($node, $) {\n if ($node.get(0)) {\n const { tagName } = $node.get(0);\n\n if (tagName === 'span') {\n // convert spans to divs\n convertNodeTo($node, $, 'div');\n }\n }\n}\n\nfunction addScoreTo($node, $, score) {\n if ($node) {\n convertSpans($node, $);\n addScore($node, $, score);\n }\n}\n\nfunction scorePs($, weightNodes) {\n $('p, pre')\n .not('[score]')\n .each((index, node) => {\n // The raw score for this paragraph, before we add any parent/child\n // scores.\n let $node = $(node);\n $node = setScore($node, $, getOrInitScore($node, $, weightNodes));\n\n const $parent = $node.parent();\n const rawScore = scoreNode($node);\n\n addScoreTo($parent, $, rawScore, weightNodes);\n if ($parent) {\n // Add half of the individual content score to the\n // grandparent\n addScoreTo($parent.parent(), $, rawScore / 2, weightNodes);\n }\n });\n\n return $;\n}\n\n// score content. Parents get the full value of their children's\n// content score, grandparents half\nexport default function scoreContent($, weightNodes = true) {\n // First, look for special hNews based selectors and give them a big\n // boost, if they exist\n HNEWS_CONTENT_SELECTORS.forEach(([parentSelector, childSelector]) => {\n $(`${parentSelector} ${childSelector}`).each((index, node) => {\n addScore($(node).parent(parentSelector), $, 80);\n });\n });\n\n // Doubling this again\n // Previous solution caused a bug\n // in which parents weren't retaining\n // scores. This is not ideal, and\n // should be fixed.\n scorePs($, weightNodes);\n scorePs($, weightNodes);\n\n return $;\n}\n","import { textLength, linkDensity } from 'utils/dom';\nimport { hasSentenceEnd } from 'utils/text';\n\nimport { NON_TOP_CANDIDATE_TAGS_RE } from './constants';\nimport { getScore } from './index';\n\n// Now that we have a top_candidate, look through the siblings of\n// it to see if any of them are decently scored. If they are, they\n// may be split parts of the content (Like two divs, a preamble and\n// a body.) Example:\n// http://articles.latimes.com/2009/oct/14/business/fi-bigtvs14\nexport default function mergeSiblings($candidate, topScore, $) {\n if (!$candidate.parent().length) {\n return $candidate;\n }\n\n const siblingScoreThreshold = Math.max(10, topScore * 0.25);\n const wrappingDiv = $('<div></div>');\n\n $candidate\n .parent()\n .children()\n .each((index, sibling) => {\n const $sibling = $(sibling);\n // Ignore tags like BR, HR, etc\n if (NON_TOP_CANDIDATE_TAGS_RE.test(sibling.tagName)) {\n return null;\n }\n\n const siblingScore = getScore($sibling);\n if (siblingScore) {\n if ($sibling.get(0) === $candidate.get(0)) {\n wrappingDiv.append($sibling);\n } else {\n let contentBonus = 0;\n const density = linkDensity($sibling);\n\n // If sibling has a very low link density,\n // give it a small bonus\n if (density < 0.05) {\n contentBonus += 20;\n }\n\n // If sibling has a high link density,\n // give it a penalty\n if (density >= 0.5) {\n contentBonus -= 20;\n }\n\n // If sibling node has the same class as\n // candidate, give it a bonus\n if ($sibling.attr('class') === $candidate.attr('class')) {\n contentBonus += topScore * 0.2;\n }\n\n const newScore = siblingScore + contentBonus;\n\n if (newScore >= siblingScoreThreshold) {\n return wrappingDiv.append($sibling);\n }\n if (sibling.tagName === 'p') {\n const siblingContent = $sibling.text();\n const siblingContentLength = textLength(siblingContent);\n\n if (siblingContentLength > 80 && density < 0.25) {\n return wrappingDiv.append($sibling);\n }\n if (\n siblingContentLength <= 80 &&\n density === 0 &&\n hasSentenceEnd(siblingContent)\n ) {\n return wrappingDiv.append($sibling);\n }\n }\n }\n }\n\n return null;\n });\n\n if (\n wrappingDiv.children().length === 1 &&\n wrappingDiv\n .children()\n .first()\n .get(0) === $candidate.get(0)\n ) {\n return $candidate;\n }\n\n return wrappingDiv;\n}\n","import { NON_TOP_CANDIDATE_TAGS_RE } from './constants';\nimport { getScore } from './index';\nimport mergeSiblings from './merge-siblings';\n\n// After we've calculated scores, loop through all of the possible\n// candidate nodes we found and find the one with the highest score.\nexport default function findTopCandidate($) {\n let $candidate;\n let topScore = 0;\n\n $('[score]').each((index, node) => {\n // Ignore tags like BR, HR, etc\n if (NON_TOP_CANDIDATE_TAGS_RE.test(node.tagName)) {\n return;\n }\n\n const $node = $(node);\n const score = getScore($node);\n\n if (score > topScore) {\n topScore = score;\n $candidate = $node;\n }\n });\n\n // If we don't have a candidate, return the body\n // or whatever the first element is\n if (!$candidate) {\n return $('body') || $('*').first();\n }\n\n $candidate = mergeSiblings($candidate, topScore, $);\n\n return $candidate;\n}\n","// Scoring\nexport { default as getWeight } from './get-weight';\nexport { default as getScore } from './get-score';\nexport { default as scoreCommas } from './score-commas';\nexport { default as scoreLength } from './score-length';\nexport { default as scoreParagraph } from './score-paragraph';\nexport { default as setScore } from './set-score';\nexport { default as addScore } from './add-score';\nexport { default as addToParent } from './add-to-parent';\nexport { default as getOrInitScore } from './get-or-init-score';\nexport { default as scoreNode } from './score-node';\nexport { default as scoreContent } from './score-content';\nexport { default as findTopCandidate } from './find-top-candidate';\n","import {\n getScore,\n setScore,\n getOrInitScore,\n scoreCommas,\n} from 'extractors/generic/content/scoring';\n\nimport { CLEAN_CONDITIONALLY_TAGS, KEEP_CLASS } from './constants';\nimport { normalizeSpaces } from '../text';\nimport { linkDensity } from './index';\n\nfunction removeUnlessContent($node, $, weight) {\n // Explicitly save entry-content-asset tags, which are\n // noted as valuable in the Publisher guidelines. For now\n // this works everywhere. We may want to consider making\n // this less of a sure-thing later.\n if ($node.hasClass('entry-content-asset')) {\n return;\n }\n\n const content = normalizeSpaces($node.text());\n\n if (scoreCommas(content) < 10) {\n const pCount = $('p', $node).length;\n const inputCount = $('input', $node).length;\n\n // Looks like a form, too many inputs.\n if (inputCount > pCount / 3) {\n $node.remove();\n return;\n }\n\n const contentLength = content.length;\n const imgCount = $('img', $node).length;\n\n // Content is too short, and there are no images, so\n // this is probably junk content.\n if (contentLength < 25 && imgCount === 0) {\n $node.remove();\n return;\n }\n\n const density = linkDensity($node);\n\n // Too high of link density, is probably a menu or\n // something similar.\n // console.log(weight, density, contentLength)\n if (weight < 25 && density > 0.2 && contentLength > 75) {\n $node.remove();\n return;\n }\n\n // Too high of a link density, despite the score being\n // high.\n if (weight >= 25 && density > 0.5) {\n // Don't remove the node if it's a list and the\n // previous sibling starts with a colon though. That\n // means it's probably content.\n const tagName = $node.get(0).tagName.toLowerCase();\n const nodeIsList = tagName === 'ol' || tagName === 'ul';\n if (nodeIsList) {\n const previousNode = $node.prev();\n if (\n previousNode &&\n normalizeSpaces(previousNode.text()).slice(-1) === ':'\n ) {\n return;\n }\n }\n\n $node.remove();\n return;\n }\n\n const scriptCount = $('script', $node).length;\n\n // Too many script tags, not enough content.\n if (scriptCount > 0 && contentLength < 150) {\n $node.remove();\n }\n }\n}\n\n// Given an article, clean it of some superfluous content specified by\n// tags. Things like forms, ads, etc.\n//\n// Tags is an array of tag name's to search through. (like div, form,\n// etc)\n//\n// Return this same doc.\nexport default function cleanTags($article, $) {\n $(CLEAN_CONDITIONALLY_TAGS, $article).each((index, node) => {\n const $node = $(node);\n // If marked to keep, skip it\n if ($node.hasClass(KEEP_CLASS) || $node.find(`.${KEEP_CLASS}`).length > 0)\n return;\n\n let weight = getScore($node);\n if (!weight) {\n weight = getOrInitScore($node, $);\n setScore($node, $, weight);\n }\n\n // drop node if its weight is < 0\n if (weight < 0) {\n $node.remove();\n } else {\n // deteremine if node seems like content\n removeUnlessContent($node, $, weight);\n }\n });\n\n return $;\n}\n","import { getWeight } from 'extractors/generic/content/scoring';\n\nimport { HEADER_TAG_LIST } from './constants';\nimport { normalizeSpaces } from '../text';\n\nexport default function cleanHeaders($article, $, title = '') {\n $(HEADER_TAG_LIST, $article).each((index, header) => {\n const $header = $(header);\n // Remove any headers that appear before all other p tags in the\n // document. This probably means that it was part of the title, a\n // subtitle or something else extraneous like a datestamp or byline,\n // all of which should be handled by other metadata handling.\n if ($($header, $article).prevAll('p').length === 0) {\n return $header.remove();\n }\n\n // Remove any headers that match the title exactly.\n if (normalizeSpaces($(header).text()) === title) {\n return $header.remove();\n }\n\n // If this header has a negative weight, it's probably junk.\n // Get rid of it.\n if (getWeight($(header)) < 0) {\n return $header.remove();\n }\n\n return $header;\n });\n\n return $;\n}\n","import { convertNodeTo } from 'utils/dom';\n\n// Rewrite the tag name to div if it's a top level node like body or\n// html to avoid later complications with multiple body tags.\nexport default function rewriteTopLevel(article, $) {\n // I'm not using context here because\n // it's problematic when converting the\n // top-level/root node - AP\n $ = convertNodeTo($('html'), $, 'div');\n $ = convertNodeTo($('body'), $, 'div');\n\n return $;\n}\n","import URL from 'url';\n\nimport { getAttrs, setAttr } from 'utils/dom';\n\nfunction absolutize($, rootUrl, attr) {\n const baseUrl = $('base').attr('href');\n\n $(`[${attr}]`).each((_, node) => {\n const attrs = getAttrs(node);\n const url = attrs[attr];\n if (!url) return;\n const absoluteUrl = URL.resolve(baseUrl || rootUrl, url);\n\n setAttr(node, attr, absoluteUrl);\n });\n}\n\nfunction absolutizeSet($, rootUrl, $content) {\n $('[srcset]', $content).each((_, node) => {\n const attrs = getAttrs(node);\n const urlSet = attrs.srcset;\n\n if (urlSet) {\n // a comma should be considered part of the candidate URL unless preceded by a descriptor\n // descriptors can only contain positive numbers followed immediately by either 'w' or 'x'\n // space characters inside the URL should be encoded (%20 or +)\n const candidates = urlSet.match(\n /(?:\\s*)(\\S+(?:\\s*[\\d.]+[wx])?)(?:\\s*,\\s*)?/g\n );\n if (!candidates) return;\n const absoluteCandidates = candidates.map(candidate => {\n // a candidate URL cannot start or end with a comma\n // descriptors are separated from the URLs by unescaped whitespace\n const parts = candidate\n .trim()\n .replace(/,$/, '')\n .split(/\\s+/);\n parts[0] = URL.resolve(rootUrl, parts[0]);\n return parts.join(' ');\n });\n const absoluteUrlSet = [...new Set(absoluteCandidates)].join(', ');\n setAttr(node, 'srcset', absoluteUrlSet);\n }\n });\n}\n\nexport default function makeLinksAbsolute($content, $, url) {\n ['href', 'src'].forEach(attr => absolutize($, url, attr));\n absolutizeSet($, url, $content);\n\n return $content;\n}\n","export function textLength(text) {\n return text.trim().replace(/\\s+/g, ' ').length;\n}\n\n// Determines what percentage of the text\n// in a node is link text\n// Takes a node, returns a float\nexport function linkDensity($node) {\n const totalTextLength = textLength($node.text());\n\n const linkText = $node.find('a').text();\n const linkLength = textLength(linkText);\n\n if (totalTextLength > 0) {\n return linkLength / totalTextLength;\n }\n if (totalTextLength === 0 && linkLength > 0) {\n return 1;\n }\n\n return 0;\n}\n","import { stripTags } from 'utils/dom';\n\n// Given a node type to search for, and a list of meta tag names to\n// search for, find a meta tag associated.\nexport default function extractFromMeta(\n $,\n metaNames,\n cachedNames,\n cleanTags = true\n) {\n const foundNames = metaNames.filter(name => cachedNames.indexOf(name) !== -1);\n\n // eslint-disable-next-line no-restricted-syntax\n for (const name of foundNames) {\n const type = 'name';\n const value = 'value';\n\n const nodes = $(`meta[${type}=\"${name}\"]`);\n\n // Get the unique value of every matching node, in case there\n // are two meta tags with the same name and value.\n // Remove empty values.\n const values = nodes\n .map((index, node) => $(node).attr(value))\n .toArray()\n .filter(text => text !== '');\n\n // If we have more than one value for the same name, we have a\n // conflict and can't trust any of them. Skip this name. If we have\n // zero, that means our meta tags had no values. Skip this name\n // also.\n if (values.length === 1) {\n let metaValue;\n // Meta values that contain HTML should be stripped, as they\n // weren't subject to cleaning previously.\n if (cleanTags) {\n metaValue = stripTags(values[0], $);\n } else {\n [metaValue] = values;\n }\n\n return metaValue;\n }\n }\n\n // If nothing is found, return null\n return null;\n}\n","import { withinComment } from 'utils/dom';\n\nfunction isGoodNode($node, maxChildren) {\n // If it has a number of children, it's more likely a container\n // element. Skip it.\n if ($node.children().length > maxChildren) {\n return false;\n }\n // If it looks to be within a comment, skip it.\n if (withinComment($node)) {\n return false;\n }\n\n return true;\n}\n\n// Given a a list of selectors find content that may\n// be extractable from the document. This is for flat\n// meta-information, like author, title, date published, etc.\nexport default function extractFromSelectors(\n $,\n selectors,\n maxChildren = 1,\n textOnly = true\n) {\n // eslint-disable-next-line no-restricted-syntax\n for (const selector of selectors) {\n const nodes = $(selector);\n\n // If we didn't get exactly one of this selector, this may be\n // a list of articles or comments. Skip it.\n if (nodes.length === 1) {\n const $node = $(nodes[0]);\n\n if (isGoodNode($node, maxChildren)) {\n let content;\n if (textOnly) {\n content = $node.text();\n } else {\n content = $node.html();\n }\n\n if (content) {\n return content;\n }\n }\n }\n }\n\n return null;\n}\n","// strips all tags from a string of text\nexport default function stripTags(text, $) {\n // Wrapping text in html element prevents errors when text\n // has no html\n const cleanText = $(`<span>${text}</span>`).text();\n return cleanText === '' ? text : cleanText;\n}\n","import { getAttrs } from 'utils/dom';\n\nexport default function withinComment($node) {\n const parents = $node.parents().toArray();\n const commentParent = parents.find(parent => {\n const attrs = getAttrs(parent);\n const { class: nodeClass, id } = attrs;\n const classAndId = `${nodeClass} ${id}`;\n return classAndId.includes('comment');\n });\n\n return commentParent !== undefined;\n}\n","// Given a node, determine if it's article-like enough to return\n// param: node (a cheerio node)\n// return: boolean\n\nexport default function nodeIsSufficient($node) {\n return $node.text().trim().length >= 100;\n}\n","import { IS_WP_SELECTOR } from './constants';\n\nexport default function isWordpress($) {\n return $(IS_WP_SELECTOR).length > 0;\n}\n","export default function getAttrs(node) {\n const { attribs, attributes } = node;\n\n if (!attribs && attributes) {\n const attrs = Reflect.ownKeys(attributes).reduce((acc, index) => {\n const attr = attributes[index];\n\n if (!attr.name || !attr.value) return acc;\n\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n return attrs;\n }\n\n return attribs;\n}\n","export default function setAttr(node, attr, val) {\n if (node.attribs) {\n node.attribs[attr] = val;\n } else if (node.attributes) {\n node.setAttribute(attr, val);\n }\n\n return node;\n}\n","export default function setAttrs(node, attrs) {\n if (node.attribs) {\n node.attribs = attrs;\n } else if (node.attributes) {\n while (node.attributes.length > 0) {\n node.removeAttribute(node.attributes[0].name);\n }\n\n Reflect.ownKeys(attrs).forEach(key => {\n node.setAttribute(key, attrs[key]);\n });\n }\n\n return node;\n}\n","// DOM manipulation\nexport {\n default as stripUnlikelyCandidates,\n} from './strip-unlikely-candidates';\nexport { default as brsToPs } from './brs-to-ps';\nexport { default as paragraphize } from './paragraphize';\nexport { default as convertToParagraphs } from './convert-to-paragraphs';\nexport { default as convertNodeTo } from './convert-node-to';\nexport { default as cleanImages } from './clean-images';\nexport { default as markToKeep } from './mark-to-keep';\nexport { default as stripJunkTags } from './strip-junk-tags';\nexport { default as cleanHOnes } from './clean-h-ones';\nexport { default as cleanAttributes } from './clean-attributes';\nexport { default as removeEmpty } from './remove-empty';\nexport { default as cleanTags } from './clean-tags';\nexport { default as cleanHeaders } from './clean-headers';\nexport { default as rewriteTopLevel } from './rewrite-top-level';\nexport { default as makeLinksAbsolute } from './make-links-absolute';\nexport { textLength, linkDensity } from './link-density';\nexport { default as extractFromMeta } from './extract-from-meta';\nexport { default as extractFromSelectors } from './extract-from-selectors';\nexport { default as stripTags } from './strip-tags';\nexport { default as withinComment } from './within-comment';\nexport { default as nodeIsSufficient } from './node-is-sufficient';\nexport { default as isWordpress } from './is-wordpress';\nexport { default as getAttrs } from './get-attrs';\nexport { default as setAttr } from './set-attr';\nexport { default as setAttrs } from './set-attrs';\n","export const IS_LINK = new RegExp('https?://', 'i');\nconst IMAGE_RE = '.(png|gif|jpe?g)';\nexport const IS_IMAGE = new RegExp(`${IMAGE_RE}`, 'i');\nexport const IS_SRCSET = new RegExp(\n `${IMAGE_RE}(\\\\?\\\\S+)?(\\\\s*[\\\\d.]+[wx])`,\n 'i'\n);\n\nexport const TAGS_TO_REMOVE = ['script', 'style', 'form'].join(',');\n","import { getAttrs } from 'utils/dom';\n\nimport { IS_LINK, IS_IMAGE, IS_SRCSET } from './constants';\n\n// Convert all instances of images with potentially\n// lazy loaded images into normal images.\n// Many sites will have img tags with no source, or an image tag with a src\n// attribute that a is a placeholer. We need to be able to properly fill in\n// the src attribute so the images are no longer lazy loaded.\nexport default function convertLazyLoadedImages($) {\n const extractSrcFromJSON = str => {\n try {\n const { src } = JSON.parse(str);\n if (typeof src === 'string') return src;\n } catch (_) {\n return false;\n }\n\n return false;\n };\n\n $('img').each((_, img) => {\n const attrs = getAttrs(img);\n\n Reflect.ownKeys(attrs).forEach(attr => {\n const value = attrs[attr];\n\n if (attr !== 'srcset' && IS_LINK.test(value) && IS_SRCSET.test(value)) {\n $(img).attr('srcset', value);\n } else if (\n attr !== 'src' &&\n attr !== 'srcset' &&\n IS_LINK.test(value) &&\n IS_IMAGE.test(value)\n ) {\n // Is the value a JSON object? If so, we should attempt to extract the image src from the data.\n const existingSrc = extractSrcFromJSON(value);\n if (existingSrc) {\n $(img).attr('src', existingSrc);\n } else {\n $(img).attr('src', value);\n }\n }\n });\n });\n\n return $;\n}\n","import { TAGS_TO_REMOVE } from './constants';\n\nfunction isComment(index, node) {\n return node.type === 'comment';\n}\n\nfunction cleanComments($) {\n $.root()\n .find('*')\n .contents()\n .filter(isComment)\n .remove();\n\n return $;\n}\n\nexport default function clean($) {\n $(TAGS_TO_REMOVE).remove();\n\n $ = cleanComments($);\n return $;\n}\n","import cheerio from 'cheerio';\nimport iconv from 'iconv-lite';\n\nimport { getEncoding } from 'utils/text';\nimport { fetchResource } from './utils';\nimport { normalizeMetaTags, convertLazyLoadedImages, clean } from './utils/dom';\n\nconst Resource = {\n // Create a Resource.\n //\n // :param url: The URL for the document we should retrieve.\n // :param response: If set, use as the response rather than\n // attempting to fetch it ourselves. Expects a\n // string.\n // :param headers: Custom headers to be included in the request\n async create(url, preparedResponse, parsedUrl, headers = {}) {\n let result;\n\n if (preparedResponse) {\n const validResponse = {\n statusMessage: 'OK',\n statusCode: 200,\n headers: {\n 'content-type': 'text/html',\n 'content-length': 500,\n },\n };\n\n result = {\n body: preparedResponse,\n response: validResponse,\n alreadyDecoded: true,\n };\n } else {\n result = await fetchResource(url, parsedUrl, headers);\n }\n\n if (result.error) {\n result.failed = true;\n return result;\n }\n\n return this.generateDoc(result);\n },\n\n generateDoc({ body: content, response, alreadyDecoded = false }) {\n const { 'content-type': contentType = '' } = response.headers;\n\n // TODO: Implement is_text function from\n // https://github.com/ReadabilityHoldings/readability/blob/8dc89613241d04741ebd42fa9fa7df1b1d746303/readability/utils/text.py#L57\n if (!contentType.includes('html') && !contentType.includes('text')) {\n throw new Error('Content does not appear to be text.');\n }\n\n let $ = this.encodeDoc({ content, contentType, alreadyDecoded });\n\n if ($.root().children().length === 0) {\n throw new Error('No children, likely a bad parse.');\n }\n\n $ = normalizeMetaTags($);\n $ = convertLazyLoadedImages($);\n $ = clean($);\n\n return $;\n },\n\n encodeDoc({ content, contentType, alreadyDecoded = false }) {\n if (alreadyDecoded) {\n return cheerio.load(content);\n }\n\n const encoding = getEncoding(contentType);\n let decodedContent = iconv.decode(content, encoding);\n let $ = cheerio.load(decodedContent);\n // after first cheerio.load, check to see if encoding matches\n const contentTypeSelector = cheerio.browser\n ? 'meta[http-equiv=content-type]'\n : 'meta[http-equiv=content-type i]';\n const metaContentType =\n $(contentTypeSelector).attr('content') ||\n $('meta[charset]').attr('charset');\n const properEncoding = getEncoding(metaContentType);\n\n // if encodings in the header/body dont match, use the one in the body\n if (metaContentType && properEncoding !== encoding) {\n decodedContent = iconv.decode(content, properEncoding);\n $ = cheerio.load(decodedContent);\n }\n\n return $;\n },\n};\n\nexport default Resource;\n","export default function* range(start = 1, end = 1) {\n while (start <= end) {\n yield (start += 1);\n }\n}\n","// extremely simple url validation as a first step\nexport default function validateUrl({ hostname }) {\n // If this isn't a valid url, return an error message\n return !!hostname;\n}\n","const merge = (extractor, domains) =>\n domains.reduce((acc, domain) => {\n acc[domain] = extractor;\n return acc;\n }, {});\n\nexport default function mergeSupportedDomains(extractor) {\n return extractor.supportedDomains\n ? merge(extractor, [extractor.domain, ...extractor.supportedDomains])\n : merge(extractor, [extractor.domain]);\n}\n","import mergeSupportedDomains from '../utils/merge-supported-domains';\n\nexport const apiExtractors = {};\n\nexport default function addExtractor(extractor) {\n if (!extractor || !extractor.domain) {\n return {\n error: true,\n message: 'Unable to add custom extractor. Invalid parameters.',\n };\n }\n\n Object.assign(apiExtractors, mergeSupportedDomains(extractor));\n\n return apiExtractors;\n}\n","export const BloggerExtractor = {\n domain: 'blogspot.com',\n content: {\n // Blogger is insane and does not load its content\n // initially in the page, but it's all there\n // in noscript\n selectors: ['.post-content noscript'],\n\n // Selectors to remove from the extracted content\n clean: [],\n\n // Convert the noscript tag to a div\n transforms: {\n noscript: 'div',\n },\n },\n\n author: {\n selectors: ['.post-author-name'],\n },\n\n title: {\n selectors: ['.post h2.title'],\n },\n\n date_published: {\n selectors: ['span.publishdate'],\n },\n};\n","export const NYMagExtractor = {\n domain: 'nymag.com',\n content: {\n // Order by most likely. Extractor will stop on first occurrence\n selectors: ['div.article-content', 'section.body', 'article.article'],\n\n // Selectors to remove from the extracted content\n clean: ['.ad', '.single-related-story'],\n\n // Object of tranformations to make on matched elements\n // Each key is the selector, each value is the tag to\n // transform to.\n // If a function is given, it should return a string\n // to convert to or nothing (in which case it will not perform\n // the transformation.\n transforms: {\n // Convert h1s to h2s\n h1: 'h2',\n\n // Convert lazy-loaded noscript images to figures\n noscript: ($node, $) => {\n const $children = $.browser ? $($node.text()) : $node.children();\n if (\n $children.length === 1 &&\n $children.get(0) !== undefined &&\n $children.get(0).tagName.toLowerCase() === 'img'\n ) {\n return 'figure';\n }\n\n return null;\n },\n },\n },\n\n title: {\n selectors: ['h1.lede-feature-title', 'h1.headline-primary', 'h1'],\n },\n\n author: {\n selectors: ['.by-authors', '.lede-feature-author'],\n },\n\n dek: {\n selectors: ['.lede-feature-teaser'],\n },\n\n date_published: {\n selectors: [\n ['time.article-timestamp[datetime]', 'datetime'],\n 'time.article-timestamp',\n ],\n },\n};\n","export const WikipediaExtractor = {\n domain: 'wikipedia.org',\n content: {\n selectors: ['#mw-content-text'],\n\n defaultCleaner: false,\n\n // transform top infobox to an image with caption\n transforms: {\n '.infobox img': $node => {\n const $parent = $node.parents('.infobox');\n // Only prepend the first image in .infobox\n if ($parent.children('img').length === 0) {\n $parent.prepend($node);\n }\n },\n '.infobox caption': 'figcaption',\n '.infobox': 'figure',\n },\n\n // Selectors to remove from the extracted content\n clean: [\n '.mw-editsection',\n 'figure tr, figure td, figure tbody',\n '#toc',\n '.navbox',\n ],\n },\n\n author: 'Wikipedia Contributors',\n\n title: {\n selectors: ['h2.title'],\n },\n\n date_published: {\n selectors: ['#footer-info-lastmod'],\n },\n};\n","export const TwitterExtractor = {\n domain: 'twitter.com',\n\n content: {\n transforms: {\n // We're transforming essentially the whole page here.\n // Twitter doesn't have nice selectors, so our initial\n // selector grabs the whole page, then we're re-writing\n // it to fit our needs before we clean it up.\n '.permalink[role=main]': ($node, $) => {\n const tweets = $node.find('.tweet');\n const $tweetContainer = $('<div id=\"TWEETS_GO_HERE\"></div>');\n $tweetContainer.append(tweets);\n $node.replaceWith($tweetContainer);\n },\n\n // Twitter wraps @ with s, which\n // renders as a strikethrough\n s: 'span',\n },\n\n selectors: ['.permalink[role=main]'],\n\n defaultCleaner: false,\n\n clean: ['.stream-item-footer', 'button', '.tweet-details-fixer'],\n },\n\n author: {\n selectors: ['.tweet.permalink-tweet .username'],\n },\n\n date_published: {\n selectors: [['.permalink-tweet ._timestamp[data-time-ms]', 'data-time-ms']],\n },\n};\n","export const NYTimesExtractor = {\n domain: 'www.nytimes.com',\n\n title: {\n selectors: [\n 'h1[data-testid=\"headline\"]',\n 'h1.g-headline',\n 'h1[itemprop=\"headline\"]',\n 'h1.headline',\n 'h1 .balancedHeadline',\n ],\n },\n\n author: {\n selectors: [\n ['meta[name=\"author\"]', 'value'],\n '.g-byline',\n '.byline',\n ['meta[name=\"byl\"]', 'value'],\n ],\n },\n\n content: {\n selectors: ['div.g-blocks', 'section[name=\"articleBody\"]', 'article#story'],\n\n transforms: {\n 'img.g-lazy': $node => {\n let src = $node.attr('src');\n const width = 640;\n\n src = src.replace('{{size}}', width);\n $node.attr('src', src);\n },\n },\n\n clean: [\n '.ad',\n 'header#story-header',\n '.story-body-1 .lede.video',\n '.visually-hidden',\n '#newsletter-promo',\n '.promo',\n '.comments-button',\n '.hidden',\n '.comments',\n '.supplemental',\n '.nocontent',\n '.story-footer-links',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['meta[name=\"article:published\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: null,\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\nexport const TheAtlanticExtractor = {\n domain: 'www.theatlantic.com',\n title: {\n selectors: ['h1', '.c-article-header__hed'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value'], '.c-byline__author'],\n },\n\n content: {\n selectors: ['article', '.article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.partner-box',\n '.callout',\n '.c-article-writer__image',\n '.c-article-writer__content',\n '.c-letters-cta__text',\n '.c-footer__logo',\n '.c-recirculation-link',\n '.twitter-tweet',\n ],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n date_published: {\n selectors: [['time[itemprop=\"datePublished\"]', 'datetime']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const NewYorkerExtractor = {\n domain: 'www.newyorker.com',\n title: {\n selectors: [\n 'h1[class^=\"content-header\"]',\n 'h1[class^=\"ArticleHeader__hed\"]',\n 'h1[class*=\"ContentHeaderHed\"]',\n ['meta[name=\"og:title\"]', 'value'],\n ],\n },\n\n author: {\n selectors: [\n 'article header div[class^=\"BylinesWrapper\"]',\n ['meta[name=\"article:author\"]', 'value'],\n 'div[class^=\"ArticleContributors\"] a[rel=\"author\"]',\n 'article header div[class*=\"Byline__multipleContributors\"]',\n ],\n },\n\n content: {\n selectors: [\n '.article__body',\n 'article.article.main-content',\n 'main[class^=\"Layout__content\"]',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.caption__text': 'figcaption',\n '.caption__credit': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['footer[class^=\"ArticleFooter__footer\"]', 'aside'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n 'time.content-header__publish-date',\n ['meta[name=\"pubdate\"]', 'value'],\n ],\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [\n 'div[class^=\"ContentHeaderDek\"]',\n 'div.content-header__dek',\n 'h2[class^=\"ArticleHeader__dek\"]',\n ],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const WiredExtractor = {\n domain: 'www.wired.com',\n title: {\n selectors: [\n 'h1[data-testId=\"ContentHeaderHed\"]',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n ['meta[name=\"article:author\"]', 'value'],\n 'a[rel=\"author\"]',\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n 'article.article.main-content',\n 'article.content',\n // enter content selectors\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.visually-hidden', 'figcaption img.photo', '.alert-message'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const MSNExtractor = {\n domain: 'www.msn.com',\n title: {\n selectors: [\n 'h1',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n 'span.authorname-txt',\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n 'div.richtext',\n // enter content selectors\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['span.caption'],\n },\n\n date_published: {\n selectors: ['span.time'],\n },\n\n lead_image_url: {\n selectors: [],\n },\n\n dek: {\n selectors: [],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const YahooExtractor = {\n domain: 'www.yahoo.com',\n title: {\n selectors: [\n 'header.canvas-header',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n 'span.provider-name',\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n // enter content selectors\n '.content-canvas',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.figure-caption'],\n },\n\n date_published: {\n selectors: [['time.date[datetime]', 'datetime']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [\n // enter dek selectors\n ],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const BuzzfeedExtractor = {\n domain: 'www.buzzfeed.com',\n\n supportedDomains: ['www.buzzfeednews.com'],\n\n title: {\n selectors: [\n 'h1.embed-headline-title',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n 'a[data-action=\"user/username\"]',\n 'byline__author',\n ['meta[name=\"author\"]', 'value'],\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n ['div[class^=\"featureimage_featureImageWrapper\"]', '.js-subbuzz-wrapper'],\n ['.js-subbuzz-wrapper'],\n ],\n\n defaultCleaner: false,\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n h2: 'b',\n\n 'div.longform_custom_header_media': $node => {\n if ($node.has('img') && $node.has('.longform_header_image_source')) {\n return 'figure';\n }\n\n return null;\n },\n\n 'figure.longform_custom_header_media .longform_header_image_source':\n 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.instapaper_ignore',\n '.suplist_list_hide .buzz_superlist_item .buzz_superlist_number_inline',\n '.share-box',\n '.print',\n '.js-inline-share-bar',\n '.js-ad-placement',\n ],\n },\n\n date_published: {\n selectors: [['time[datetime]', 'datetime']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: ['.embed-headline-description'],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const WikiaExtractor = {\n domain: 'fandom.wikia.com',\n title: {\n selectors: [\n 'h1.entry-title',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n '.author vcard',\n '.fn',\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n '.grid-content',\n '.entry-content',\n // enter content selectors\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const LittleThingsExtractor = {\n domain: 'www.littlethings.com',\n title: {\n selectors: [\n 'h1[class*=\"PostHeader\"]',\n 'h1.post-title',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n 'div[class^=\"PostHeader__ScAuthorNameSection\"]',\n ['meta[name=\"author\"]', 'value'],\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n // enter content selectors\n 'section[class*=\"PostMainArticle\"]',\n '.mainContentIntro',\n '.content-wrapper',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","export const PoliticoExtractor = {\n domain: 'www.politico.com',\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [\n ['div[itemprop=\"author\"] meta[itemprop=\"name\"]', 'value'],\n '.story-meta__authors .vcard',\n '.story-main-content .byline .vcard',\n ],\n },\n\n content: {\n selectors: [['.story-text'], '.story-main-content', '.story-core'],\n\n transforms: [],\n\n clean: ['figcaption', '.story-meta', '.ad'],\n },\n\n date_published: {\n selectors: [\n ['time[itemprop=\"datePublished\"]', 'datetime'],\n ['.story-meta__details time[datetime]', 'datetime'],\n ['.story-main-content .timestamp time[datetime]', 'datetime'],\n ],\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n};\n","export const DeadspinExtractor = {\n domain: 'deadspin.com',\n\n supportedDomains: [\n 'jezebel.com',\n 'lifehacker.com',\n 'kotaku.com',\n 'gizmodo.com',\n 'jalopnik.com',\n 'kinja.com',\n 'avclub.com',\n 'clickhole.com',\n 'splinternews.com',\n 'theonion.com',\n 'theroot.com',\n 'thetakeout.com',\n 'theinventory.com',\n ],\n\n title: {\n selectors: ['header h1', 'h1.headline'],\n },\n\n author: {\n selectors: ['a[data-ga*=\"Author\"]', '.author'],\n },\n\n content: {\n selectors: ['.js_post-content', '.post-content', '.entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'iframe.lazyload[data-recommend-id^=\"youtube://\"]': $node => {\n const youtubeId = $node.attr('id').split('youtube-')[1];\n $node.attr('src', `https://www.youtube.com/embed/${youtubeId}`);\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.magnifier', '.lightbox'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['time.updated[datetime]', 'datetime'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n next_page_url: {\n selectors: [\n // enter selectors\n ],\n },\n\n excerpt: {\n selectors: [\n // enter selectors\n ],\n },\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const BroadwayWorldExtractor = {\n domain: 'www.broadwayworld.com',\n title: {\n selectors: ['h1[itemprop=headline]', 'h1.article-title'],\n },\n\n author: {\n selectors: ['span[itemprop=author]'],\n },\n\n content: {\n selectors: ['div[itemprop=articlebody]'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n\n date_published: {\n selectors: [['meta[itemprop=datePublished]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [],\n },\n\n next_page_url: {\n selectors: [\n // enter selectors\n ],\n },\n\n excerpt: {\n selectors: [\n // enter selectors\n ],\n },\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const ApartmentTherapyExtractor = {\n domain: 'www.apartmenttherapy.com',\n title: {\n selectors: ['h1.headline'],\n },\n\n author: {\n selectors: ['.PostByline__name'],\n },\n\n content: {\n selectors: ['div.post__content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div[data-render-react-id=\"images/LazyPicture\"]': ($node, $) => {\n const data = JSON.parse($node.attr('data-props'));\n const { src } = data.sources[0];\n const $img = $('<img />').attr('src', src);\n $node.replaceWith($img);\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n\n date_published: {\n selectors: [['.PostByline__timestamp[datetime]', 'datetime']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [],\n },\n\n next_page_url: {\n selectors: [\n // enter selectors\n ],\n },\n\n excerpt: {\n selectors: [\n // enter selectors\n ],\n },\n};\n","export const MediumExtractor = {\n domain: 'medium.com',\n\n title: {\n selectors: ['h1', ['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n content: {\n selectors: ['article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n // Allow drop cap character.\n 'section span:first-of-type': $node => {\n const $text = $node.html();\n if ($text.length === 1 && /^[a-zA-Z()]+$/.test($text)) {\n $node.replaceWith($text);\n }\n },\n // Re-write lazy-loaded youtube videos\n iframe: $node => {\n const ytRe = /https:\\/\\/i.embed.ly\\/.+url=https:\\/\\/i\\.ytimg\\.com\\/vi\\/(\\w+)\\//;\n const thumb = decodeURIComponent($node.attr('data-thumbnail'));\n const $parent = $node.parents('figure');\n\n if (ytRe.test(thumb)) {\n const [_, youtubeId] = thumb.match(ytRe); // eslint-disable-line\n $node.attr('src', `https://www.youtube.com/embed/${youtubeId}`);\n const $caption = $parent.find('figcaption');\n $parent.empty().append([$node, $caption]);\n return;\n }\n\n // If we can't draw the YouTube preview, remove the figure.\n $parent.remove();\n },\n\n // rewrite figures to pull out image and caption, remove rest\n figure: $node => {\n // ignore if figure has an iframe\n if ($node.find('iframe').length > 0) return;\n\n const $img = $node.find('img').slice(-1)[0];\n const $caption = $node.find('figcaption');\n\n $node.empty().append([$img, $caption]);\n },\n\n // Remove any smaller images that did not get caught by the generic image\n // cleaner (author photo 48px, leading sentence images 79px, etc.).\n img: $node => {\n const width = parseInt($node.attr('width'), 10);\n if (width < 100) $node.remove();\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['span a', 'svg'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: null,\n\n next_page_url: {\n selectors: [\n // enter selectors\n ],\n },\n\n excerpt: {\n selectors: [\n // enter selectors\n ],\n },\n};\n","export const WwwTmzComExtractor = {\n domain: 'www.tmz.com',\n\n title: {\n selectors: ['.post-title-breadcrumb', 'h1', '.headline'],\n },\n\n author: 'TMZ STAFF',\n\n date_published: {\n selectors: ['.article__published-at', '.article-posted-date'],\n\n timezone: 'America/Los_Angeles',\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article__blocks', '.article-content', '.all-post-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.lightbox-link'],\n },\n};\n","export const WwwWashingtonpostComExtractor = {\n domain: 'www.washingtonpost.com',\n\n title: {\n selectors: ['h1', '#topper-headline-wrapper'],\n },\n\n author: {\n selectors: ['.pb-author-name'],\n },\n\n date_published: {\n selectors: [['.author-timestamp[itemprop=\"datePublished\"]', 'content']],\n },\n\n dek: {\n selectors: [],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div.inline-content': $node => {\n if ($node.has('img,iframe,video').length > 0) {\n return 'figure';\n }\n\n $node.remove();\n return null;\n },\n '.pb-caption': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.interstitial-link', '.newsletter-inline-unit'],\n },\n};\n","export const WwwHuffingtonpostComExtractor = {\n domain: 'www.huffingtonpost.com',\n\n title: {\n selectors: ['h1.headline__title'],\n },\n\n author: {\n selectors: ['span.author-card__details__name'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:modified_time\"]', 'value'],\n ['meta[name=\"article:published_time\"]', 'value'],\n ],\n },\n\n dek: {\n selectors: ['h2.headline__subtitle'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.entry__body'],\n\n defaultCleaner: false,\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.pull-quote',\n '.tag-cloud',\n '.embed-asset',\n '.below-entry',\n '.entry-corrections',\n '#suggested-story',\n ],\n },\n};\n","export const NewrepublicComExtractor = {\n domain: 'newrepublic.com',\n\n title: {\n selectors: ['h1.article-headline'],\n },\n\n author: {\n selectors: ['span.AuthorList'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: ['h2.article-subhead'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [['div.article-body']],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['aside'],\n },\n};\n","export const MoneyCnnComExtractor = {\n domain: 'money.cnn.com',\n\n title: {\n selectors: ['.article-title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value'], '.byline a'],\n },\n\n date_published: {\n selectors: [['meta[name=\"date\"]', 'value']],\n\n timezone: 'GMT',\n },\n\n dek: {\n selectors: ['#storytext h2'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#storytext'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.inStoryHeading'],\n },\n};\n","export const WwwThevergeComExtractor = {\n domain: 'www.theverge.com',\n\n supportedDomains: ['www.polygon.com'],\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.p-dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n // feature template multi-match\n ['.c-entry-hero .e-image', '.c-entry-intro', '.c-entry-content'],\n // regular post multi-match\n ['.e-image--hero', '.c-entry-content'],\n // feature template fallback\n '.l-wrapper .l-feature',\n // regular post fallback\n 'div.c-entry-content',\n ],\n\n // Transform lazy-loaded images\n transforms: {\n noscript: $node => {\n const $children = $node.children();\n if ($children.length === 1 && $children.get(0).tagName === 'img') {\n return 'span';\n }\n\n return null;\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.aside',\n 'img.c-dynamic-image', // images come from noscript transform\n ],\n },\n};\n","export const WwwCnnComExtractor = {\n domain: 'www.cnn.com',\n\n title: {\n selectors: ['h1.pg-headline', 'h1'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n // a more specific selector to grab the lead image and the body\n ['.media__video--thumbnail', '.zn-body-text'],\n // a fallback for the above\n '.zn-body-text',\n 'div[itemprop=\"articleBody\"]',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.zn-body__paragraph, .el__leafmedia--sourced-paragraph': $node => {\n const $text = $node.html();\n if ($text) {\n return 'p';\n }\n\n return null;\n },\n\n // this transform cleans the short, all-link sections linking\n // to related content but not marked as such in any way.\n '.zn-body__paragraph': $node => {\n if ($node.has('a')) {\n if (\n $node.text().trim() ===\n $node\n .find('a')\n .text()\n .trim()\n ) {\n $node.remove();\n }\n }\n },\n\n '.media__video--thumbnail': 'figure',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwAolComExtractor = {\n domain: 'www.aol.com',\n\n title: {\n selectors: ['h1.p-article__title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: ['.p-article__byline__date'],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwYoutubeComExtractor = {\n domain: 'www.youtube.com',\n\n title: {\n selectors: [\n ['meta[name=\"title\"]', 'value'],\n '.watch-title',\n 'h1.watch-title-container',\n ],\n },\n\n author: {\n selectors: [['link[itemprop=\"name\"]', 'content'], '.yt-user-info'],\n },\n\n date_published: {\n selectors: [['meta[itemProp=\"datePublished\"]', 'value']],\n\n timezone: 'GMT',\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n defaultCleaner: false,\n\n selectors: [\n '#player-container-outer',\n 'ytd-expandable-video-description-body-renderer #description',\n ['#player-api', '#description'],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '#player-api': ($node, $) => {\n const videoId = $('meta[itemProp=\"videoId\"]').attr('value');\n $node.html(`\n <iframe src=\"https://www.youtube.com/embed/${videoId}\" frameborder=\"0\" allowfullscreen></iframe>`);\n },\n '#player-container-outer': ($node, $) => {\n const videoId = $('meta[itemProp=\"videoId\"]').attr('value');\n const description = $('meta[itemProp=\"description\"]').attr('value');\n $node.html(`\n <iframe src=\"https://www.youtube.com/embed/${videoId}\" frameborder=\"0\" allowfullscreen></iframe>\n <div><span>${description}</span></div>`);\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwTheguardianComExtractor = {\n domain: 'www.theguardian.com',\n\n title: {\n selectors: ['h1', '.content__headline'],\n },\n\n author: {\n selectors: ['address[data-link-name=\"byline\"]', 'p.byline'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['div[data-gu-name=\"standfirst\"]', '.content__standfirst'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#maincontent', '.content__article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.hide-on-mobile', '.inline-icon'],\n },\n};\n","export const WwwSbnationComExtractor = {\n domain: 'www.sbnation.com',\n\n title: {\n selectors: ['h1.c-page-title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['p.c-entry-summary.p-dek', 'h2.c-entry-summary.p-dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.c-entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwBloombergComExtractor = {\n domain: 'www.bloomberg.com',\n\n title: {\n selectors: [\n // normal articles\n '.lede-headline',\n\n // /graphics/ template\n 'h1.article-title',\n\n // /news/ template\n 'h1[class^=\"headline\"]',\n 'h1.lede-text-only__hed',\n ],\n },\n\n author: {\n selectors: [\n ['meta[name=\"parsely-author\"]', 'value'],\n '.byline-details__link',\n\n // /graphics/ template\n '.bydek',\n\n // /news/ template\n '.author',\n 'p[class*=\"author\"]',\n ],\n },\n\n date_published: {\n selectors: [\n ['time.published-at', 'datetime'],\n ['time[datetime]', 'datetime'],\n ['meta[name=\"date\"]', 'value'],\n ['meta[name=\"parsely-pub-date\"]', 'value'],\n ['meta[name=\"parsely-pub-date\"]', 'content'],\n ],\n },\n\n dek: {\n selectors: [],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'],\n ['meta[name=\"og:image\"]', 'content'],\n ],\n },\n\n content: {\n selectors: [\n '.article-body__content',\n '.body-content',\n\n // /graphics/ template\n ['section.copy-block'],\n\n // /news/ template\n '.body-copy',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.inline-newsletter', '.page-ad'],\n },\n};\n","export const WwwBustleComExtractor = {\n domain: 'www.bustle.com',\n\n title: {\n selectors: ['h1', 'h1.post-page__title'],\n },\n\n author: {\n selectors: ['a[href*=\"profile\"]', 'div.content-meta__author'],\n },\n\n date_published: {\n selectors: [['time', 'datetime']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article', '.post-page__body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwNprOrgExtractor = {\n domain: 'www.npr.org',\n\n title: {\n selectors: ['h1', '.storytitle'],\n },\n\n author: {\n selectors: ['p.byline__name.byline__name--block'],\n },\n\n date_published: {\n selectors: [\n ['.dateblock time[datetime]', 'datetime'],\n ['meta[name=\"date\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'],\n ['meta[name=\"twitter:image:src\"]', 'value'],\n ],\n },\n\n content: {\n selectors: ['.storytext'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.bucketwrap.image': 'figure',\n '.bucketwrap.image .credit-caption': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['div.enlarge_measure'],\n },\n};\n","export const WwwRecodeNetExtractor = {\n domain: 'www.recode.net',\n\n title: {\n selectors: ['h1.c-page-title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['h2.c-entry-summary.p-dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['figure.e-image--hero', '.c-entry-content'],\n '.c-entry-content',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const QzComExtractor = {\n domain: 'qz.com',\n\n title: {\n selectors: ['article header h1'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['time[datetime]', 'datetime'],\n ],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'],\n ['meta[property=\"og:image\"]', 'content'],\n ['meta[name=\"twitter:image\"]', 'content'],\n ],\n },\n\n content: {\n selectors: ['#article-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwDmagazineComExtractor = {\n domain: 'www.dmagazine.com',\n\n title: {\n selectors: ['h1.story__title'],\n },\n\n author: {\n selectors: ['.story__info .story__info__item:first-child'],\n },\n\n date_published: {\n selectors: [\n // enter selectors\n '.story__info',\n ],\n\n timezone: 'America/Chicago',\n format: 'MMMM D, YYYY h:mm a',\n },\n\n dek: {\n selectors: ['.story__subhead'],\n },\n\n lead_image_url: {\n selectors: [['article figure a:first-child', 'href']],\n },\n\n content: {\n selectors: ['.story__content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwReutersComExtractor = {\n domain: 'www.reuters.com',\n\n title: {\n selectors: ['h1[class*=\"ArticleHeader-headline-\"]', 'h1.article-headline'],\n },\n\n author: {\n selectors: [['meta[name=\"og:article:author\"]', 'value'], '.author'],\n },\n\n date_published: {\n selectors: [['meta[name=\"og:article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.ArticleBodyWrapper', '#article-text'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.article-subtitle': 'h4',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n 'div[class^=\"ArticleBody-byline-container-\"]',\n '#article-byline .author',\n ],\n },\n};\n","export const MashableComExtractor = {\n domain: 'mashable.com',\n\n title: {\n selectors: ['header h1', 'h1.title'],\n },\n\n author: {\n selectors: [['meta[name=\"article:author\"]', 'value'], 'span.author_name a'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#article', 'section.article-content.blueprint'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.image-credit': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwChicagotribuneComExtractor = {\n domain: 'www.chicagotribune.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: ['div.article_byline span:first-of-type'],\n },\n\n date_published: {\n selectors: ['time'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwVoxComExtractor = {\n domain: 'www.vox.com',\n\n title: {\n selectors: ['h1.c-page-title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.p-dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['figure.e-image--hero', '.c-entry-content'],\n '.c-entry-content',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'figure .e-image__image noscript': $node => {\n const imgHtml = $node.html();\n $node\n .parents('.e-image__image')\n .find('.c-dynamic-image')\n .replaceWith(imgHtml);\n },\n\n 'figure .e-image__meta': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const NewsNationalgeographicComExtractor = {\n domain: 'news.nationalgeographic.com',\n\n title: {\n selectors: ['h1', 'h1.main-title'],\n },\n\n author: {\n selectors: ['.byline-component__contributors b span'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n format: 'ddd MMM DD HH:mm:ss zz YYYY',\n timezone: 'EST',\n },\n\n dek: {\n selectors: ['.article__deck'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [['.parsys.content', '.__image-lead__'], '.content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.parsys.content': ($node, $) => {\n const $imgSrc = $node\n .find('.image.parbase.section')\n .find('.picturefill')\n .first()\n .data('platform-src');\n if ($imgSrc) {\n $node.prepend($(`<img class=\"__image-lead__\" src=\"${$imgSrc}\"/>`));\n }\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.pull-quote.pull-quote--large'],\n },\n};\n","export const WwwNationalgeographicComExtractor = {\n domain: 'www.nationalgeographic.com',\n\n title: {\n selectors: ['h1', 'h1.main-title'],\n },\n\n author: {\n selectors: ['.byline-component__contributors b span'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.Article__Headline__Desc', '.article__deck'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'section.Article__Content',\n ['.parsys.content', '.__image-lead__'],\n '.content',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.parsys.content': ($node, $) => {\n const $imageParent = $node.children().first();\n if ($imageParent.hasClass('imageGroup')) {\n const $dataAttrContainer = $imageParent\n .find('.media--medium__container')\n .children()\n .first();\n const imgPath1 = $dataAttrContainer.data('platform-image1-path');\n const imgPath2 = $dataAttrContainer.data('platform-image2-path');\n if (imgPath2 && imgPath1) {\n $node.prepend(\n $(`<div class=\"__image-lead__\">\n <img src=\"${imgPath1}\"/>\n <img src=\"${imgPath2}\"/>\n </div>`)\n );\n }\n } else {\n const $imgSrc = $node\n .find('.image.parbase.section')\n .find('.picturefill')\n .first()\n .data('platform-src');\n if ($imgSrc) {\n $node.prepend($(`<img class=\"__image-lead__\" src=\"${$imgSrc}\"/>`));\n }\n }\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.pull-quote.pull-quote--small'],\n },\n};\n","export const WwwLatimesComExtractor = {\n domain: 'www.latimes.com',\n\n title: {\n selectors: ['h1.headline', '.trb_ar_hl'],\n },\n\n author: {\n selectors: [\n 'a[data-click=\"standardBylineAuthorName\"]',\n ['meta[name=\"author\"]', 'value'],\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['meta[itemprop=\"datePublished\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.page-article-body', '.trb_ar_main'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.trb_ar_la': $node => {\n const $figure = $node.find('figure');\n $node.replaceWith($figure);\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.trb_ar_by', '.trb_ar_cr'],\n },\n};\n","export const PagesixComExtractor = {\n domain: 'pagesix.com',\n\n supportedDomains: ['nypost.com'],\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: ['.byline'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['#featured-image-wrapper', '.entry-content'],\n '.entry-content',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '#featured-image-wrapper': 'figure',\n '.wp-caption-text': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.modal-trigger'],\n },\n};\n","export const ThefederalistpapersOrgExtractor = {\n domain: 'thefederalistpapers.org',\n\n title: {\n selectors: ['h1.entry-title'],\n },\n\n author: {\n selectors: ['.author-meta-title', 'main span.entry-author-name'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n 'header',\n '.article-sharing',\n '.after-article',\n '.type-commenting',\n '.more-posts',\n ['p[style]'],\n ],\n },\n};\n","export const WwwCbssportsComExtractor = {\n domain: 'www.cbssports.com',\n\n title: {\n selectors: ['.Article-headline', '.article-headline'],\n },\n\n author: {\n selectors: ['.ArticleAuthor-nameText', '.author-name'],\n },\n\n date_published: {\n selectors: [['meta[itemprop=\"datePublished\"]', 'value']],\n timezone: 'UTC',\n },\n\n dek: {\n selectors: ['.Article-subline', '.article-subline'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwMsnbcComExtractor = {\n domain: 'www.msnbc.com',\n\n title: {\n selectors: ['h1', 'h1.is-title-pane'],\n },\n\n author: {\n selectors: ['.byline-name', '.author'],\n },\n\n date_published: {\n selectors: [\n ['meta[itemprop=\"datePublished\"]', 'value'],\n ['meta[name=\"DC.date.issued\"]', 'value'],\n ],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article-body__content', '.pane-node-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.pane-node-body': ($node, $) => {\n const [\n selector,\n attr,\n ] = WwwMsnbcComExtractor.lead_image_url.selectors[0];\n const src = $(selector).attr(attr);\n if (src) {\n $node.prepend(`<img src=\"${src}\" />`);\n }\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwThepoliticalinsiderComExtractor = {\n domain: 'www.thepoliticalinsider.com',\n\n title: {\n selectors: [['meta[name=\"sailthru.title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"sailthru.author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"sailthru.date\"]', 'value']],\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'], // enter selectors\n ],\n },\n\n content: {\n selectors: ['div#article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwMentalflossComExtractor = {\n domain: 'www.mentalfloss.com',\n\n title: {\n selectors: [\n ['meta[name=\"og:title\"]', 'value'],\n 'h1.title',\n '.title-group',\n '.inner',\n ],\n },\n\n author: {\n selectors: [\n 'a[data-vars-label*=\"authors\"]',\n '.field-name-field-enhanced-authors',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n '.date-display-single',\n ],\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article main', 'div.field.field-name-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['small'],\n },\n};\n","export const AbcnewsGoComExtractor = {\n domain: 'abcnews.go.com',\n\n title: {\n selectors: ['div[class*=\"Article_main__body\"] h1', '.article-header h1'],\n },\n\n author: {\n selectors: ['.ShareByline span:nth-child(2)', '.authors'],\n clean: ['.author-overlay', '.by-text'],\n },\n\n date_published: {\n selectors: ['.ShareByline', '.timestamp'],\n format: 'MMMM D, YYYY h:mm a',\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article', '.article-copy'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwNydailynewsComExtractor = {\n domain: 'www.nydailynews.com',\n\n title: {\n selectors: ['h1.headline', 'h1#ra-headline'],\n },\n\n author: {\n selectors: [\n '.article_byline span',\n ['meta[name=\"parsely-author\"]', 'value'],\n ],\n },\n\n date_published: {\n selectors: ['time', ['meta[name=\"sailthru.date\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article', 'article#ra-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['dl#ra-tags', '.ra-related', 'a.ra-editor', 'dl#ra-share-bottom'],\n },\n};\n","export const WwwCnbcComExtractor = {\n domain: 'www.cnbc.com',\n\n title: {\n selectors: ['h1.title', 'h1.ArticleHeader-headline'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'div#article_body.content',\n 'div.story',\n 'div.ArticleBody-articleBody',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwPopsugarComExtractor = {\n domain: 'www.popsugar.com',\n\n title: {\n selectors: ['h2.post-title', 'title-text'],\n },\n\n author: {\n selectors: [['meta[name=\"article:author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.share-copy-title', '.post-tags', '.reactions'],\n },\n};\n","export const ObserverComExtractor = {\n domain: 'observer.com',\n\n title: {\n selectors: ['h1.entry-title'],\n },\n\n author: {\n selectors: ['.author', '.vcard'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['h2.dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const PeopleComExtractor = {\n domain: 'people.com',\n\n title: {\n selectors: ['.article-header h1', ['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"sailthru.author\"]', 'value'], 'a.author.url.fn'],\n },\n\n date_published: {\n selectors: [\n '.mntl-attribution__item-date',\n ['meta[name=\"article:published_time\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: ['.article-header h2'],\n },\n\n content: {\n selectors: ['div[class^=\"loc article-content\"]', 'div.article-body__inner'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwUsmagazineComExtractor = {\n domain: 'www.usmagazine.com',\n\n title: {\n selectors: ['header h1'],\n },\n\n author: {\n selectors: ['a.author', 'a.article-byline.tracked-offpage'],\n },\n\n date_published: {\n timezone: 'America/New_York',\n\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.module-related'],\n },\n};\n","export const WwwRollingstoneComExtractor = {\n domain: 'www.rollingstone.com',\n\n title: {\n selectors: ['h1.l-article-header__row--title', 'h1.content-title'],\n },\n\n author: {\n selectors: ['a.c-byline__link', 'a.content-author.tracked-offpage'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n 'time.content-published-date',\n ],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: ['h2.l-article-header__row--lead', '.content-description'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n '.l-article-content',\n ['.lead-container', '.article-content'],\n '.article-content',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.c-related-links-wrapper', '.module-related'],\n },\n};\n","export const twofortysevensportsComExtractor = {\n domain: '247sports.com',\n\n title: {\n selectors: ['title', 'article header h1'],\n },\n\n author: {\n selectors: ['.article-cnt__author', '.author'],\n },\n\n date_published: {\n selectors: [['time[data-published]', 'data-published']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article-body', 'section.body.article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const UproxxComExtractor = {\n domain: 'uproxx.com',\n\n title: {\n selectors: ['div.entry-header h1'],\n },\n\n author: {\n selectors: [['meta[name=\"qc:author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div.image': 'figure',\n 'div.image .wp-media-credit': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwEonlineComExtractor = {\n domain: 'www.eonline.com',\n\n title: {\n selectors: ['h1.article-detail__title', 'h1.article__title'],\n },\n\n author: {\n selectors: ['.article-detail__meta__author', '.entry-meta__author a'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['meta[itemprop=\"datePublished\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['.article-detail__main-content section'],\n ['.post-content section, .post-content div.post-content__image'],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div.post-content__image': 'figure',\n 'div.post-content__image .image__credits': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwMiamiheraldComExtractor = {\n domain: 'www.miamiherald.com',\n\n title: {\n selectors: ['h1.title'],\n },\n\n date_published: {\n selectors: ['p.published-date'],\n\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.dateline-storybody'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwRefinery29ComExtractor = {\n domain: 'www.refinery29.com',\n\n title: {\n selectors: ['h1.title'],\n },\n\n author: {\n selectors: ['.contributor'],\n },\n\n date_published: {\n selectors: [['meta[name=\"sailthru.date\"]', 'value']],\n\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['.full-width-opener', '.article-content'],\n '.article-content',\n '.body',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div.loading noscript': $node => {\n const imgHtml = $node.html();\n $node.parents('.loading').replaceWith(imgHtml);\n },\n\n '.section-image': 'figure',\n\n '.section-image .content-caption': 'figcaption',\n\n '.section-text': 'p',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.story-share'],\n },\n};\n","export const WwwMacrumorsComExtractor = {\n domain: 'www.macrumors.com',\n\n title: {\n selectors: ['h1', 'h1.title'],\n },\n\n author: {\n selectors: ['article a[rel=\"author\"]', '.author-url'],\n },\n\n date_published: {\n selectors: [['time', 'datetime']],\n\n timezone: 'America/Los_Angeles',\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article', '.article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwAndroidcentralComExtractor = {\n domain: 'www.androidcentral.com',\n\n title: {\n selectors: ['h1', 'h1.main-title'],\n },\n\n author: {\n selectors: [['meta[name=\"parsely-author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.intro', 'blockquote'],\n },\n};\n","export const WwwSiComExtractor = {\n domain: 'www.si.com',\n\n title: {\n selectors: ['h1', 'h1.headline'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"published\"]', 'value']],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: ['.m-detail-header--dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n '.m-detail--body',\n ['p', '.marquee_large_2x', '.component.image'],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n noscript: $node => {\n const $children = $node.children();\n if ($children.length === 1 && $children.get(0).tagName === 'img') {\n return 'figure';\n }\n\n return null;\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n ['.inline-thumb', '.primary-message', '.description', '.instructions'],\n ],\n },\n};\n","export const WwwRawstoryComExtractor = {\n domain: 'www.rawstory.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], '.blog-title'],\n },\n\n author: {\n selectors: [\n 'div.main-post-head .social-author__name',\n '.blog-author a:first-of-type',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n '.blog-author a:last-of-type',\n ],\n\n timezone: 'EST',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.post-body', '.blog-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwCnetComExtractor = {\n domain: 'www.cnet.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: ['span.author', 'a.author'],\n },\n\n date_published: {\n selectors: ['time'],\n\n timezone: 'America/Los_Angeles',\n },\n\n dek: {\n selectors: ['.c-head_dek', '.article-dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['img.__image-lead__', '.article-main-body'],\n '.article-main-body',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'figure.image': $node => {\n const $img = $node.find('img');\n $img.attr('width', '100%');\n $img.attr('height', '100%');\n $img.addClass('__image-lead__');\n $node.remove('.imgContainer').prepend($img);\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwTodayComExtractor = {\n domain: 'www.today.com',\n\n title: {\n selectors: ['h1.article-hero-headline__htag', 'h1.entry-headline'],\n },\n\n author: {\n selectors: ['span.byline-name', ['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: ['time[datetime]', ['meta[name=\"DC.date.issued\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article-body__content', '.entry-container'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.label-comment'],\n },\n};\n","export const WwwAlComExtractor = {\n domain: 'www.al.com',\n\n title: {\n selectors: [['meta[name=\"title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"article_author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article_date_original\"]', 'value']],\n timezone: 'EST',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwThepennyhoarderComExtractor = {\n domain: 'www.thepennyhoarder.com',\n\n title: {\n selectors: [['meta[name=\"dcterms.title\"]', 'value']],\n },\n\n author: {\n selectors: [['link[rel=\"author\"]', 'title']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['.post-img', '.post-text'],\n '.post-text',\n '.single-post-content-inner',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwWesternjournalismComExtractor = {\n domain: 'www.westernjournalism.com',\n\n title: {\n selectors: ['title', 'h1.entry-title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"DC.date.issued\"]', 'value']],\n },\n\n dek: {\n selectors: ['.subtitle'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article-sharing.top + div'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.ad-notice-small'],\n },\n};\n","export const WwwAmericanowComExtractor = {\n domain: 'www.americanow.com',\n\n title: {\n selectors: ['.title', ['meta[name=\"title\"]', 'value']],\n },\n\n author: {\n selectors: ['.byline'],\n },\n\n date_published: {\n selectors: [['meta[name=\"publish_date\"]', 'value']],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [['.article-content', '.image', '.body'], '.body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.article-video-wrapper', '.show-for-small-only'],\n },\n};\n","export const ScienceflyComExtractor = {\n domain: 'sciencefly.com',\n\n title: {\n selectors: ['.entry-title', '.cb-entry-title', '.cb-single-title'],\n },\n\n author: {\n selectors: ['div.cb-author', 'div.cb-author-title'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['div.theiaPostSlider_slides img', 'src']],\n },\n\n content: {\n selectors: ['div.theiaPostSlider_slides'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const HellogigglesComExtractor = {\n domain: 'hellogiggles.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], '.title'],\n },\n\n author: {\n selectors: ['.byline-wrapper span.author_name', '.author-link'],\n },\n\n date_published: {\n selectors: [\n ['meta[property=\"article:published_time\"]', 'content'],\n ['meta[name=\"article:published_time\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.main-content', '.entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const ThoughtcatalogComExtractor = {\n domain: 'thoughtcatalog.com',\n\n title: {\n selectors: ['h1.title', ['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [\n 'cite a',\n 'div.col-xs-12.article_header div.writer-container.writer-container-inline.writer-no-avatar h4.writer-name',\n 'h1.writer-name',\n ],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.entry.post'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.tc_mark', 'figcaption'],\n },\n};\n","export const WwwInquisitrComExtractor = {\n domain: 'www.inquisitr.com',\n\n title: {\n selectors: ['h1.entry-title.story--header--title'],\n },\n\n author: {\n selectors: ['div.story--header--author'],\n },\n\n date_published: {\n selectors: [['meta[name=\"datePublished\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article.story', '.entry-content.'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.post-category',\n '.story--header--socials',\n '.story--header--content',\n ],\n },\n};\n","export const WwwNbcnewsComExtractor = {\n domain: 'www.nbcnews.com',\n\n title: {\n selectors: ['div.article-hero-headline h1', 'div.article-hed h1'],\n },\n\n author: {\n selectors: [\n 'div.article-inline-byline span.byline-name',\n 'span.byline_author',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published\"]', 'value'],\n ['.flag_article-wrapper time.timestamp_article[datetime]', 'datetime'],\n '.flag_article-wrapper time',\n ],\n\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article-body__content', 'div.article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const FortuneComExtractor = {\n domain: 'fortune.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: ['.MblGHNMJ'],\n\n timezone: 'UTC',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [['picture', 'article.row'], 'article.row'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwLinkedinComExtractor = {\n domain: 'www.linkedin.com',\n\n title: {\n selectors: ['.article-title', 'h1'],\n },\n\n author: {\n selectors: [\n '.main-author-card h3',\n ['meta[name=\"article:author\"]', 'value'],\n '.entity-name a[rel=author]',\n ],\n },\n\n date_published: {\n selectors: [\n '.base-main-card__metadata',\n ['time[itemprop=\"datePublished\"]', 'datetime'],\n ],\n\n timezone: 'America/Los_Angeles',\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n '.article-content__body',\n ['header figure', '.prose'],\n '.prose',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.entity-image'],\n },\n};\n","export const ObamawhitehouseArchivesGovExtractor = {\n domain: 'obamawhitehouse.archives.gov',\n\n supportedDomains: ['whitehouse.gov'],\n\n title: {\n selectors: ['h1', '.pane-node-title'],\n },\n\n author: {\n selectors: ['.blog-author-link', '.node-person-name-link'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.field-name-field-forall-summary'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n defaultCleaner: false,\n\n selectors: ['div#content-start', '.pane-node-field-forall-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.pane-node-title', '.pane-custom.pane-1'],\n },\n};\n","export const WwwOpposingviewsComExtractor = {\n domain: 'www.opposingviews.com',\n\n title: {\n selectors: ['h1.m-detail-header--title', 'h1.title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value'], 'div.date span span a'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"published\"]', 'value'],\n ['meta[name=\"publish_date\"]', 'value'],\n ],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.m-detail--body', '.article-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.show-for-small-only'],\n },\n};\n","export const WwwProspectmagazineCoUkExtractor = {\n domain: 'www.prospectmagazine.co.uk',\n\n title: {\n selectors: ['.blog-header__title', '.page-title'],\n },\n\n author: {\n selectors: ['.blog-header__author-link', '.aside_author .title'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value'], '.post-info'],\n\n timezone: 'Europe/London',\n },\n\n dek: {\n selectors: ['.blog-header__description', '.page-subtitle'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.blog__container', 'article .post_content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const ForwardComExtractor = {\n domain: 'forward.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [\n '.post-author a',\n '.author-name',\n ['meta[name=\"sailthru.author\"]', 'value'],\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['meta[name=\"date\"]', 'value'],\n ],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n '.content-container article',\n ['.post-item-media-wrap', '.post-item p'],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.post-author', '.donate-box', '.message', '.subtitle'],\n },\n};\n","export const WwwQdailyComExtractor = {\n domain: 'www.qdaily.com',\n\n title: {\n selectors: ['h2', 'h2.title'],\n },\n\n author: {\n selectors: ['.name'],\n },\n\n date_published: {\n selectors: [['.date.smart-date', 'data-origindate']],\n },\n\n dek: {\n selectors: ['.excerpt'],\n },\n\n lead_image_url: {\n selectors: [['.article-detail-hd img', 'src']],\n },\n\n content: {\n selectors: ['.detail'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.lazyload', '.lazylad', '.lazylood'],\n },\n};\n","export const GothamistComExtractor = {\n domain: 'gothamist.com',\n\n supportedDomains: [\n 'chicagoist.com',\n 'laist.com',\n 'sfist.com',\n 'shanghaiist.com',\n 'dcist.com',\n ],\n\n title: {\n selectors: ['h1', '.entry-header h1'],\n },\n\n author: {\n // There are multiple article-metadata and byline-author classes, but the main article's is the 3rd child of the l-container class\n selectors: ['.article-metadata:nth-child(3) .byline-author', '.author'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n 'abbr',\n 'abbr.published',\n ],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: [null],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article-body', '.entry-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div.image-none': 'figure',\n '.image-none i': 'figcaption',\n 'div.image-left': 'figure',\n '.image-left i': 'figcaption',\n 'div.image-right': 'figure',\n '.image-right i': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.image-none br',\n '.image-left br',\n '.image-right br',\n '.galleryEase',\n ],\n },\n};\n","export const WwwFoolComExtractor = {\n domain: 'www.fool.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [\n ['meta[name=\"author\"]', 'value'],\n '.author-inline .author-name',\n ],\n },\n\n date_published: {\n selectors: [['meta[name=\"date\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value'], 'header h2'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.tailwind-article-body', '.article-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.caption img': $node => {\n const src = $node.attr('src');\n $node.parent().replaceWith(`<figure><img src=\"${src}\"/></figure>`);\n },\n '.caption': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['#pitch'],\n },\n};\n","export const WwwSlateComExtractor = {\n domain: 'www.slate.com',\n\n title: {\n selectors: ['.hed', 'h1'],\n },\n\n author: {\n selectors: ['a[rel=author]'],\n },\n\n date_published: {\n selectors: ['.pub-date'],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: ['.dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.about-the-author',\n '.pullquote',\n '.newsletter-signup-component',\n '.top-comment',\n ],\n },\n};\n","export const IciRadioCanadaCaExtractor = {\n domain: 'ici.radio-canada.ca',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [['meta[name=\"dc.creator\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"dc.date.created\"]', 'value']],\n format: 'YYYY-MM-DD|HH[h]mm',\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: ['div.lead-container', '.bunker-component.lead'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'section.document-content-style',\n ['.main-multimedia-item', '.news-story-content'],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwFortinetComExtractor = {\n domain: 'www.fortinet.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['.b15-blog-meta__author'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'div.responsivegrid.aem-GridColumn.aem-GridColumn--default--12',\n ],\n\n transforms: {\n noscript: $node => {\n const $children = $node.children();\n if ($children.length === 1 && $children.get(0).tagName === 'img') {\n return 'figure';\n }\n return null;\n },\n },\n },\n};\n","export const WwwFastcompanyComExtractor = {\n domain: 'www.fastcompany.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.post__deck'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.post__article'],\n },\n};\n","export const BlisterreviewComExtractor = {\n domain: 'blisterreview.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], 'h1.entry-title'],\n },\n\n author: {\n selectors: ['span.author-name'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['time.entry-date', 'datetime'],\n ['meta[itemprop=\"datePublished\"]', 'content'],\n ],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'],\n ['meta[property=\"og:image\"]', 'content'],\n ['meta[itemprop=\"image\"]', 'content'],\n ['meta[name=\"twitter:image\"]', 'content'],\n ['img.attachment-large', 'src'],\n ],\n },\n\n content: {\n selectors: [\n [\n '.elementor-section-wrap',\n '.elementor-text-editor > p, .elementor-text-editor > ul > li, .attachment-large, .wp-caption-text',\n ],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n figcaption: 'p',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.comments-area'],\n },\n};\n","export const NewsMynaviJpExtractor = {\n domain: 'news.mynavi.jp',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [\n 'a.articleHeader_name',\n 'main div.article-author a.article-author__name',\n ],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article-body', 'main article div'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n img: $node => {\n const src = $node.attr('data-original');\n if (src !== '') {\n $node.attr('src', src);\n }\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const ClinicaltrialsGovExtractor = {\n domain: 'clinicaltrials.gov',\n\n title: {\n selectors: ['h1.tr-solo_record'],\n },\n\n author: {\n selectors: ['div#sponsor.tr-info-text'],\n },\n\n date_published: {\n // selectors: ['span.term[data-term=\"Last Update Posted\"]'],\n selectors: ['div:has(> span.term[data-term=\"Last Update Posted\"])'],\n },\n\n content: {\n selectors: ['div#tab-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.usa-alert> img'],\n },\n};\n","export const GithubComExtractor = {\n domain: 'github.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [\n // enter author selectors\n ],\n },\n\n date_published: {\n selectors: [\n ['relative-time[datetime]', 'datetime'],\n ['span[itemprop=\"dateModified\"] relative-time', 'datetime'],\n ],\n },\n\n dek: {\n selectors: [\n ['meta[name=\"description\"]', 'value'],\n 'span[itemprop=\"about\"]',\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [['#readme article']],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwRedditComExtractor = {\n domain: 'www.reddit.com',\n\n title: {\n selectors: [\n 'div[data-test-id=\"post-content\"] h1',\n 'div[data-test-id=\"post-content\"] h2',\n ],\n },\n\n author: {\n selectors: ['div[data-test-id=\"post-content\"] a[href*=\"user/\"]'],\n },\n\n date_published: {\n selectors: [\n 'div[data-test-id=\"post-content\"] span[data-click-id=\"timestamp\"]',\n 'div[data-test-id=\"post-content\"] a[data-click-id=\"timestamp\"]',\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['div[data-test-id=\"post-content\"] p'], // text post\n [\n 'div[data-test-id=\"post-content\"] a[target=\"_blank\"]:not([data-click-id=\"timestamp\"])', // external link\n 'div[data-test-id=\"post-content\"] div[data-click-id=\"media\"]', // embedded media\n ], // external link with media preview (YouTube, imgur album, etc...)\n ['div[data-test-id=\"post-content\"] div[data-click-id=\"media\"]'], // Embedded media (Reddit video)\n ['div[data-test-id=\"post-content\"] a'], // external link\n 'div[data-test-id=\"post-content\"]',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div[role=\"img\"]': $node => {\n // External link image preview\n const $img = $node.find('img');\n const bgImg = $node.css('background-image');\n if ($img.length === 1 && bgImg) {\n $img.attr('src', bgImg.match(/\\((.*?)\\)/)[1].replace(/('|\")/g, ''));\n return $img;\n }\n return $node;\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.icon',\n 'span[id^=\"PostAwardBadges\"]',\n 'div a[data-test-id=\"comments-page-link-num-comments\"]',\n ],\n },\n};\n","export const OtrsComExtractor = {\n domain: 'otrs.com',\n\n title: {\n selectors: ['#main article h1'],\n },\n\n author: {\n selectors: ['div.dateplusauthor a'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#main article'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [\n 'div.dateplusauthor',\n 'div.gr-12.push-6.footershare',\n '#atftbx',\n 'div.category-modul',\n ],\n },\n};\n","export const WwwOssnewsJpExtractor = {\n domain: 'www.ossnews.jp',\n\n title: {\n selectors: ['#alpha-block h1.hxnewstitle'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['p.fs12'],\n format: 'YYYYå¹´MM月DDæ—¥ HH:mm',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#alpha-block .section:has(h1.hxnewstitle)'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const BuzzapJpExtractor = {\n domain: 'buzzap.jp',\n\n title: {\n selectors: ['h1.entry-title'],\n },\n\n author: null,\n\n date_published: {\n selectors: [['time.entry-date', 'datetime']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.ctiframe'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const WwwAsahiComExtractor = {\n domain: 'www.asahi.com',\n\n title: {\n selectors: ['main h1', '.ArticleTitle h1'],\n },\n\n author: {\n selectors: [['meta[name=\"article:author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"pubdate\"]', 'value']],\n },\n\n dek: null,\n\n excerpt: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['main'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['div.AdMod', 'div.LoginSelectArea', 'time', 'div.notPrint'],\n },\n};\n","export const WwwSanwaCoJpExtractor = {\n domain: 'www.sanwa.co.jp',\n\n title: {\n selectors: ['#newsContent h1'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['dl.date'],\n format: 'YYYY.MM.DD',\n timezone: 'Asia/Tokyo',\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#newsContent'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['#smartphone', 'div.sns_box', 'div.contentFoot'],\n },\n};\n","export const WwwElecomCoJpExtractor = {\n domain: 'www.elecom.co.jp',\n\n title: {\n selectors: ['title'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['p.section-last'],\n format: 'YYYY.MM.DD',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['td.TableMain2'],\n\n defaultCleaner: false,\n\n transforms: {\n table: $node => {\n $node.attr('width', 'auto');\n },\n },\n\n clean: [],\n },\n};\n","export const ScanNetsecurityNeJpExtractor = {\n domain: 'scan.netsecurity.ne.jp',\n\n title: {\n selectors: ['header.arti-header h1.head'],\n },\n\n author: null,\n\n date_published: {\n selectors: [['meta[name=\"article:modified_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['header.arti-header p.arti-summary'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.arti-content.arti-content--thumbnail'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['aside.arti-giga'],\n },\n};\n","export const JvndbJvnJpExtractor = {\n domain: 'jvndb.jvn.jp',\n\n title: {\n selectors: ['title'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['div.modifytxt:nth-child(2)'],\n format: 'YYYY/MM/DD',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['#news-list'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const GeniusComExtractor = {\n domain: 'genius.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['h2 a'],\n },\n\n date_published: {\n selectors: [\n [\n 'meta[itemprop=page_data]',\n 'value',\n res => {\n const json = JSON.parse(res);\n return json.song.release_date;\n },\n ],\n ],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [\n [\n 'meta[itemprop=page_data]',\n 'value',\n res => {\n const json = JSON.parse(res);\n return json.song.album.cover_art_url;\n },\n ],\n ],\n },\n\n content: {\n selectors: ['.lyrics'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwJnsaOrgExtractor = {\n domain: 'www.jnsa.org',\n\n title: {\n selectors: ['#wgtitle h2'],\n },\n\n author: null,\n\n date_published: null,\n\n dek: null,\n\n excerpt: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#main_area'],\n\n transforms: {},\n\n clean: ['#pankuzu', '#side'],\n },\n};\n","export const PhpspotOrgExtractor = {\n domain: 'phpspot.org',\n\n title: {\n selectors: ['h3.hl'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['h4.hl'],\n format: 'YYYYå¹´MM月DDæ—¥',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['div.entrybody'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const WwwInfoqComExtractor = {\n domain: 'www.infoq.com',\n\n title: {\n selectors: ['h1.heading'],\n },\n\n author: {\n selectors: ['div.widget.article__authors'],\n },\n\n date_published: {\n selectors: ['.article__readTime.date'],\n format: 'YYYYå¹´MM月DDæ—¥',\n timezone: 'Asia/Tokyo',\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article__data'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const WwwMoongiftJpExtractor = {\n domain: 'www.moongift.jp',\n\n title: {\n selectors: ['h1.title a'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['ul.meta li:not(.social):first-of-type'],\n timezone: 'Asia/Tokyo',\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#main'],\n\n transforms: {},\n\n clean: ['ul.mg_service.cf'],\n },\n};\n","export const WwwItmediaCoJpExtractor = {\n domain: 'www.itmedia.co.jp',\n\n supportedDomains: [\n 'www.atmarkit.co.jp',\n 'techtarget.itmedia.co.jp',\n 'nlab.itmedia.co.jp',\n ],\n\n title: {\n selectors: ['#cmsTitle h1'],\n },\n\n author: {\n selectors: ['#byline'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:modified_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['#cmsAbstract h2'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#cmsBody'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['#snsSharebox'],\n },\n};\n","export const WwwPublickey1JpExtractor = {\n domain: 'www.publickey1.jp',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['.bloggerinchief p:first-of-type', '#subcol p:has(img)'],\n },\n\n date_published: {\n selectors: ['div.pubdate'],\n format: 'YYYYå¹´MM月DDæ—¥',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#maincol'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['#breadcrumbs', 'div.sbm', 'div.ad_footer'],\n },\n};\n","export const TakagihiromitsuJpExtractor = {\n domain: 'takagi-hiromitsu.jp',\n\n title: {\n selectors: ['h3'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[http-equiv=\"Last-Modified\"]', 'value']],\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['div.body'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const BookwalkerJpExtractor = {\n domain: 'bookwalker.jp',\n\n title: {\n selectors: ['h1.p-main__title', 'h1.main-heading'],\n },\n\n author: {\n selectors: ['div.p-author__list', 'div.authors'],\n },\n\n date_published: {\n selectors: [\n 'dl.p-information__data dd:nth-of-type(7)',\n '.work-info .work-detail:first-of-type .work-detail-contents:last-of-type',\n ],\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'div.p-main__information',\n ['div.main-info', 'div.main-cover-inner'],\n ],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [\n 'span.label.label--trial',\n 'dt.info-head.info-head--coin',\n 'dd.info-contents.info-contents--coin',\n 'div.info-notice.fn-toggleClass',\n ],\n },\n};\n","export const WwwYomiuriCoJpExtractor = {\n domain: 'www.yomiuri.co.jp',\n\n title: {\n selectors: ['h1.title-article.c-article-title'],\n },\n\n author: null,\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.p-main-contents'],\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const JapanCnetComExtractor = {\n domain: 'japan.cnet.com',\n\n title: {\n selectors: ['.leaf-headline-ttl'],\n },\n\n author: {\n selectors: ['.writer'],\n },\n\n date_published: {\n selectors: ['.date'],\n format: 'YYYYå¹´MM月DDæ—¥ HH時mm分',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article_body'],\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const DeadlineComExtractor = {\n domain: 'deadline.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['section.author h2'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.a-article-grid__main.pmc-a-grid article.pmc-a-grid-item'],\n\n transforms: {\n '.embed-twitter': $node => {\n const innerHtml = $node.html();\n $node.replaceWith(innerHtml);\n },\n },\n\n clean: ['figcaption'],\n },\n};\n","export const WwwGizmodoJpExtractor = {\n domain: 'www.gizmodo.jp',\n\n title: {\n selectors: ['h1.p-post-title'],\n },\n\n author: {\n selectors: ['li.p-post-AssistAuthor'],\n },\n\n date_published: {\n selectors: [['li.p-post-AssistTime time', 'datetime']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article.p-post'],\n\n transforms: {\n 'img.p-post-thumbnailImage': $node => {\n const src = $node.attr('src');\n $node.attr('src', src.replace(/^.*=%27/, '').replace(/%27;$/, ''));\n },\n },\n\n clean: ['h1.p-post-title', 'ul.p-post-Assist'],\n },\n};\n","export const GetnewsJpExtractor = {\n domain: 'getnews.jp',\n\n title: {\n selectors: ['article h1'],\n },\n\n author: {\n selectors: [['meta[name=\"article:author\"]', 'value'], 'span.prof'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['ul.cattag-top time', 'datetime'],\n ],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.post-bodycopy'],\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const WwwLifehackerJpExtractor = {\n domain: 'www.lifehacker.jp',\n\n title: {\n selectors: ['h1[class^=\"article_pArticle_Title\"]', 'h1.lh-summary-title'],\n },\n\n author: {\n selectors: [\n ['meta[name=\"author\"]', 'value'],\n 'p.lh-entryDetailInner--credit',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['div.lh-entryDetail-header time', 'datetime'],\n ],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'div[class^=\"article_pArticle_Body__\"]',\n 'div.lh-entryDetail-body',\n ],\n\n transforms: {\n 'img.lazyload': $node => {\n const src = $node.attr('src');\n $node.attr('src', src.replace(/^.*=%27/, '').replace(/%27;$/, ''));\n },\n },\n\n clean: ['p.lh-entryDetailInner--credit'],\n },\n};\n","export const SectIijAdJpExtractor = {\n domain: 'sect.iij.ad.jp',\n\n title: {\n selectors: ['div.title-box-inner h1', 'h3'],\n },\n\n author: {\n selectors: ['p.post-author a', 'dl.entrydate dd'],\n },\n\n date_published: {\n selectors: ['time'],\n format: 'YYYYå¹´MM月DDæ—¥',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.entry-inner', '#article'],\n\n transforms: {},\n\n clean: ['dl.entrydate'],\n },\n};\n","export const WwwOreillyCoJpExtractor = {\n domain: 'www.oreilly.co.jp',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], 'h3'],\n },\n\n author: {\n selectors: ['span[itemprop=\"author\"]', 'li[itemprop=\"author\"]'],\n },\n\n date_published: {\n selectors: [\n ['dd[itemprop=\"datePublished\"]', 'content'],\n ['meta[itemprop=\"datePublished\"]', 'value'],\n ],\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image:secure_url\"]', 'value'],\n ['meta[name=\"og:image\"]', 'value'],\n ],\n },\n\n content: {\n selectors: ['section.detail', '#content'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['.social-tools'],\n },\n};\n","export const WwwIpaGoJpExtractor = {\n domain: 'www.ipa.go.jp',\n\n title: {\n selectors: ['h1'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['p.ipar_text_right'],\n format: 'YYYYå¹´M月Dæ—¥',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['#ipar_main'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['p.ipar_text_right'],\n },\n};\n","export const WeeklyAsciiJpExtractor = {\n domain: 'weekly.ascii.jp',\n\n title: {\n selectors: ['article h1', 'h1[itemprop=\"headline\"]'],\n },\n\n author: {\n selectors: ['p.author'],\n },\n\n date_published: {\n selectors: ['p.date', ['meta[name=\"odate\"]', 'value']],\n\n format: 'YYYYå¹´MM月DDæ—¥ HH:mm',\n\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div#contents_detail', 'div.article'],\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const TechlogIijAdJpExtractor = {\n domain: 'techlog.iij.ad.jp',\n\n title: {\n selectors: ['h1.entry-title'],\n },\n\n author: {\n selectors: ['a[rel=\"author\"]'],\n },\n\n date_published: {\n selectors: [['time.entry-date', 'datetime']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.entry-content'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['.wp_social_bookmarking_light'],\n },\n};\n","import URL from 'url';\n\nexport const WiredJpExtractor = {\n domain: 'wired.jp',\n\n title: {\n selectors: ['h1[data-testid=\"ContentHeaderHed\"]', 'h1.post-title'],\n },\n\n author: {\n selectors: [\n ['meta[name=\"article:author\"]', 'value'],\n 'p[itemprop=\"author\"]',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['time', 'datetime'],\n ],\n },\n\n dek: {\n selectors: ['div[class^=\"ContentHeaderDek\"]', '.post-intro'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'div[data-attribute-verso-pattern=\"article-body\"]',\n 'article.article-detail',\n ],\n\n transforms: {\n 'img[data-original]': $node => {\n const dataOriginal = $node.attr('data-original');\n const src = $node.attr('src');\n const url = URL.resolve(src, dataOriginal);\n $node.attr('src', url);\n },\n },\n\n clean: ['.post-category', 'time', 'h1.post-title', '.social-area-syncer'],\n },\n};\n","export const JapanZdnetComExtractor = {\n domain: 'japan.zdnet.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [['meta[name=\"cXenseParse:author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article_body'],\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const WwwRbbtodayComExtractor = {\n domain: 'www.rbbtoday.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['.writer.writer-name'],\n },\n\n date_published: {\n selectors: [['header time', 'datetime']],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value'], '.arti-summary'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.arti-content'],\n\n transforms: {},\n\n clean: ['.arti-giga'],\n },\n};\n","export const WwwLemondeFrExtractor = {\n domain: 'www.lemonde.fr',\n\n title: {\n selectors: ['h1.article__title'],\n },\n\n author: {\n selectors: ['.author__name'],\n },\n\n date_published: {\n selectors: [['meta[name=\"og:article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.article__desc'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article__content'],\n\n transforms: {},\n\n clean: ['figcaption'],\n },\n};\n","export const WwwPhoronixComExtractor = {\n domain: 'www.phoronix.com',\n\n title: {\n selectors: ['article h1', 'article header'],\n },\n\n author: {\n selectors: ['.author a:first-child'],\n },\n\n date_published: {\n selectors: ['.author'],\n // 1 June 2019 at 08:34 PM EDT\n format: 'D MMMM YYYY at hh:mm',\n timezone: 'America/New_York',\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['.content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const PitchforkComExtractor = {\n domain: 'pitchfork.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], 'title'],\n },\n\n author: {\n selectors: [\n ['meta[name=\"article:author\"]', 'value'],\n '.authors-detail__display-name',\n ],\n },\n\n date_published: {\n selectors: ['div[class^=\"InfoSliceWrapper-\"]', ['.pub-date', 'datetime']],\n },\n\n dek: {\n selectors: [\n ['meta[name=\"og:description\"]', 'value'],\n '.review-detail__abstract',\n ],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'],\n ['.single-album-tombstone__art img', 'src'],\n ],\n },\n\n content: {\n selectors: ['div.body__inner-container', '.review-detail__text'],\n },\n\n extend: {\n score: {\n selectors: ['p[class*=\"Rating\"]', '.score'],\n },\n },\n};\n","export const BiorxivOrgExtractor = {\n domain: 'biorxiv.org',\n\n title: {\n selectors: ['h1#page-title'],\n },\n\n author: {\n selectors: [\n 'div.highwire-citation-biorxiv-article-top > div.highwire-cite-authors',\n ],\n },\n\n content: {\n selectors: ['div#abstract-1'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const EpaperZeitDeExtractor = {\n domain: 'epaper.zeit.de',\n\n title: {\n selectors: ['p.title'],\n },\n\n author: {\n selectors: ['.article__author'],\n },\n\n date_published: null,\n\n excerpt: {\n selectors: ['subtitle'],\n },\n\n lead_image_url: null,\n\n content: {\n selectors: ['.article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'p.title': 'h1',\n '.article__author': 'p',\n byline: 'p',\n linkbox: 'p',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['image-credits', 'box[type=citation]'],\n },\n};\n","export const WwwLadbibleComExtractor = {\n domain: 'www.ladbible.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['[class*=Byline]'],\n },\n\n date_published: {\n selectors: ['time'],\n timezone: 'Europe/London',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['[class*=ArticleContainer]'],\n clean: [\n 'time',\n 'source',\n 'a[href^=\"https://www.ladbible.com/\"]',\n 'picture',\n '[class*=StyledCardBlock]',\n ],\n },\n};\n","export const TimesofindiaIndiatimesComExtractor = {\n domain: 'timesofindia.indiatimes.com',\n\n title: {\n selectors: ['h1'],\n },\n\n extend: {\n reporter: {\n selectors: ['div.byline'],\n transforms: {},\n },\n },\n\n date_published: {\n selectors: ['.byline'],\n format: 'MMM D, YYYY, HH:mm z',\n timezone: 'Asia/Kolkata',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.contentwrapper:has(section)'],\n defaultCleaner: false,\n\n clean: [\n 'section',\n 'h1',\n '.byline',\n '.img_cptn',\n '.icon_share_wrap',\n 'ul[itemtype=\"https://schema.org/BreadcrumbList\"]',\n ],\n },\n};\n","export const MaTtiasBeExtractor = {\n domain: 'ma.ttias.be',\n\n title: {\n selectors: [['meta[name=\"twitter:title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n content: {\n selectors: [['.content']],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n h2: $node => {\n // The \"id\" attribute values would result in low scores and the element being\n // removed.\n $node.attr('id', null);\n\n // h1 elements will be demoted to h2, so demote h2 elements to h3.\n return 'h3';\n },\n h1: $node => {\n // The \"id\" attribute values would result in low scores and the element being\n // removed.\n $node.attr('id', null);\n\n // A subsequent h2 will be removed if there is not a paragraph before it, so\n // add a paragraph here. It will be removed anyway because it is empty.\n $node.after('<p></p>');\n },\n ul: $node => {\n // Articles contain lists of links which look like, but are not, navigation\n // elements. Adding this class attribute avoids them being incorrectly removed.\n $node.attr('class', 'entry-content-asset');\n },\n },\n },\n};\n","export const PastebinComExtractor = {\n domain: 'pastebin.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['.username', '.paste_box_line2 .t_us + a'],\n },\n\n date_published: {\n selectors: ['.date', '.paste_box_line2 .t_da + span'],\n timezone: 'America/New_York',\n format: 'MMMM D, YYYY',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.source', '#selectable .text'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n ol: 'div',\n li: 'p',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","/* eslint-disable no-nested-ternary */\n/* eslint-disable no-unused-expressions */\nexport const WwwAbendblattDeExtractor = {\n domain: 'www.abendblatt.de',\n\n title: {\n selectors: ['h2.article__header__headline'],\n },\n\n author: {\n selectors: ['span.author-info__name-text'],\n },\n\n date_published: {\n selectors: [\n ['time.teaser-stream-time', 'datetime'],\n ['time.article__header__date', 'datetime'],\n ],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article__body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n p: $node => {\n if (!$node.hasClass('obfuscated')) return null;\n let o = '';\n let n = 0;\n for (let i = $node.text(); n < i.length; n += 1) {\n const r = i.charCodeAt(n);\n r === 177\n ? (o += '%')\n : r === 178\n ? (o += '!')\n : r === 180\n ? (o += ';')\n : r === 181\n ? (o += '=')\n : r === 32\n ? (o += ' ')\n : r === 10\n ? (o += '\\n')\n : r > 33 && (o += String.fromCharCode(r - 1));\n }\n\n $node.html(o);\n $node.removeClass('obfuscated');\n $node.addClass('deobfuscated');\n return null;\n },\n div: $node => {\n if (!$node.hasClass('obfuscated')) return null;\n let o = '';\n let n = 0;\n for (let i = $node.text(); n < i.length; n += 1) {\n const r = i.charCodeAt(n);\n r === 177\n ? (o += '%')\n : r === 178\n ? (o += '!')\n : r === 180\n ? (o += ';')\n : r === 181\n ? (o += '=')\n : r === 32\n ? (o += ' ')\n : r === 10\n ? (o += '\\n')\n : r > 33 && (o += String.fromCharCode(r - 1));\n }\n\n $node.html(o);\n $node.removeClass('obfuscated');\n $node.addClass('deobfuscated');\n return null;\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwGrueneDeExtractor = {\n domain: 'www.gruene.de',\n\n title: {\n selectors: ['header h1'],\n },\n\n author: null,\n\n date_published: null,\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[property=\"og:image\"]', 'content']],\n },\n\n content: {\n // selectors: ['section'],\n selectors: [['section header', 'section h2', 'section p', 'section ol']],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['figcaption', 'p[class]'],\n },\n};\n","export const WwwEngadgetComExtractor = {\n domain: 'www.engadget.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: ['a.th-meta[data-ylk*=\"subsec:author\"]'],\n },\n\n // Engadget stories have publish dates, but the only representation of them on the page\n // is in a format like \"2h ago\". There are also these tags with blank values:\n // <meta class=\"swiftype\" name=\"published_at\" data-type=\"date\" value=\"\">\n date_published: {\n selectors: [\n // enter selectors\n ],\n },\n\n dek: {\n selectors: ['div[class*=\"o-title_mark\"] div'],\n },\n\n // Engadget stories do have lead images specified by an og:image meta tag, but selecting\n // the value attribute of that tag fails. I believe the \"ℑ\" sequence of characters\n // is triggering this inability to select the attribute value.\n lead_image_url: {\n selectors: [\n // enter selectors\n ],\n },\n\n content: {\n selectors: [\n [\n // Some figures will be inside div.article-text, but some header figures/images\n // will not.\n '#page_body figure:not(div.article-text figure)',\n 'div.article-text',\n ],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const ArstechnicaComExtractor = {\n domain: 'arstechnica.com',\n\n // Articles from this site are often paginated, but I was unable to write a CSS\n // selector to find the next page. On the last page, there will be a link with a CSS\n // selector indicating that the previous page is next. But the parser appears to find\n // the next page without this extractor finding it, as long as the fallback option is\n // left at its default value of true.\n\n title: {\n selectors: ['title'],\n },\n\n author: {\n selectors: ['*[rel=\"author\"] *[itemprop=\"name\"]'],\n },\n\n date_published: {\n selectors: [['.byline time', 'datetime']],\n },\n\n dek: {\n selectors: ['h2[itemprop=\"description\"]'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div[itemprop=\"articleBody\"]'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n h2: $node => {\n // Some pages have an element h2 that is significant, and that the parser will\n // remove if not following a paragraph. Adding this empty paragraph fixes it, and\n // the empty paragraph will be removed anyway.\n $node.before('<p></p>');\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result.\n clean: [\n // Remove enlarge links and separators inside image captions.\n 'figcaption .enlarge-link',\n 'figcaption .sep',\n\n // I could not transform the video into usable elements, so I\n // removed them.\n 'figure.video',\n\n // Image galleries that do not work.\n '.gallery',\n\n 'aside',\n '.sidebar',\n ],\n },\n};\n","export const WwwNdtvComExtractor = {\n domain: 'www.ndtv.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], 'h1.entry-title'],\n },\n\n author: {\n selectors: ['span[itemprop=\"author\"] span[itemprop=\"name\"]'],\n },\n\n date_published: {\n selectors: [['span[itemprop=\"dateModified\"]', 'content']],\n },\n\n dek: {\n selectors: ['h2'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div[itemprop=\"articleBody\"]'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n // This site puts a dateline in a 'b' above the first paragraph, and then somehow\n // blends it into the first paragraph with CSS. This transform moves the dateline\n // to the first paragraph.\n '.place_cont': $node => {\n if (!$node.parents('p').length) {\n const nextSibling = $node.next('p');\n if (nextSibling) {\n $node.remove();\n nextSibling.prepend($node);\n }\n }\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.highlghts_Wdgt',\n '.ins_instory_dv_caption',\n 'input',\n '._world-wrapper .mt20',\n ],\n },\n};\n","export const SpektrumExtractor = {\n domain: 'www.spektrum.de',\n\n title: {\n selectors: ['.content__title'],\n },\n\n author: {\n selectors: ['.content__author__info__name'],\n },\n\n date_published: {\n selectors: ['.content__meta__date'],\n timezone: 'Europe/Berlin',\n },\n\n dek: {\n selectors: ['.content__intro'],\n },\n\n lead_image_url: {\n selectors: [\n // This is how the meta tag appears in the original source code.\n ['meta[name=\"og:image\"]', 'value'],\n // This is how the meta tag appears in the DOM in Chrome.\n // The selector is included here to make the code work within the browser as well.\n ['meta[property=\"og:image\"]', 'content'],\n // This is the image that is shown on the page.\n // It can be slightly cropped compared to the original in the meta tag.\n '.image__article__top img',\n ],\n },\n\n content: {\n selectors: ['article.content'],\n clean: [\n '.breadcrumbs',\n '.hide-for-print',\n 'aside',\n 'header h2',\n '.image__article__top',\n '.content__author',\n '.copyright',\n '.callout-box',\n ],\n },\n};\n","export const PostlightComExtractor = {\n domain: 'postlight.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"parsely-author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['h2.single-hero__abstract'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['main.post'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n 'section.pl-post-link',\n 'aside',\n 'section.insights_featured_case_studies',\n ],\n },\n};\n","export const WwwInvestmentexecutiveComExtractor = {\n domain: 'www.investmentexecutive.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['div[itemprop=\"author\"]'],\n },\n\n date_published: {\n selectors: [['meta[itemprop=\"datePublished\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['section.article-body'],\n\n clean: ['.hidden'],\n },\n};\n","export const WwwCbcCaExtractor = {\n domain: 'www.cbc.ca',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['.authorText', '.bylineDetails'],\n },\n\n date_published: {\n selectors: [['.timeStamp[datetime]', 'datetime']],\n },\n\n dek: {\n selectors: ['.deck'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.story'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","import mergeSupportedDomains from 'utils/merge-supported-domains';\nimport * as CustomExtractors from './custom/index';\n\nexport default Object.keys(CustomExtractors).reduce((acc, key) => {\n const extractor = CustomExtractors[key];\n return {\n ...acc,\n ...mergeSupportedDomains(extractor),\n };\n}, {});\n","// CLEAN AUTHOR CONSTANTS\nexport const CLEAN_AUTHOR_RE = /^\\s*(posted |written )?by\\s*:?\\s*(.*)/i;\n\n// CLEAN DEK CONSTANTS\nexport const TEXT_LINK_RE = new RegExp('http(s)?://', 'i');\n// An ordered list of meta tag names that denote likely article deks.\n// From most distinct to least distinct.\n//\n// NOTE: There are currently no meta tags that seem to provide the right\n// content consistenty enough. Two options were:\n// - og:description\n// - dc.description\n// However, these tags often have SEO-specific junk in them that's not\n// header-worthy like a dek is. Excerpt material at best.\nexport const DEK_META_TAGS = [];\n\n// An ordered list of Selectors to find likely article deks. From\n// most explicit to least explicit.\n//\n// Should be more restrictive than not, as a failed dek can be pretty\n// detrimental to the aesthetics of an article.\nexport const DEK_SELECTORS = ['.entry-summary'];\n\n// CLEAN DATE PUBLISHED CONSTANTS\nexport const MS_DATE_STRING = /^\\d{13}$/i;\nexport const SEC_DATE_STRING = /^\\d{10}$/i;\nexport const CLEAN_DATE_STRING_RE = /^\\s*published\\s*:?\\s*(.*)/i;\nexport const TIME_MERIDIAN_SPACE_RE = /(.*\\d)(am|pm)(.*)/i;\nexport const TIME_MERIDIAN_DOTS_RE = /\\.m\\./i;\nexport const TIME_NOW_STRING = /^\\s*(just|right)?\\s*now\\s*/i;\nconst timeUnits = [\n 'seconds?',\n 'minutes?',\n 'hours?',\n 'days?',\n 'weeks?',\n 'months?',\n 'years?',\n];\nconst allTimeUnits = timeUnits.join('|');\nexport const TIME_AGO_STRING = new RegExp(\n `(\\\\d+)\\\\s+(${allTimeUnits})\\\\s+ago`,\n 'i'\n);\nconst months = [\n 'jan',\n 'feb',\n 'mar',\n 'apr',\n 'may',\n 'jun',\n 'jul',\n 'aug',\n 'sep',\n 'oct',\n 'nov',\n 'dec',\n];\nconst allMonths = months.join('|');\nconst timestamp1 = '[0-9]{1,2}:[0-9]{2,2}( ?[ap].?m.?)?';\nconst timestamp2 = '[0-9]{1,2}[/-][0-9]{1,2}[/-][0-9]{2,4}';\nconst timestamp3 = '-[0-9]{3,4}$';\nexport const SPLIT_DATE_STRING = new RegExp(\n `(${timestamp1})|(${timestamp2})|(${timestamp3})|([0-9]{1,4})|(${allMonths})`,\n 'ig'\n);\n\n// 2016-11-22T08:57-500\n// Check if datetime string has an offset at the end\nexport const TIME_WITH_OFFSET_RE = /-\\d{3,4}$/;\n\n// CLEAN TITLE CONSTANTS\n// A regular expression that will match separating characters on a\n// title, that usually denote breadcrumbs or something similar.\nexport const TITLE_SPLITTERS_RE = /(: | - | \\| )/g;\n\nexport const DOMAIN_ENDINGS_RE = new RegExp('.com$|.net$|.org$|.co.uk$', 'g');\n","import { normalizeSpaces } from 'utils/text';\nimport { CLEAN_AUTHOR_RE } from './constants';\n\n// Take an author string (like 'By David Smith ') and clean it to\n// just the name(s): 'David Smith'.\nexport default function cleanAuthor(author) {\n return normalizeSpaces(author.replace(CLEAN_AUTHOR_RE, '$2').trim());\n}\n","import validUrl from 'valid-url';\n\nexport default function clean(leadImageUrl) {\n leadImageUrl = leadImageUrl.trim();\n if (validUrl.isWebUri(leadImageUrl)) {\n return leadImageUrl;\n }\n\n return null;\n}\n","import { stripTags } from 'utils/dom';\nimport { excerptContent, normalizeSpaces } from 'utils/text';\n\nimport { TEXT_LINK_RE } from './constants';\n\n// Take a dek HTML fragment, and return the cleaned version of it.\n// Return None if the dek wasn't good enough.\nexport default function cleanDek(dek, { $, excerpt }) {\n // Sanity check that we didn't get too short or long of a dek.\n if (dek.length > 1000 || dek.length < 5) return null;\n\n // Check that dek isn't the same as excerpt\n if (excerpt && excerptContent(excerpt, 10) === excerptContent(dek, 10))\n return null;\n\n const dekText = stripTags(dek, $);\n\n // Plain text links shouldn't exist in the dek. If we have some, it's\n // not a good dek - bail.\n if (TEXT_LINK_RE.test(dekText)) return null;\n\n return normalizeSpaces(dekText.trim());\n}\n","import moment from 'moment-timezone';\nimport parseFormat from 'moment-parseformat';\n// Is there a compelling reason to use moment here?\n// Mostly only being used for the isValid() method,\n// but could just check for 'Invalid Date' string.\n\nimport {\n MS_DATE_STRING,\n SEC_DATE_STRING,\n CLEAN_DATE_STRING_RE,\n SPLIT_DATE_STRING,\n TIME_AGO_STRING,\n TIME_NOW_STRING,\n TIME_MERIDIAN_SPACE_RE,\n TIME_MERIDIAN_DOTS_RE,\n TIME_WITH_OFFSET_RE,\n} from './constants';\n\nexport function cleanDateString(dateString) {\n return (dateString.match(SPLIT_DATE_STRING) || [])\n .join(' ')\n .replace(TIME_MERIDIAN_DOTS_RE, 'm')\n .replace(TIME_MERIDIAN_SPACE_RE, '$1 $2 $3')\n .replace(CLEAN_DATE_STRING_RE, '$1')\n .trim();\n}\n\nexport function createDate(dateString, timezone, format) {\n if (TIME_WITH_OFFSET_RE.test(dateString)) {\n return moment(new Date(dateString));\n }\n\n if (TIME_AGO_STRING.test(dateString)) {\n const fragments = TIME_AGO_STRING.exec(dateString);\n return moment().subtract(fragments[1], fragments[2]);\n }\n\n if (TIME_NOW_STRING.test(dateString)) {\n return moment();\n }\n\n return timezone\n ? moment.tz(dateString, format || parseFormat(dateString), timezone)\n : moment(dateString, format || parseFormat(dateString));\n}\n\n// Take a date published string, and hopefully return a date out of\n// it. Return none if we fail.\nexport default function cleanDatePublished(\n dateString,\n { timezone, format } = {}\n) {\n // If string is in milliseconds or seconds, convert to int and return\n if (MS_DATE_STRING.test(dateString)) {\n return new Date(parseInt(dateString, 10)).toISOString();\n }\n if (SEC_DATE_STRING.test(dateString)) {\n return new Date(parseInt(dateString, 10) * 1000).toISOString();\n }\n\n let date = createDate(dateString, timezone, format);\n\n if (!date.isValid()) {\n dateString = cleanDateString(dateString);\n date = createDate(dateString, timezone, format);\n }\n\n return date.isValid() ? date.toISOString() : null;\n}\n","import {\n cleanAttributes,\n cleanHeaders,\n cleanHOnes,\n cleanImages,\n cleanTags,\n removeEmpty,\n rewriteTopLevel,\n markToKeep,\n stripJunkTags,\n makeLinksAbsolute,\n} from 'utils/dom';\n\n// Clean our article content, returning a new, cleaned node.\nexport default function extractCleanNode(\n article,\n { $, cleanConditionally = true, title = '', url = '', defaultCleaner = true }\n) {\n // Rewrite the tag name to div if it's a top level node like body or\n // html to avoid later complications with multiple body tags.\n rewriteTopLevel(article, $);\n\n // Drop small images and spacer images\n // Only do this is defaultCleaner is set to true;\n // this can sometimes be too aggressive.\n if (defaultCleaner) cleanImages(article, $);\n\n // Make links absolute\n makeLinksAbsolute(article, $, url);\n\n // Mark elements to keep that would normally be removed.\n // E.g., stripJunkTags will remove iframes, so we're going to mark\n // YouTube/Vimeo videos as elements we want to keep.\n markToKeep(article, $, url);\n\n // Drop certain tags like <title>, etc\n // This is -mostly- for cleanliness, not security.\n stripJunkTags(article, $);\n\n // H1 tags are typically the article title, which should be extracted\n // by the title extractor instead. If there's less than 3 of them (<3),\n // strip them. Otherwise, turn 'em into H2s.\n cleanHOnes(article, $);\n\n // Clean headers\n cleanHeaders(article, $, title);\n\n // We used to clean UL's and OL's here, but it was leading to\n // too many in-article lists being removed. Consider a better\n // way to detect menus particularly and remove them.\n // Also optionally running, since it can be overly aggressive.\n if (defaultCleaner) cleanTags(article, $, cleanConditionally);\n\n // Remove empty paragraph nodes\n removeEmpty(article, $);\n\n // Remove unnecessary attributes\n cleanAttributes(article, $);\n\n return article;\n}\n","import { stripTags } from 'utils/dom';\nimport { normalizeSpaces } from 'utils/text';\n\nimport { TITLE_SPLITTERS_RE } from './constants';\nimport { resolveSplitTitle } from './index';\n\nexport default function cleanTitle(title, { url, $ }) {\n // If title has |, :, or - in it, see if\n // we can clean it up.\n if (TITLE_SPLITTERS_RE.test(title)) {\n title = resolveSplitTitle(title, url);\n }\n\n // Final sanity check that we didn't get a crazy title.\n // if (title.length > 150 || title.length < 15) {\n if (title.length > 150) {\n // If we did, return h1 from the document if it exists\n const h1 = $('h1');\n if (h1.length === 1) {\n title = h1.text();\n }\n }\n\n // strip any html tags in the title text\n return normalizeSpaces(stripTags(title, $).trim());\n}\n","import URL from 'url';\nimport wuzzy from 'wuzzy';\n\nimport { TITLE_SPLITTERS_RE, DOMAIN_ENDINGS_RE } from './constants';\n\nfunction extractBreadcrumbTitle(splitTitle, text) {\n // This must be a very breadcrumbed title, like:\n // The Best Gadgets on Earth : Bits : Blogs : NYTimes.com\n // NYTimes - Blogs - Bits - The Best Gadgets on Earth\n if (splitTitle.length >= 6) {\n // Look to see if we can find a breadcrumb splitter that happens\n // more than once. If we can, we'll be able to better pull out\n // the title.\n const termCounts = splitTitle.reduce((acc, titleText) => {\n acc[titleText] = acc[titleText] ? acc[titleText] + 1 : 1;\n return acc;\n }, {});\n\n const [maxTerm, termCount] = Reflect.ownKeys(termCounts).reduce(\n (acc, key) => {\n if (acc[1] < termCounts[key]) {\n return [key, termCounts[key]];\n }\n\n return acc;\n },\n [0, 0]\n );\n\n // We found a splitter that was used more than once, so it\n // is probably the breadcrumber. Split our title on that instead.\n // Note: max_term should be <= 4 characters, so that \" >> \"\n // will match, but nothing longer than that.\n if (termCount >= 2 && maxTerm.length <= 4) {\n splitTitle = text.split(maxTerm);\n }\n\n const splitEnds = [splitTitle[0], splitTitle.slice(-1)];\n const longestEnd = splitEnds.reduce(\n (acc, end) => (acc.length > end.length ? acc : end),\n ''\n );\n\n if (longestEnd.length > 10) {\n return longestEnd;\n }\n\n return text;\n }\n\n return null;\n}\n\nfunction cleanDomainFromTitle(splitTitle, url) {\n // Search the ends of the title, looking for bits that fuzzy match\n // the URL too closely. If one is found, discard it and return the\n // rest.\n //\n // Strip out the big TLDs - it just makes the matching a bit more\n // accurate. Not the end of the world if it doesn't strip right.\n const { host } = URL.parse(url);\n const nakedDomain = host.replace(DOMAIN_ENDINGS_RE, '');\n\n const startSlug = splitTitle[0].toLowerCase().replace(' ', '');\n const startSlugRatio = wuzzy.levenshtein(startSlug, nakedDomain);\n\n if (startSlugRatio > 0.4 && startSlug.length > 5) {\n return splitTitle.slice(2).join('');\n }\n\n const endSlug = splitTitle\n .slice(-1)[0]\n .toLowerCase()\n .replace(' ', '');\n const endSlugRatio = wuzzy.levenshtein(endSlug, nakedDomain);\n\n if (endSlugRatio > 0.4 && endSlug.length >= 5) {\n return splitTitle.slice(0, -2).join('');\n }\n\n return null;\n}\n\n// Given a title with separators in it (colons, dashes, etc),\n// resolve whether any of the segments should be removed.\nexport default function resolveSplitTitle(title, url = '') {\n // Splits while preserving splitters, like:\n // ['The New New York', ' - ', 'The Washington Post']\n const splitTitle = title.split(TITLE_SPLITTERS_RE);\n if (splitTitle.length === 1) {\n return title;\n }\n\n let newTitle = extractBreadcrumbTitle(splitTitle, title);\n if (newTitle) return newTitle;\n\n newTitle = cleanDomainFromTitle(splitTitle, url);\n if (newTitle) return newTitle;\n\n // Fuzzy ratio didn't find anything, so this title is probably legit.\n // Just return it all.\n return title;\n}\n","import cleanAuthor from './author';\nimport cleanImage from './lead-image-url';\nimport cleanDek from './dek';\nimport cleanDatePublished from './date-published';\nimport cleanContent from './content';\nimport cleanTitle from './title';\n\nconst Cleaners = {\n author: cleanAuthor,\n lead_image_url: cleanImage,\n dek: cleanDek,\n date_published: cleanDatePublished,\n content: cleanContent,\n title: cleanTitle,\n};\n\nexport default Cleaners;\n\nexport { cleanAuthor };\nexport { cleanImage };\nexport { cleanDek };\nexport { cleanDatePublished };\nexport { cleanContent };\nexport { cleanTitle };\nexport { default as resolveSplitTitle } from './resolve-split-title';\n","import { stripUnlikelyCandidates, convertToParagraphs } from 'utils/dom';\n\nimport { scoreContent, findTopCandidate } from './scoring';\n\n// Using a variety of scoring techniques, extract the content most\n// likely to be article text.\n//\n// If strip_unlikely_candidates is True, remove any elements that\n// match certain criteria first. (Like, does this element have a\n// classname of \"comment\")\n//\n// If weight_nodes is True, use classNames and IDs to determine the\n// worthiness of nodes.\n//\n// Returns a cheerio object $\nexport default function extractBestNode($, opts) {\n if (opts.stripUnlikelyCandidates) {\n $ = stripUnlikelyCandidates($);\n }\n\n $ = convertToParagraphs($);\n $ = scoreContent($, opts.weightNodes);\n const $topCandidate = findTopCandidate($);\n\n return $topCandidate;\n}\n","import cheerio from 'cheerio';\n\nimport { nodeIsSufficient } from 'utils/dom';\nimport { cleanContent } from 'cleaners';\nimport { normalizeSpaces } from 'utils/text';\n\nimport extractBestNode from './extract-best-node';\n\nconst GenericContentExtractor = {\n defaultOpts: {\n stripUnlikelyCandidates: true,\n weightNodes: true,\n cleanConditionally: true,\n },\n\n // Extract the content for this resource - initially, pass in our\n // most restrictive opts which will return the highest quality\n // content. On each failure, retry with slightly more lax opts.\n //\n // :param return_type: string. If \"node\", should return the content\n // as a cheerio node rather than as an HTML string.\n //\n // Opts:\n // stripUnlikelyCandidates: Remove any elements that match\n // non-article-like criteria first.(Like, does this element\n // have a classname of \"comment\")\n //\n // weightNodes: Modify an elements score based on whether it has\n // certain classNames or IDs. Examples: Subtract if a node has\n // a className of 'comment', Add if a node has an ID of\n // 'entry-content'.\n //\n // cleanConditionally: Clean the node to return of some\n // superfluous content. Things like forms, ads, etc.\n extract({ $, html, title, url }, opts) {\n opts = { ...this.defaultOpts, ...opts };\n\n $ = $ || cheerio.load(html);\n\n // Cascade through our extraction-specific opts in an ordered fashion,\n // turning them off as we try to extract content.\n let node = this.getContentNode($, title, url, opts);\n\n if (nodeIsSufficient(node)) {\n return this.cleanAndReturnNode(node, $);\n }\n\n // We didn't succeed on first pass, one by one disable our\n // extraction opts and try again.\n // eslint-disable-next-line no-restricted-syntax\n for (const key of Reflect.ownKeys(opts).filter(k => opts[k] === true)) {\n opts[key] = false;\n $ = cheerio.load(html);\n\n node = this.getContentNode($, title, url, opts);\n\n if (nodeIsSufficient(node)) {\n break;\n }\n }\n\n return this.cleanAndReturnNode(node, $);\n },\n\n // Get node given current options\n getContentNode($, title, url, opts) {\n return cleanContent(extractBestNode($, opts), {\n $,\n cleanConditionally: opts.cleanConditionally,\n title,\n url,\n });\n },\n\n // Once we got here, either we're at our last-resort node, or\n // we broke early. Make sure we at least have -something- before we\n // move forward.\n cleanAndReturnNode(node, $) {\n if (!node) {\n return null;\n }\n\n return normalizeSpaces($.html(node));\n },\n};\n\nexport default GenericContentExtractor;\n","// TODO: It would be great if we could merge the meta and selector lists into\n// a list of objects, because we could then rank them better. For example,\n// .hentry .entry-title is far better suited than <meta title>.\n\n// An ordered list of meta tag names that denote likely article titles. All\n// attributes should be lowercase for faster case-insensitive matching. From\n// most distinct to least distinct.\nexport const STRONG_TITLE_META_TAGS = [\n 'tweetmeme-title',\n 'dc.title',\n 'rbtitle',\n 'headline',\n 'title',\n];\n\n// og:title is weak because it typically contains context that we don't like,\n// for example the source site's name. Gotta get that brand into facebook!\nexport const WEAK_TITLE_META_TAGS = ['og:title'];\n\n// An ordered list of XPath Selectors to find likely article titles. From\n// most explicit to least explicit.\n//\n// Note - this does not use classes like CSS. This checks to see if the string\n// exists in the className, which is not as accurate as .className (which\n// splits on spaces/endlines), but for our purposes it's close enough. The\n// speed tradeoff is worth the accuracy hit.\nexport const STRONG_TITLE_SELECTORS = [\n '.hentry .entry-title',\n 'h1#articleHeader',\n 'h1.articleHeader',\n 'h1.article',\n '.instapaper_title',\n '#meebo-title',\n];\n\nexport const WEAK_TITLE_SELECTORS = [\n 'article h1',\n '#entry-title',\n '.entry-title',\n '#entryTitle',\n '#entrytitle',\n '.entryTitle',\n '.entrytitle',\n '#articleTitle',\n '.articleTitle',\n 'post post-title',\n 'h1.title',\n 'h2.article',\n 'h1',\n 'html head title',\n 'title',\n];\n","import { cleanTitle } from 'cleaners';\nimport { extractFromMeta, extractFromSelectors } from 'utils/dom';\n\nimport {\n STRONG_TITLE_META_TAGS,\n WEAK_TITLE_META_TAGS,\n STRONG_TITLE_SELECTORS,\n WEAK_TITLE_SELECTORS,\n} from './constants';\n\nconst GenericTitleExtractor = {\n extract({ $, url, metaCache }) {\n // First, check to see if we have a matching meta tag that we can make\n // use of that is strongly associated with the headline.\n let title;\n\n title = extractFromMeta($, STRONG_TITLE_META_TAGS, metaCache);\n if (title) return cleanTitle(title, { url, $ });\n\n // Second, look through our content selectors for the most likely\n // article title that is strongly associated with the headline.\n title = extractFromSelectors($, STRONG_TITLE_SELECTORS);\n if (title) return cleanTitle(title, { url, $ });\n\n // Third, check for weaker meta tags that may match.\n title = extractFromMeta($, WEAK_TITLE_META_TAGS, metaCache);\n if (title) return cleanTitle(title, { url, $ });\n\n // Last, look for weaker selector tags that may match.\n title = extractFromSelectors($, WEAK_TITLE_SELECTORS);\n if (title) return cleanTitle(title, { url, $ });\n\n // If no matches, return an empty string\n return '';\n },\n};\n\nexport default GenericTitleExtractor;\n","// An ordered list of meta tag names that denote likely article authors. All\n// attributes should be lowercase for faster case-insensitive matching. From\n// most distinct to least distinct.\n//\n// Note: \"author\" is too often the -developer- of the page, so it is not\n// added here.\nexport const AUTHOR_META_TAGS = [\n 'byl',\n 'clmst',\n 'dc.author',\n 'dcsext.author',\n 'dc.creator',\n 'rbauthors',\n 'authors',\n];\n\nexport const AUTHOR_MAX_LENGTH = 300;\n\n// An ordered list of XPath Selectors to find likely article authors. From\n// most explicit to least explicit.\n//\n// Note - this does not use classes like CSS. This checks to see if the string\n// exists in the className, which is not as accurate as .className (which\n// splits on spaces/endlines), but for our purposes it's close enough. The\n// speed tradeoff is worth the accuracy hit.\nexport const AUTHOR_SELECTORS = [\n '.entry .entry-author',\n '.author.vcard .fn',\n '.author .vcard .fn',\n '.byline.vcard .fn',\n '.byline .vcard .fn',\n '.byline .by .author',\n '.byline .by',\n '.byline .author',\n '.post-author.vcard',\n '.post-author .vcard',\n 'a[rel=author]',\n '#by_author',\n '.by_author',\n '#entryAuthor',\n '.entryAuthor',\n '.byline a[href*=author]',\n '#author .authorname',\n '.author .authorname',\n '#author',\n '.author',\n '.articleauthor',\n '.ArticleAuthor',\n '.byline',\n];\n\n// An ordered list of Selectors to find likely article authors, with\n// regular expression for content.\nconst bylineRe = /^[\\n\\s]*By/i;\nexport const BYLINE_SELECTORS_RE = [\n ['#byline', bylineRe],\n ['.byline', bylineRe],\n];\n","import { cleanAuthor } from 'cleaners';\nimport { extractFromMeta, extractFromSelectors } from 'utils/dom';\n\nimport {\n AUTHOR_META_TAGS,\n AUTHOR_MAX_LENGTH,\n AUTHOR_SELECTORS,\n BYLINE_SELECTORS_RE,\n} from './constants';\n\nconst GenericAuthorExtractor = {\n extract({ $, metaCache }) {\n let author;\n\n // First, check to see if we have a matching\n // meta tag that we can make use of.\n author = extractFromMeta($, AUTHOR_META_TAGS, metaCache);\n if (author && author.length < AUTHOR_MAX_LENGTH) {\n return cleanAuthor(author);\n }\n\n // Second, look through our selectors looking for potential authors.\n author = extractFromSelectors($, AUTHOR_SELECTORS, 2);\n if (author && author.length < AUTHOR_MAX_LENGTH) {\n return cleanAuthor(author);\n }\n\n // Last, use our looser regular-expression based selectors for\n // potential authors.\n // eslint-disable-next-line no-restricted-syntax\n for (const [selector, regex] of BYLINE_SELECTORS_RE) {\n const node = $(selector);\n if (node.length === 1) {\n const text = node.text();\n if (regex.test(text)) {\n return cleanAuthor(text);\n }\n }\n }\n\n return null;\n },\n};\n\nexport default GenericAuthorExtractor;\n","// An ordered list of meta tag names that denote\n// likely date published dates. All attributes\n// should be lowercase for faster case-insensitive matching.\n// From most distinct to least distinct.\nexport const DATE_PUBLISHED_META_TAGS = [\n 'article:published_time',\n 'displaydate',\n 'dc.date',\n 'dc.date.issued',\n 'rbpubdate',\n 'publish_date',\n 'pub_date',\n 'pagedate',\n 'pubdate',\n 'revision_date',\n 'doc_date',\n 'date_created',\n 'content_create_date',\n 'lastmodified',\n 'created',\n 'date',\n];\n\n// An ordered list of XPath Selectors to find\n// likely date published dates. From most explicit\n// to least explicit.\nexport const DATE_PUBLISHED_SELECTORS = [\n '.hentry .dtstamp.published',\n '.hentry .published',\n '.hentry .dtstamp.updated',\n '.hentry .updated',\n '.single .published',\n '.meta .published',\n '.meta .postDate',\n '.entry-date',\n '.byline .date',\n '.postmetadata .date',\n '.article_datetime',\n '.date-header',\n '.story-date',\n '.dateStamp',\n '#story .datetime',\n '.dateline',\n '.pubdate',\n];\n\n// An ordered list of compiled regular expressions to find likely date\n// published dates from the URL. These should always have the first\n// reference be a date string that is parseable by dateutil.parser.parse\nconst abbrevMonthsStr = '(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)';\nexport const DATE_PUBLISHED_URL_RES = [\n new RegExp('/(20\\\\d{2}/\\\\d{2}/\\\\d{2})/', 'i'),\n new RegExp('(20\\\\d{2}-[01]\\\\d-[0-3]\\\\d)', 'i'),\n new RegExp(`/(20\\\\d{2}/${abbrevMonthsStr}/[0-3]\\\\d)/`, 'i'),\n];\n","import { cleanDatePublished } from 'cleaners';\nimport { extractFromMeta, extractFromSelectors } from 'utils/dom';\nimport { extractFromUrl } from 'utils/text';\n\nimport {\n DATE_PUBLISHED_META_TAGS,\n DATE_PUBLISHED_SELECTORS,\n DATE_PUBLISHED_URL_RES,\n} from './constants';\n\nconst GenericDatePublishedExtractor = {\n extract({ $, url, metaCache }) {\n let datePublished;\n // First, check to see if we have a matching meta tag\n // that we can make use of.\n // Don't try cleaning tags from this string\n datePublished = extractFromMeta(\n $,\n DATE_PUBLISHED_META_TAGS,\n metaCache,\n false\n );\n if (datePublished) return cleanDatePublished(datePublished);\n\n // Second, look through our selectors looking for potential\n // date_published's.\n datePublished = extractFromSelectors($, DATE_PUBLISHED_SELECTORS);\n if (datePublished) return cleanDatePublished(datePublished);\n\n // Lastly, look to see if a dately string exists in the URL\n datePublished = extractFromUrl(url, DATE_PUBLISHED_URL_RES);\n if (datePublished) return cleanDatePublished(datePublished);\n\n return null;\n },\n};\n\nexport default GenericDatePublishedExtractor;\n","// Currently there is only one selector for\n// deks. We should simply return null here\n// until we have a more robust generic option.\n// Below is the original source for this, for reference.\nconst GenericDekExtractor = {\n extract() {\n return null;\n },\n};\n\nexport default GenericDekExtractor;\n","// An ordered list of meta tag names that denote likely article leading images.\n// All attributes should be lowercase for faster case-insensitive matching.\n// From most distinct to least distinct.\nexport const LEAD_IMAGE_URL_META_TAGS = [\n 'og:image',\n 'twitter:image',\n 'image_src',\n];\n\nexport const LEAD_IMAGE_URL_SELECTORS = ['link[rel=image_src]'];\n\nexport const POSITIVE_LEAD_IMAGE_URL_HINTS = [\n 'upload',\n 'wp-content',\n 'large',\n 'photo',\n 'wp-image',\n];\nexport const POSITIVE_LEAD_IMAGE_URL_HINTS_RE = new RegExp(\n POSITIVE_LEAD_IMAGE_URL_HINTS.join('|'),\n 'i'\n);\n\nexport const NEGATIVE_LEAD_IMAGE_URL_HINTS = [\n 'spacer',\n 'sprite',\n 'blank',\n 'throbber',\n 'gradient',\n 'tile',\n 'bg',\n 'background',\n 'icon',\n 'social',\n 'header',\n 'hdr',\n 'advert',\n 'spinner',\n 'loader',\n 'loading',\n 'default',\n 'rating',\n 'share',\n 'facebook',\n 'twitter',\n 'theme',\n 'promo',\n 'ads',\n 'wp-includes',\n];\nexport const NEGATIVE_LEAD_IMAGE_URL_HINTS_RE = new RegExp(\n NEGATIVE_LEAD_IMAGE_URL_HINTS.join('|'),\n 'i'\n);\n\nexport const GIF_RE = /\\.gif(\\?.*)?$/i;\nexport const JPG_RE = /\\.jpe?g(\\?.*)?$/i;\n","import {\n POSITIVE_LEAD_IMAGE_URL_HINTS_RE,\n NEGATIVE_LEAD_IMAGE_URL_HINTS_RE,\n GIF_RE,\n JPG_RE,\n} from './constants';\n\nimport { PHOTO_HINTS_RE } from '../content/scoring/constants';\n\nfunction getSig($node) {\n return `${$node.attr('class') || ''} ${$node.attr('id') || ''}`;\n}\n\n// Scores image urls based on a variety of heuristics.\nexport function scoreImageUrl(url) {\n url = url.trim();\n let score = 0;\n\n if (POSITIVE_LEAD_IMAGE_URL_HINTS_RE.test(url)) {\n score += 20;\n }\n\n if (NEGATIVE_LEAD_IMAGE_URL_HINTS_RE.test(url)) {\n score -= 20;\n }\n\n // TODO: We might want to consider removing this as\n // gifs are much more common/popular than they once were\n if (GIF_RE.test(url)) {\n score -= 10;\n }\n\n if (JPG_RE.test(url)) {\n score += 10;\n }\n\n // PNGs are neutral.\n\n return score;\n}\n\n// Alt attribute usually means non-presentational image.\nexport function scoreAttr($img) {\n if ($img.attr('alt')) {\n return 5;\n }\n\n return 0;\n}\n\n// Look through our parent and grandparent for figure-like\n// container elements, give a bonus if we find them\nexport function scoreByParents($img) {\n let score = 0;\n const $figParent = $img.parents('figure').first();\n\n if ($figParent.length === 1) {\n score += 25;\n }\n\n const $parent = $img.parent();\n let $gParent;\n if ($parent.length === 1) {\n $gParent = $parent.parent();\n }\n\n [$parent, $gParent].forEach($node => {\n if (PHOTO_HINTS_RE.test(getSig($node))) {\n score += 15;\n }\n });\n\n return score;\n}\n\n// Look at our immediate sibling and see if it looks like it's a\n// caption. Bonus if so.\nexport function scoreBySibling($img) {\n let score = 0;\n const $sibling = $img.next();\n const sibling = $sibling.get(0);\n\n if (sibling && sibling.tagName.toLowerCase() === 'figcaption') {\n score += 25;\n }\n\n if (PHOTO_HINTS_RE.test(getSig($sibling))) {\n score += 15;\n }\n\n return score;\n}\n\nexport function scoreByDimensions($img) {\n let score = 0;\n\n const width = parseFloat($img.attr('width'));\n const height = parseFloat($img.attr('height'));\n const src = $img.attr('src');\n\n // Penalty for skinny images\n if (width && width <= 50) {\n score -= 50;\n }\n\n // Penalty for short images\n if (height && height <= 50) {\n score -= 50;\n }\n\n if (width && height && !src.includes('sprite')) {\n const area = width * height;\n if (area < 5000) {\n // Smaller than 50 x 100\n score -= 100;\n } else {\n score += Math.round(area / 1000);\n }\n }\n\n return score;\n}\n\nexport function scoreByPosition($imgs, index) {\n return $imgs.length / 2 - index;\n}\n","import { extractFromMeta } from 'utils/dom';\nimport { cleanImage } from 'cleaners';\n\nimport {\n LEAD_IMAGE_URL_META_TAGS,\n LEAD_IMAGE_URL_SELECTORS,\n} from './constants';\n\nimport {\n scoreImageUrl,\n scoreAttr,\n scoreByParents,\n scoreBySibling,\n scoreByDimensions,\n scoreByPosition,\n} from './score-image';\n\n// Given a resource, try to find the lead image URL from within\n// it. Like content and next page extraction, uses a scoring system\n// to determine what the most likely image may be. Short circuits\n// on really probable things like og:image meta tags.\n//\n// Potential signals to still take advantage of:\n// * domain\n// * weird aspect ratio\nconst GenericLeadImageUrlExtractor = {\n extract({ $, content, metaCache, html }) {\n let cleanUrl;\n if (!$.browser && $('head').length === 0) {\n $('*')\n .first()\n .prepend(html);\n }\n\n // Check to see if we have a matching meta tag that we can make use of.\n // Moving this higher because common practice is now to use large\n // images on things like Open Graph or Twitter cards.\n // images usually have for things like Open Graph.\n const imageUrl = extractFromMeta(\n $,\n LEAD_IMAGE_URL_META_TAGS,\n metaCache,\n false\n );\n\n if (imageUrl) {\n cleanUrl = cleanImage(imageUrl);\n\n if (cleanUrl) return cleanUrl;\n }\n\n // Next, try to find the \"best\" image via the content.\n // We'd rather not have to fetch each image and check dimensions,\n // so try to do some analysis and determine them instead.\n const $content = $(content);\n const imgs = $('img', $content).toArray();\n const imgScores = {};\n\n imgs.forEach((img, index) => {\n const $img = $(img);\n const src = $img.attr('src');\n\n if (!src) return;\n\n let score = scoreImageUrl(src);\n score += scoreAttr($img);\n score += scoreByParents($img);\n score += scoreBySibling($img);\n score += scoreByDimensions($img);\n score += scoreByPosition(imgs, index);\n\n imgScores[src] = score;\n });\n\n const [topUrl, topScore] = Reflect.ownKeys(imgScores).reduce(\n (acc, key) => (imgScores[key] > acc[1] ? [key, imgScores[key]] : acc),\n [null, 0]\n );\n\n if (topScore > 0) {\n cleanUrl = cleanImage(topUrl);\n\n if (cleanUrl) return cleanUrl;\n }\n\n // If nothing else worked, check to see if there are any really\n // probable nodes in the doc, like <link rel=\"image_src\" />.\n // eslint-disable-next-line no-restricted-syntax\n for (const selector of LEAD_IMAGE_URL_SELECTORS) {\n const $node = $(selector).first();\n const src = $node.attr('src');\n if (src) {\n cleanUrl = cleanImage(src);\n if (cleanUrl) return cleanUrl;\n }\n\n const href = $node.attr('href');\n if (href) {\n cleanUrl = cleanImage(href);\n if (cleanUrl) return cleanUrl;\n }\n\n const value = $node.attr('value');\n if (value) {\n cleanUrl = cleanImage(value);\n if (cleanUrl) return cleanUrl;\n }\n }\n\n return null;\n },\n};\n\nexport default GenericLeadImageUrlExtractor;\n","import difflib from 'difflib';\n\nexport default function scoreSimilarity(score, articleUrl, href) {\n // Do this last and only if we have a real candidate, because it's\n // potentially expensive computationally. Compare the link to this\n // URL using difflib to get the % similarity of these URLs. On a\n // sliding scale, subtract points from this link based on\n // similarity.\n if (score > 0) {\n const similarity = new difflib.SequenceMatcher(\n null,\n articleUrl,\n href\n ).ratio();\n // Subtract .1 from diff_percent when calculating modifier,\n // which means that if it's less than 10% different, we give a\n // bonus instead. Ex:\n // 3% different = +17.5 points\n // 10% different = 0 points\n // 20% different = -25 points\n const diffPercent = 1.0 - similarity;\n const diffModifier = -(250 * (diffPercent - 0.2));\n return score + diffModifier;\n }\n\n return 0;\n}\n","import { IS_DIGIT_RE } from 'utils/text/constants';\n\nexport default function scoreLinkText(linkText, pageNum) {\n // If the link text can be parsed as a number, give it a minor\n // bonus, with a slight bias towards lower numbered pages. This is\n // so that pages that might not have 'next' in their text can still\n // get scored, and sorted properly by score.\n let score = 0;\n\n if (IS_DIGIT_RE.test(linkText.trim())) {\n const linkTextAsNum = parseInt(linkText, 10);\n // If it's the first page, we already got it on the first call.\n // Give it a negative score. Otherwise, up to page 10, give a\n // small bonus.\n if (linkTextAsNum < 2) {\n score = -30;\n } else {\n score = Math.max(0, 10 - linkTextAsNum);\n }\n\n // If it appears that the current page number is greater than\n // this links page number, it's a very bad sign. Give it a big\n // penalty.\n if (pageNum && pageNum >= linkTextAsNum) {\n score -= 50;\n }\n }\n\n return score;\n}\n","export default function scorePageInLink(pageNum, isWp) {\n // page in the link = bonus. Intentionally ignore wordpress because\n // their ?p=123 link style gets caught by this even though it means\n // separate documents entirely.\n if (pageNum && !isWp) {\n return 50;\n }\n\n return 0;\n}\n","export const DIGIT_RE = /\\d/;\n\n// A list of words that, if found in link text or URLs, likely mean that\n// this link is not a next page link.\nexport const EXTRANEOUS_LINK_HINTS = [\n 'print',\n 'archive',\n 'comment',\n 'discuss',\n 'e-mail',\n 'email',\n 'share',\n 'reply',\n 'all',\n 'login',\n 'sign',\n 'single',\n 'adx',\n 'entry-unrelated',\n];\nexport const EXTRANEOUS_LINK_HINTS_RE = new RegExp(\n EXTRANEOUS_LINK_HINTS.join('|'),\n 'i'\n);\n\n// Match any link text/classname/id that looks like it could mean the next\n// page. Things like: next, continue, >, >>, » but not >|, »| as those can\n// mean last page.\nexport const NEXT_LINK_TEXT_RE = new RegExp(\n '(next|weiter|continue|>([^|]|$)|»([^|]|$))',\n 'i'\n);\n\n// Match any link text/classname/id that looks like it is an end link: things\n// like \"first\", \"last\", \"end\", etc.\nexport const CAP_LINK_TEXT_RE = new RegExp('(first|last|end)', 'i');\n\n// Match any link text/classname/id that looks like it means the previous\n// page.\nexport const PREV_LINK_TEXT_RE = new RegExp('(prev|earl|old|new|<|«)', 'i');\n\n// Match any phrase that looks like it could be page, or paging, or pagination\nexport const PAGE_RE = new RegExp('pag(e|ing|inat)', 'i');\n","import { EXTRANEOUS_LINK_HINTS_RE } from '../constants';\n\nexport default function scoreExtraneousLinks(href) {\n // If the URL itself contains extraneous values, give a penalty.\n if (EXTRANEOUS_LINK_HINTS_RE.test(href)) {\n return -25;\n }\n\n return 0;\n}\n","import { range } from 'utils';\nimport {\n NEGATIVE_SCORE_RE,\n POSITIVE_SCORE_RE,\n PAGE_RE,\n} from 'utils/dom/constants';\nimport { EXTRANEOUS_LINK_HINTS_RE } from '../constants';\n\nfunction makeSig($link) {\n return `${$link.attr('class') || ''} ${$link.attr('id') || ''}`;\n}\n\nexport default function scoreByParents($link) {\n // If a parent node contains paging-like classname or id, give a\n // bonus. Additionally, if a parent_node contains bad content\n // (like 'sponsor'), give a penalty.\n let $parent = $link.parent();\n let positiveMatch = false;\n let negativeMatch = false;\n let score = 0;\n\n Array.from(range(0, 4)).forEach(() => {\n if ($parent.length === 0) {\n return;\n }\n\n const parentData = makeSig($parent, ' ');\n\n // If we have 'page' or 'paging' in our data, that's a good\n // sign. Add a bonus.\n if (!positiveMatch && PAGE_RE.test(parentData)) {\n positiveMatch = true;\n score += 25;\n }\n\n // If we have 'comment' or something in our data, and\n // we don't have something like 'content' as well, that's\n // a bad sign. Give a penalty.\n if (\n !negativeMatch &&\n NEGATIVE_SCORE_RE.test(parentData) &&\n EXTRANEOUS_LINK_HINTS_RE.test(parentData)\n ) {\n if (!POSITIVE_SCORE_RE.test(parentData)) {\n negativeMatch = true;\n score -= 25;\n }\n }\n\n $parent = $parent.parent();\n });\n\n return score;\n}\n","import { PREV_LINK_TEXT_RE } from '../constants';\n\nexport default function scorePrevLink(linkData) {\n // If the link has something like \"previous\", its definitely\n // an old link, skip it.\n if (PREV_LINK_TEXT_RE.test(linkData)) {\n return -200;\n }\n\n return 0;\n}\n","import URL from 'url';\n\nimport { DIGIT_RE, EXTRANEOUS_LINK_HINTS_RE } from '../constants';\n\nexport default function shouldScore(\n href,\n articleUrl,\n baseUrl,\n parsedUrl,\n linkText,\n previousUrls\n) {\n // skip if we've already fetched this url\n if (previousUrls.find(url => href === url) !== undefined) {\n return false;\n }\n\n // If we've already parsed this URL, or the URL matches the base\n // URL, or is empty, skip it.\n if (!href || href === articleUrl || href === baseUrl) {\n return false;\n }\n\n const { hostname } = parsedUrl;\n const { hostname: linkHost } = URL.parse(href);\n\n // Domain mismatch.\n if (linkHost !== hostname) {\n return false;\n }\n\n // If href doesn't contain a digit after removing the base URL,\n // it's certainly not the next page.\n const fragment = href.replace(baseUrl, '');\n if (!DIGIT_RE.test(fragment)) {\n return false;\n }\n\n // This link has extraneous content (like \"comment\") in its link\n // text, so we skip it.\n if (EXTRANEOUS_LINK_HINTS_RE.test(linkText)) {\n return false;\n }\n\n // Next page link text is never long, skip if it is too long.\n if (linkText.length > 25) {\n return false;\n }\n\n return true;\n}\n","export default function scoreBaseUrl(href, baseRegex) {\n // If the baseUrl isn't part of this URL, penalize this\n // link. It could still be the link, but the odds are lower.\n // Example:\n // http://www.actionscript.org/resources/articles/745/1/JavaScript-and-VBScript-Injection-in-ActionScript-3/Page1.html\n if (!baseRegex.test(href)) {\n return -25;\n }\n\n return 0;\n}\n","import { NEXT_LINK_TEXT_RE } from '../constants';\n\nexport default function scoreNextLinkText(linkData) {\n // Things like \"next\", \">>\", etc.\n if (NEXT_LINK_TEXT_RE.test(linkData)) {\n return 50;\n }\n\n return 0;\n}\n","import { NEXT_LINK_TEXT_RE, CAP_LINK_TEXT_RE } from '../constants';\n\nexport default function scoreCapLinks(linkData) {\n // Cap links are links like \"last\", etc.\n if (CAP_LINK_TEXT_RE.test(linkData)) {\n // If we found a link like \"last\", but we've already seen that\n // this link is also \"next\", it's fine. If it's not been\n // previously marked as \"next\", then it's probably bad.\n // Penalize.\n if (NEXT_LINK_TEXT_RE.test(linkData)) {\n return -65;\n }\n }\n\n return 0;\n}\n","import URL from 'url';\n\nimport { getAttrs, isWordpress } from 'utils/dom';\nimport { removeAnchor, pageNumFromUrl } from 'utils/text';\n\nimport {\n scoreSimilarity,\n scoreLinkText,\n scorePageInLink,\n scoreExtraneousLinks,\n scoreByParents,\n scorePrevLink,\n shouldScore,\n scoreBaseUrl,\n scoreCapLinks,\n scoreNextLinkText,\n} from './utils';\n\nexport function makeBaseRegex(baseUrl) {\n return new RegExp(`^${baseUrl}`, 'i');\n}\n\nfunction makeSig($link, linkText) {\n return `${linkText || $link.text()} ${$link.attr('class') || ''} ${$link.attr(\n 'id'\n ) || ''}`;\n}\n\nexport default function scoreLinks({\n links,\n articleUrl,\n baseUrl,\n parsedUrl,\n $,\n previousUrls = [],\n}) {\n parsedUrl = parsedUrl || URL.parse(articleUrl);\n const baseRegex = makeBaseRegex(baseUrl);\n const isWp = isWordpress($);\n\n // Loop through all links, looking for hints that they may be next-page\n // links. Things like having \"page\" in their textContent, className or\n // id, or being a child of a node with a page-y className or id.\n //\n // After we do that, assign each page a score, and pick the one that\n // looks most like the next page link, as long as its score is strong\n // enough to have decent confidence.\n const scoredPages = links.reduce((possiblePages, link) => {\n // Remove any anchor data since we don't do a good job\n // standardizing URLs (it's hard), we're going to do\n // some checking with and without a trailing slash\n const attrs = getAttrs(link);\n\n // if href is undefined, return\n if (!attrs.href) return possiblePages;\n\n const href = removeAnchor(attrs.href);\n const $link = $(link);\n const linkText = $link.text();\n\n if (\n !shouldScore(href, articleUrl, baseUrl, parsedUrl, linkText, previousUrls)\n ) {\n return possiblePages;\n }\n\n // ## PASSED THE FIRST-PASS TESTS. Start scoring. ##\n if (!possiblePages[href]) {\n possiblePages[href] = {\n score: 0,\n linkText,\n href,\n };\n } else {\n possiblePages[href].linkText = `${\n possiblePages[href].linkText\n }|${linkText}`;\n }\n\n const possiblePage = possiblePages[href];\n const linkData = makeSig($link, linkText);\n const pageNum = pageNumFromUrl(href);\n\n let score = scoreBaseUrl(href, baseRegex);\n score += scoreNextLinkText(linkData);\n score += scoreCapLinks(linkData);\n score += scorePrevLink(linkData);\n score += scoreByParents($link);\n score += scoreExtraneousLinks(href);\n score += scorePageInLink(pageNum, isWp);\n score += scoreLinkText(linkText, pageNum);\n score += scoreSimilarity(score, articleUrl, href);\n\n possiblePage.score = score;\n\n return possiblePages;\n }, {});\n\n return Reflect.ownKeys(scoredPages).length === 0 ? null : scoredPages;\n}\n","import URL from 'url';\n\nimport { articleBaseUrl, removeAnchor } from 'utils/text';\nimport scoreLinks from './scoring/score-links';\n\n// Looks for and returns next page url\n// for multi-page articles\nconst GenericNextPageUrlExtractor = {\n extract({ $, url, parsedUrl, previousUrls = [] }) {\n parsedUrl = parsedUrl || URL.parse(url);\n\n const articleUrl = removeAnchor(url);\n const baseUrl = articleBaseUrl(url, parsedUrl);\n\n const links = $('a[href]').toArray();\n\n const scoredLinks = scoreLinks({\n links,\n articleUrl,\n baseUrl,\n parsedUrl,\n $,\n previousUrls,\n });\n\n // If no links were scored, return null\n if (!scoredLinks) return null;\n\n // now that we've scored all possible pages,\n // find the biggest one.\n const topPage = Reflect.ownKeys(scoredLinks).reduce(\n (acc, link) => {\n const scoredLink = scoredLinks[link];\n return scoredLink.score > acc.score ? scoredLink : acc;\n },\n { score: -100 }\n );\n\n // If the score is less than 50, we're not confident enough to use it,\n // so we fail.\n if (topPage.score >= 50) {\n return topPage.href;\n }\n\n return null;\n },\n};\n\nexport default GenericNextPageUrlExtractor;\n","export const CANONICAL_META_SELECTORS = ['og:url'];\n","import URL from 'url';\nimport { extractFromMeta } from 'utils/dom';\n\nimport { CANONICAL_META_SELECTORS } from './constants';\n\nfunction parseDomain(url) {\n const parsedUrl = URL.parse(url);\n const { hostname } = parsedUrl;\n return hostname;\n}\n\nfunction result(url) {\n return {\n url,\n domain: parseDomain(url),\n };\n}\n\nconst GenericUrlExtractor = {\n extract({ $, url, metaCache }) {\n const $canonical = $('link[rel=canonical]');\n if ($canonical.length !== 0) {\n const href = $canonical.attr('href');\n if (href) {\n return result(href);\n }\n }\n\n const metaUrl = extractFromMeta($, CANONICAL_META_SELECTORS, metaCache);\n if (metaUrl) {\n return result(metaUrl);\n }\n\n return result(url);\n },\n};\n\nexport default GenericUrlExtractor;\n","export const EXCERPT_META_SELECTORS = ['og:description', 'twitter:description'];\n","import ellipsize from 'ellipsize';\n\nimport { extractFromMeta, stripTags } from 'utils/dom';\n\nimport { EXCERPT_META_SELECTORS } from './constants';\n\nexport function clean(content, $, maxLength = 200) {\n content = content.replace(/[\\s\\n]+/g, ' ').trim();\n return ellipsize(content, maxLength, { ellipse: '…' });\n}\n\nconst GenericExcerptExtractor = {\n extract({ $, content, metaCache }) {\n const excerpt = extractFromMeta($, EXCERPT_META_SELECTORS, metaCache);\n if (excerpt) {\n return clean(stripTags(excerpt, $));\n }\n // Fall back to excerpting from the extracted content\n const maxLength = 200;\n const shortContent = content.slice(0, maxLength * 5);\n return clean($(shortContent).text(), $, maxLength);\n },\n};\n\nexport default GenericExcerptExtractor;\n","import cheerio from 'cheerio';\n\nimport { normalizeSpaces } from 'utils/text';\n\nconst getWordCount = content => {\n const $ = cheerio.load(content);\n const $content = $('div').first();\n const text = normalizeSpaces($content.text());\n return text.split(/\\s/).length;\n};\n\nconst getWordCountAlt = content => {\n content = content.replace(/<[^>]*>/g, ' ');\n content = content.replace(/\\s+/g, ' ');\n content = content.trim();\n return content.split(' ').length;\n};\n\nconst GenericWordCountExtractor = {\n extract({ content }) {\n let count = getWordCount(content);\n if (count === 1) count = getWordCountAlt(content);\n return count;\n },\n};\n\nexport default GenericWordCountExtractor;\n","import cheerio from 'cheerio';\nimport stringDirection from 'string-direction';\n\nimport GenericContentExtractor from './content/extractor';\nimport GenericTitleExtractor from './title/extractor';\nimport GenericAuthorExtractor from './author/extractor';\nimport GenericDatePublishedExtractor from './date-published/extractor';\nimport GenericDekExtractor from './dek/extractor';\nimport GenericLeadImageUrlExtractor from './lead-image-url/extractor';\nimport GenericNextPageUrlExtractor from './next-page-url/extractor';\nimport GenericUrlExtractor from './url/extractor';\nimport GenericExcerptExtractor from './excerpt/extractor';\nimport GenericWordCountExtractor from './word-count/extractor';\n\nconst GenericExtractor = {\n // This extractor is the default for all domains\n domain: '*',\n title: GenericTitleExtractor.extract,\n date_published: GenericDatePublishedExtractor.extract,\n author: GenericAuthorExtractor.extract,\n content: GenericContentExtractor.extract.bind(GenericContentExtractor),\n lead_image_url: GenericLeadImageUrlExtractor.extract,\n dek: GenericDekExtractor.extract,\n next_page_url: GenericNextPageUrlExtractor.extract,\n url_and_domain: GenericUrlExtractor.extract,\n excerpt: GenericExcerptExtractor.extract,\n word_count: GenericWordCountExtractor.extract,\n direction: ({ title }) => stringDirection.getDirection(title),\n\n extract(options) {\n const { html, $ } = options;\n\n if (html && !$) {\n const loaded = cheerio.load(html);\n options.$ = loaded;\n }\n\n const title = this.title(options);\n const date_published = this.date_published(options);\n const author = this.author(options);\n const content = this.content({ ...options, title });\n const lead_image_url = this.lead_image_url({ ...options, content });\n const dek = this.dek({ ...options, content });\n const next_page_url = this.next_page_url(options);\n const excerpt = this.excerpt({ ...options, content });\n const word_count = this.word_count({ ...options, content });\n const direction = this.direction({ title });\n const { url, domain } = this.url_and_domain(options);\n\n return {\n title,\n author,\n date_published: date_published || null,\n dek,\n lead_image_url,\n content,\n next_page_url,\n url,\n domain,\n excerpt,\n word_count,\n direction,\n };\n },\n};\n\nexport default GenericExtractor;\n","import { MediumExtractor, BloggerExtractor } from './custom';\n\nconst Detectors = {\n 'meta[name=\"al:ios:app_name\"][value=\"Medium\"]': MediumExtractor,\n 'meta[name=\"generator\"][value=\"blogger\"]': BloggerExtractor,\n};\n\nexport default function detectByHtml($) {\n const selector = Reflect.ownKeys(Detectors).find(s => $(s).length > 0);\n\n return Detectors[selector];\n}\n","import URL from 'url';\n\nimport Extractors from './all';\nimport GenericExtractor from './generic';\nimport detectByHtml from './detect-by-html';\nimport { apiExtractors } from './add-extractor';\n\nexport default function getExtractor(url, parsedUrl, $) {\n parsedUrl = parsedUrl || URL.parse(url);\n const { hostname } = parsedUrl;\n const baseDomain = hostname\n .split('.')\n .slice(-2)\n .join('.');\n\n return (\n apiExtractors[hostname] ||\n apiExtractors[baseDomain] ||\n Extractors[hostname] ||\n Extractors[baseDomain] ||\n detectByHtml($) ||\n GenericExtractor\n );\n}\n","import Cleaners from 'cleaners';\nimport { convertNodeTo, makeLinksAbsolute } from 'utils/dom';\nimport GenericExtractor from './generic';\n\n// Remove elements by an array of selectors\nexport function cleanBySelectors($content, $, { clean }) {\n if (!clean) return $content;\n\n $(clean.join(','), $content).remove();\n\n return $content;\n}\n\n// Transform matching elements\nexport function transformElements($content, $, { transforms }) {\n if (!transforms) return $content;\n\n Reflect.ownKeys(transforms).forEach(key => {\n const $matches = $(key, $content);\n const value = transforms[key];\n\n // If value is a string, convert directly\n if (typeof value === 'string') {\n $matches.each((index, node) => {\n convertNodeTo($(node), $, transforms[key]);\n });\n } else if (typeof value === 'function') {\n // If value is function, apply function to node\n $matches.each((index, node) => {\n const result = value($(node), $);\n // If function returns a string, convert node to that value\n if (typeof result === 'string') {\n convertNodeTo($(node), $, result);\n }\n });\n }\n });\n\n return $content;\n}\n\nfunction findMatchingSelector($, selectors, extractHtml, allowMultiple) {\n return selectors.find(selector => {\n if (Array.isArray(selector)) {\n if (extractHtml) {\n return selector.reduce((acc, s) => acc && $(s).length > 0, true);\n }\n\n const [s, attr] = selector;\n return (\n (allowMultiple || (!allowMultiple && $(s).length === 1)) &&\n $(s).attr(attr) &&\n $(s)\n .attr(attr)\n .trim() !== ''\n );\n }\n\n return (\n (allowMultiple || (!allowMultiple && $(selector).length === 1)) &&\n $(selector)\n .text()\n .trim() !== ''\n );\n });\n}\n\nexport function select(opts) {\n const { $, type, extractionOpts, extractHtml = false } = opts;\n // Skip if there's not extraction for this type\n if (!extractionOpts) return null;\n\n // If a string is hardcoded for a type (e.g., Wikipedia\n // contributors), return the string\n if (typeof extractionOpts === 'string') return extractionOpts;\n\n const { selectors, defaultCleaner = true, allowMultiple } = extractionOpts;\n\n const overrideAllowMultiple = type === 'lead_image_url' || allowMultiple;\n\n const matchingSelector = findMatchingSelector(\n $,\n selectors,\n extractHtml,\n overrideAllowMultiple\n );\n\n if (!matchingSelector) return null;\n\n function transformAndClean($node) {\n makeLinksAbsolute($node, $, opts.url || '');\n cleanBySelectors($node, $, extractionOpts);\n transformElements($node, $, extractionOpts);\n return $node;\n }\n\n function selectHtml() {\n // If the selector type requests html as its return type\n // transform and clean the element with provided selectors\n let $content;\n\n // If matching selector is an array, we're considering this a\n // multi-match selection, which allows the parser to choose several\n // selectors to include in the result. Note that all selectors in the\n // array must match in order for this selector to trigger\n if (Array.isArray(matchingSelector)) {\n $content = $(matchingSelector.join(','));\n const $wrapper = $('<div></div>');\n $content.each((_, element) => {\n $wrapper.append(element);\n });\n\n $content = $wrapper;\n } else {\n $content = $(matchingSelector);\n }\n\n // Wrap in div so transformation can take place on root element\n $content.wrap($('<div></div>'));\n $content = $content.parent();\n $content = transformAndClean($content);\n if (Cleaners[type]) {\n Cleaners[type]($content, { ...opts, defaultCleaner });\n }\n\n if (allowMultiple) {\n return $content\n .children()\n .toArray()\n .map(el => $.html($(el)));\n }\n\n return $.html($content);\n }\n\n if (extractHtml) {\n return selectHtml(matchingSelector);\n }\n\n let $match;\n let result;\n // if selector is an array (e.g., ['img', 'src']),\n // extract the attr\n if (Array.isArray(matchingSelector)) {\n const [selector, attr, transform] = matchingSelector;\n $match = $(selector);\n $match = transformAndClean($match);\n result = $match.map((_, el) => {\n const item = $(el)\n .attr(attr)\n .trim();\n return transform ? transform(item) : item;\n });\n } else {\n $match = $(matchingSelector);\n $match = transformAndClean($match);\n result = $match.map((_, el) =>\n $(el)\n .text()\n .trim()\n );\n }\n\n result =\n Array.isArray(result.toArray()) && allowMultiple\n ? result.toArray()\n : result[0];\n // Allow custom extractor to skip default cleaner\n // for this type; defaults to true\n if (defaultCleaner && Cleaners[type]) {\n return Cleaners[type](result, { ...opts, ...extractionOpts });\n }\n\n return result;\n}\n\nexport function selectExtendedTypes(extend, opts) {\n const results = {};\n Reflect.ownKeys(extend).forEach(t => {\n if (!results[t]) {\n results[t] = select({ ...opts, type: t, extractionOpts: extend[t] });\n }\n });\n return results;\n}\n\nfunction extractResult(opts) {\n const { type, extractor, fallback = true } = opts;\n\n const result = select({ ...opts, extractionOpts: extractor[type] });\n\n // If custom parser succeeds, return the result\n if (result) {\n return result;\n }\n\n // If nothing matches the selector, and fallback is enabled,\n // run the Generic extraction\n if (fallback) return GenericExtractor[type](opts);\n\n return null;\n}\n\nconst RootExtractor = {\n extract(extractor = GenericExtractor, opts) {\n const { contentOnly, extractedTitle } = opts;\n // This is the generic extractor. Run its extract method\n if (extractor.domain === '*') return extractor.extract(opts);\n\n opts = {\n ...opts,\n extractor,\n };\n\n if (contentOnly) {\n const content = extractResult({\n ...opts,\n type: 'content',\n extractHtml: true,\n title: extractedTitle,\n });\n return {\n content,\n };\n }\n const title = extractResult({ ...opts, type: 'title' });\n const date_published = extractResult({ ...opts, type: 'date_published' });\n const author = extractResult({ ...opts, type: 'author' });\n const next_page_url = extractResult({ ...opts, type: 'next_page_url' });\n const content = extractResult({\n ...opts,\n type: 'content',\n extractHtml: true,\n title,\n });\n const lead_image_url = extractResult({\n ...opts,\n type: 'lead_image_url',\n content,\n });\n const excerpt = extractResult({ ...opts, type: 'excerpt', content });\n const dek = extractResult({ ...opts, type: 'dek', content, excerpt });\n const word_count = extractResult({ ...opts, type: 'word_count', content });\n const direction = extractResult({ ...opts, type: 'direction', title });\n const { url, domain } = extractResult({\n ...opts,\n type: 'url_and_domain',\n }) || { url: null, domain: null };\n\n let extendedResults = {};\n if (extractor.extend) {\n extendedResults = selectExtendedTypes(extractor.extend, opts);\n }\n\n return {\n title,\n content,\n author,\n date_published,\n lead_image_url,\n dek,\n next_page_url,\n url,\n domain,\n excerpt,\n word_count,\n direction,\n ...extendedResults,\n };\n },\n};\n\nexport default RootExtractor;\n","import { removeAnchor } from 'utils/text';\nimport RootExtractor from 'extractors/root-extractor';\nimport GenericExtractor from 'extractors/generic';\nimport Resource from 'resource';\n\nexport default async function collectAllPages({\n next_page_url,\n html,\n $,\n metaCache,\n result,\n Extractor,\n title,\n url,\n}) {\n // At this point, we've fetched just the first page\n let pages = 1;\n const previousUrls = [removeAnchor(url)];\n // If we've gone over 26 pages, something has\n // likely gone wrong.\n while (next_page_url && pages < 26) {\n pages += 1;\n // eslint-disable-next-line no-await-in-loop\n $ = await Resource.create(next_page_url);\n html = $.html();\n\n const extractorOpts = {\n url: next_page_url,\n html,\n $,\n metaCache,\n extractedTitle: title,\n previousUrls,\n };\n\n const nextPageResult = RootExtractor.extract(Extractor, extractorOpts);\n\n previousUrls.push(next_page_url);\n result = {\n ...result,\n content: `${result.content}<hr><h4>Page ${pages}</h4>${\n nextPageResult.content\n }`,\n };\n\n // eslint-disable-next-line prefer-destructuring\n next_page_url = nextPageResult.next_page_url;\n }\n\n const word_count = GenericExtractor.word_count({\n content: `<div>${result.content}</div>`,\n });\n return {\n ...result,\n total_pages: pages,\n rendered_pages: pages,\n word_count,\n };\n}\n","import URL from 'url';\nimport cheerio from 'cheerio';\nimport TurndownService from 'turndown';\n\nimport Resource from 'resource';\nimport { validateUrl } from 'utils';\nimport addCustomExtractor from 'extractors/add-extractor';\nimport getExtractor from 'extractors/get-extractor';\nimport RootExtractor, { selectExtendedTypes } from 'extractors/root-extractor';\nimport collectAllPages from 'extractors/collect-all-pages';\n\nconst Parser = {\n async parse(url, { html, ...opts } = {}) {\n const {\n fetchAllPages = true,\n fallback = true,\n contentType = 'html',\n headers = {},\n extend,\n customExtractor,\n } = opts;\n\n // if no url was passed and this is the browser version,\n // set url to window.location.href and load the html\n // from the current page\n if (!url && cheerio.browser) {\n url = window.location.href; // eslint-disable-line no-undef\n html = html || cheerio.html();\n }\n\n const parsedUrl = URL.parse(url);\n\n if (!validateUrl(parsedUrl)) {\n return {\n error: true,\n message:\n 'The url parameter passed does not look like a valid URL. Please check your URL and try again.',\n };\n }\n\n const $ = await Resource.create(url, html, parsedUrl, headers);\n\n // If we found an error creating the resource, return that error\n if ($.failed) {\n return $;\n }\n\n // Add custom extractor via cli.\n if (customExtractor) {\n addCustomExtractor(customExtractor);\n }\n\n const Extractor = getExtractor(url, parsedUrl, $);\n // console.log(`Using extractor for ${Extractor.domain}`);\n\n // if html still has not been set (i.e., url passed to Parser.parse),\n // set html from the response of Resource.create\n if (!html) {\n html = $.html();\n }\n\n // Cached value of every meta name in our document.\n // Used when extracting title/author/date_published/dek\n const metaCache = $('meta')\n .map((_, node) => $(node).attr('name'))\n .toArray();\n\n let extendedTypes = {};\n if (extend) {\n extendedTypes = selectExtendedTypes(extend, { $, url, html });\n }\n\n let result = RootExtractor.extract(Extractor, {\n url,\n html,\n $,\n metaCache,\n parsedUrl,\n fallback,\n contentType,\n });\n\n const { title, next_page_url } = result;\n\n // Fetch more pages if next_page_url found\n if (fetchAllPages && next_page_url) {\n result = await collectAllPages({\n Extractor,\n next_page_url,\n html,\n $,\n metaCache,\n result,\n title,\n url,\n });\n } else {\n result = {\n ...result,\n total_pages: 1,\n rendered_pages: 1,\n };\n }\n\n if (contentType === 'markdown') {\n const turndownService = new TurndownService();\n result.content = turndownService.turndown(result.content);\n } else if (contentType === 'text') {\n result.content = $.text($(result.content));\n }\n\n return { ...result, ...extendedTypes };\n },\n\n browser: !!cheerio.browser,\n\n // A convenience method for getting a resource\n // to work with, e.g., for custom extractor generator\n fetchResource(url) {\n return Resource.create(url);\n },\n\n addExtractor(extractor) {\n return addCustomExtractor(extractor);\n },\n};\n\nexport default Parser;\n"],"names":["NORMALIZE_RE","normalizeSpaces","text","replace","trim","extractFromUrl","url","regexList","matchRe","find","re","test","exec","PAGE_IN_HREF_RE","RegExp","HAS_ALPHA_RE","IS_ALPHA_RE","IS_DIGIT_RE","ENCODING_RE","DEFAULT_ENCODING","pageNumFromUrl","matches","match","pageNum","removeAnchor","split","isGoodSegment","segment","index","firstSegmentHasLetters","goodSegment","length","toLowerCase","articleBaseUrl","parsed","parsedUrl","URL","parse","protocol","host","path","cleanedSegments","reverse","reduce","acc","rawSegment","includes","possibleSegment","fileExt","push","join","SENTENCE_END_RE","hasSentenceEnd","excerptContent","content","words","slice","getEncoding","str","encoding","iconv","encodingExists","REQUEST_HEADERS","cheerio","browser","FETCH_TIMEOUT","BAD_CONTENT_TYPES","BAD_CONTENT_TYPES_RE","MAX_CONTENT_LENGTH","get","options","resolve","reject","request","err","response","body","validateResponse","parseNon200","statusMessage","statusCode","Error","error","headers","contentType","contentLength","fetchResource","encodeURI","href","timeout","jar","gzip","followAllRedirects","window","followRedirect","message","convertMetaProp","$","from","to","each","_","node","$node","value","attr","removeAttr","normalizeMetaTags","SPACER_RE","KEEP_CLASS","KEEP_SELECTORS","STRIP_OUTPUT_TAGS","WHITELIST_ATTRS","WHITELIST_ATTRS_RE","CLEAN_CONDITIONALLY_TAGS","HEADER_TAGS","HEADER_TAG_LIST","UNLIKELY_CANDIDATES_BLACKLIST","UNLIKELY_CANDIDATES_WHITELIST","DIV_TO_P_BLOCK_TAGS","POSITIVE_SCORE_HINTS","POSITIVE_SCORE_RE","NEGATIVE_SCORE_HINTS","NEGATIVE_SCORE_RE","IS_WP_SELECTOR","PAGE_RE","BLOCK_LEVEL_TAGS","BLOCK_LEVEL_TAGS_RE","candidatesBlacklist","CANDIDATES_BLACKLIST","candidatesWhitelist","CANDIDATES_WHITELIST","stripUnlikelyCandidates","not","classes","id","classAndId","remove","brsToPs","collapsing","element","$element","nextElement","next","tagName","paragraphize","br","sibling","nextSibling","p","appendTo","replaceWith","convertDivs","div","$div","convertible","children","convertNodeTo","convertSpans","span","$span","parents","convertToParagraphs","tag","attrs","getAttrs","attribString","map","key","html","contents","cleanForHeight","$img","height","width","removeSpacers","cleanImages","$article","img","markToKeep","article","tags","hostname","addClass","stripJunkTags","cleanHOnes","$hOnes","removeAllButWhitelist","setAttrs","removeClass","cleanAttributes","parent","removeEmpty","$p","NON_TOP_CANDIDATE_TAGS","NON_TOP_CANDIDATE_TAGS_RE","HNEWS_CONTENT_SELECTORS","PHOTO_HINTS","PHOTO_HINTS_RE","READABILITY_ASSET","PARAGRAPH_SCORE_TAGS","CHILD_CONTENT_TAGS","BAD_TAGS","getWeight","score","getScore","scoreCommas","idkRe","scoreLength","textLength","chunks","lengthBonus","Math","min","max","scoreParagraph","setScore","addScore","amount","getOrInitScore","e","addToParent","weightNodes","scoreNode","addScoreTo","scorePs","$parent","rawScore","scoreContent","forEach","parentSelector","childSelector","mergeSiblings","$candidate","topScore","siblingScoreThreshold","wrappingDiv","$sibling","siblingScore","append","contentBonus","density","linkDensity","newScore","siblingContent","siblingContentLength","first","findTopCandidate","removeUnlessContent","weight","hasClass","pCount","inputCount","imgCount","nodeIsList","previousNode","prev","scriptCount","cleanTags","cleanHeaders","title","header","$header","prevAll","rewriteTopLevel","absolutize","rootUrl","baseUrl","absoluteUrl","setAttr","absolutizeSet","$content","urlSet","srcset","candidates","absoluteCandidates","candidate","parts","absoluteUrlSet","makeLinksAbsolute","totalTextLength","linkText","linkLength","extractFromMeta","metaNames","cachedNames","foundNames","filter","name","indexOf","type","nodes","values","toArray","metaValue","stripTags","isGoodNode","maxChildren","withinComment","extractFromSelectors","selectors","textOnly","selector","cleanText","commentParent","nodeClass","class","undefined","nodeIsSufficient","isWordpress","attribs","attributes","val","setAttribute","removeAttribute","IS_LINK","IMAGE_RE","IS_IMAGE","IS_SRCSET","TAGS_TO_REMOVE","convertLazyLoadedImages","extractSrcFromJSON","JSON","src","existingSrc","isComment","cleanComments","root","clean","Resource","create","preparedResponse","validResponse","result","alreadyDecoded","failed","generateDoc","encodeDoc","load","decodedContent","decode","contentTypeSelector","metaContentType","properEncoding","range","start","end","validateUrl","merge","extractor","domains","domain","mergeSupportedDomains","supportedDomains","apiExtractors","addExtractor","BloggerExtractor","transforms","noscript","author","date_published","NYMagExtractor","h1","$children","dek","WikipediaExtractor","defaultCleaner","prepend","TwitterExtractor","tweets","$tweetContainer","s","NYTimesExtractor","lead_image_url","next_page_url","excerpt","TheAtlanticExtractor","NewYorkerExtractor","timezone","WiredExtractor","MSNExtractor","YahooExtractor","BuzzfeedExtractor","h2","has","WikiaExtractor","LittleThingsExtractor","PoliticoExtractor","DeadspinExtractor","youtubeId","BroadwayWorldExtractor","ApartmentTherapyExtractor","data","sources","MediumExtractor","$text","iframe","ytRe","thumb","decodeURIComponent","$caption","empty","figure","WwwTmzComExtractor","WwwWashingtonpostComExtractor","WwwHuffingtonpostComExtractor","NewrepublicComExtractor","MoneyCnnComExtractor","WwwThevergeComExtractor","WwwCnnComExtractor","WwwAolComExtractor","WwwYoutubeComExtractor","videoId","description","WwwTheguardianComExtractor","WwwSbnationComExtractor","WwwBloombergComExtractor","WwwBustleComExtractor","WwwNprOrgExtractor","WwwRecodeNetExtractor","QzComExtractor","WwwDmagazineComExtractor","format","WwwReutersComExtractor","MashableComExtractor","WwwChicagotribuneComExtractor","WwwVoxComExtractor","imgHtml","NewsNationalgeographicComExtractor","$imgSrc","WwwNationalgeographicComExtractor","$imageParent","$dataAttrContainer","imgPath1","imgPath2","WwwLatimesComExtractor","$figure","PagesixComExtractor","ThefederalistpapersOrgExtractor","WwwCbssportsComExtractor","WwwMsnbcComExtractor","WwwThepoliticalinsiderComExtractor","WwwMentalflossComExtractor","AbcnewsGoComExtractor","WwwNydailynewsComExtractor","WwwCnbcComExtractor","WwwPopsugarComExtractor","ObserverComExtractor","PeopleComExtractor","WwwUsmagazineComExtractor","WwwRollingstoneComExtractor","twofortysevensportsComExtractor","UproxxComExtractor","WwwEonlineComExtractor","WwwMiamiheraldComExtractor","WwwRefinery29ComExtractor","WwwMacrumorsComExtractor","WwwAndroidcentralComExtractor","WwwSiComExtractor","WwwRawstoryComExtractor","WwwCnetComExtractor","WwwTodayComExtractor","WwwAlComExtractor","WwwThepennyhoarderComExtractor","WwwWesternjournalismComExtractor","WwwAmericanowComExtractor","ScienceflyComExtractor","HellogigglesComExtractor","ThoughtcatalogComExtractor","WwwInquisitrComExtractor","WwwNbcnewsComExtractor","FortuneComExtractor","WwwLinkedinComExtractor","ObamawhitehouseArchivesGovExtractor","WwwOpposingviewsComExtractor","WwwProspectmagazineCoUkExtractor","ForwardComExtractor","WwwQdailyComExtractor","GothamistComExtractor","WwwFoolComExtractor","WwwSlateComExtractor","IciRadioCanadaCaExtractor","WwwFortinetComExtractor","WwwFastcompanyComExtractor","BlisterreviewComExtractor","figcaption","NewsMynaviJpExtractor","ClinicaltrialsGovExtractor","GithubComExtractor","WwwRedditComExtractor","bgImg","css","OtrsComExtractor","WwwOssnewsJpExtractor","BuzzapJpExtractor","WwwAsahiComExtractor","WwwSanwaCoJpExtractor","WwwElecomCoJpExtractor","table","ScanNetsecurityNeJpExtractor","JvndbJvnJpExtractor","GeniusComExtractor","res","json","song","release_date","album","cover_art_url","WwwJnsaOrgExtractor","PhpspotOrgExtractor","WwwInfoqComExtractor","WwwMoongiftJpExtractor","WwwItmediaCoJpExtractor","WwwPublickey1JpExtractor","TakagihiromitsuJpExtractor","BookwalkerJpExtractor","WwwYomiuriCoJpExtractor","JapanCnetComExtractor","DeadlineComExtractor","innerHtml","WwwGizmodoJpExtractor","GetnewsJpExtractor","WwwLifehackerJpExtractor","SectIijAdJpExtractor","WwwOreillyCoJpExtractor","WwwIpaGoJpExtractor","WeeklyAsciiJpExtractor","TechlogIijAdJpExtractor","WiredJpExtractor","dataOriginal","JapanZdnetComExtractor","WwwRbbtodayComExtractor","WwwLemondeFrExtractor","WwwPhoronixComExtractor","PitchforkComExtractor","extend","BiorxivOrgExtractor","EpaperZeitDeExtractor","byline","linkbox","WwwLadbibleComExtractor","TimesofindiaIndiatimesComExtractor","reporter","MaTtiasBeExtractor","after","ul","PastebinComExtractor","ol","li","WwwAbendblattDeExtractor","o","n","i","r","charCodeAt","String","fromCharCode","WwwGrueneDeExtractor","WwwEngadgetComExtractor","ArstechnicaComExtractor","before","WwwNdtvComExtractor","SpektrumExtractor","PostlightComExtractor","WwwInvestmentexecutiveComExtractor","WwwCbcCaExtractor","CustomExtractors","CLEAN_AUTHOR_RE","TEXT_LINK_RE","MS_DATE_STRING","SEC_DATE_STRING","CLEAN_DATE_STRING_RE","TIME_MERIDIAN_SPACE_RE","TIME_MERIDIAN_DOTS_RE","TIME_NOW_STRING","timeUnits","allTimeUnits","TIME_AGO_STRING","months","allMonths","timestamp1","timestamp2","timestamp3","SPLIT_DATE_STRING","TIME_WITH_OFFSET_RE","TITLE_SPLITTERS_RE","DOMAIN_ENDINGS_RE","cleanAuthor","leadImageUrl","validUrl","isWebUri","cleanDek","dekText","cleanDateString","dateString","createDate","moment","Date","fragments","subtract","tz","parseFormat","cleanDatePublished","toISOString","date","isValid","extractCleanNode","cleanConditionally","cleanTitle","resolveSplitTitle","extractBreadcrumbTitle","splitTitle","termCounts","titleText","maxTerm","termCount","splitEnds","longestEnd","cleanDomainFromTitle","nakedDomain","startSlug","startSlugRatio","wuzzy","levenshtein","endSlug","endSlugRatio","newTitle","Cleaners","cleanImage","cleanContent","extractBestNode","opts","$topCandidate","GenericContentExtractor","defaultOpts","extract","getContentNode","cleanAndReturnNode","k","STRONG_TITLE_META_TAGS","WEAK_TITLE_META_TAGS","STRONG_TITLE_SELECTORS","WEAK_TITLE_SELECTORS","GenericTitleExtractor","metaCache","AUTHOR_META_TAGS","AUTHOR_MAX_LENGTH","AUTHOR_SELECTORS","bylineRe","BYLINE_SELECTORS_RE","GenericAuthorExtractor","regex","DATE_PUBLISHED_META_TAGS","DATE_PUBLISHED_SELECTORS","abbrevMonthsStr","DATE_PUBLISHED_URL_RES","GenericDatePublishedExtractor","datePublished","GenericDekExtractor","LEAD_IMAGE_URL_META_TAGS","LEAD_IMAGE_URL_SELECTORS","POSITIVE_LEAD_IMAGE_URL_HINTS","POSITIVE_LEAD_IMAGE_URL_HINTS_RE","NEGATIVE_LEAD_IMAGE_URL_HINTS","NEGATIVE_LEAD_IMAGE_URL_HINTS_RE","GIF_RE","JPG_RE","getSig","scoreImageUrl","scoreAttr","scoreByParents","$figParent","$gParent","scoreBySibling","scoreByDimensions","area","round","scoreByPosition","$imgs","GenericLeadImageUrlExtractor","cleanUrl","imageUrl","imgs","imgScores","topUrl","scoreSimilarity","articleUrl","similarity","difflib","SequenceMatcher","ratio","diffPercent","diffModifier","scoreLinkText","linkTextAsNum","scorePageInLink","isWp","DIGIT_RE","EXTRANEOUS_LINK_HINTS","EXTRANEOUS_LINK_HINTS_RE","NEXT_LINK_TEXT_RE","CAP_LINK_TEXT_RE","PREV_LINK_TEXT_RE","scoreExtraneousLinks","makeSig","$link","positiveMatch","negativeMatch","parentData","scorePrevLink","linkData","shouldScore","previousUrls","linkHost","fragment","scoreBaseUrl","baseRegex","scoreNextLinkText","scoreCapLinks","makeBaseRegex","scoreLinks","links","scoredPages","possiblePages","link","possiblePage","GenericNextPageUrlExtractor","scoredLinks","topPage","scoredLink","CANONICAL_META_SELECTORS","parseDomain","GenericUrlExtractor","$canonical","metaUrl","EXCERPT_META_SELECTORS","maxLength","ellipsize","ellipse","GenericExcerptExtractor","shortContent","getWordCount","getWordCountAlt","GenericWordCountExtractor","count","GenericExtractor","bind","url_and_domain","word_count","direction","stringDirection","getDirection","loaded","Detectors","detectByHtml","getExtractor","baseDomain","Extractors","cleanBySelectors","transformElements","$matches","findMatchingSelector","extractHtml","allowMultiple","select","extractionOpts","overrideAllowMultiple","matchingSelector","transformAndClean","selectHtml","$wrapper","wrap","el","$match","transform","item","selectExtendedTypes","results","t","extractResult","fallback","RootExtractor","contentOnly","extractedTitle","extendedResults","collectAllPages","Extractor","pages","extractorOpts","nextPageResult","total_pages","rendered_pages","Parser","fetchAllPages","customExtractor","location","addCustomExtractor","extendedTypes","turndownService","TurndownService","turndown"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"mercury.js","sources":["../src/utils/text/normalize-spaces.js","../src/utils/text/extract-from-url.js","../src/utils/text/constants.js","../src/utils/text/page-num-from-url.js","../src/utils/text/remove-anchor.js","../src/utils/text/article-base-url.js","../src/utils/text/has-sentence-end.js","../src/utils/text/excerpt-content.js","../src/utils/text/get-encoding.js","../src/resource/utils/constants.js","../src/resource/utils/fetch-resource.js","../src/resource/utils/dom/normalize-meta-tags.js","../src/utils/dom/constants.js","../src/utils/dom/strip-unlikely-candidates.js","../src/utils/dom/brs-to-ps.js","../src/utils/dom/paragraphize.js","../src/utils/dom/convert-to-paragraphs.js","../src/utils/dom/convert-node-to.js","../src/utils/dom/clean-images.js","../src/utils/dom/mark-to-keep.js","../src/utils/dom/strip-junk-tags.js","../src/utils/dom/clean-h-ones.js","../src/utils/dom/clean-attributes.js","../src/utils/dom/remove-empty.js","../src/extractors/generic/content/scoring/constants.js","../src/extractors/generic/content/scoring/get-weight.js","../src/extractors/generic/content/scoring/get-score.js","../src/extractors/generic/content/scoring/score-commas.js","../src/extractors/generic/content/scoring/score-length.js","../src/extractors/generic/content/scoring/score-paragraph.js","../src/extractors/generic/content/scoring/set-score.js","../src/extractors/generic/content/scoring/add-score.js","../src/extractors/generic/content/scoring/add-to-parent.js","../src/extractors/generic/content/scoring/get-or-init-score.js","../src/extractors/generic/content/scoring/score-node.js","../src/extractors/generic/content/scoring/score-content.js","../src/extractors/generic/content/scoring/merge-siblings.js","../src/extractors/generic/content/scoring/find-top-candidate.js","../src/utils/dom/clean-tags.js","../src/utils/dom/clean-headers.js","../src/utils/dom/rewrite-top-level.js","../src/utils/dom/make-links-absolute.js","../src/utils/dom/link-density.js","../src/utils/dom/extract-from-meta.js","../src/utils/dom/extract-from-selectors.js","../src/utils/dom/strip-tags.js","../src/utils/dom/within-comment.js","../src/utils/dom/node-is-sufficient.js","../src/utils/dom/is-wordpress.js","../src/utils/dom/get-attrs.js","../src/utils/dom/set-attr.js","../src/utils/dom/set-attrs.js","../src/resource/utils/dom/constants.js","../src/resource/utils/dom/convert-lazy-loaded-images.js","../src/resource/utils/dom/clean.js","../src/resource/index.js","../src/utils/range.js","../src/utils/validate-url.js","../src/utils/merge-supported-domains.js","../src/extractors/add-extractor.js","../src/extractors/custom/blogspot.com/index.js","../src/extractors/custom/nymag.com/index.js","../src/extractors/custom/wikipedia.org/index.js","../src/extractors/custom/twitter.com/index.js","../src/extractors/custom/www.nytimes.com/index.js","../src/extractors/custom/www.theatlantic.com/index.js","../src/extractors/custom/www.newyorker.com/index.js","../src/extractors/custom/www.wired.com/index.js","../src/extractors/custom/www.msn.com/index.js","../src/extractors/custom/www.yahoo.com/index.js","../src/extractors/custom/www.buzzfeed.com/index.js","../src/extractors/custom/fandom.wikia.com/index.js","../src/extractors/custom/www.littlethings.com/index.js","../src/extractors/custom/www.politico.com/index.js","../src/extractors/custom/deadspin.com/index.js","../src/extractors/custom/www.broadwayworld.com/index.js","../src/extractors/custom/www.apartmenttherapy.com/index.js","../src/extractors/custom/medium.com/index.js","../src/extractors/custom/www.tmz.com/index.js","../src/extractors/custom/www.washingtonpost.com/index.js","../src/extractors/custom/www.huffingtonpost.com/index.js","../src/extractors/custom/newrepublic.com/index.js","../src/extractors/custom/money.cnn.com/index.js","../src/extractors/custom/www.theverge.com/index.js","../src/extractors/custom/www.cnn.com/index.js","../src/extractors/custom/www.aol.com/index.js","../src/extractors/custom/www.youtube.com/index.js","../src/extractors/custom/www.theguardian.com/index.js","../src/extractors/custom/www.sbnation.com/index.js","../src/extractors/custom/www.bloomberg.com/index.js","../src/extractors/custom/www.bustle.com/index.js","../src/extractors/custom/www.npr.org/index.js","../src/extractors/custom/www.recode.net/index.js","../src/extractors/custom/qz.com/index.js","../src/extractors/custom/www.dmagazine.com/index.js","../src/extractors/custom/www.reuters.com/index.js","../src/extractors/custom/mashable.com/index.js","../src/extractors/custom/www.chicagotribune.com/index.js","../src/extractors/custom/www.vox.com/index.js","../src/extractors/custom/news.nationalgeographic.com/index.js","../src/extractors/custom/www.nationalgeographic.com/index.js","../src/extractors/custom/www.latimes.com/index.js","../src/extractors/custom/pagesix.com/index.js","../src/extractors/custom/thefederalistpapers.org/index.js","../src/extractors/custom/www.cbssports.com/index.js","../src/extractors/custom/www.msnbc.com/index.js","../src/extractors/custom/www.thepoliticalinsider.com/index.js","../src/extractors/custom/www.mentalfloss.com/index.js","../src/extractors/custom/abcnews.go.com/index.js","../src/extractors/custom/www.nydailynews.com/index.js","../src/extractors/custom/www.cnbc.com/index.js","../src/extractors/custom/www.popsugar.com/index.js","../src/extractors/custom/observer.com/index.js","../src/extractors/custom/people.com/index.js","../src/extractors/custom/www.usmagazine.com/index.js","../src/extractors/custom/www.rollingstone.com/index.js","../src/extractors/custom/247sports.com/index.js","../src/extractors/custom/uproxx.com/index.js","../src/extractors/custom/www.eonline.com/index.js","../src/extractors/custom/www.miamiherald.com/index.js","../src/extractors/custom/www.refinery29.com/index.js","../src/extractors/custom/www.macrumors.com/index.js","../src/extractors/custom/www.androidcentral.com/index.js","../src/extractors/custom/www.si.com/index.js","../src/extractors/custom/www.rawstory.com/index.js","../src/extractors/custom/www.cnet.com/index.js","../src/extractors/custom/www.today.com/index.js","../src/extractors/custom/www.al.com/index.js","../src/extractors/custom/www.thepennyhoarder.com/index.js","../src/extractors/custom/www.westernjournalism.com/index.js","../src/extractors/custom/www.americanow.com/index.js","../src/extractors/custom/sciencefly.com/index.js","../src/extractors/custom/hellogiggles.com/index.js","../src/extractors/custom/thoughtcatalog.com/index.js","../src/extractors/custom/www.inquisitr.com/index.js","../src/extractors/custom/www.nbcnews.com/index.js","../src/extractors/custom/fortune.com/index.js","../src/extractors/custom/www.linkedin.com/index.js","../src/extractors/custom/obamawhitehouse.archives.gov/index.js","../src/extractors/custom/www.opposingviews.com/index.js","../src/extractors/custom/www.prospectmagazine.co.uk/index.js","../src/extractors/custom/forward.com/index.js","../src/extractors/custom/www.qdaily.com/index.js","../src/extractors/custom/gothamist.com/index.js","../src/extractors/custom/www.fool.com/index.js","../src/extractors/custom/www.slate.com/index.js","../src/extractors/custom/ici.radio-canada.ca/index.js","../src/extractors/custom/www.fortinet.com/index.js","../src/extractors/custom/www.fastcompany.com/index.js","../src/extractors/custom/blisterreview.com/index.js","../src/extractors/custom/news.mynavi.jp/index.js","../src/extractors/custom/clinicaltrials.gov/index.js","../src/extractors/custom/github.com/index.js","../src/extractors/custom/www.reddit.com/index.js","../src/extractors/custom/otrs.com/index.js","../src/extractors/custom/www.ossnews.jp/index.js","../src/extractors/custom/buzzap.jp/index.js","../src/extractors/custom/www.asahi.com/index.js","../src/extractors/custom/www.sanwa.co.jp/index.js","../src/extractors/custom/www.elecom.co.jp/index.js","../src/extractors/custom/scan.netsecurity.ne.jp/index.js","../src/extractors/custom/jvndb.jvn.jp/index.js","../src/extractors/custom/genius.com/index.js","../src/extractors/custom/www.jnsa.org/index.js","../src/extractors/custom/phpspot.org/index.js","../src/extractors/custom/www.infoq.com/index.js","../src/extractors/custom/www.moongift.jp/index.js","../src/extractors/custom/www.itmedia.co.jp/index.js","../src/extractors/custom/www.publickey1.jp/index.js","../src/extractors/custom/takagi-hiromitsu.jp/index.js","../src/extractors/custom/bookwalker.jp/index.js","../src/extractors/custom/www.yomiuri.co.jp/index.js","../src/extractors/custom/japan.cnet.com/index.js","../src/extractors/custom/deadline.com/index.js","../src/extractors/custom/www.gizmodo.jp/index.js","../src/extractors/custom/getnews.jp/index.js","../src/extractors/custom/www.lifehacker.jp/index.js","../src/extractors/custom/sect.iij.ad.jp/index.js","../src/extractors/custom/www.oreilly.co.jp/index.js","../src/extractors/custom/www.ipa.go.jp/index.js","../src/extractors/custom/weekly.ascii.jp/index.js","../src/extractors/custom/techlog.iij.ad.jp/index.js","../src/extractors/custom/wired.jp/index.js","../src/extractors/custom/japan.zdnet.com/index.js","../src/extractors/custom/www.rbbtoday.com/index.js","../src/extractors/custom/www.lemonde.fr/index.js","../src/extractors/custom/www.phoronix.com/index.js","../src/extractors/custom/pitchfork.com/index.js","../src/extractors/custom/biorxiv.org/index.js","../src/extractors/custom/epaper.zeit.de/index.js","../src/extractors/custom/www.ladbible.com/index.js","../src/extractors/custom/timesofindia.indiatimes.com/index.js","../src/extractors/custom/ma.ttias.be/index.js","../src/extractors/custom/pastebin.com/index.js","../src/extractors/custom/www.abendblatt.de/index.js","../src/extractors/custom/www.gruene.de/index.js","../src/extractors/custom/www.engadget.com/index.js","../src/extractors/custom/arstechnica.com/index.js","../src/extractors/custom/www.ndtv.com/index.js","../src/extractors/custom/www.spektrum.de/index.js","../src/extractors/custom/postlight.com/index.js","../src/extractors/custom/www.investmentexecutive.com/index.js","../src/extractors/custom/www.cbc.ca/index.js","../src/extractors/all.js","../src/cleaners/constants.js","../src/cleaners/author.js","../src/cleaners/lead-image-url.js","../src/cleaners/dek.js","../src/cleaners/date-published.js","../src/cleaners/content.js","../src/cleaners/title.js","../src/cleaners/resolve-split-title.js","../src/cleaners/index.js","../src/extractors/generic/content/extract-best-node.js","../src/extractors/generic/content/extractor.js","../src/extractors/generic/title/constants.js","../src/extractors/generic/title/extractor.js","../src/extractors/generic/author/constants.js","../src/extractors/generic/author/extractor.js","../src/extractors/generic/date-published/constants.js","../src/extractors/generic/date-published/extractor.js","../src/extractors/generic/dek/extractor.js","../src/extractors/generic/lead-image-url/constants.js","../src/extractors/generic/lead-image-url/score-image.js","../src/extractors/generic/lead-image-url/extractor.js","../src/extractors/generic/next-page-url/scoring/utils/score-similarity.js","../src/extractors/generic/next-page-url/scoring/utils/score-link-text.js","../src/extractors/generic/next-page-url/scoring/utils/score-page-in-link.js","../src/extractors/generic/next-page-url/scoring/constants.js","../src/extractors/generic/next-page-url/scoring/utils/score-extraneous-links.js","../src/extractors/generic/next-page-url/scoring/utils/score-by-parents.js","../src/extractors/generic/next-page-url/scoring/utils/score-prev-link.js","../src/extractors/generic/next-page-url/scoring/utils/should-score.js","../src/extractors/generic/next-page-url/scoring/utils/score-base-url.js","../src/extractors/generic/next-page-url/scoring/utils/score-next-link-text.js","../src/extractors/generic/next-page-url/scoring/utils/score-cap-links.js","../src/extractors/generic/next-page-url/scoring/score-links.js","../src/extractors/generic/next-page-url/extractor.js","../src/extractors/generic/url/constants.js","../src/extractors/generic/url/extractor.js","../src/extractors/generic/excerpt/constants.js","../src/extractors/generic/excerpt/extractor.js","../src/extractors/generic/word-count/extractor.js","../src/extractors/generic/index.js","../src/extractors/detect-by-html.js","../src/extractors/get-extractor.js","../src/extractors/root-extractor.js","../src/extractors/collect-all-pages.js","../src/mercury.js"],"sourcesContent":["const NORMALIZE_RE = /\\s{2,}(?![^<>]*<\\/(pre|code|textarea)>)/g;\n\nexport default function normalizeSpaces(text) {\n return text.replace(NORMALIZE_RE, ' ').trim();\n}\n","// Given a node type to search for, and a list of regular expressions,\n// look to see if this extraction can be found in the URL. Expects\n// that each expression in r_list will return group(1) as the proper\n// string to be cleaned.\n// Only used for date_published currently.\nexport default function extractFromUrl(url, regexList) {\n const matchRe = regexList.find(re => re.test(url));\n if (matchRe) {\n return matchRe.exec(url)[1];\n }\n\n return null;\n}\n","// An expression that looks to try to find the page digit within a URL, if\n// it exists.\n// Matches:\n// page=1\n// pg=1\n// p=1\n// paging=12\n// pag=7\n// pagination/1\n// paging/88\n// pa/83\n// p/11\n//\n// Does not match:\n// pg=102\n// page:2\nexport const PAGE_IN_HREF_RE = new RegExp(\n '(page|paging|(p(a|g|ag)?(e|enum|ewanted|ing|ination)))?(=|/)([0-9]{1,3})',\n 'i'\n);\n\nexport const HAS_ALPHA_RE = /[a-z]/i;\n\nexport const IS_ALPHA_RE = /^[a-z]+$/i;\nexport const IS_DIGIT_RE = /^[0-9]+$/i;\n\nexport const ENCODING_RE = /charset=([\\w-]+)\\b/;\nexport const DEFAULT_ENCODING = 'utf-8';\n","import { PAGE_IN_HREF_RE } from './constants';\n\nexport default function pageNumFromUrl(url) {\n const matches = url.match(PAGE_IN_HREF_RE);\n if (!matches) return null;\n\n const pageNum = parseInt(matches[6], 10);\n\n // Return pageNum < 100, otherwise\n // return null\n return pageNum < 100 ? pageNum : null;\n}\n","export default function removeAnchor(url) {\n return url.split('#')[0].replace(/\\/$/, '');\n}\n","import URL from 'url';\n\nimport {\n HAS_ALPHA_RE,\n IS_ALPHA_RE,\n IS_DIGIT_RE,\n PAGE_IN_HREF_RE,\n} from './constants';\n\nfunction isGoodSegment(segment, index, firstSegmentHasLetters) {\n let goodSegment = true;\n\n // If this is purely a number, and it's the first or second\n // url_segment, it's probably a page number. Remove it.\n if (index < 2 && IS_DIGIT_RE.test(segment) && segment.length < 3) {\n goodSegment = true;\n }\n\n // If this is the first url_segment and it's just \"index\",\n // remove it\n if (index === 0 && segment.toLowerCase() === 'index') {\n goodSegment = false;\n }\n\n // If our first or second url_segment is smaller than 3 characters,\n // and the first url_segment had no alphas, remove it.\n if (index < 2 && segment.length < 3 && !firstSegmentHasLetters) {\n goodSegment = false;\n }\n\n return goodSegment;\n}\n\n// Take a URL, and return the article base of said URL. That is, no\n// pagination data exists in it. Useful for comparing to other links\n// that might have pagination data within them.\nexport default function articleBaseUrl(url, parsed) {\n const parsedUrl = parsed || URL.parse(url);\n const { protocol, host, path } = parsedUrl;\n\n let firstSegmentHasLetters = false;\n const cleanedSegments = path\n .split('/')\n .reverse()\n .reduce((acc, rawSegment, index) => {\n let segment = rawSegment;\n\n // Split off and save anything that looks like a file type.\n if (segment.includes('.')) {\n const [possibleSegment, fileExt] = segment.split('.');\n if (IS_ALPHA_RE.test(fileExt)) {\n segment = possibleSegment;\n }\n }\n\n // If our first or second segment has anything looking like a page\n // number, remove it.\n if (PAGE_IN_HREF_RE.test(segment) && index < 2) {\n segment = segment.replace(PAGE_IN_HREF_RE, '');\n }\n\n // If we're on the first segment, check to see if we have any\n // characters in it. The first segment is actually the last bit of\n // the URL, and this will be helpful to determine if we're on a URL\n // segment that looks like \"/2/\" for example.\n if (index === 0) {\n firstSegmentHasLetters = HAS_ALPHA_RE.test(segment);\n }\n\n // If it's not marked for deletion, push it to cleaned_segments.\n if (isGoodSegment(segment, index, firstSegmentHasLetters)) {\n acc.push(segment);\n }\n\n return acc;\n }, []);\n\n return `${protocol}//${host}${cleanedSegments.reverse().join('/')}`;\n}\n","// Given a string, return True if it appears to have an ending sentence\n// within it, false otherwise.\nconst SENTENCE_END_RE = new RegExp('.( |$)');\nexport default function hasSentenceEnd(text) {\n return SENTENCE_END_RE.test(text);\n}\n","export default function excerptContent(content, words = 10) {\n return content\n .trim()\n .split(/\\s+/)\n .slice(0, words)\n .join(' ');\n}\n","import iconv from 'iconv-lite';\nimport { DEFAULT_ENCODING, ENCODING_RE } from './constants';\n\n// check a string for encoding; this is\n// used in our fetchResource function to\n// ensure correctly encoded responses\nexport default function getEncoding(str) {\n let encoding = DEFAULT_ENCODING;\n const matches = ENCODING_RE.exec(str);\n if (matches !== null) {\n [, str] = matches;\n }\n if (iconv.encodingExists(str)) {\n encoding = str;\n }\n return encoding;\n}\n","import cheerio from 'cheerio';\n\n// Browser does not like us setting user agent\nexport const REQUEST_HEADERS = cheerio.browser\n ? {}\n : {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',\n };\n\n// The number of milliseconds to attempt to fetch a resource before timing out.\nexport const FETCH_TIMEOUT = 10000;\n\n// Content types that we do not extract content from\nconst BAD_CONTENT_TYPES = [\n 'audio/mpeg',\n 'image/gif',\n 'image/jpeg',\n 'image/jpg',\n];\n\nexport const BAD_CONTENT_TYPES_RE = new RegExp(\n `^(${BAD_CONTENT_TYPES.join('|')})$`,\n 'i'\n);\n\n// Use this setting as the maximum size an article can be\n// for us to attempt parsing. Defaults to 5 MB.\nexport const MAX_CONTENT_LENGTH = 5242880;\n\n// Turn the global proxy on or off\n// Proxying is not currently enabled in Python source\n// so not implementing logic in port.\nexport const PROXY_DOMAINS = false;\nexport const REQUESTS_PROXIES = {\n http: 'http://38.98.105.139:33333',\n https: 'http://38.98.105.139:33333',\n};\n\nexport const DOMAINS_TO_PROXY = ['nih.gov', 'gutenberg.org'];\n","import URL from 'url';\nimport request from 'postman-request';\n\nimport {\n REQUEST_HEADERS,\n FETCH_TIMEOUT,\n BAD_CONTENT_TYPES_RE,\n MAX_CONTENT_LENGTH,\n} from './constants';\n\nfunction get(options) {\n return new Promise((resolve, reject) => {\n request(options, (err, response, body) => {\n if (err) {\n reject(err);\n } else {\n resolve({ body, response });\n }\n });\n });\n}\n\n// Evaluate a response to ensure it's something we should be keeping.\n// This does not validate in the sense of a response being 200 or not.\n// Validation here means that we haven't found reason to bail from\n// further processing of this url.\n\nexport function validateResponse(response, parseNon200 = false) {\n // Check if we got a valid status code\n // This isn't great, but I'm requiring a statusMessage to be set\n // before short circuiting b/c nock doesn't set it in tests\n // statusMessage only not set in nock response, in which case\n // I check statusCode, which is currently only 200 for OK responses\n // in tests\n if (\n (response.statusMessage && response.statusMessage !== 'OK') ||\n response.statusCode !== 200\n ) {\n if (!response.statusCode) {\n throw new Error(\n `Unable to fetch content. Original exception was ${response.error}`\n );\n } else if (!parseNon200) {\n throw new Error(\n `Resource returned a response status code of ${\n response.statusCode\n } and resource was instructed to reject non-200 status codes.`\n );\n }\n }\n\n const {\n 'content-type': contentType,\n 'content-length': contentLength,\n } = response.headers;\n\n // Check that the content is not in BAD_CONTENT_TYPES\n if (BAD_CONTENT_TYPES_RE.test(contentType)) {\n throw new Error(\n `Content-type for this resource was ${contentType} and is not allowed.`\n );\n }\n\n // Check that the content length is below maximum\n if (contentLength > MAX_CONTENT_LENGTH) {\n throw new Error(\n `Content for this resource was too large. Maximum content length is ${MAX_CONTENT_LENGTH}.`\n );\n }\n\n return true;\n}\n\n// Grabs the last two pieces of the URL and joins them back together\n// This is to get the 'livejournal.com' from 'erotictrains.livejournal.com'\nexport function baseDomain({ host }) {\n return host\n .split('.')\n .slice(-2)\n .join('.');\n}\n\n// Set our response attribute to the result of fetching our URL.\n// TODO: This should gracefully handle timeouts and raise the\n// proper exceptions on the many failure cases of HTTP.\n// TODO: Ensure we are not fetching something enormous. Always return\n// unicode content for HTML, with charset conversion.\n\nexport default async function fetchResource(url, parsedUrl, headers = {}) {\n parsedUrl = parsedUrl || URL.parse(encodeURI(url));\n const options = {\n url: parsedUrl.href,\n headers: { ...REQUEST_HEADERS, ...headers },\n timeout: FETCH_TIMEOUT,\n // Accept cookies\n jar: true,\n // Set to null so the response returns as binary and body as buffer\n // https://github.com/request/request#requestoptions-callback\n encoding: null,\n // Accept and decode gzip\n gzip: true,\n // Follow any non-GET redirects\n followAllRedirects: true,\n ...(typeof window !== 'undefined'\n ? {}\n : {\n // Follow GET redirects; this option is for Node only\n followRedirect: true,\n }),\n };\n\n const { response, body } = await get(options);\n\n try {\n validateResponse(response);\n return {\n body,\n response,\n };\n } catch (e) {\n return {\n error: true,\n message: e.message,\n };\n }\n}\n","function convertMetaProp($, from, to) {\n $(`meta[${from}]`).each((_, node) => {\n const $node = $(node);\n\n const value = $node.attr(from);\n $node.attr(to, value);\n $node.removeAttr(from);\n });\n\n return $;\n}\n\n// For ease of use in extracting from meta tags,\n// replace the \"content\" attribute on meta tags with the\n// \"value\" attribute.\n//\n// In addition, normalize 'property' attributes to 'name' for ease of\n// querying later. See, e.g., og or twitter meta tags.\n\nexport default function normalizeMetaTags($) {\n $ = convertMetaProp($, 'content', 'value');\n $ = convertMetaProp($, 'property', 'name');\n return $;\n}\n","// Spacer images to be removed\nexport const SPACER_RE = new RegExp('transparent|spacer|blank', 'i');\n\n// The class we will use to mark elements we want to keep\n// but would normally remove\nexport const KEEP_CLASS = 'mercury-parser-keep';\n\nexport const KEEP_SELECTORS = [\n 'iframe[src^=\"https://www.youtube.com\"]',\n 'iframe[src^=\"https://www.youtube-nocookie.com\"]',\n 'iframe[src^=\"http://www.youtube.com\"]',\n 'iframe[src^=\"https://player.vimeo\"]',\n 'iframe[src^=\"http://player.vimeo\"]',\n 'iframe[src^=\"https://www.redditmedia.com\"]',\n];\n\n// A list of tags to strip from the output if we encounter them.\nexport const STRIP_OUTPUT_TAGS = [\n 'title',\n 'script',\n 'noscript',\n 'link',\n 'style',\n 'hr',\n 'embed',\n 'iframe',\n 'object',\n];\n\n// cleanAttributes\nexport const REMOVE_ATTRS = ['style', 'align'];\nexport const REMOVE_ATTR_SELECTORS = REMOVE_ATTRS.map(\n selector => `[${selector}]`\n);\nexport const REMOVE_ATTR_LIST = REMOVE_ATTRS.join(',');\nexport const WHITELIST_ATTRS = [\n 'src',\n 'srcset',\n 'sizes',\n 'type',\n 'href',\n 'class',\n 'id',\n 'alt',\n 'xlink:href',\n 'width',\n 'height',\n];\n\nexport const WHITELIST_ATTRS_RE = new RegExp(\n `^(${WHITELIST_ATTRS.join('|')})$`,\n 'i'\n);\n\n// removeEmpty\nexport const REMOVE_EMPTY_TAGS = ['p'];\nexport const REMOVE_EMPTY_SELECTORS = REMOVE_EMPTY_TAGS.map(\n tag => `${tag}:empty`\n).join(',');\n\n// cleanTags\nexport const CLEAN_CONDITIONALLY_TAGS = [\n 'ul',\n 'ol',\n 'table',\n 'div',\n 'button',\n 'form',\n].join(',');\n\n// cleanHeaders\nconst HEADER_TAGS = ['h2', 'h3', 'h4', 'h5', 'h6'];\nexport const HEADER_TAG_LIST = HEADER_TAGS.join(',');\n\n// // CONTENT FETCHING CONSTANTS ////\n\n// A list of strings that can be considered unlikely candidates when\n// extracting content from a resource. These strings are joined together\n// and then tested for existence using re:test, so may contain simple,\n// non-pipe style regular expression queries if necessary.\nexport const UNLIKELY_CANDIDATES_BLACKLIST = [\n 'ad-break',\n 'adbox',\n 'advert',\n 'addthis',\n 'agegate',\n 'aux',\n 'blogger-labels',\n 'combx',\n 'comment',\n 'conversation',\n 'disqus',\n 'entry-unrelated',\n 'extra',\n 'foot',\n // 'form', // This is too generic, has too many false positives\n 'header',\n 'hidden',\n 'loader',\n 'login', // Note: This can hit 'blogindex'.\n 'menu',\n 'meta',\n 'nav',\n 'outbrain',\n 'pager',\n 'pagination',\n 'predicta', // readwriteweb inline ad box\n 'presence_control_external', // lifehacker.com container full of false positives\n 'popup',\n 'printfriendly',\n 'related',\n 'remove',\n 'remark',\n 'rss',\n 'share',\n 'shoutbox',\n 'sidebar',\n 'sociable',\n 'sponsor',\n 'taboola',\n 'tools',\n];\n\n// A list of strings that can be considered LIKELY candidates when\n// extracting content from a resource. Essentially, the inverse of the\n// blacklist above - if something matches both blacklist and whitelist,\n// it is kept. This is useful, for example, if something has a className\n// of \"rss-content entry-content\". It matched 'rss', so it would normally\n// be removed, however, it's also the entry content, so it should be left\n// alone.\n//\n// These strings are joined together and then tested for existence using\n// re:test, so may contain simple, non-pipe style regular expression queries\n// if necessary.\nexport const UNLIKELY_CANDIDATES_WHITELIST = [\n 'and',\n 'article',\n 'body',\n 'blogindex',\n 'column',\n 'content',\n 'entry-content-asset',\n 'format', // misuse of form\n 'hfeed',\n 'hentry',\n 'hatom',\n 'main',\n 'page',\n 'posts',\n 'shadow',\n];\n\n// A list of tags which, if found inside, should cause a <div /> to NOT\n// be turned into a paragraph tag. Shallow div tags without these elements\n// should be turned into <p /> tags.\nexport const DIV_TO_P_BLOCK_TAGS = [\n 'a',\n 'blockquote',\n 'dl',\n 'div',\n 'img',\n 'p',\n 'pre',\n 'table',\n].join(',');\n\n// A list of tags that should be ignored when trying to find the top candidate\n// for a document.\nexport const NON_TOP_CANDIDATE_TAGS = [\n 'br',\n 'b',\n 'i',\n 'label',\n 'hr',\n 'area',\n 'base',\n 'basefont',\n 'input',\n 'img',\n 'link',\n 'meta',\n];\n\nexport const NON_TOP_CANDIDATE_TAGS_RE = new RegExp(\n `^(${NON_TOP_CANDIDATE_TAGS.join('|')})$`,\n 'i'\n);\n\n// A list of selectors that specify, very clearly, either hNews or other\n// very content-specific style content, like Blogger templates.\n// More examples here: http://microformats.org/wiki/blog-post-formats\nexport const HNEWS_CONTENT_SELECTORS = [\n ['.hentry', '.entry-content'],\n ['entry', '.entry-content'],\n ['.entry', '.entry_content'],\n ['.post', '.postbody'],\n ['.post', '.post_body'],\n ['.post', '.post-body'],\n];\n\nexport const PHOTO_HINTS = ['figure', 'photo', 'image', 'caption'];\nexport const PHOTO_HINTS_RE = new RegExp(PHOTO_HINTS.join('|'), 'i');\n\n// A list of strings that denote a positive scoring for this content as being\n// an article container. Checked against className and id.\n//\n// TODO: Perhaps have these scale based on their odds of being quality?\nexport const POSITIVE_SCORE_HINTS = [\n 'article',\n 'articlecontent',\n 'instapaper_body',\n 'blog',\n 'body',\n 'content',\n 'entry-content-asset',\n 'entry',\n 'hentry',\n 'main',\n 'Normal',\n 'page',\n 'pagination',\n 'permalink',\n 'post',\n 'story',\n 'text',\n '[-_]copy', // usatoday\n '\\\\Bcopy',\n];\n\n// The above list, joined into a matching regular expression\nexport const POSITIVE_SCORE_RE = new RegExp(\n POSITIVE_SCORE_HINTS.join('|'),\n 'i'\n);\n\n// Readability publisher-specific guidelines\nexport const READABILITY_ASSET = new RegExp('entry-content-asset', 'i');\n\n// A list of strings that denote a negative scoring for this content as being\n// an article container. Checked against className and id.\n//\n// TODO: Perhaps have these scale based on their odds of being quality?\nexport const NEGATIVE_SCORE_HINTS = [\n 'adbox',\n 'advert',\n 'author',\n 'bio',\n 'bookmark',\n 'bottom',\n 'byline',\n 'clear',\n 'com-',\n 'combx',\n 'comment',\n 'comment\\\\B',\n 'contact',\n 'copy',\n 'credit',\n 'crumb',\n 'date',\n 'deck',\n 'excerpt',\n 'featured', // tnr.com has a featured_content which throws us off\n 'foot',\n 'footer',\n 'footnote',\n 'graf',\n 'head',\n 'info',\n 'infotext', // newscientist.com copyright\n 'instapaper_ignore',\n 'jump',\n 'linebreak',\n 'link',\n 'masthead',\n 'media',\n 'meta',\n 'modal',\n 'outbrain', // slate.com junk\n 'promo',\n 'pr_', // autoblog - press release\n 'related',\n 'respond',\n 'roundcontent', // lifehacker restricted content warning\n 'scroll',\n 'secondary',\n 'share',\n 'shopping',\n 'shoutbox',\n 'side',\n 'sidebar',\n 'sponsor',\n 'stamp',\n 'sub',\n 'summary',\n 'tags',\n 'tools',\n 'widget',\n];\n// The above list, joined into a matching regular expression\nexport const NEGATIVE_SCORE_RE = new RegExp(\n NEGATIVE_SCORE_HINTS.join('|'),\n 'i'\n);\n\n// XPath to try to determine if a page is wordpress. Not always successful.\nexport const IS_WP_SELECTOR = 'meta[name=generator][value^=WordPress]';\n\n// Match a digit. Pretty clear.\nexport const DIGIT_RE = new RegExp('[0-9]');\n\n// A list of words that, if found in link text or URLs, likely mean that\n// this link is not a next page link.\nexport const EXTRANEOUS_LINK_HINTS = [\n 'print',\n 'archive',\n 'comment',\n 'discuss',\n 'e-mail',\n 'email',\n 'share',\n 'reply',\n 'all',\n 'login',\n 'sign',\n 'single',\n 'adx',\n 'entry-unrelated',\n];\nexport const EXTRANEOUS_LINK_HINTS_RE = new RegExp(\n EXTRANEOUS_LINK_HINTS.join('|'),\n 'i'\n);\n\n// Match any phrase that looks like it could be page, or paging, or pagination\nexport const PAGE_RE = new RegExp('pag(e|ing|inat)', 'i');\n\n// Match any link text/classname/id that looks like it could mean the next\n// page. Things like: next, continue, >, >>, » but not >|, »| as those can\n// mean last page.\n// export const NEXT_LINK_TEXT_RE = new RegExp('(next|weiter|continue|>([^\\|]|$)|»([^\\|]|$))', 'i');\nexport const NEXT_LINK_TEXT_RE = /(next|weiter|continue|>([^|]|$)|»([^|]|$))/i;\n\n// Match any link text/classname/id that looks like it is an end link: things\n// like \"first\", \"last\", \"end\", etc.\nexport const CAP_LINK_TEXT_RE = new RegExp('(first|last|end)', 'i');\n\n// Match any link text/classname/id that looks like it means the previous\n// page.\nexport const PREV_LINK_TEXT_RE = new RegExp('(prev|earl|old|new|<|«)', 'i');\n\n// Match 2 or more consecutive <br> tags\nexport const BR_TAGS_RE = new RegExp('(<br[^>]*>[ \\n\\r\\t]*){2,}', 'i');\n\n// Match 1 BR tag.\nexport const BR_TAG_RE = new RegExp('<br[^>]*>', 'i');\n\n// A list of all of the block level tags known in HTML5 and below. Taken from\n// http://bit.ly/qneNIT\nexport const BLOCK_LEVEL_TAGS = [\n 'article',\n 'aside',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'col',\n 'colgroup',\n 'dd',\n 'div',\n 'dl',\n 'dt',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'li',\n 'map',\n 'object',\n 'ol',\n 'output',\n 'p',\n 'pre',\n 'progress',\n 'section',\n 'table',\n 'tbody',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'tr',\n 'ul',\n 'video',\n];\nexport const BLOCK_LEVEL_TAGS_RE = new RegExp(\n `^(${BLOCK_LEVEL_TAGS.join('|')})$`,\n 'i'\n);\n\n// The removal is implemented as a blacklist and whitelist, this test finds\n// blacklisted elements that aren't whitelisted. We do this all in one\n// expression-both because it's only one pass, and because this skips the\n// serialization for whitelisted nodes.\nconst candidatesBlacklist = UNLIKELY_CANDIDATES_BLACKLIST.join('|');\nexport const CANDIDATES_BLACKLIST = new RegExp(candidatesBlacklist, 'i');\n\nconst candidatesWhitelist = UNLIKELY_CANDIDATES_WHITELIST.join('|');\nexport const CANDIDATES_WHITELIST = new RegExp(candidatesWhitelist, 'i');\n\nexport const UNLIKELY_RE = new RegExp(\n `!(${candidatesWhitelist})|(${candidatesBlacklist})`,\n 'i'\n);\n\nexport const PARAGRAPH_SCORE_TAGS = new RegExp('^(p|li|span|pre)$', 'i');\nexport const CHILD_CONTENT_TAGS = new RegExp('^(td|blockquote|ol|ul|dl)$', 'i');\nexport const BAD_TAGS = new RegExp('^(address|form)$', 'i');\n\nexport const HTML_OR_BODY_RE = new RegExp('^(html|body)$', 'i');\n","import { CANDIDATES_WHITELIST, CANDIDATES_BLACKLIST } from './constants';\n\nexport default function stripUnlikelyCandidates($) {\n // Loop through the provided document and remove any non-link nodes\n // that are unlikely candidates for article content.\n //\n // Links are ignored because there are very often links to content\n // that are identified as non-body-content, but may be inside\n // article-like content.\n //\n // :param $: a cheerio object to strip nodes from\n // :return $: the cleaned cheerio object\n $('*')\n .not('a')\n .each((index, node) => {\n const $node = $(node);\n const classes = $node.attr('class');\n const id = $node.attr('id');\n if (!id && !classes) return;\n\n const classAndId = `${classes || ''} ${id || ''}`;\n if (CANDIDATES_WHITELIST.test(classAndId)) {\n return;\n }\n if (CANDIDATES_BLACKLIST.test(classAndId)) {\n $node.remove();\n }\n });\n\n return $;\n}\n","import { paragraphize } from './index';\n\n// ## NOTES:\n// Another good candidate for refactoring/optimizing.\n// Very imperative code, I don't love it. - AP\n\n// Given cheerio object, convert consecutive <br /> tags into\n// <p /> tags instead.\n//\n// :param $: A cheerio object\n\nexport default function brsToPs($) {\n let collapsing = false;\n $('br').each((index, element) => {\n const $element = $(element);\n const nextElement = $element.next().get(0);\n\n if (nextElement && nextElement.tagName.toLowerCase() === 'br') {\n collapsing = true;\n $element.remove();\n } else if (collapsing) {\n collapsing = false;\n paragraphize(element, $, true);\n }\n });\n\n return $;\n}\n","import { BLOCK_LEVEL_TAGS_RE } from './constants';\n\n// Given a node, turn it into a P if it is not already a P, and\n// make sure it conforms to the constraints of a P tag (I.E. does\n// not contain any other block tags.)\n//\n// If the node is a <br />, it treats the following inline siblings\n// as if they were its children.\n//\n// :param node: The node to paragraphize; this is a raw node\n// :param $: The cheerio object to handle dom manipulation\n// :param br: Whether or not the passed node is a br\n\nexport default function paragraphize(node, $, br = false) {\n const $node = $(node);\n\n if (br) {\n let sibling = node.nextSibling;\n const p = $('<p></p>');\n\n // while the next node is text or not a block level element\n // append it to a new p node\n while (\n sibling &&\n !(sibling.tagName && BLOCK_LEVEL_TAGS_RE.test(sibling.tagName))\n ) {\n const { nextSibling } = sibling;\n $(sibling).appendTo(p);\n sibling = nextSibling;\n }\n\n $node.replaceWith(p);\n $node.remove();\n return $;\n }\n\n return $;\n}\n","import { brsToPs, convertNodeTo } from 'utils/dom';\n\nimport { DIV_TO_P_BLOCK_TAGS } from './constants';\n\nfunction convertDivs($) {\n $('div').each((index, div) => {\n const $div = $(div);\n const convertible = $div.children(DIV_TO_P_BLOCK_TAGS).length === 0;\n\n if (convertible) {\n convertNodeTo($div, $, 'p');\n }\n });\n\n return $;\n}\n\nfunction convertSpans($) {\n $('span').each((index, span) => {\n const $span = $(span);\n const convertible = $span.parents('p, div, li, figcaption').length === 0;\n if (convertible) {\n convertNodeTo($span, $, 'p');\n }\n });\n\n return $;\n}\n\n// Loop through the provided doc, and convert any p-like elements to\n// actual paragraph tags.\n//\n// Things fitting this criteria:\n// * Multiple consecutive <br /> tags.\n// * <div /> tags without block level elements inside of them\n// * <span /> tags who are not children of <p /> or <div /> tags.\n//\n// :param $: A cheerio object to search\n// :return cheerio object with new p elements\n// (By-reference mutation, though. Returned just for convenience.)\n\nexport default function convertToParagraphs($) {\n $ = brsToPs($);\n $ = convertDivs($);\n $ = convertSpans($);\n\n return $;\n}\n","import { getAttrs } from 'utils/dom';\n\nexport default function convertNodeTo($node, $, tag = 'p') {\n const node = $node.get(0);\n if (!node) {\n return $;\n }\n const attrs = getAttrs(node) || {};\n\n const attribString = Reflect.ownKeys(attrs)\n .map(key => `${key}=${attrs[key]}`)\n .join(' ');\n let html;\n\n if ($.browser) {\n // In the browser, the contents of noscript tags aren't rendered, therefore\n // transforms on the noscript tag (commonly used for lazy-loading) don't work\n // as expected. This test case handles that\n html =\n node.tagName.toLowerCase() === 'noscript' ? $node.text() : $node.html();\n } else {\n html = $node.contents();\n }\n $node.replaceWith(`<${tag} ${attribString}>${html}</${tag}>`);\n return $;\n}\n","import { SPACER_RE } from './constants';\n\nfunction cleanForHeight($img, $) {\n const height = parseInt($img.attr('height'), 10);\n const width = parseInt($img.attr('width'), 10) || 20;\n\n // Remove images that explicitly have very small heights or\n // widths, because they are most likely shims or icons,\n // which aren't very useful for reading.\n if ((height || 20) < 10 || width < 10) {\n $img.remove();\n } else if (height) {\n // Don't ever specify a height on images, so that we can\n // scale with respect to width without screwing up the\n // aspect ratio.\n $img.removeAttr('height');\n }\n\n return $;\n}\n\n// Cleans out images where the source string matches transparent/spacer/etc\n// TODO This seems very aggressive - AP\nfunction removeSpacers($img, $) {\n if (SPACER_RE.test($img.attr('src'))) {\n $img.remove();\n }\n\n return $;\n}\n\nexport default function cleanImages($article, $) {\n $article.find('img').each((index, img) => {\n const $img = $(img);\n\n cleanForHeight($img, $);\n removeSpacers($img, $);\n });\n\n return $;\n}\n","import URL from 'url';\n\nimport { KEEP_SELECTORS, KEEP_CLASS } from './constants';\n\nexport default function markToKeep(article, $, url, tags = []) {\n if (tags.length === 0) {\n tags = KEEP_SELECTORS;\n }\n\n if (url) {\n const { protocol, hostname } = URL.parse(url);\n tags = [...tags, `iframe[src^=\"${protocol}//${hostname}\"]`];\n }\n\n $(tags.join(','), article).addClass(KEEP_CLASS);\n\n return $;\n}\n","import { STRIP_OUTPUT_TAGS, KEEP_CLASS } from './constants';\n\nexport default function stripJunkTags(article, $, tags = []) {\n if (tags.length === 0) {\n tags = STRIP_OUTPUT_TAGS;\n }\n\n // Remove matching elements, but ignore\n // any element with a class of mercury-parser-keep\n $(tags.join(','), article)\n .not(`.${KEEP_CLASS}`)\n .remove();\n\n return $;\n}\n","import { convertNodeTo } from 'utils/dom';\n\n// H1 tags are typically the article title, which should be extracted\n// by the title extractor instead. If there's less than 3 of them (<3),\n// strip them. Otherwise, turn 'em into H2s.\nexport default function cleanHOnes(article, $) {\n const $hOnes = $('h1', article);\n\n if ($hOnes.length < 3) {\n $hOnes.each((index, node) => $(node).remove());\n } else {\n $hOnes.each((index, node) => {\n convertNodeTo($(node), $, 'h2');\n });\n }\n\n return $;\n}\n","import { getAttrs, setAttrs } from 'utils/dom';\n\nimport { WHITELIST_ATTRS_RE, KEEP_CLASS } from './constants';\n\nfunction removeAllButWhitelist($article, $) {\n $article.find('*').each((index, node) => {\n const attrs = getAttrs(node);\n\n setAttrs(\n node,\n Reflect.ownKeys(attrs).reduce((acc, attr) => {\n if (WHITELIST_ATTRS_RE.test(attr)) {\n return { ...acc, [attr]: attrs[attr] };\n }\n\n return acc;\n }, {})\n );\n });\n\n // Remove the mercury-parser-keep class from result\n $(`.${KEEP_CLASS}`, $article).removeClass(KEEP_CLASS);\n\n return $article;\n}\n\n// Remove attributes like style or align\nexport default function cleanAttributes($article, $) {\n // Grabbing the parent because at this point\n // $article will be wrapped in a div which will\n // have a score set on it.\n return removeAllButWhitelist(\n $article.parent().length ? $article.parent() : $article,\n $\n );\n}\n","export default function removeEmpty($article, $) {\n $article.find('p').each((index, p) => {\n const $p = $(p);\n if ($p.find('iframe, img').length === 0 && $p.text().trim() === '')\n $p.remove();\n });\n\n return $;\n}\n","// // CONTENT FETCHING CONSTANTS ////\n\n// A list of strings that can be considered unlikely candidates when\n// extracting content from a resource. These strings are joined together\n// and then tested for existence using re:test, so may contain simple,\n// non-pipe style regular expression queries if necessary.\nexport const UNLIKELY_CANDIDATES_BLACKLIST = [\n 'ad-break',\n 'adbox',\n 'advert',\n 'addthis',\n 'agegate',\n 'aux',\n 'blogger-labels',\n 'combx',\n 'comment',\n 'conversation',\n 'disqus',\n 'entry-unrelated',\n 'extra',\n 'foot',\n 'form',\n 'header',\n 'hidden',\n 'loader',\n 'login', // Note: This can hit 'blogindex'.\n 'menu',\n 'meta',\n 'nav',\n 'pager',\n 'pagination',\n 'predicta', // readwriteweb inline ad box\n 'presence_control_external', // lifehacker.com container full of false positives\n 'popup',\n 'printfriendly',\n 'related',\n 'remove',\n 'remark',\n 'rss',\n 'share',\n 'shoutbox',\n 'sidebar',\n 'sociable',\n 'sponsor',\n 'tools',\n];\n\n// A list of strings that can be considered LIKELY candidates when\n// extracting content from a resource. Essentially, the inverse of the\n// blacklist above - if something matches both blacklist and whitelist,\n// it is kept. This is useful, for example, if something has a className\n// of \"rss-content entry-content\". It matched 'rss', so it would normally\n// be removed, however, it's also the entry content, so it should be left\n// alone.\n//\n// These strings are joined together and then tested for existence using\n// re:test, so may contain simple, non-pipe style regular expression queries\n// if necessary.\nexport const UNLIKELY_CANDIDATES_WHITELIST = [\n 'and',\n 'article',\n 'body',\n 'blogindex',\n 'column',\n 'content',\n 'entry-content-asset',\n 'format', // misuse of form\n 'hfeed',\n 'hentry',\n 'hatom',\n 'main',\n 'page',\n 'posts',\n 'shadow',\n];\n\n// A list of tags which, if found inside, should cause a <div /> to NOT\n// be turned into a paragraph tag. Shallow div tags without these elements\n// should be turned into <p /> tags.\nexport const DIV_TO_P_BLOCK_TAGS = [\n 'a',\n 'blockquote',\n 'dl',\n 'div',\n 'img',\n 'p',\n 'pre',\n 'table',\n].join(',');\n\n// A list of tags that should be ignored when trying to find the top candidate\n// for a document.\nexport const NON_TOP_CANDIDATE_TAGS = [\n 'br',\n 'b',\n 'i',\n 'label',\n 'hr',\n 'area',\n 'base',\n 'basefont',\n 'input',\n 'img',\n 'link',\n 'meta',\n];\n\nexport const NON_TOP_CANDIDATE_TAGS_RE = new RegExp(\n `^(${NON_TOP_CANDIDATE_TAGS.join('|')})$`,\n 'i'\n);\n\n// A list of selectors that specify, very clearly, either hNews or other\n// very content-specific style content, like Blogger templates.\n// More examples here: http://microformats.org/wiki/blog-post-formats\nexport const HNEWS_CONTENT_SELECTORS = [\n ['.hentry', '.entry-content'],\n ['entry', '.entry-content'],\n ['.entry', '.entry_content'],\n ['.post', '.postbody'],\n ['.post', '.post_body'],\n ['.post', '.post-body'],\n];\n\nexport const PHOTO_HINTS = ['figure', 'photo', 'image', 'caption'];\nexport const PHOTO_HINTS_RE = new RegExp(PHOTO_HINTS.join('|'), 'i');\n\n// A list of strings that denote a positive scoring for this content as being\n// an article container. Checked against className and id.\n//\n// TODO: Perhaps have these scale based on their odds of being quality?\nexport const POSITIVE_SCORE_HINTS = [\n 'article',\n 'articlecontent',\n 'instapaper_body',\n 'blog',\n 'body',\n 'content',\n 'entry-content-asset',\n 'entry',\n 'hentry',\n 'main',\n 'Normal',\n 'page',\n 'pagination',\n 'permalink',\n 'post',\n 'story',\n 'text',\n '[-_]copy', // usatoday\n '\\\\Bcopy',\n];\n\n// The above list, joined into a matching regular expression\nexport const POSITIVE_SCORE_RE = new RegExp(\n POSITIVE_SCORE_HINTS.join('|'),\n 'i'\n);\n\n// Readability publisher-specific guidelines\nexport const READABILITY_ASSET = new RegExp('entry-content-asset', 'i');\n\n// A list of strings that denote a negative scoring for this content as being\n// an article container. Checked against className and id.\n//\n// TODO: Perhaps have these scale based on their odds of being quality?\nexport const NEGATIVE_SCORE_HINTS = [\n 'adbox',\n 'advert',\n 'author',\n 'bio',\n 'bookmark',\n 'bottom',\n 'byline',\n 'clear',\n 'com-',\n 'combx',\n 'comment',\n 'comment\\\\B',\n 'contact',\n 'copy',\n 'credit',\n 'crumb',\n 'date',\n 'deck',\n 'excerpt',\n 'featured', // tnr.com has a featured_content which throws us off\n 'foot',\n 'footer',\n 'footnote',\n 'graf',\n 'head',\n 'info',\n 'infotext', // newscientist.com copyright\n 'instapaper_ignore',\n 'jump',\n 'linebreak',\n 'link',\n 'masthead',\n 'media',\n 'meta',\n 'modal',\n 'outbrain', // slate.com junk\n 'promo',\n 'pr_', // autoblog - press release\n 'related',\n 'respond',\n 'roundcontent', // lifehacker restricted content warning\n 'scroll',\n 'secondary',\n 'share',\n 'shopping',\n 'shoutbox',\n 'side',\n 'sidebar',\n 'sponsor',\n 'stamp',\n 'sub',\n 'summary',\n 'tags',\n 'tools',\n 'widget',\n];\n// The above list, joined into a matching regular expression\nexport const NEGATIVE_SCORE_RE = new RegExp(\n NEGATIVE_SCORE_HINTS.join('|'),\n 'i'\n);\n\n// Match a digit. Pretty clear.\nexport const DIGIT_RE = new RegExp('[0-9]');\n\n// Match 2 or more consecutive <br> tags\nexport const BR_TAGS_RE = new RegExp('(<br[^>]*>[ \\n\\r\\t]*){2,}', 'i');\n\n// Match 1 BR tag.\nexport const BR_TAG_RE = new RegExp('<br[^>]*>', 'i');\n\n// A list of all of the block level tags known in HTML5 and below. Taken from\n// http://bit.ly/qneNIT\nexport const BLOCK_LEVEL_TAGS = [\n 'article',\n 'aside',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'col',\n 'colgroup',\n 'dd',\n 'div',\n 'dl',\n 'dt',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'li',\n 'map',\n 'object',\n 'ol',\n 'output',\n 'p',\n 'pre',\n 'progress',\n 'section',\n 'table',\n 'tbody',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'tr',\n 'ul',\n 'video',\n];\nexport const BLOCK_LEVEL_TAGS_RE = new RegExp(\n `^(${BLOCK_LEVEL_TAGS.join('|')})$`,\n 'i'\n);\n\n// The removal is implemented as a blacklist and whitelist, this test finds\n// blacklisted elements that aren't whitelisted. We do this all in one\n// expression-both because it's only one pass, and because this skips the\n// serialization for whitelisted nodes.\nconst candidatesBlacklist = UNLIKELY_CANDIDATES_BLACKLIST.join('|');\nexport const CANDIDATES_BLACKLIST = new RegExp(candidatesBlacklist, 'i');\n\nconst candidatesWhitelist = UNLIKELY_CANDIDATES_WHITELIST.join('|');\nexport const CANDIDATES_WHITELIST = new RegExp(candidatesWhitelist, 'i');\n\nexport const UNLIKELY_RE = new RegExp(\n `!(${candidatesWhitelist})|(${candidatesBlacklist})`,\n 'i'\n);\n\nexport const PARAGRAPH_SCORE_TAGS = new RegExp('^(p|li|span|pre)$', 'i');\nexport const CHILD_CONTENT_TAGS = new RegExp('^(td|blockquote|ol|ul|dl)$', 'i');\nexport const BAD_TAGS = new RegExp('^(address|form)$', 'i');\n\nexport const HTML_OR_BODY_RE = new RegExp('^(html|body)$', 'i');\n","import {\n NEGATIVE_SCORE_RE,\n POSITIVE_SCORE_RE,\n PHOTO_HINTS_RE,\n READABILITY_ASSET,\n} from './constants';\n\n// Get the score of a node based on its className and id.\nexport default function getWeight(node) {\n const classes = node.attr('class');\n const id = node.attr('id');\n let score = 0;\n\n if (id) {\n // if id exists, try to score on both positive and negative\n if (POSITIVE_SCORE_RE.test(id)) {\n score += 25;\n }\n if (NEGATIVE_SCORE_RE.test(id)) {\n score -= 25;\n }\n }\n\n if (classes) {\n if (score === 0) {\n // if classes exist and id did not contribute to score\n // try to score on both positive and negative\n if (POSITIVE_SCORE_RE.test(classes)) {\n score += 25;\n }\n if (NEGATIVE_SCORE_RE.test(classes)) {\n score -= 25;\n }\n }\n\n // even if score has been set by id, add score for\n // possible photo matches\n // \"try to keep photos if we can\"\n if (PHOTO_HINTS_RE.test(classes)) {\n score += 10;\n }\n\n // add 25 if class matches entry-content-asset,\n // a class apparently instructed for use in the\n // Readability publisher guidelines\n // https://www.readability.com/developers/guidelines\n if (READABILITY_ASSET.test(classes)) {\n score += 25;\n }\n }\n\n return score;\n}\n","// returns the score of a node based on\n// the node's score attribute\n// returns null if no score set\nexport default function getScore($node) {\n return parseFloat($node.attr('score')) || null;\n}\n","// return 1 for every comma in text\nexport default function scoreCommas(text) {\n return (text.match(/,/g) || []).length;\n}\n","const idkRe = new RegExp('^(p|pre)$', 'i');\n\nexport default function scoreLength(textLength, tagName = 'p') {\n const chunks = textLength / 50;\n\n if (chunks > 0) {\n let lengthBonus;\n\n // No idea why p or pre are being tamped down here\n // but just following the source for now\n // Not even sure why tagName is included here,\n // since this is only being called from the context\n // of scoreParagraph\n if (idkRe.test(tagName)) {\n lengthBonus = chunks - 2;\n } else {\n lengthBonus = chunks - 1.25;\n }\n\n return Math.min(Math.max(lengthBonus, 0), 3);\n }\n\n return 0;\n}\n","import { scoreCommas, scoreLength } from './index';\n\n// Score a paragraph using various methods. Things like number of\n// commas, etc. Higher is better.\nexport default function scoreParagraph(node) {\n let score = 1;\n const text = node.text().trim();\n const textLength = text.length;\n\n // If this paragraph is less than 25 characters, don't count it.\n if (textLength < 25) {\n return 0;\n }\n\n // Add points for any commas within this paragraph\n score += scoreCommas(text);\n\n // For every 50 characters in this paragraph, add another point. Up\n // to 3 points.\n score += scoreLength(textLength);\n\n // Articles can end with short paragraphs when people are being clever\n // but they can also end with short paragraphs setting up lists of junk\n // that we strip. This negative tweaks junk setup paragraphs just below\n // the cutoff threshold.\n if (text.slice(-1) === ':') {\n score -= 1;\n }\n\n return score;\n}\n","export default function setScore($node, $, score) {\n $node.attr('score', score);\n return $node;\n}\n","import { getOrInitScore, setScore } from './index';\n\nexport default function addScore($node, $, amount) {\n try {\n const score = getOrInitScore($node, $) + amount;\n setScore($node, $, score);\n } catch (e) {\n // Ignoring; error occurs in scoreNode\n }\n\n return $node;\n}\n","import { addScore } from './index';\n\n// Adds 1/4 of a child's score to its parent\nexport default function addToParent(node, $, score) {\n const parent = node.parent();\n if (parent) {\n addScore(parent, $, score * 0.25);\n }\n\n return node;\n}\n","import { getScore, scoreNode, getWeight, addToParent } from './index';\n\n// gets and returns the score if it exists\n// if not, initializes a score based on\n// the node's tag type\nexport default function getOrInitScore($node, $, weightNodes = true) {\n let score = getScore($node);\n\n if (score) {\n return score;\n }\n\n score = scoreNode($node);\n\n if (weightNodes) {\n score += getWeight($node);\n }\n\n addToParent($node, $, score);\n\n return score;\n}\n","import { scoreParagraph } from './index';\nimport {\n PARAGRAPH_SCORE_TAGS,\n CHILD_CONTENT_TAGS,\n BAD_TAGS,\n} from './constants';\n\n// Score an individual node. Has some smarts for paragraphs, otherwise\n// just scores based on tag.\nexport default function scoreNode($node) {\n const { tagName } = $node.get(0);\n\n // TODO: Consider ordering by most likely.\n // E.g., if divs are a more common tag on a page,\n // Could save doing that regex test on every node – AP\n if (PARAGRAPH_SCORE_TAGS.test(tagName)) {\n return scoreParagraph($node);\n }\n if (tagName.toLowerCase() === 'div') {\n return 5;\n }\n if (CHILD_CONTENT_TAGS.test(tagName)) {\n return 3;\n }\n if (BAD_TAGS.test(tagName)) {\n return -3;\n }\n if (tagName.toLowerCase() === 'th') {\n return -5;\n }\n\n return 0;\n}\n","import { convertNodeTo } from 'utils/dom';\n\nimport { HNEWS_CONTENT_SELECTORS } from './constants';\nimport { scoreNode, setScore, getOrInitScore, addScore } from './index';\n\nfunction convertSpans($node, $) {\n if ($node.get(0)) {\n const { tagName } = $node.get(0);\n\n if (tagName === 'span') {\n // convert spans to divs\n convertNodeTo($node, $, 'div');\n }\n }\n}\n\nfunction addScoreTo($node, $, score) {\n if ($node) {\n convertSpans($node, $);\n addScore($node, $, score);\n }\n}\n\nfunction scorePs($, weightNodes) {\n $('p, pre')\n .not('[score]')\n .each((index, node) => {\n // The raw score for this paragraph, before we add any parent/child\n // scores.\n let $node = $(node);\n $node = setScore($node, $, getOrInitScore($node, $, weightNodes));\n\n const $parent = $node.parent();\n const rawScore = scoreNode($node);\n\n addScoreTo($parent, $, rawScore, weightNodes);\n if ($parent) {\n // Add half of the individual content score to the\n // grandparent\n addScoreTo($parent.parent(), $, rawScore / 2, weightNodes);\n }\n });\n\n return $;\n}\n\n// score content. Parents get the full value of their children's\n// content score, grandparents half\nexport default function scoreContent($, weightNodes = true) {\n // First, look for special hNews based selectors and give them a big\n // boost, if they exist\n HNEWS_CONTENT_SELECTORS.forEach(([parentSelector, childSelector]) => {\n $(`${parentSelector} ${childSelector}`).each((index, node) => {\n addScore($(node).parent(parentSelector), $, 80);\n });\n });\n\n // Doubling this again\n // Previous solution caused a bug\n // in which parents weren't retaining\n // scores. This is not ideal, and\n // should be fixed.\n scorePs($, weightNodes);\n scorePs($, weightNodes);\n\n return $;\n}\n","import { textLength, linkDensity } from 'utils/dom';\nimport { hasSentenceEnd } from 'utils/text';\n\nimport { NON_TOP_CANDIDATE_TAGS_RE } from './constants';\nimport { getScore } from './index';\n\n// Now that we have a top_candidate, look through the siblings of\n// it to see if any of them are decently scored. If they are, they\n// may be split parts of the content (Like two divs, a preamble and\n// a body.) Example:\n// http://articles.latimes.com/2009/oct/14/business/fi-bigtvs14\nexport default function mergeSiblings($candidate, topScore, $) {\n if (!$candidate.parent().length) {\n return $candidate;\n }\n\n const siblingScoreThreshold = Math.max(10, topScore * 0.25);\n const wrappingDiv = $('<div></div>');\n\n $candidate\n .parent()\n .children()\n .each((index, sibling) => {\n const $sibling = $(sibling);\n // Ignore tags like BR, HR, etc\n if (NON_TOP_CANDIDATE_TAGS_RE.test(sibling.tagName)) {\n return null;\n }\n\n const siblingScore = getScore($sibling);\n if (siblingScore) {\n if ($sibling.get(0) === $candidate.get(0)) {\n wrappingDiv.append($sibling);\n } else {\n let contentBonus = 0;\n const density = linkDensity($sibling);\n\n // If sibling has a very low link density,\n // give it a small bonus\n if (density < 0.05) {\n contentBonus += 20;\n }\n\n // If sibling has a high link density,\n // give it a penalty\n if (density >= 0.5) {\n contentBonus -= 20;\n }\n\n // If sibling node has the same class as\n // candidate, give it a bonus\n if ($sibling.attr('class') === $candidate.attr('class')) {\n contentBonus += topScore * 0.2;\n }\n\n const newScore = siblingScore + contentBonus;\n\n if (newScore >= siblingScoreThreshold) {\n return wrappingDiv.append($sibling);\n }\n if (sibling.tagName === 'p') {\n const siblingContent = $sibling.text();\n const siblingContentLength = textLength(siblingContent);\n\n if (siblingContentLength > 80 && density < 0.25) {\n return wrappingDiv.append($sibling);\n }\n if (\n siblingContentLength <= 80 &&\n density === 0 &&\n hasSentenceEnd(siblingContent)\n ) {\n return wrappingDiv.append($sibling);\n }\n }\n }\n }\n\n return null;\n });\n\n if (\n wrappingDiv.children().length === 1 &&\n wrappingDiv\n .children()\n .first()\n .get(0) === $candidate.get(0)\n ) {\n return $candidate;\n }\n\n return wrappingDiv;\n}\n","import { NON_TOP_CANDIDATE_TAGS_RE } from './constants';\nimport { getScore } from './index';\nimport mergeSiblings from './merge-siblings';\n\n// After we've calculated scores, loop through all of the possible\n// candidate nodes we found and find the one with the highest score.\nexport default function findTopCandidate($) {\n let $candidate;\n let topScore = 0;\n\n $('[score]').each((index, node) => {\n // Ignore tags like BR, HR, etc\n if (NON_TOP_CANDIDATE_TAGS_RE.test(node.tagName)) {\n return;\n }\n\n const $node = $(node);\n const score = getScore($node);\n\n if (score > topScore) {\n topScore = score;\n $candidate = $node;\n }\n });\n\n // If we don't have a candidate, return the body\n // or whatever the first element is\n if (!$candidate) {\n return $('body') || $('*').first();\n }\n\n $candidate = mergeSiblings($candidate, topScore, $);\n\n return $candidate;\n}\n","import {\n getScore,\n setScore,\n getOrInitScore,\n scoreCommas,\n} from 'extractors/generic/content/scoring';\n\nimport { CLEAN_CONDITIONALLY_TAGS, KEEP_CLASS } from './constants';\nimport { normalizeSpaces } from '../text';\nimport { linkDensity } from './index';\n\nfunction removeUnlessContent($node, $, weight) {\n // Explicitly save entry-content-asset tags, which are\n // noted as valuable in the Publisher guidelines. For now\n // this works everywhere. We may want to consider making\n // this less of a sure-thing later.\n if ($node.hasClass('entry-content-asset')) {\n return;\n }\n\n const content = normalizeSpaces($node.text());\n\n if (scoreCommas(content) < 10) {\n const pCount = $('p', $node).length;\n const inputCount = $('input', $node).length;\n\n // Looks like a form, too many inputs.\n if (inputCount > pCount / 3) {\n $node.remove();\n return;\n }\n\n const contentLength = content.length;\n const imgCount = $('img', $node).length;\n\n // Content is too short, and there are no images, so\n // this is probably junk content.\n if (contentLength < 25 && imgCount === 0) {\n $node.remove();\n return;\n }\n\n const density = linkDensity($node);\n\n // Too high of link density, is probably a menu or\n // something similar.\n // console.log(weight, density, contentLength)\n if (weight < 25 && density > 0.2 && contentLength > 75) {\n $node.remove();\n return;\n }\n\n // Too high of a link density, despite the score being\n // high.\n if (weight >= 25 && density > 0.5) {\n // Don't remove the node if it's a list and the\n // previous sibling starts with a colon though. That\n // means it's probably content.\n const tagName = $node.get(0).tagName.toLowerCase();\n const nodeIsList = tagName === 'ol' || tagName === 'ul';\n if (nodeIsList) {\n const previousNode = $node.prev();\n if (\n previousNode &&\n normalizeSpaces(previousNode.text()).slice(-1) === ':'\n ) {\n return;\n }\n }\n\n $node.remove();\n return;\n }\n\n const scriptCount = $('script', $node).length;\n\n // Too many script tags, not enough content.\n if (scriptCount > 0 && contentLength < 150) {\n $node.remove();\n }\n }\n}\n\n// Given an article, clean it of some superfluous content specified by\n// tags. Things like forms, ads, etc.\n//\n// Tags is an array of tag name's to search through. (like div, form,\n// etc)\n//\n// Return this same doc.\nexport default function cleanTags($article, $) {\n $(CLEAN_CONDITIONALLY_TAGS, $article).each((index, node) => {\n const $node = $(node);\n // If marked to keep, skip it\n if ($node.hasClass(KEEP_CLASS) || $node.find(`.${KEEP_CLASS}`).length > 0)\n return;\n\n let weight = getScore($node);\n if (!weight) {\n weight = getOrInitScore($node, $);\n setScore($node, $, weight);\n }\n\n // drop node if its weight is < 0\n if (weight < 0) {\n $node.remove();\n } else {\n // deteremine if node seems like content\n removeUnlessContent($node, $, weight);\n }\n });\n\n return $;\n}\n","import { getWeight } from 'extractors/generic/content/scoring';\n\nimport { HEADER_TAG_LIST } from './constants';\nimport { normalizeSpaces } from '../text';\n\nexport default function cleanHeaders($article, $, title = '') {\n $(HEADER_TAG_LIST, $article).each((index, header) => {\n const $header = $(header);\n // Remove any headers that appear before all other p tags in the\n // document. This probably means that it was part of the title, a\n // subtitle or something else extraneous like a datestamp or byline,\n // all of which should be handled by other metadata handling.\n if ($($header, $article).prevAll('p').length === 0) {\n return $header.remove();\n }\n\n // Remove any headers that match the title exactly.\n if (normalizeSpaces($(header).text()) === title) {\n return $header.remove();\n }\n\n // If this header has a negative weight, it's probably junk.\n // Get rid of it.\n if (getWeight($(header)) < 0) {\n return $header.remove();\n }\n\n return $header;\n });\n\n return $;\n}\n","import { convertNodeTo } from 'utils/dom';\n\n// Rewrite the tag name to div if it's a top level node like body or\n// html to avoid later complications with multiple body tags.\nexport default function rewriteTopLevel(article, $) {\n // I'm not using context here because\n // it's problematic when converting the\n // top-level/root node - AP\n $ = convertNodeTo($('html'), $, 'div');\n $ = convertNodeTo($('body'), $, 'div');\n\n return $;\n}\n","import URL from 'url';\n\nimport { getAttrs, setAttr } from 'utils/dom';\n\nfunction absolutize($, rootUrl, attr) {\n const baseUrl = $('base').attr('href');\n\n $(`[${attr}]`).each((_, node) => {\n const attrs = getAttrs(node);\n const url = attrs[attr];\n if (!url) return;\n const absoluteUrl = URL.resolve(baseUrl || rootUrl, url);\n\n setAttr(node, attr, absoluteUrl);\n });\n}\n\nfunction absolutizeSet($, rootUrl, $content) {\n $('[srcset]', $content).each((_, node) => {\n const attrs = getAttrs(node);\n const urlSet = attrs.srcset;\n\n if (urlSet) {\n // a comma should be considered part of the candidate URL unless preceded by a descriptor\n // descriptors can only contain positive numbers followed immediately by either 'w' or 'x'\n // space characters inside the URL should be encoded (%20 or +)\n const candidates = urlSet.match(\n /(?:\\s*)(\\S+(?:\\s*[\\d.]+[wx])?)(?:\\s*,\\s*)?/g\n );\n if (!candidates) return;\n const absoluteCandidates = candidates.map(candidate => {\n // a candidate URL cannot start or end with a comma\n // descriptors are separated from the URLs by unescaped whitespace\n const parts = candidate\n .trim()\n .replace(/,$/, '')\n .split(/\\s+/);\n parts[0] = URL.resolve(rootUrl, parts[0]);\n return parts.join(' ');\n });\n const absoluteUrlSet = [...new Set(absoluteCandidates)].join(', ');\n setAttr(node, 'srcset', absoluteUrlSet);\n }\n });\n}\n\nexport default function makeLinksAbsolute($content, $, url) {\n ['href', 'src'].forEach(attr => absolutize($, url, attr));\n absolutizeSet($, url, $content);\n\n return $content;\n}\n","export function textLength(text) {\n return text.trim().replace(/\\s+/g, ' ').length;\n}\n\n// Determines what percentage of the text\n// in a node is link text\n// Takes a node, returns a float\nexport function linkDensity($node) {\n const totalTextLength = textLength($node.text());\n\n const linkText = $node.find('a').text();\n const linkLength = textLength(linkText);\n\n if (totalTextLength > 0) {\n return linkLength / totalTextLength;\n }\n if (totalTextLength === 0 && linkLength > 0) {\n return 1;\n }\n\n return 0;\n}\n","import { stripTags } from 'utils/dom';\n\n// Given a node type to search for, and a list of meta tag names to\n// search for, find a meta tag associated.\nexport default function extractFromMeta(\n $,\n metaNames,\n cachedNames,\n cleanTags = true\n) {\n const foundNames = metaNames.filter(name => cachedNames.indexOf(name) !== -1);\n\n // eslint-disable-next-line no-restricted-syntax\n for (const name of foundNames) {\n const type = 'name';\n const value = 'value';\n\n const nodes = $(`meta[${type}=\"${name}\"]`);\n\n // Get the unique value of every matching node, in case there\n // are two meta tags with the same name and value.\n // Remove empty values.\n const values = nodes\n .map((index, node) => $(node).attr(value))\n .toArray()\n .filter(text => text !== '');\n\n // If we have more than one value for the same name, we have a\n // conflict and can't trust any of them. Skip this name. If we have\n // zero, that means our meta tags had no values. Skip this name\n // also.\n if (values.length === 1) {\n let metaValue;\n // Meta values that contain HTML should be stripped, as they\n // weren't subject to cleaning previously.\n if (cleanTags) {\n metaValue = stripTags(values[0], $);\n } else {\n [metaValue] = values;\n }\n\n return metaValue;\n }\n }\n\n // If nothing is found, return null\n return null;\n}\n","import { withinComment } from 'utils/dom';\n\nfunction isGoodNode($node, maxChildren) {\n // If it has a number of children, it's more likely a container\n // element. Skip it.\n if ($node.children().length > maxChildren) {\n return false;\n }\n // If it looks to be within a comment, skip it.\n if (withinComment($node)) {\n return false;\n }\n\n return true;\n}\n\n// Given a a list of selectors find content that may\n// be extractable from the document. This is for flat\n// meta-information, like author, title, date published, etc.\nexport default function extractFromSelectors(\n $,\n selectors,\n maxChildren = 1,\n textOnly = true\n) {\n // eslint-disable-next-line no-restricted-syntax\n for (const selector of selectors) {\n const nodes = $(selector);\n\n // If we didn't get exactly one of this selector, this may be\n // a list of articles or comments. Skip it.\n if (nodes.length === 1) {\n const $node = $(nodes[0]);\n\n if (isGoodNode($node, maxChildren)) {\n let content;\n if (textOnly) {\n content = $node.text();\n } else {\n content = $node.html();\n }\n\n if (content) {\n return content;\n }\n }\n }\n }\n\n return null;\n}\n","// strips all tags from a string of text\nexport default function stripTags(text, $) {\n // Wrapping text in html element prevents errors when text\n // has no html\n const cleanText = $(`<span>${text}</span>`).text();\n return cleanText === '' ? text : cleanText;\n}\n","import { getAttrs } from 'utils/dom';\n\nexport default function withinComment($node) {\n const parents = $node.parents().toArray();\n const commentParent = parents.find(parent => {\n const attrs = getAttrs(parent);\n const { class: nodeClass, id } = attrs;\n const classAndId = `${nodeClass} ${id}`;\n return classAndId.includes('comment');\n });\n\n return commentParent !== undefined;\n}\n","// Given a node, determine if it's article-like enough to return\n// param: node (a cheerio node)\n// return: boolean\n\nexport default function nodeIsSufficient($node) {\n return $node.text().trim().length >= 100;\n}\n","import { IS_WP_SELECTOR } from './constants';\n\nexport default function isWordpress($) {\n return $(IS_WP_SELECTOR).length > 0;\n}\n","export default function getAttrs(node) {\n const { attribs, attributes } = node;\n\n if (!attribs && attributes) {\n const attrs = Reflect.ownKeys(attributes).reduce((acc, index) => {\n const attr = attributes[index];\n\n if (!attr.name || !attr.value) return acc;\n\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n return attrs;\n }\n\n return attribs;\n}\n","export default function setAttr(node, attr, val) {\n if (node.attribs) {\n node.attribs[attr] = val;\n } else if (node.attributes) {\n node.setAttribute(attr, val);\n }\n\n return node;\n}\n","export default function setAttrs(node, attrs) {\n if (node.attribs) {\n node.attribs = attrs;\n } else if (node.attributes) {\n while (node.attributes.length > 0) {\n node.removeAttribute(node.attributes[0].name);\n }\n\n Reflect.ownKeys(attrs).forEach(key => {\n node.setAttribute(key, attrs[key]);\n });\n }\n\n return node;\n}\n","export const IS_LINK = new RegExp('https?://', 'i');\nconst IMAGE_RE = '.(png|gif|jpe?g)';\nexport const IS_IMAGE = new RegExp(`${IMAGE_RE}`, 'i');\nexport const IS_SRCSET = new RegExp(\n `${IMAGE_RE}(\\\\?\\\\S+)?(\\\\s*[\\\\d.]+[wx])`,\n 'i'\n);\n\nexport const TAGS_TO_REMOVE = ['script', 'style', 'form'].join(',');\n","import { getAttrs } from 'utils/dom';\n\nimport { IS_LINK, IS_IMAGE, IS_SRCSET } from './constants';\n\n// Convert all instances of images with potentially\n// lazy loaded images into normal images.\n// Many sites will have img tags with no source, or an image tag with a src\n// attribute that a is a placeholer. We need to be able to properly fill in\n// the src attribute so the images are no longer lazy loaded.\nexport default function convertLazyLoadedImages($) {\n const extractSrcFromJSON = str => {\n try {\n const { src } = JSON.parse(str);\n if (typeof src === 'string') return src;\n } catch (_) {\n return false;\n }\n\n return false;\n };\n\n $('img').each((_, img) => {\n const attrs = getAttrs(img);\n\n Reflect.ownKeys(attrs).forEach(attr => {\n const value = attrs[attr];\n\n if (attr !== 'srcset' && IS_LINK.test(value) && IS_SRCSET.test(value)) {\n $(img).attr('srcset', value);\n } else if (\n attr !== 'src' &&\n attr !== 'srcset' &&\n IS_LINK.test(value) &&\n IS_IMAGE.test(value)\n ) {\n // Is the value a JSON object? If so, we should attempt to extract the image src from the data.\n const existingSrc = extractSrcFromJSON(value);\n if (existingSrc) {\n $(img).attr('src', existingSrc);\n } else {\n $(img).attr('src', value);\n }\n }\n });\n });\n\n return $;\n}\n","import { TAGS_TO_REMOVE } from './constants';\n\nfunction isComment(index, node) {\n return node.type === 'comment';\n}\n\nfunction cleanComments($) {\n $.root()\n .find('*')\n .contents()\n .filter(isComment)\n .remove();\n\n return $;\n}\n\nexport default function clean($) {\n $(TAGS_TO_REMOVE).remove();\n\n $ = cleanComments($);\n return $;\n}\n","import cheerio from 'cheerio';\nimport iconv from 'iconv-lite';\n\nimport { getEncoding } from 'utils/text';\nimport { fetchResource } from './utils';\nimport { normalizeMetaTags, convertLazyLoadedImages, clean } from './utils/dom';\n\nconst Resource = {\n // Create a Resource.\n //\n // :param url: The URL for the document we should retrieve.\n // :param response: If set, use as the response rather than\n // attempting to fetch it ourselves. Expects a\n // string.\n // :param headers: Custom headers to be included in the request\n async create(url, preparedResponse, parsedUrl, headers = {}) {\n let result;\n\n if (preparedResponse) {\n const validResponse = {\n statusMessage: 'OK',\n statusCode: 200,\n headers: {\n 'content-type': 'text/html',\n 'content-length': 500,\n },\n };\n\n result = {\n body: preparedResponse,\n response: validResponse,\n alreadyDecoded: true,\n };\n } else {\n result = await fetchResource(url, parsedUrl, headers);\n }\n\n if (result.error) {\n result.failed = true;\n return result;\n }\n\n return this.generateDoc(result);\n },\n\n generateDoc({ body: content, response, alreadyDecoded = false }) {\n const { 'content-type': contentType = '' } = response.headers;\n\n // TODO: Implement is_text function from\n // https://github.com/ReadabilityHoldings/readability/blob/8dc89613241d04741ebd42fa9fa7df1b1d746303/readability/utils/text.py#L57\n if (!contentType.includes('html') && !contentType.includes('text')) {\n throw new Error('Content does not appear to be text.');\n }\n\n let $ = this.encodeDoc({ content, contentType, alreadyDecoded });\n\n if ($.root().children().length === 0) {\n throw new Error('No children, likely a bad parse.');\n }\n\n $ = normalizeMetaTags($);\n $ = convertLazyLoadedImages($);\n $ = clean($);\n\n return $;\n },\n\n encodeDoc({ content, contentType, alreadyDecoded = false }) {\n if (alreadyDecoded) {\n return cheerio.load(content);\n }\n\n const encoding = getEncoding(contentType);\n let decodedContent = iconv.decode(content, encoding);\n let $ = cheerio.load(decodedContent);\n // after first cheerio.load, check to see if encoding matches\n const contentTypeSelector = cheerio.browser\n ? 'meta[http-equiv=content-type]'\n : 'meta[http-equiv=content-type i]';\n const metaContentType =\n $(contentTypeSelector).attr('content') ||\n $('meta[charset]').attr('charset');\n const properEncoding = getEncoding(metaContentType);\n\n // if encodings in the header/body dont match, use the one in the body\n if (metaContentType && properEncoding !== encoding) {\n decodedContent = iconv.decode(content, properEncoding);\n $ = cheerio.load(decodedContent);\n }\n\n return $;\n },\n};\n\nexport default Resource;\n","export default function* range(start = 1, end = 1) {\n while (start <= end) {\n yield (start += 1);\n }\n}\n","// extremely simple url validation as a first step\nexport default function validateUrl({ hostname }) {\n // If this isn't a valid url, return an error message\n return !!hostname;\n}\n","const merge = (extractor, domains) =>\n domains.reduce((acc, domain) => {\n acc[domain] = extractor;\n return acc;\n }, {});\n\nexport default function mergeSupportedDomains(extractor) {\n return extractor.supportedDomains\n ? merge(extractor, [extractor.domain, ...extractor.supportedDomains])\n : merge(extractor, [extractor.domain]);\n}\n","import mergeSupportedDomains from '../utils/merge-supported-domains';\n\nexport const apiExtractors = {};\n\nexport default function addExtractor(extractor) {\n if (!extractor || !extractor.domain) {\n return {\n error: true,\n message: 'Unable to add custom extractor. Invalid parameters.',\n };\n }\n\n Object.assign(apiExtractors, mergeSupportedDomains(extractor));\n\n return apiExtractors;\n}\n","export const BloggerExtractor = {\n domain: 'blogspot.com',\n content: {\n // Blogger is insane and does not load its content\n // initially in the page, but it's all there\n // in noscript\n selectors: ['.post-content noscript'],\n\n // Selectors to remove from the extracted content\n clean: [],\n\n // Convert the noscript tag to a div\n transforms: {\n noscript: 'div',\n },\n },\n\n author: {\n selectors: ['.post-author-name'],\n },\n\n title: {\n selectors: ['.post h2.title'],\n },\n\n date_published: {\n selectors: ['span.publishdate'],\n },\n};\n","export const NYMagExtractor = {\n domain: 'nymag.com',\n content: {\n // Order by most likely. Extractor will stop on first occurrence\n selectors: ['div.article-content', 'section.body', 'article.article'],\n\n // Selectors to remove from the extracted content\n clean: ['.ad', '.single-related-story'],\n\n // Object of tranformations to make on matched elements\n // Each key is the selector, each value is the tag to\n // transform to.\n // If a function is given, it should return a string\n // to convert to or nothing (in which case it will not perform\n // the transformation.\n transforms: {\n // Convert h1s to h2s\n h1: 'h2',\n\n // Convert lazy-loaded noscript images to figures\n noscript: ($node, $) => {\n const $children = $.browser ? $($node.text()) : $node.children();\n if (\n $children.length === 1 &&\n $children.get(0) !== undefined &&\n $children.get(0).tagName.toLowerCase() === 'img'\n ) {\n return 'figure';\n }\n\n return null;\n },\n },\n },\n\n title: {\n selectors: ['h1.lede-feature-title', 'h1.headline-primary', 'h1'],\n },\n\n author: {\n selectors: ['.by-authors', '.lede-feature-author'],\n },\n\n dek: {\n selectors: ['.lede-feature-teaser'],\n },\n\n date_published: {\n selectors: [\n ['time.article-timestamp[datetime]', 'datetime'],\n 'time.article-timestamp',\n ],\n },\n};\n","export const WikipediaExtractor = {\n domain: 'wikipedia.org',\n content: {\n selectors: ['#mw-content-text'],\n\n defaultCleaner: false,\n\n // transform top infobox to an image with caption\n transforms: {\n '.infobox img': $node => {\n const $parent = $node.parents('.infobox');\n // Only prepend the first image in .infobox\n if ($parent.children('img').length === 0) {\n $parent.prepend($node);\n }\n },\n '.infobox caption': 'figcaption',\n '.infobox': 'figure',\n },\n\n // Selectors to remove from the extracted content\n clean: [\n '.mw-editsection',\n 'figure tr, figure td, figure tbody',\n '#toc',\n '.navbox',\n ],\n },\n\n author: 'Wikipedia Contributors',\n\n title: {\n selectors: ['h2.title'],\n },\n\n date_published: {\n selectors: ['#footer-info-lastmod'],\n },\n};\n","export const TwitterExtractor = {\n domain: 'twitter.com',\n\n content: {\n transforms: {\n // We're transforming essentially the whole page here.\n // Twitter doesn't have nice selectors, so our initial\n // selector grabs the whole page, then we're re-writing\n // it to fit our needs before we clean it up.\n '.permalink[role=main]': ($node, $) => {\n const tweets = $node.find('.tweet');\n const $tweetContainer = $('<div id=\"TWEETS_GO_HERE\"></div>');\n $tweetContainer.append(tweets);\n $node.replaceWith($tweetContainer);\n },\n\n // Twitter wraps @ with s, which\n // renders as a strikethrough\n s: 'span',\n },\n\n selectors: ['.permalink[role=main]'],\n\n defaultCleaner: false,\n\n clean: ['.stream-item-footer', 'button', '.tweet-details-fixer'],\n },\n\n author: {\n selectors: ['.tweet.permalink-tweet .username'],\n },\n\n date_published: {\n selectors: [['.permalink-tweet ._timestamp[data-time-ms]', 'data-time-ms']],\n },\n};\n","export const NYTimesExtractor = {\n domain: 'www.nytimes.com',\n\n title: {\n selectors: [\n 'h1[data-testid=\"headline\"]',\n 'h1.g-headline',\n 'h1[itemprop=\"headline\"]',\n 'h1.headline',\n 'h1 .balancedHeadline',\n ],\n },\n\n author: {\n selectors: [\n ['meta[name=\"author\"]', 'value'],\n '.g-byline',\n '.byline',\n ['meta[name=\"byl\"]', 'value'],\n ],\n },\n\n content: {\n selectors: ['div.g-blocks', 'section[name=\"articleBody\"]', 'article#story'],\n\n transforms: {\n 'img.g-lazy': $node => {\n let src = $node.attr('src');\n const width = 640;\n\n src = src.replace('{{size}}', width);\n $node.attr('src', src);\n },\n },\n\n clean: [\n '.ad',\n 'header#story-header',\n '.story-body-1 .lede.video',\n '.visually-hidden',\n '#newsletter-promo',\n '.promo',\n '.comments-button',\n '.hidden',\n '.comments',\n '.supplemental',\n '.nocontent',\n '.story-footer-links',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['meta[name=\"article:published\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: null,\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\nexport const TheAtlanticExtractor = {\n domain: 'www.theatlantic.com',\n title: {\n selectors: ['h1', '.c-article-header__hed'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value'], '.c-byline__author'],\n },\n\n content: {\n selectors: ['article', '.article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.partner-box',\n '.callout',\n '.c-article-writer__image',\n '.c-article-writer__content',\n '.c-letters-cta__text',\n '.c-footer__logo',\n '.c-recirculation-link',\n '.twitter-tweet',\n ],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n date_published: {\n selectors: [['time[itemprop=\"datePublished\"]', 'datetime']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const NewYorkerExtractor = {\n domain: 'www.newyorker.com',\n title: {\n selectors: [\n 'h1[class^=\"content-header\"]',\n 'h1[class^=\"ArticleHeader__hed\"]',\n 'h1[class*=\"ContentHeaderHed\"]',\n ['meta[name=\"og:title\"]', 'value'],\n ],\n },\n\n author: {\n selectors: [\n 'article header div[class^=\"BylinesWrapper\"]',\n ['meta[name=\"article:author\"]', 'value'],\n 'div[class^=\"ArticleContributors\"] a[rel=\"author\"]',\n 'article header div[class*=\"Byline__multipleContributors\"]',\n ],\n },\n\n content: {\n selectors: [\n '.article__body',\n 'article.article.main-content',\n 'main[class^=\"Layout__content\"]',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.caption__text': 'figcaption',\n '.caption__credit': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['footer[class^=\"ArticleFooter__footer\"]', 'aside'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n 'time.content-header__publish-date',\n ['meta[name=\"pubdate\"]', 'value'],\n ],\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [\n 'div[class^=\"ContentHeaderDek\"]',\n 'div.content-header__dek',\n 'h2[class^=\"ArticleHeader__dek\"]',\n ],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const WiredExtractor = {\n domain: 'www.wired.com',\n title: {\n selectors: [\n 'h1[data-testId=\"ContentHeaderHed\"]',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n ['meta[name=\"article:author\"]', 'value'],\n 'a[rel=\"author\"]',\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n 'article.article.main-content',\n 'article.content',\n // enter content selectors\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.visually-hidden', 'figcaption img.photo', '.alert-message'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const MSNExtractor = {\n domain: 'www.msn.com',\n title: {\n selectors: [\n 'h1',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n 'span.authorname-txt',\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n 'div.richtext',\n // enter content selectors\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['span.caption'],\n },\n\n date_published: {\n selectors: ['span.time'],\n },\n\n lead_image_url: {\n selectors: [],\n },\n\n dek: {\n selectors: [],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const YahooExtractor = {\n domain: 'www.yahoo.com',\n title: {\n selectors: [\n 'header.canvas-header',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n 'span.provider-name',\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n // enter content selectors\n '.content-canvas',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.figure-caption'],\n },\n\n date_published: {\n selectors: [['time.date[datetime]', 'datetime']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [\n // enter dek selectors\n ],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const BuzzfeedExtractor = {\n domain: 'www.buzzfeed.com',\n\n supportedDomains: ['www.buzzfeednews.com'],\n\n title: {\n selectors: [\n 'h1.embed-headline-title',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n 'a[data-action=\"user/username\"]',\n 'byline__author',\n ['meta[name=\"author\"]', 'value'],\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n ['div[class^=\"featureimage_featureImageWrapper\"]', '.js-subbuzz-wrapper'],\n ['.js-subbuzz-wrapper'],\n ],\n\n defaultCleaner: false,\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n h2: 'b',\n\n 'div.longform_custom_header_media': $node => {\n if ($node.has('img') && $node.has('.longform_header_image_source')) {\n return 'figure';\n }\n\n return null;\n },\n\n 'figure.longform_custom_header_media .longform_header_image_source':\n 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.instapaper_ignore',\n '.suplist_list_hide .buzz_superlist_item .buzz_superlist_number_inline',\n '.share-box',\n '.print',\n '.js-inline-share-bar',\n '.js-ad-placement',\n ],\n },\n\n date_published: {\n selectors: [['time[datetime]', 'datetime']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: ['.embed-headline-description'],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const WikiaExtractor = {\n domain: 'fandom.wikia.com',\n title: {\n selectors: [\n 'h1.entry-title',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n '.author vcard',\n '.fn',\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n '.grid-content',\n '.entry-content',\n // enter content selectors\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const LittleThingsExtractor = {\n domain: 'www.littlethings.com',\n title: {\n selectors: [\n 'h1[class*=\"PostHeader\"]',\n 'h1.post-title',\n // enter title selectors\n ],\n },\n\n author: {\n selectors: [\n 'div[class^=\"PostHeader__ScAuthorNameSection\"]',\n ['meta[name=\"author\"]', 'value'],\n // enter author selectors\n ],\n },\n\n content: {\n selectors: [\n // enter content selectors\n 'section[class*=\"PostMainArticle\"]',\n '.mainContentIntro',\n '.content-wrapper',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: [],\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n next_page_url: null,\n\n excerpt: null,\n};\n","export const PoliticoExtractor = {\n domain: 'www.politico.com',\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [\n ['div[itemprop=\"author\"] meta[itemprop=\"name\"]', 'value'],\n '.story-meta__authors .vcard',\n '.story-main-content .byline .vcard',\n ],\n },\n\n content: {\n selectors: [['.story-text'], '.story-main-content', '.story-core'],\n\n transforms: [],\n\n clean: ['figcaption', '.story-meta', '.ad'],\n },\n\n date_published: {\n selectors: [\n ['time[itemprop=\"datePublished\"]', 'datetime'],\n ['.story-meta__details time[datetime]', 'datetime'],\n ['.story-main-content .timestamp time[datetime]', 'datetime'],\n ],\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n};\n","export const DeadspinExtractor = {\n domain: 'deadspin.com',\n\n supportedDomains: [\n 'jezebel.com',\n 'lifehacker.com',\n 'kotaku.com',\n 'gizmodo.com',\n 'jalopnik.com',\n 'kinja.com',\n 'avclub.com',\n 'clickhole.com',\n 'splinternews.com',\n 'theonion.com',\n 'theroot.com',\n 'thetakeout.com',\n 'theinventory.com',\n ],\n\n title: {\n selectors: ['header h1', 'h1.headline'],\n },\n\n author: {\n selectors: ['a[data-ga*=\"Author\"]', '.author'],\n },\n\n content: {\n selectors: ['.js_post-content', '.post-content', '.entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'iframe.lazyload[data-recommend-id^=\"youtube://\"]': $node => {\n const youtubeId = $node.attr('id').split('youtube-')[1];\n $node.attr('src', `https://www.youtube.com/embed/${youtubeId}`);\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.magnifier', '.lightbox'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['time.updated[datetime]', 'datetime'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n next_page_url: {\n selectors: [\n // enter selectors\n ],\n },\n\n excerpt: {\n selectors: [\n // enter selectors\n ],\n },\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const BroadwayWorldExtractor = {\n domain: 'www.broadwayworld.com',\n title: {\n selectors: ['h1[itemprop=headline]', 'h1.article-title'],\n },\n\n author: {\n selectors: ['span[itemprop=author]'],\n },\n\n content: {\n selectors: ['div[itemprop=articlebody]'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n\n date_published: {\n selectors: [['meta[itemprop=datePublished]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [],\n },\n\n next_page_url: {\n selectors: [\n // enter selectors\n ],\n },\n\n excerpt: {\n selectors: [\n // enter selectors\n ],\n },\n};\n","// Rename CustomExtractor\n// to fit your publication\n// (e.g., NYTimesExtractor)\nexport const ApartmentTherapyExtractor = {\n domain: 'www.apartmenttherapy.com',\n title: {\n selectors: ['h1.headline'],\n },\n\n author: {\n selectors: ['.PostByline__name'],\n },\n\n content: {\n selectors: ['div.post__content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div[data-render-react-id=\"images/LazyPicture\"]': ($node, $) => {\n const data = JSON.parse($node.attr('data-props'));\n const { src } = data.sources[0];\n const $img = $('<img />').attr('src', src);\n $node.replaceWith($img);\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n\n date_published: {\n selectors: [['.PostByline__timestamp[datetime]', 'datetime']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: [],\n },\n\n next_page_url: {\n selectors: [\n // enter selectors\n ],\n },\n\n excerpt: {\n selectors: [\n // enter selectors\n ],\n },\n};\n","export const MediumExtractor = {\n domain: 'medium.com',\n\n title: {\n selectors: ['h1', ['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n content: {\n selectors: ['article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n // Allow drop cap character.\n 'section span:first-of-type': $node => {\n const $text = $node.html();\n if ($text.length === 1 && /^[a-zA-Z()]+$/.test($text)) {\n $node.replaceWith($text);\n }\n },\n // Re-write lazy-loaded youtube videos\n iframe: $node => {\n const ytRe = /https:\\/\\/i.embed.ly\\/.+url=https:\\/\\/i\\.ytimg\\.com\\/vi\\/(\\w+)\\//;\n const thumb = decodeURIComponent($node.attr('data-thumbnail'));\n const $parent = $node.parents('figure');\n\n if (ytRe.test(thumb)) {\n const [_, youtubeId] = thumb.match(ytRe); // eslint-disable-line\n $node.attr('src', `https://www.youtube.com/embed/${youtubeId}`);\n const $caption = $parent.find('figcaption');\n $parent.empty().append([$node, $caption]);\n return;\n }\n\n // If we can't draw the YouTube preview, remove the figure.\n $parent.remove();\n },\n\n // rewrite figures to pull out image and caption, remove rest\n figure: $node => {\n // ignore if figure has an iframe\n if ($node.find('iframe').length > 0) return;\n\n const $img = $node.find('img').slice(-1)[0];\n const $caption = $node.find('figcaption');\n\n $node.empty().append([$img, $caption]);\n },\n\n // Remove any smaller images that did not get caught by the generic image\n // cleaner (author photo 48px, leading sentence images 79px, etc.).\n img: $node => {\n const width = parseInt($node.attr('width'), 10);\n if (width < 100) $node.remove();\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['span a', 'svg'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: null,\n\n next_page_url: {\n selectors: [\n // enter selectors\n ],\n },\n\n excerpt: {\n selectors: [\n // enter selectors\n ],\n },\n};\n","export const WwwTmzComExtractor = {\n domain: 'www.tmz.com',\n\n title: {\n selectors: ['.post-title-breadcrumb', 'h1', '.headline'],\n },\n\n author: 'TMZ STAFF',\n\n date_published: {\n selectors: ['.article__published-at', '.article-posted-date'],\n\n timezone: 'America/Los_Angeles',\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article__blocks', '.article-content', '.all-post-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.lightbox-link'],\n },\n};\n","export const WwwWashingtonpostComExtractor = {\n domain: 'www.washingtonpost.com',\n\n title: {\n selectors: ['h1', '#topper-headline-wrapper'],\n },\n\n author: {\n selectors: ['.pb-author-name'],\n },\n\n date_published: {\n selectors: [['.author-timestamp[itemprop=\"datePublished\"]', 'content']],\n },\n\n dek: {\n selectors: [],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div.inline-content': $node => {\n if ($node.has('img,iframe,video').length > 0) {\n return 'figure';\n }\n\n $node.remove();\n return null;\n },\n '.pb-caption': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.interstitial-link', '.newsletter-inline-unit'],\n },\n};\n","export const WwwHuffingtonpostComExtractor = {\n domain: 'www.huffingtonpost.com',\n\n title: {\n selectors: ['h1.headline__title'],\n },\n\n author: {\n selectors: ['span.author-card__details__name'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:modified_time\"]', 'value'],\n ['meta[name=\"article:published_time\"]', 'value'],\n ],\n },\n\n dek: {\n selectors: ['h2.headline__subtitle'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.entry__body'],\n\n defaultCleaner: false,\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.pull-quote',\n '.tag-cloud',\n '.embed-asset',\n '.below-entry',\n '.entry-corrections',\n '#suggested-story',\n ],\n },\n};\n","export const NewrepublicComExtractor = {\n domain: 'newrepublic.com',\n\n title: {\n selectors: ['h1.article-headline'],\n },\n\n author: {\n selectors: ['span.AuthorList'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: ['h2.article-subhead'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [['div.article-body']],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['aside'],\n },\n};\n","export const MoneyCnnComExtractor = {\n domain: 'money.cnn.com',\n\n title: {\n selectors: ['.article-title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value'], '.byline a'],\n },\n\n date_published: {\n selectors: [['meta[name=\"date\"]', 'value']],\n\n timezone: 'GMT',\n },\n\n dek: {\n selectors: ['#storytext h2'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#storytext'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.inStoryHeading'],\n },\n};\n","export const WwwThevergeComExtractor = {\n domain: 'www.theverge.com',\n\n supportedDomains: ['www.polygon.com'],\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.p-dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n // feature template multi-match\n ['.c-entry-hero .e-image', '.c-entry-intro', '.c-entry-content'],\n // regular post multi-match\n ['.e-image--hero', '.c-entry-content'],\n // feature template fallback\n '.l-wrapper .l-feature',\n // regular post fallback\n 'div.c-entry-content',\n ],\n\n // Transform lazy-loaded images\n transforms: {\n noscript: $node => {\n const $children = $node.children();\n if ($children.length === 1 && $children.get(0).tagName === 'img') {\n return 'span';\n }\n\n return null;\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.aside',\n 'img.c-dynamic-image', // images come from noscript transform\n ],\n },\n};\n","export const WwwCnnComExtractor = {\n domain: 'www.cnn.com',\n\n title: {\n selectors: ['h1.pg-headline', 'h1'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n // a more specific selector to grab the lead image and the body\n ['.media__video--thumbnail', '.zn-body-text'],\n // a fallback for the above\n '.zn-body-text',\n 'div[itemprop=\"articleBody\"]',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.zn-body__paragraph, .el__leafmedia--sourced-paragraph': $node => {\n const $text = $node.html();\n if ($text) {\n return 'p';\n }\n\n return null;\n },\n\n // this transform cleans the short, all-link sections linking\n // to related content but not marked as such in any way.\n '.zn-body__paragraph': $node => {\n if ($node.has('a')) {\n if (\n $node.text().trim() ===\n $node\n .find('a')\n .text()\n .trim()\n ) {\n $node.remove();\n }\n }\n },\n\n '.media__video--thumbnail': 'figure',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwAolComExtractor = {\n domain: 'www.aol.com',\n\n title: {\n selectors: ['h1.p-article__title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: ['.p-article__byline__date'],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwYoutubeComExtractor = {\n domain: 'www.youtube.com',\n\n title: {\n selectors: [\n ['meta[name=\"title\"]', 'value'],\n '.watch-title',\n 'h1.watch-title-container',\n ],\n },\n\n author: {\n selectors: [['link[itemprop=\"name\"]', 'content'], '.yt-user-info'],\n },\n\n date_published: {\n selectors: [['meta[itemProp=\"datePublished\"]', 'value']],\n\n timezone: 'GMT',\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n defaultCleaner: false,\n\n selectors: [\n '#player-container-outer',\n 'ytd-expandable-video-description-body-renderer #description',\n ['#player-api', '#description'],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '#player-api': ($node, $) => {\n const videoId = $('meta[itemProp=\"videoId\"]').attr('value');\n $node.html(`\n <iframe src=\"https://www.youtube.com/embed/${videoId}\" frameborder=\"0\" allowfullscreen></iframe>`);\n },\n '#player-container-outer': ($node, $) => {\n const videoId = $('meta[itemProp=\"videoId\"]').attr('value');\n const description = $('meta[itemProp=\"description\"]').attr('value');\n $node.html(`\n <iframe src=\"https://www.youtube.com/embed/${videoId}\" frameborder=\"0\" allowfullscreen></iframe>\n <div><span>${description}</span></div>`);\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwTheguardianComExtractor = {\n domain: 'www.theguardian.com',\n\n title: {\n selectors: ['h1', '.content__headline'],\n },\n\n author: {\n selectors: ['address[data-link-name=\"byline\"]', 'p.byline'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['div[data-gu-name=\"standfirst\"]', '.content__standfirst'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#maincontent', '.content__article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.hide-on-mobile', '.inline-icon'],\n },\n};\n","export const WwwSbnationComExtractor = {\n domain: 'www.sbnation.com',\n\n title: {\n selectors: ['h1.c-page-title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['p.c-entry-summary.p-dek', 'h2.c-entry-summary.p-dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.c-entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwBloombergComExtractor = {\n domain: 'www.bloomberg.com',\n\n title: {\n selectors: [\n // normal articles\n '.lede-headline',\n\n // /graphics/ template\n 'h1.article-title',\n\n // /news/ template\n 'h1[class^=\"headline\"]',\n 'h1.lede-text-only__hed',\n ],\n },\n\n author: {\n selectors: [\n ['meta[name=\"parsely-author\"]', 'value'],\n '.byline-details__link',\n\n // /graphics/ template\n '.bydek',\n\n // /news/ template\n '.author',\n 'p[class*=\"author\"]',\n ],\n },\n\n date_published: {\n selectors: [\n ['time.published-at', 'datetime'],\n ['time[datetime]', 'datetime'],\n ['meta[name=\"date\"]', 'value'],\n ['meta[name=\"parsely-pub-date\"]', 'value'],\n ['meta[name=\"parsely-pub-date\"]', 'content'],\n ],\n },\n\n dek: {\n selectors: [],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'],\n ['meta[name=\"og:image\"]', 'content'],\n ],\n },\n\n content: {\n selectors: [\n '.article-body__content',\n '.body-content',\n\n // /graphics/ template\n ['section.copy-block'],\n\n // /news/ template\n '.body-copy',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.inline-newsletter', '.page-ad'],\n },\n};\n","export const WwwBustleComExtractor = {\n domain: 'www.bustle.com',\n\n title: {\n selectors: ['h1', 'h1.post-page__title'],\n },\n\n author: {\n selectors: ['a[href*=\"profile\"]', 'div.content-meta__author'],\n },\n\n date_published: {\n selectors: [['time', 'datetime']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article', '.post-page__body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwNprOrgExtractor = {\n domain: 'www.npr.org',\n\n title: {\n selectors: ['h1', '.storytitle'],\n },\n\n author: {\n selectors: ['p.byline__name.byline__name--block'],\n },\n\n date_published: {\n selectors: [\n ['.dateblock time[datetime]', 'datetime'],\n ['meta[name=\"date\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'],\n ['meta[name=\"twitter:image:src\"]', 'value'],\n ],\n },\n\n content: {\n selectors: ['.storytext'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.bucketwrap.image': 'figure',\n '.bucketwrap.image .credit-caption': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['div.enlarge_measure'],\n },\n};\n","export const WwwRecodeNetExtractor = {\n domain: 'www.recode.net',\n\n title: {\n selectors: ['h1.c-page-title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['h2.c-entry-summary.p-dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['figure.e-image--hero', '.c-entry-content'],\n '.c-entry-content',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const QzComExtractor = {\n domain: 'qz.com',\n\n title: {\n selectors: ['article header h1'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['time[datetime]', 'datetime'],\n ],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'],\n ['meta[property=\"og:image\"]', 'content'],\n ['meta[name=\"twitter:image\"]', 'content'],\n ],\n },\n\n content: {\n selectors: ['#article-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwDmagazineComExtractor = {\n domain: 'www.dmagazine.com',\n\n title: {\n selectors: ['h1.story__title'],\n },\n\n author: {\n selectors: ['.story__info .story__info__item:first-child'],\n },\n\n date_published: {\n selectors: [\n // enter selectors\n '.story__info',\n ],\n\n timezone: 'America/Chicago',\n format: 'MMMM D, YYYY h:mm a',\n },\n\n dek: {\n selectors: ['.story__subhead'],\n },\n\n lead_image_url: {\n selectors: [['article figure a:first-child', 'href']],\n },\n\n content: {\n selectors: ['.story__content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwReutersComExtractor = {\n domain: 'www.reuters.com',\n\n title: {\n selectors: ['h1[class*=\"ArticleHeader-headline-\"]', 'h1.article-headline'],\n },\n\n author: {\n selectors: [['meta[name=\"og:article:author\"]', 'value'], '.author'],\n },\n\n date_published: {\n selectors: [['meta[name=\"og:article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.ArticleBodyWrapper', '#article-text'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.article-subtitle': 'h4',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n 'div[class^=\"ArticleBody-byline-container-\"]',\n '#article-byline .author',\n ],\n },\n};\n","export const MashableComExtractor = {\n domain: 'mashable.com',\n\n title: {\n selectors: ['header h1', 'h1.title'],\n },\n\n author: {\n selectors: [['meta[name=\"article:author\"]', 'value'], 'span.author_name a'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#article', 'section.article-content.blueprint'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.image-credit': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwChicagotribuneComExtractor = {\n domain: 'www.chicagotribune.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: ['div.article_byline span:first-of-type'],\n },\n\n date_published: {\n selectors: ['time'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwVoxComExtractor = {\n domain: 'www.vox.com',\n\n title: {\n selectors: ['h1.c-page-title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.p-dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['figure.e-image--hero', '.c-entry-content'],\n '.c-entry-content',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'figure .e-image__image noscript': $node => {\n const imgHtml = $node.html();\n $node\n .parents('.e-image__image')\n .find('.c-dynamic-image')\n .replaceWith(imgHtml);\n },\n\n 'figure .e-image__meta': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const NewsNationalgeographicComExtractor = {\n domain: 'news.nationalgeographic.com',\n\n title: {\n selectors: ['h1', 'h1.main-title'],\n },\n\n author: {\n selectors: ['.byline-component__contributors b span'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n format: 'ddd MMM DD HH:mm:ss zz YYYY',\n timezone: 'EST',\n },\n\n dek: {\n selectors: ['.article__deck'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [['.parsys.content', '.__image-lead__'], '.content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.parsys.content': ($node, $) => {\n const $imgSrc = $node\n .find('.image.parbase.section')\n .find('.picturefill')\n .first()\n .data('platform-src');\n if ($imgSrc) {\n $node.prepend($(`<img class=\"__image-lead__\" src=\"${$imgSrc}\"/>`));\n }\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.pull-quote.pull-quote--large'],\n },\n};\n","export const WwwNationalgeographicComExtractor = {\n domain: 'www.nationalgeographic.com',\n\n title: {\n selectors: ['h1', 'h1.main-title'],\n },\n\n author: {\n selectors: ['.byline-component__contributors b span'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.Article__Headline__Desc', '.article__deck'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'section.Article__Content',\n ['.parsys.content', '.__image-lead__'],\n '.content',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.parsys.content': ($node, $) => {\n const $imageParent = $node.children().first();\n if ($imageParent.hasClass('imageGroup')) {\n const $dataAttrContainer = $imageParent\n .find('.media--medium__container')\n .children()\n .first();\n const imgPath1 = $dataAttrContainer.data('platform-image1-path');\n const imgPath2 = $dataAttrContainer.data('platform-image2-path');\n if (imgPath2 && imgPath1) {\n $node.prepend(\n $(`<div class=\"__image-lead__\">\n <img src=\"${imgPath1}\"/>\n <img src=\"${imgPath2}\"/>\n </div>`)\n );\n }\n } else {\n const $imgSrc = $node\n .find('.image.parbase.section')\n .find('.picturefill')\n .first()\n .data('platform-src');\n if ($imgSrc) {\n $node.prepend($(`<img class=\"__image-lead__\" src=\"${$imgSrc}\"/>`));\n }\n }\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.pull-quote.pull-quote--small'],\n },\n};\n","export const WwwLatimesComExtractor = {\n domain: 'www.latimes.com',\n\n title: {\n selectors: ['h1.headline', '.trb_ar_hl'],\n },\n\n author: {\n selectors: [\n 'a[data-click=\"standardBylineAuthorName\"]',\n ['meta[name=\"author\"]', 'value'],\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['meta[itemprop=\"datePublished\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.page-article-body', '.trb_ar_main'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.trb_ar_la': $node => {\n const $figure = $node.find('figure');\n $node.replaceWith($figure);\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.trb_ar_by', '.trb_ar_cr'],\n },\n};\n","export const PagesixComExtractor = {\n domain: 'pagesix.com',\n\n supportedDomains: ['nypost.com'],\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: ['.byline'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['#featured-image-wrapper', '.entry-content'],\n '.entry-content',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '#featured-image-wrapper': 'figure',\n '.wp-caption-text': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.modal-trigger'],\n },\n};\n","export const ThefederalistpapersOrgExtractor = {\n domain: 'thefederalistpapers.org',\n\n title: {\n selectors: ['h1.entry-title'],\n },\n\n author: {\n selectors: ['.author-meta-title', 'main span.entry-author-name'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n 'header',\n '.article-sharing',\n '.after-article',\n '.type-commenting',\n '.more-posts',\n ['p[style]'],\n ],\n },\n};\n","export const WwwCbssportsComExtractor = {\n domain: 'www.cbssports.com',\n\n title: {\n selectors: ['.Article-headline', '.article-headline'],\n },\n\n author: {\n selectors: ['.ArticleAuthor-nameText', '.author-name'],\n },\n\n date_published: {\n selectors: [['meta[itemprop=\"datePublished\"]', 'value']],\n timezone: 'UTC',\n },\n\n dek: {\n selectors: ['.Article-subline', '.article-subline'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwMsnbcComExtractor = {\n domain: 'www.msnbc.com',\n\n title: {\n selectors: ['h1', 'h1.is-title-pane'],\n },\n\n author: {\n selectors: ['.byline-name', '.author'],\n },\n\n date_published: {\n selectors: [\n ['meta[itemprop=\"datePublished\"]', 'value'],\n ['meta[name=\"DC.date.issued\"]', 'value'],\n ],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article-body__content', '.pane-node-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.pane-node-body': ($node, $) => {\n const [\n selector,\n attr,\n ] = WwwMsnbcComExtractor.lead_image_url.selectors[0];\n const src = $(selector).attr(attr);\n if (src) {\n $node.prepend(`<img src=\"${src}\" />`);\n }\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwThepoliticalinsiderComExtractor = {\n domain: 'www.thepoliticalinsider.com',\n\n title: {\n selectors: [['meta[name=\"sailthru.title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"sailthru.author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"sailthru.date\"]', 'value']],\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'], // enter selectors\n ],\n },\n\n content: {\n selectors: ['div#article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwMentalflossComExtractor = {\n domain: 'www.mentalfloss.com',\n\n title: {\n selectors: [\n ['meta[name=\"og:title\"]', 'value'],\n 'h1.title',\n '.title-group',\n '.inner',\n ],\n },\n\n author: {\n selectors: [\n 'a[data-vars-label*=\"authors\"]',\n '.field-name-field-enhanced-authors',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n '.date-display-single',\n ],\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article main', 'div.field.field-name-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['small'],\n },\n};\n","export const AbcnewsGoComExtractor = {\n domain: 'abcnews.go.com',\n\n title: {\n selectors: ['div[class*=\"Article_main__body\"] h1', '.article-header h1'],\n },\n\n author: {\n selectors: ['.ShareByline span:nth-child(2)', '.authors'],\n clean: ['.author-overlay', '.by-text'],\n },\n\n date_published: {\n selectors: ['.ShareByline', '.timestamp'],\n format: 'MMMM D, YYYY h:mm a',\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article', '.article-copy'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwNydailynewsComExtractor = {\n domain: 'www.nydailynews.com',\n\n title: {\n selectors: ['h1.headline', 'h1#ra-headline'],\n },\n\n author: {\n selectors: [\n '.article_byline span',\n ['meta[name=\"parsely-author\"]', 'value'],\n ],\n },\n\n date_published: {\n selectors: ['time', ['meta[name=\"sailthru.date\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article', 'article#ra-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['dl#ra-tags', '.ra-related', 'a.ra-editor', 'dl#ra-share-bottom'],\n },\n};\n","export const WwwCnbcComExtractor = {\n domain: 'www.cnbc.com',\n\n title: {\n selectors: ['h1.title', 'h1.ArticleHeader-headline'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'div#article_body.content',\n 'div.story',\n 'div.ArticleBody-articleBody',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwPopsugarComExtractor = {\n domain: 'www.popsugar.com',\n\n title: {\n selectors: ['h2.post-title', 'title-text'],\n },\n\n author: {\n selectors: [['meta[name=\"article:author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.share-copy-title', '.post-tags', '.reactions'],\n },\n};\n","export const ObserverComExtractor = {\n domain: 'observer.com',\n\n title: {\n selectors: ['h1.entry-title'],\n },\n\n author: {\n selectors: ['.author', '.vcard'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['h2.dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const PeopleComExtractor = {\n domain: 'people.com',\n\n title: {\n selectors: ['.article-header h1', ['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"sailthru.author\"]', 'value'], 'a.author.url.fn'],\n },\n\n date_published: {\n selectors: [\n '.mntl-attribution__item-date',\n ['meta[name=\"article:published_time\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n dek: {\n selectors: ['.article-header h2'],\n },\n\n content: {\n selectors: ['div[class^=\"loc article-content\"]', 'div.article-body__inner'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwUsmagazineComExtractor = {\n domain: 'www.usmagazine.com',\n\n title: {\n selectors: ['header h1'],\n },\n\n author: {\n selectors: ['a.author', 'a.article-byline.tracked-offpage'],\n },\n\n date_published: {\n timezone: 'America/New_York',\n\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.module-related'],\n },\n};\n","export const WwwRollingstoneComExtractor = {\n domain: 'www.rollingstone.com',\n\n title: {\n selectors: ['h1.l-article-header__row--title', 'h1.content-title'],\n },\n\n author: {\n selectors: ['a.c-byline__link', 'a.content-author.tracked-offpage'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n 'time.content-published-date',\n ],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: ['h2.l-article-header__row--lead', '.content-description'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n '.l-article-content',\n ['.lead-container', '.article-content'],\n '.article-content',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.c-related-links-wrapper', '.module-related'],\n },\n};\n","export const twofortysevensportsComExtractor = {\n domain: '247sports.com',\n\n title: {\n selectors: ['title', 'article header h1'],\n },\n\n author: {\n selectors: ['.article-cnt__author', '.author'],\n },\n\n date_published: {\n selectors: [['time[data-published]', 'data-published']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article-body', 'section.body.article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const UproxxComExtractor = {\n domain: 'uproxx.com',\n\n title: {\n selectors: ['div.entry-header h1'],\n },\n\n author: {\n selectors: [['meta[name=\"qc:author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div.image': 'figure',\n 'div.image .wp-media-credit': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwEonlineComExtractor = {\n domain: 'www.eonline.com',\n\n title: {\n selectors: ['h1.article-detail__title', 'h1.article__title'],\n },\n\n author: {\n selectors: ['.article-detail__meta__author', '.entry-meta__author a'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['meta[itemprop=\"datePublished\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['.article-detail__main-content section'],\n ['.post-content section, .post-content div.post-content__image'],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div.post-content__image': 'figure',\n 'div.post-content__image .image__credits': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwMiamiheraldComExtractor = {\n domain: 'www.miamiherald.com',\n\n title: {\n selectors: ['h1.title'],\n },\n\n date_published: {\n selectors: ['p.published-date'],\n\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.dateline-storybody'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwRefinery29ComExtractor = {\n domain: 'www.refinery29.com',\n\n title: {\n selectors: ['h1.title'],\n },\n\n author: {\n selectors: ['.contributor'],\n },\n\n date_published: {\n selectors: [['meta[name=\"sailthru.date\"]', 'value']],\n\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['.full-width-opener', '.article-content'],\n '.article-content',\n '.body',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div.loading noscript': $node => {\n const imgHtml = $node.html();\n $node.parents('.loading').replaceWith(imgHtml);\n },\n\n '.section-image': 'figure',\n\n '.section-image .content-caption': 'figcaption',\n\n '.section-text': 'p',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.story-share'],\n },\n};\n","export const WwwMacrumorsComExtractor = {\n domain: 'www.macrumors.com',\n\n title: {\n selectors: ['h1', 'h1.title'],\n },\n\n author: {\n selectors: ['article a[rel=\"author\"]', '.author-url'],\n },\n\n date_published: {\n selectors: [['time', 'datetime']],\n\n timezone: 'America/Los_Angeles',\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article', '.article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwAndroidcentralComExtractor = {\n domain: 'www.androidcentral.com',\n\n title: {\n selectors: ['h1', 'h1.main-title'],\n },\n\n author: {\n selectors: [['meta[name=\"parsely-author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.intro', 'blockquote'],\n },\n};\n","export const WwwSiComExtractor = {\n domain: 'www.si.com',\n\n title: {\n selectors: ['h1', 'h1.headline'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"published\"]', 'value']],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: ['.m-detail-header--dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n '.m-detail--body',\n ['p', '.marquee_large_2x', '.component.image'],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n noscript: $node => {\n const $children = $node.children();\n if ($children.length === 1 && $children.get(0).tagName === 'img') {\n return 'figure';\n }\n\n return null;\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n ['.inline-thumb', '.primary-message', '.description', '.instructions'],\n ],\n },\n};\n","export const WwwRawstoryComExtractor = {\n domain: 'www.rawstory.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], '.blog-title'],\n },\n\n author: {\n selectors: [\n 'div.main-post-head .social-author__name',\n '.blog-author a:first-of-type',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n '.blog-author a:last-of-type',\n ],\n\n timezone: 'EST',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.post-body', '.blog-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwCnetComExtractor = {\n domain: 'www.cnet.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: ['span.author', 'a.author'],\n },\n\n date_published: {\n selectors: ['time'],\n\n timezone: 'America/Los_Angeles',\n },\n\n dek: {\n selectors: ['.c-head_dek', '.article-dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['img.__image-lead__', '.article-main-body'],\n '.article-main-body',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'figure.image': $node => {\n const $img = $node.find('img');\n $img.attr('width', '100%');\n $img.attr('height', '100%');\n $img.addClass('__image-lead__');\n $node.remove('.imgContainer').prepend($img);\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwTodayComExtractor = {\n domain: 'www.today.com',\n\n title: {\n selectors: ['h1.article-hero-headline__htag', 'h1.entry-headline'],\n },\n\n author: {\n selectors: ['span.byline-name', ['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: ['time[datetime]', ['meta[name=\"DC.date.issued\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article-body__content', '.entry-container'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.label-comment'],\n },\n};\n","export const WwwAlComExtractor = {\n domain: 'www.al.com',\n\n title: {\n selectors: [['meta[name=\"title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"article_author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article_date_original\"]', 'value']],\n timezone: 'EST',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwThepennyhoarderComExtractor = {\n domain: 'www.thepennyhoarder.com',\n\n title: {\n selectors: [['meta[name=\"dcterms.title\"]', 'value']],\n },\n\n author: {\n selectors: [['link[rel=\"author\"]', 'title']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['.post-img', '.post-text'],\n '.post-text',\n '.single-post-content-inner',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwWesternjournalismComExtractor = {\n domain: 'www.westernjournalism.com',\n\n title: {\n selectors: ['title', 'h1.entry-title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"DC.date.issued\"]', 'value']],\n },\n\n dek: {\n selectors: ['.subtitle'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article-sharing.top + div'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.ad-notice-small'],\n },\n};\n","export const WwwAmericanowComExtractor = {\n domain: 'www.americanow.com',\n\n title: {\n selectors: ['.title', ['meta[name=\"title\"]', 'value']],\n },\n\n author: {\n selectors: ['.byline'],\n },\n\n date_published: {\n selectors: [['meta[name=\"publish_date\"]', 'value']],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [['.article-content', '.image', '.body'], '.body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.article-video-wrapper', '.show-for-small-only'],\n },\n};\n","export const ScienceflyComExtractor = {\n domain: 'sciencefly.com',\n\n title: {\n selectors: ['.entry-title', '.cb-entry-title', '.cb-single-title'],\n },\n\n author: {\n selectors: ['div.cb-author', 'div.cb-author-title'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['div.theiaPostSlider_slides img', 'src']],\n },\n\n content: {\n selectors: ['div.theiaPostSlider_slides'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const HellogigglesComExtractor = {\n domain: 'hellogiggles.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], '.title'],\n },\n\n author: {\n selectors: ['.byline-wrapper span.author_name', '.author-link'],\n },\n\n date_published: {\n selectors: [\n ['meta[property=\"article:published_time\"]', 'content'],\n ['meta[name=\"article:published_time\"]', 'value'],\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.main-content', '.entry-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const ThoughtcatalogComExtractor = {\n domain: 'thoughtcatalog.com',\n\n title: {\n selectors: ['h1.title', ['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [\n 'cite a',\n 'div.col-xs-12.article_header div.writer-container.writer-container-inline.writer-no-avatar h4.writer-name',\n 'h1.writer-name',\n ],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.entry.post'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.tc_mark', 'figcaption'],\n },\n};\n","export const WwwInquisitrComExtractor = {\n domain: 'www.inquisitr.com',\n\n title: {\n selectors: ['h1.entry-title.story--header--title'],\n },\n\n author: {\n selectors: ['div.story--header--author'],\n },\n\n date_published: {\n selectors: [['meta[name=\"datePublished\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article.story', '.entry-content.'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.post-category',\n '.story--header--socials',\n '.story--header--content',\n ],\n },\n};\n","export const WwwNbcnewsComExtractor = {\n domain: 'www.nbcnews.com',\n\n title: {\n selectors: ['div.article-hero-headline h1', 'div.article-hed h1'],\n },\n\n author: {\n selectors: [\n 'div.article-inline-byline span.byline-name',\n 'span.byline_author',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published\"]', 'value'],\n ['.flag_article-wrapper time.timestamp_article[datetime]', 'datetime'],\n '.flag_article-wrapper time',\n ],\n\n timezone: 'America/New_York',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article-body__content', 'div.article-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const FortuneComExtractor = {\n domain: 'fortune.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: ['.MblGHNMJ'],\n\n timezone: 'UTC',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [['picture', 'article.row'], 'article.row'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwLinkedinComExtractor = {\n domain: 'www.linkedin.com',\n\n title: {\n selectors: ['.article-title', 'h1'],\n },\n\n author: {\n selectors: [\n '.main-author-card h3',\n ['meta[name=\"article:author\"]', 'value'],\n '.entity-name a[rel=author]',\n ],\n },\n\n date_published: {\n selectors: [\n '.base-main-card__metadata',\n ['time[itemprop=\"datePublished\"]', 'datetime'],\n ],\n\n timezone: 'America/Los_Angeles',\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n '.article-content__body',\n ['header figure', '.prose'],\n '.prose',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.entity-image'],\n },\n};\n","export const ObamawhitehouseArchivesGovExtractor = {\n domain: 'obamawhitehouse.archives.gov',\n\n supportedDomains: ['whitehouse.gov'],\n\n title: {\n selectors: ['h1', '.pane-node-title'],\n },\n\n author: {\n selectors: ['.blog-author-link', '.node-person-name-link'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.field-name-field-forall-summary'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n defaultCleaner: false,\n\n selectors: ['div#content-start', '.pane-node-field-forall-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.pane-node-title', '.pane-custom.pane-1'],\n },\n};\n","export const WwwOpposingviewsComExtractor = {\n domain: 'www.opposingviews.com',\n\n title: {\n selectors: ['h1.m-detail-header--title', 'h1.title'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value'], 'div.date span span a'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"published\"]', 'value'],\n ['meta[name=\"publish_date\"]', 'value'],\n ],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.m-detail--body', '.article-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.show-for-small-only'],\n },\n};\n","export const WwwProspectmagazineCoUkExtractor = {\n domain: 'www.prospectmagazine.co.uk',\n\n title: {\n selectors: ['.blog-header__title', '.page-title'],\n },\n\n author: {\n selectors: ['.blog-header__author-link', '.aside_author .title'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value'], '.post-info'],\n\n timezone: 'Europe/London',\n },\n\n dek: {\n selectors: ['.blog-header__description', '.page-subtitle'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.blog__container', 'article .post_content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const ForwardComExtractor = {\n domain: 'forward.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [\n '.post-author a',\n '.author-name',\n ['meta[name=\"sailthru.author\"]', 'value'],\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['meta[name=\"date\"]', 'value'],\n ],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n '.content-container article',\n ['.post-item-media-wrap', '.post-item p'],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.post-author', '.donate-box', '.message', '.subtitle'],\n },\n};\n","export const WwwQdailyComExtractor = {\n domain: 'www.qdaily.com',\n\n title: {\n selectors: ['h2', 'h2.title'],\n },\n\n author: {\n selectors: ['.name'],\n },\n\n date_published: {\n selectors: [['.date.smart-date', 'data-origindate']],\n },\n\n dek: {\n selectors: ['.excerpt'],\n },\n\n lead_image_url: {\n selectors: [['.article-detail-hd img', 'src']],\n },\n\n content: {\n selectors: ['.detail'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.lazyload', '.lazylad', '.lazylood'],\n },\n};\n","export const GothamistComExtractor = {\n domain: 'gothamist.com',\n\n supportedDomains: [\n 'chicagoist.com',\n 'laist.com',\n 'sfist.com',\n 'shanghaiist.com',\n 'dcist.com',\n ],\n\n title: {\n selectors: ['h1', '.entry-header h1'],\n },\n\n author: {\n // There are multiple article-metadata and byline-author classes, but the main article's is the 3rd child of the l-container class\n selectors: ['.article-metadata:nth-child(3) .byline-author', '.author'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n 'abbr',\n 'abbr.published',\n ],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: [null],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article-body', '.entry-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div.image-none': 'figure',\n '.image-none i': 'figcaption',\n 'div.image-left': 'figure',\n '.image-left i': 'figcaption',\n 'div.image-right': 'figure',\n '.image-right i': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.image-none br',\n '.image-left br',\n '.image-right br',\n '.galleryEase',\n ],\n },\n};\n","export const WwwFoolComExtractor = {\n domain: 'www.fool.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [\n ['meta[name=\"author\"]', 'value'],\n '.author-inline .author-name',\n ],\n },\n\n date_published: {\n selectors: [['meta[name=\"date\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value'], 'header h2'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.tailwind-article-body', '.article-content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n '.caption img': $node => {\n const src = $node.attr('src');\n $node.parent().replaceWith(`<figure><img src=\"${src}\"/></figure>`);\n },\n '.caption': 'figcaption',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['#pitch'],\n },\n};\n","export const WwwSlateComExtractor = {\n domain: 'www.slate.com',\n\n title: {\n selectors: ['.hed', 'h1'],\n },\n\n author: {\n selectors: ['a[rel=author]'],\n },\n\n date_published: {\n selectors: ['.pub-date'],\n\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: ['.dek'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.about-the-author',\n '.pullquote',\n '.newsletter-signup-component',\n '.top-comment',\n ],\n },\n};\n","export const IciRadioCanadaCaExtractor = {\n domain: 'ici.radio-canada.ca',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [['meta[name=\"dc.creator\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"dc.date.created\"]', 'value']],\n format: 'YYYY-MM-DD|HH[h]mm',\n timezone: 'America/New_York',\n },\n\n dek: {\n selectors: ['div.lead-container', '.bunker-component.lead'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'section.document-content-style',\n ['.main-multimedia-item', '.news-story-content'],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwFortinetComExtractor = {\n domain: 'www.fortinet.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['.b15-blog-meta__author'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'div.responsivegrid.aem-GridColumn.aem-GridColumn--default--12',\n ],\n\n transforms: {\n noscript: $node => {\n const $children = $node.children();\n if ($children.length === 1 && $children.get(0).tagName === 'img') {\n return 'figure';\n }\n return null;\n },\n },\n },\n};\n","export const WwwFastcompanyComExtractor = {\n domain: 'www.fastcompany.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.post__deck'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.post__article'],\n },\n};\n","export const BlisterreviewComExtractor = {\n domain: 'blisterreview.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], 'h1.entry-title'],\n },\n\n author: {\n selectors: ['span.author-name'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['time.entry-date', 'datetime'],\n ['meta[itemprop=\"datePublished\"]', 'content'],\n ],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'],\n ['meta[property=\"og:image\"]', 'content'],\n ['meta[itemprop=\"image\"]', 'content'],\n ['meta[name=\"twitter:image\"]', 'content'],\n ['img.attachment-large', 'src'],\n ],\n },\n\n content: {\n selectors: [\n [\n '.elementor-section-wrap',\n '.elementor-text-editor > p, .elementor-text-editor > ul > li, .attachment-large, .wp-caption-text',\n ],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n figcaption: 'p',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.comments-area'],\n },\n};\n","export const NewsMynaviJpExtractor = {\n domain: 'news.mynavi.jp',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [\n 'a.articleHeader_name',\n 'main div.article-author a.article-author__name',\n ],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article-body', 'main article div'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n img: $node => {\n const src = $node.attr('data-original');\n if (src !== '') {\n $node.attr('src', src);\n }\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const ClinicaltrialsGovExtractor = {\n domain: 'clinicaltrials.gov',\n\n title: {\n selectors: ['h1.tr-solo_record'],\n },\n\n author: {\n selectors: ['div#sponsor.tr-info-text'],\n },\n\n date_published: {\n // selectors: ['span.term[data-term=\"Last Update Posted\"]'],\n selectors: ['div:has(> span.term[data-term=\"Last Update Posted\"])'],\n },\n\n content: {\n selectors: ['div#tab-body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['.usa-alert> img'],\n },\n};\n","export const GithubComExtractor = {\n domain: 'github.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [\n // enter author selectors\n ],\n },\n\n date_published: {\n selectors: [\n ['relative-time[datetime]', 'datetime'],\n ['span[itemprop=\"dateModified\"] relative-time', 'datetime'],\n ],\n },\n\n dek: {\n selectors: [\n ['meta[name=\"description\"]', 'value'],\n 'span[itemprop=\"about\"]',\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [['#readme article']],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwRedditComExtractor = {\n domain: 'www.reddit.com',\n\n title: {\n selectors: [\n 'div[data-test-id=\"post-content\"] h1',\n 'div[data-test-id=\"post-content\"] h2',\n ],\n },\n\n author: {\n selectors: ['div[data-test-id=\"post-content\"] a[href*=\"user/\"]'],\n },\n\n date_published: {\n selectors: [\n 'div[data-test-id=\"post-content\"] span[data-click-id=\"timestamp\"]',\n 'div[data-test-id=\"post-content\"] a[data-click-id=\"timestamp\"]',\n ],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n ['div[data-test-id=\"post-content\"] p'], // text post\n [\n 'div[data-test-id=\"post-content\"] a[target=\"_blank\"]:not([data-click-id=\"timestamp\"])', // external link\n 'div[data-test-id=\"post-content\"] div[data-click-id=\"media\"]', // embedded media\n ], // external link with media preview (YouTube, imgur album, etc...)\n ['div[data-test-id=\"post-content\"] div[data-click-id=\"media\"]'], // Embedded media (Reddit video)\n ['div[data-test-id=\"post-content\"] a'], // external link\n 'div[data-test-id=\"post-content\"]',\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'div[role=\"img\"]': $node => {\n // External link image preview\n const $img = $node.find('img');\n const bgImg = $node.css('background-image');\n if ($img.length === 1 && bgImg) {\n $img.attr('src', bgImg.match(/\\((.*?)\\)/)[1].replace(/('|\")/g, ''));\n return $img;\n }\n return $node;\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.icon',\n 'span[id^=\"PostAwardBadges\"]',\n 'div a[data-test-id=\"comments-page-link-num-comments\"]',\n ],\n },\n};\n","export const OtrsComExtractor = {\n domain: 'otrs.com',\n\n title: {\n selectors: ['#main article h1'],\n },\n\n author: {\n selectors: ['div.dateplusauthor a'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#main article'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [\n 'div.dateplusauthor',\n 'div.gr-12.push-6.footershare',\n '#atftbx',\n 'div.category-modul',\n ],\n },\n};\n","export const WwwOssnewsJpExtractor = {\n domain: 'www.ossnews.jp',\n\n title: {\n selectors: ['#alpha-block h1.hxnewstitle'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['p.fs12'],\n format: 'YYYYå¹´MM月DDæ—¥ HH:mm',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#alpha-block .section:has(h1.hxnewstitle)'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const BuzzapJpExtractor = {\n domain: 'buzzap.jp',\n\n title: {\n selectors: ['h1.entry-title'],\n },\n\n author: null,\n\n date_published: {\n selectors: [['time.entry-date', 'datetime']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.ctiframe'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const WwwAsahiComExtractor = {\n domain: 'www.asahi.com',\n\n title: {\n selectors: ['main h1', '.ArticleTitle h1'],\n },\n\n author: {\n selectors: [['meta[name=\"article:author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"pubdate\"]', 'value']],\n },\n\n dek: null,\n\n excerpt: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['main'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['div.AdMod', 'div.LoginSelectArea', 'time', 'div.notPrint'],\n },\n};\n","export const WwwSanwaCoJpExtractor = {\n domain: 'www.sanwa.co.jp',\n\n title: {\n selectors: ['#newsContent h1'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['dl.date'],\n format: 'YYYY.MM.DD',\n timezone: 'Asia/Tokyo',\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#newsContent'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['#smartphone', 'div.sns_box', 'div.contentFoot'],\n },\n};\n","export const WwwElecomCoJpExtractor = {\n domain: 'www.elecom.co.jp',\n\n title: {\n selectors: ['title'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['p.section-last'],\n format: 'YYYY.MM.DD',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['td.TableMain2'],\n\n defaultCleaner: false,\n\n transforms: {\n table: $node => {\n $node.attr('width', 'auto');\n },\n },\n\n clean: [],\n },\n};\n","export const ScanNetsecurityNeJpExtractor = {\n domain: 'scan.netsecurity.ne.jp',\n\n title: {\n selectors: ['header.arti-header h1.head'],\n },\n\n author: null,\n\n date_published: {\n selectors: [['meta[name=\"article:modified_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['header.arti-header p.arti-summary'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.arti-content.arti-content--thumbnail'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['aside.arti-giga'],\n },\n};\n","export const JvndbJvnJpExtractor = {\n domain: 'jvndb.jvn.jp',\n\n title: {\n selectors: ['title'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['div.modifytxt:nth-child(2)'],\n format: 'YYYY/MM/DD',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['#news-list'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const GeniusComExtractor = {\n domain: 'genius.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['h2 a'],\n },\n\n date_published: {\n selectors: [\n [\n 'meta[itemprop=page_data]',\n 'value',\n res => {\n const json = JSON.parse(res);\n return json.song.release_date;\n },\n ],\n ],\n },\n\n dek: {\n selectors: [\n // enter selectors\n ],\n },\n\n lead_image_url: {\n selectors: [\n [\n 'meta[itemprop=page_data]',\n 'value',\n res => {\n const json = JSON.parse(res);\n return json.song.album.cover_art_url;\n },\n ],\n ],\n },\n\n content: {\n selectors: ['.lyrics'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwJnsaOrgExtractor = {\n domain: 'www.jnsa.org',\n\n title: {\n selectors: ['#wgtitle h2'],\n },\n\n author: null,\n\n date_published: null,\n\n dek: null,\n\n excerpt: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#main_area'],\n\n transforms: {},\n\n clean: ['#pankuzu', '#side'],\n },\n};\n","export const PhpspotOrgExtractor = {\n domain: 'phpspot.org',\n\n title: {\n selectors: ['h3.hl'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['h4.hl'],\n format: 'YYYYå¹´MM月DDæ—¥',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['div.entrybody'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const WwwInfoqComExtractor = {\n domain: 'www.infoq.com',\n\n title: {\n selectors: ['h1.heading'],\n },\n\n author: {\n selectors: ['div.widget.article__authors'],\n },\n\n date_published: {\n selectors: ['.article__readTime.date'],\n format: 'YYYYå¹´MM月DDæ—¥',\n timezone: 'Asia/Tokyo',\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article__data'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const WwwMoongiftJpExtractor = {\n domain: 'www.moongift.jp',\n\n title: {\n selectors: ['h1.title a'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['ul.meta li:not(.social):first-of-type'],\n timezone: 'Asia/Tokyo',\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#main'],\n\n transforms: {},\n\n clean: ['ul.mg_service.cf'],\n },\n};\n","export const WwwItmediaCoJpExtractor = {\n domain: 'www.itmedia.co.jp',\n\n supportedDomains: [\n 'www.atmarkit.co.jp',\n 'techtarget.itmedia.co.jp',\n 'nlab.itmedia.co.jp',\n ],\n\n title: {\n selectors: ['#cmsTitle h1'],\n },\n\n author: {\n selectors: ['#byline'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:modified_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['#cmsAbstract h2'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#cmsBody'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['#snsSharebox'],\n },\n};\n","export const WwwPublickey1JpExtractor = {\n domain: 'www.publickey1.jp',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['.bloggerinchief p:first-of-type', '#subcol p:has(img)'],\n },\n\n date_published: {\n selectors: ['div.pubdate'],\n format: 'YYYYå¹´MM月DDæ—¥',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['#maincol'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['#breadcrumbs', 'div.sbm', 'div.ad_footer'],\n },\n};\n","export const TakagihiromitsuJpExtractor = {\n domain: 'takagi-hiromitsu.jp',\n\n title: {\n selectors: ['h3'],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[http-equiv=\"Last-Modified\"]', 'value']],\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['div.body'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const BookwalkerJpExtractor = {\n domain: 'bookwalker.jp',\n\n title: {\n selectors: ['h1.p-main__title', 'h1.main-heading'],\n },\n\n author: {\n selectors: ['div.p-author__list', 'div.authors'],\n },\n\n date_published: {\n selectors: [\n 'dl.p-information__data dd:nth-of-type(7)',\n '.work-info .work-detail:first-of-type .work-detail-contents:last-of-type',\n ],\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'div.p-main__information',\n ['div.main-info', 'div.main-cover-inner'],\n ],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: [\n 'span.label.label--trial',\n 'dt.info-head.info-head--coin',\n 'dd.info-contents.info-contents--coin',\n 'div.info-notice.fn-toggleClass',\n ],\n },\n};\n","export const WwwYomiuriCoJpExtractor = {\n domain: 'www.yomiuri.co.jp',\n\n title: {\n selectors: ['h1.title-article.c-article-title'],\n },\n\n author: null,\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.p-main-contents'],\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const JapanCnetComExtractor = {\n domain: 'japan.cnet.com',\n\n title: {\n selectors: ['.leaf-headline-ttl'],\n },\n\n author: {\n selectors: ['.writer'],\n },\n\n date_published: {\n selectors: ['.date'],\n format: 'YYYYå¹´MM月DDæ—¥ HH時mm分',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article_body'],\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const DeadlineComExtractor = {\n domain: 'deadline.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['section.author h2'],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.a-article-grid__main.pmc-a-grid article.pmc-a-grid-item'],\n\n transforms: {\n '.embed-twitter': $node => {\n const innerHtml = $node.html();\n $node.replaceWith(innerHtml);\n },\n },\n\n clean: ['figcaption'],\n },\n};\n","export const WwwGizmodoJpExtractor = {\n domain: 'www.gizmodo.jp',\n\n title: {\n selectors: ['h1.p-post-title'],\n },\n\n author: {\n selectors: ['li.p-post-AssistAuthor'],\n },\n\n date_published: {\n selectors: [['li.p-post-AssistTime time', 'datetime']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['article.p-post'],\n\n transforms: {\n 'img.p-post-thumbnailImage': $node => {\n const src = $node.attr('src');\n $node.attr('src', src.replace(/^.*=%27/, '').replace(/%27;$/, ''));\n },\n },\n\n clean: ['h1.p-post-title', 'ul.p-post-Assist'],\n },\n};\n","export const GetnewsJpExtractor = {\n domain: 'getnews.jp',\n\n title: {\n selectors: ['article h1'],\n },\n\n author: {\n selectors: [['meta[name=\"article:author\"]', 'value'], 'span.prof'],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['ul.cattag-top time', 'datetime'],\n ],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.post-bodycopy'],\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const WwwLifehackerJpExtractor = {\n domain: 'www.lifehacker.jp',\n\n title: {\n selectors: ['h1[class^=\"article_pArticle_Title\"]', 'h1.lh-summary-title'],\n },\n\n author: {\n selectors: [\n ['meta[name=\"author\"]', 'value'],\n 'p.lh-entryDetailInner--credit',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['div.lh-entryDetail-header time', 'datetime'],\n ],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'div[class^=\"article_pArticle_Body__\"]',\n 'div.lh-entryDetail-body',\n ],\n\n transforms: {\n 'img.lazyload': $node => {\n const src = $node.attr('src');\n $node.attr('src', src.replace(/^.*=%27/, '').replace(/%27;$/, ''));\n },\n },\n\n clean: ['p.lh-entryDetailInner--credit'],\n },\n};\n","export const SectIijAdJpExtractor = {\n domain: 'sect.iij.ad.jp',\n\n title: {\n selectors: ['div.title-box-inner h1', 'h3'],\n },\n\n author: {\n selectors: ['p.post-author a', 'dl.entrydate dd'],\n },\n\n date_published: {\n selectors: ['time'],\n format: 'YYYYå¹´MM月DDæ—¥',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.entry-inner', '#article'],\n\n transforms: {},\n\n clean: ['dl.entrydate'],\n },\n};\n","export const WwwOreillyCoJpExtractor = {\n domain: 'www.oreilly.co.jp',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], 'h3'],\n },\n\n author: {\n selectors: ['span[itemprop=\"author\"]', 'li[itemprop=\"author\"]'],\n },\n\n date_published: {\n selectors: [\n ['dd[itemprop=\"datePublished\"]', 'content'],\n ['meta[itemprop=\"datePublished\"]', 'value'],\n ],\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image:secure_url\"]', 'value'],\n ['meta[name=\"og:image\"]', 'value'],\n ],\n },\n\n content: {\n selectors: ['section.detail', '#content'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['.social-tools'],\n },\n};\n","export const WwwIpaGoJpExtractor = {\n domain: 'www.ipa.go.jp',\n\n title: {\n selectors: ['h1'],\n },\n\n author: null,\n\n date_published: {\n selectors: ['p.ipar_text_right'],\n format: 'YYYYå¹´M月Dæ—¥',\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['#ipar_main'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['p.ipar_text_right'],\n },\n};\n","export const WeeklyAsciiJpExtractor = {\n domain: 'weekly.ascii.jp',\n\n title: {\n selectors: ['article h1', 'h1[itemprop=\"headline\"]'],\n },\n\n author: {\n selectors: ['p.author'],\n },\n\n date_published: {\n selectors: ['p.date', ['meta[name=\"odate\"]', 'value']],\n\n format: 'YYYYå¹´MM月DDæ—¥ HH:mm',\n\n timezone: 'Asia/Tokyo',\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div#contents_detail', 'div.article'],\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const TechlogIijAdJpExtractor = {\n domain: 'techlog.iij.ad.jp',\n\n title: {\n selectors: ['h1.entry-title'],\n },\n\n author: {\n selectors: ['a[rel=\"author\"]'],\n },\n\n date_published: {\n selectors: [['time.entry-date', 'datetime']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.entry-content'],\n\n defaultCleaner: false,\n\n transforms: {},\n\n clean: ['.wp_social_bookmarking_light'],\n },\n};\n","import URL from 'url';\n\nexport const WiredJpExtractor = {\n domain: 'wired.jp',\n\n title: {\n selectors: ['h1[data-testid=\"ContentHeaderHed\"]', 'h1.post-title'],\n },\n\n author: {\n selectors: [\n ['meta[name=\"article:author\"]', 'value'],\n 'p[itemprop=\"author\"]',\n ],\n },\n\n date_published: {\n selectors: [\n ['meta[name=\"article:published_time\"]', 'value'],\n ['time', 'datetime'],\n ],\n },\n\n dek: {\n selectors: ['div[class^=\"ContentHeaderDek\"]', '.post-intro'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: [\n 'div[data-attribute-verso-pattern=\"article-body\"]',\n 'article.article-detail',\n ],\n\n transforms: {\n 'img[data-original]': $node => {\n const dataOriginal = $node.attr('data-original');\n const src = $node.attr('src');\n const url = URL.resolve(src, dataOriginal);\n $node.attr('src', url);\n },\n },\n\n clean: ['.post-category', 'time', 'h1.post-title', '.social-area-syncer'],\n },\n};\n","export const JapanZdnetComExtractor = {\n domain: 'japan.zdnet.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: [['meta[name=\"cXenseParse:author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article_body'],\n\n transforms: {},\n\n clean: [],\n },\n};\n","export const WwwRbbtodayComExtractor = {\n domain: 'www.rbbtoday.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['.writer.writer-name'],\n },\n\n date_published: {\n selectors: [['header time', 'datetime']],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value'], '.arti-summary'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.arti-content'],\n\n transforms: {},\n\n clean: ['.arti-giga'],\n },\n};\n","export const WwwLemondeFrExtractor = {\n domain: 'www.lemonde.fr',\n\n title: {\n selectors: ['h1.article__title'],\n },\n\n author: {\n selectors: ['.author__name'],\n },\n\n date_published: {\n selectors: [['meta[name=\"og:article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['.article__desc'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.article__content'],\n\n transforms: {},\n\n clean: ['figcaption'],\n },\n};\n","export const WwwPhoronixComExtractor = {\n domain: 'www.phoronix.com',\n\n title: {\n selectors: ['article h1', 'article header'],\n },\n\n author: {\n selectors: ['.author a:first-child'],\n },\n\n date_published: {\n selectors: ['.author'],\n // 1 June 2019 at 08:34 PM EDT\n format: 'D MMMM YYYY at hh:mm',\n timezone: 'America/New_York',\n },\n\n dek: null,\n\n lead_image_url: null,\n\n content: {\n selectors: ['.content'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const PitchforkComExtractor = {\n domain: 'pitchfork.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], 'title'],\n },\n\n author: {\n selectors: [\n ['meta[name=\"article:author\"]', 'value'],\n '.authors-detail__display-name',\n ],\n },\n\n date_published: {\n selectors: ['div[class^=\"InfoSliceWrapper-\"]', ['.pub-date', 'datetime']],\n },\n\n dek: {\n selectors: [\n ['meta[name=\"og:description\"]', 'value'],\n '.review-detail__abstract',\n ],\n },\n\n lead_image_url: {\n selectors: [\n ['meta[name=\"og:image\"]', 'value'],\n ['.single-album-tombstone__art img', 'src'],\n ],\n },\n\n content: {\n selectors: ['div.body__inner-container', '.review-detail__text'],\n },\n\n extend: {\n score: {\n selectors: ['p[class*=\"Rating\"]', '.score'],\n },\n },\n};\n","export const BiorxivOrgExtractor = {\n domain: 'biorxiv.org',\n\n title: {\n selectors: ['h1#page-title'],\n },\n\n author: {\n selectors: [\n 'div.highwire-citation-biorxiv-article-top > div.highwire-cite-authors',\n ],\n },\n\n content: {\n selectors: ['div#abstract-1'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const EpaperZeitDeExtractor = {\n domain: 'epaper.zeit.de',\n\n title: {\n selectors: ['p.title'],\n },\n\n author: {\n selectors: ['.article__author'],\n },\n\n date_published: null,\n\n excerpt: {\n selectors: ['subtitle'],\n },\n\n lead_image_url: null,\n\n content: {\n selectors: ['.article'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n 'p.title': 'h1',\n '.article__author': 'p',\n byline: 'p',\n linkbox: 'p',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['image-credits', 'box[type=citation]'],\n },\n};\n","export const WwwLadbibleComExtractor = {\n domain: 'www.ladbible.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['[class*=Byline]'],\n },\n\n date_published: {\n selectors: ['time'],\n timezone: 'Europe/London',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['[class*=ArticleContainer]'],\n clean: [\n 'time',\n 'source',\n 'a[href^=\"https://www.ladbible.com/\"]',\n 'picture',\n '[class*=StyledCardBlock]',\n ],\n },\n};\n","export const TimesofindiaIndiatimesComExtractor = {\n domain: 'timesofindia.indiatimes.com',\n\n title: {\n selectors: ['h1'],\n },\n\n extend: {\n reporter: {\n selectors: ['div.byline'],\n transforms: {},\n },\n },\n\n date_published: {\n selectors: ['.byline'],\n format: 'MMM D, YYYY, HH:mm z',\n timezone: 'Asia/Kolkata',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.contentwrapper:has(section)'],\n defaultCleaner: false,\n\n clean: [\n 'section',\n 'h1',\n '.byline',\n '.img_cptn',\n '.icon_share_wrap',\n 'ul[itemtype=\"https://schema.org/BreadcrumbList\"]',\n ],\n },\n};\n","export const MaTtiasBeExtractor = {\n domain: 'ma.ttias.be',\n\n title: {\n selectors: [['meta[name=\"twitter:title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n content: {\n selectors: [['.content']],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n h2: $node => {\n // The \"id\" attribute values would result in low scores and the element being\n // removed.\n $node.attr('id', null);\n\n // h1 elements will be demoted to h2, so demote h2 elements to h3.\n return 'h3';\n },\n h1: $node => {\n // The \"id\" attribute values would result in low scores and the element being\n // removed.\n $node.attr('id', null);\n\n // A subsequent h2 will be removed if there is not a paragraph before it, so\n // add a paragraph here. It will be removed anyway because it is empty.\n $node.after('<p></p>');\n },\n ul: $node => {\n // Articles contain lists of links which look like, but are not, navigation\n // elements. Adding this class attribute avoids them being incorrectly removed.\n $node.attr('class', 'entry-content-asset');\n },\n },\n },\n};\n","export const PastebinComExtractor = {\n domain: 'pastebin.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['.username', '.paste_box_line2 .t_us + a'],\n },\n\n date_published: {\n selectors: ['.date', '.paste_box_line2 .t_da + span'],\n timezone: 'America/New_York',\n format: 'MMMM D, YYYY',\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.source', '#selectable .text'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n ol: 'div',\n li: 'p',\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","/* eslint-disable no-nested-ternary */\n/* eslint-disable no-unused-expressions */\nexport const WwwAbendblattDeExtractor = {\n domain: 'www.abendblatt.de',\n\n title: {\n selectors: ['h2.article__header__headline'],\n },\n\n author: {\n selectors: ['span.author-info__name-text'],\n },\n\n date_published: {\n selectors: [\n ['time.teaser-stream-time', 'datetime'],\n ['time.article__header__date', 'datetime'],\n ],\n },\n\n dek: {\n selectors: [['meta[name=\"description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div.article__body'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n p: $node => {\n if (!$node.hasClass('obfuscated')) return null;\n let o = '';\n let n = 0;\n for (let i = $node.text(); n < i.length; n += 1) {\n const r = i.charCodeAt(n);\n r === 177\n ? (o += '%')\n : r === 178\n ? (o += '!')\n : r === 180\n ? (o += ';')\n : r === 181\n ? (o += '=')\n : r === 32\n ? (o += ' ')\n : r === 10\n ? (o += '\\n')\n : r > 33 && (o += String.fromCharCode(r - 1));\n }\n\n $node.html(o);\n $node.removeClass('obfuscated');\n $node.addClass('deobfuscated');\n return null;\n },\n div: $node => {\n if (!$node.hasClass('obfuscated')) return null;\n let o = '';\n let n = 0;\n for (let i = $node.text(); n < i.length; n += 1) {\n const r = i.charCodeAt(n);\n r === 177\n ? (o += '%')\n : r === 178\n ? (o += '!')\n : r === 180\n ? (o += ';')\n : r === 181\n ? (o += '=')\n : r === 32\n ? (o += ' ')\n : r === 10\n ? (o += '\\n')\n : r > 33 && (o += String.fromCharCode(r - 1));\n }\n\n $node.html(o);\n $node.removeClass('obfuscated');\n $node.addClass('deobfuscated');\n return null;\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const WwwGrueneDeExtractor = {\n domain: 'www.gruene.de',\n\n title: {\n selectors: ['header h1'],\n },\n\n author: null,\n\n date_published: null,\n\n dek: null,\n\n lead_image_url: {\n selectors: [['meta[property=\"og:image\"]', 'content']],\n },\n\n content: {\n // selectors: ['section'],\n selectors: [['section header', 'section h2', 'section p', 'section ol']],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: ['figcaption', 'p[class]'],\n },\n};\n","export const WwwEngadgetComExtractor = {\n domain: 'www.engadget.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: ['a.th-meta[data-ylk*=\"subsec:author\"]'],\n },\n\n // Engadget stories have publish dates, but the only representation of them on the page\n // is in a format like \"2h ago\". There are also these tags with blank values:\n // <meta class=\"swiftype\" name=\"published_at\" data-type=\"date\" value=\"\">\n date_published: {\n selectors: [\n // enter selectors\n ],\n },\n\n dek: {\n selectors: ['div[class*=\"o-title_mark\"] div'],\n },\n\n // Engadget stories do have lead images specified by an og:image meta tag, but selecting\n // the value attribute of that tag fails. I believe the \"ℑ\" sequence of characters\n // is triggering this inability to select the attribute value.\n lead_image_url: {\n selectors: [\n // enter selectors\n ],\n },\n\n content: {\n selectors: [\n [\n // Some figures will be inside div.article-text, but some header figures/images\n // will not.\n '#page_body figure:not(div.article-text figure)',\n 'div.article-text',\n ],\n ],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","export const ArstechnicaComExtractor = {\n domain: 'arstechnica.com',\n\n // Articles from this site are often paginated, but I was unable to write a CSS\n // selector to find the next page. On the last page, there will be a link with a CSS\n // selector indicating that the previous page is next. But the parser appears to find\n // the next page without this extractor finding it, as long as the fallback option is\n // left at its default value of true.\n\n title: {\n selectors: ['title'],\n },\n\n author: {\n selectors: ['*[rel=\"author\"] *[itemprop=\"name\"]'],\n },\n\n date_published: {\n selectors: [['.byline time', 'datetime']],\n },\n\n dek: {\n selectors: ['h2[itemprop=\"description\"]'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div[itemprop=\"articleBody\"]'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n h2: $node => {\n // Some pages have an element h2 that is significant, and that the parser will\n // remove if not following a paragraph. Adding this empty paragraph fixes it, and\n // the empty paragraph will be removed anyway.\n $node.before('<p></p>');\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result.\n clean: [\n // Remove enlarge links and separators inside image captions.\n 'figcaption .enlarge-link',\n 'figcaption .sep',\n\n // I could not transform the video into usable elements, so I\n // removed them.\n 'figure.video',\n\n // Image galleries that do not work.\n '.gallery',\n\n 'aside',\n '.sidebar',\n ],\n },\n};\n","export const WwwNdtvComExtractor = {\n domain: 'www.ndtv.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value'], 'h1.entry-title'],\n },\n\n author: {\n selectors: ['span[itemprop=\"author\"] span[itemprop=\"name\"]'],\n },\n\n date_published: {\n selectors: [['span[itemprop=\"dateModified\"]', 'content']],\n },\n\n dek: {\n selectors: ['h2'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['div[itemprop=\"articleBody\"]'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {\n // This site puts a dateline in a 'b' above the first paragraph, and then somehow\n // blends it into the first paragraph with CSS. This transform moves the dateline\n // to the first paragraph.\n '.place_cont': $node => {\n if (!$node.parents('p').length) {\n const nextSibling = $node.next('p');\n if (nextSibling) {\n $node.remove();\n nextSibling.prepend($node);\n }\n }\n },\n },\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n '.highlghts_Wdgt',\n '.ins_instory_dv_caption',\n 'input',\n '._world-wrapper .mt20',\n ],\n },\n};\n","export const SpektrumExtractor = {\n domain: 'www.spektrum.de',\n\n title: {\n selectors: ['.content__title'],\n },\n\n author: {\n selectors: ['.content__author__info__name'],\n },\n\n date_published: {\n selectors: ['.content__meta__date'],\n timezone: 'Europe/Berlin',\n },\n\n dek: {\n selectors: ['.content__intro'],\n },\n\n lead_image_url: {\n selectors: [\n // This is how the meta tag appears in the original source code.\n ['meta[name=\"og:image\"]', 'value'],\n // This is how the meta tag appears in the DOM in Chrome.\n // The selector is included here to make the code work within the browser as well.\n ['meta[property=\"og:image\"]', 'content'],\n // This is the image that is shown on the page.\n // It can be slightly cropped compared to the original in the meta tag.\n '.image__article__top img',\n ],\n },\n\n content: {\n selectors: ['article.content'],\n clean: [\n '.breadcrumbs',\n '.hide-for-print',\n 'aside',\n 'header h2',\n '.image__article__top',\n '.content__author',\n '.copyright',\n '.callout-box',\n ],\n },\n};\n","export const PostlightComExtractor = {\n domain: 'postlight.com',\n\n title: {\n selectors: [['meta[name=\"og:title\"]', 'value']],\n },\n\n author: {\n selectors: [['meta[name=\"parsely-author\"]', 'value']],\n },\n\n date_published: {\n selectors: [['meta[name=\"article:published_time\"]', 'value']],\n },\n\n dek: {\n selectors: ['h2.single-hero__abstract'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['main.post'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [\n 'section.pl-post-link',\n 'aside',\n 'section.insights_featured_case_studies',\n ],\n },\n};\n","export const WwwInvestmentexecutiveComExtractor = {\n domain: 'www.investmentexecutive.com',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['div[itemprop=\"author\"]'],\n },\n\n date_published: {\n selectors: [['meta[itemprop=\"datePublished\"]', 'value']],\n },\n\n dek: {\n selectors: [['meta[name=\"og:description\"]', 'value']],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['section.article-body'],\n\n clean: ['.hidden'],\n },\n};\n","export const WwwCbcCaExtractor = {\n domain: 'www.cbc.ca',\n\n title: {\n selectors: ['h1'],\n },\n\n author: {\n selectors: ['.authorText', '.bylineDetails'],\n },\n\n date_published: {\n selectors: [['.timeStamp[datetime]', 'datetime']],\n },\n\n dek: {\n selectors: ['.deck'],\n },\n\n lead_image_url: {\n selectors: [['meta[name=\"og:image\"]', 'value']],\n },\n\n content: {\n selectors: ['.story'],\n\n // Is there anything in the content you selected that needs transformed\n // before it's consumable content? E.g., unusual lazy loaded images\n transforms: {},\n\n // Is there anything that is in the result that shouldn't be?\n // The clean selectors will remove anything that matches from\n // the result\n clean: [],\n },\n};\n","import mergeSupportedDomains from 'utils/merge-supported-domains';\nimport * as CustomExtractors from './custom/index';\n\nexport default Object.keys(CustomExtractors).reduce((acc, key) => {\n const extractor = CustomExtractors[key];\n return {\n ...acc,\n ...mergeSupportedDomains(extractor),\n };\n}, {});\n","// CLEAN AUTHOR CONSTANTS\nexport const CLEAN_AUTHOR_RE = /^\\s*(posted |written )?by\\s*:?\\s*(.*)/i;\n\n// CLEAN DEK CONSTANTS\nexport const TEXT_LINK_RE = new RegExp('http(s)?://', 'i');\n// An ordered list of meta tag names that denote likely article deks.\n// From most distinct to least distinct.\n//\n// NOTE: There are currently no meta tags that seem to provide the right\n// content consistenty enough. Two options were:\n// - og:description\n// - dc.description\n// However, these tags often have SEO-specific junk in them that's not\n// header-worthy like a dek is. Excerpt material at best.\nexport const DEK_META_TAGS = [];\n\n// An ordered list of Selectors to find likely article deks. From\n// most explicit to least explicit.\n//\n// Should be more restrictive than not, as a failed dek can be pretty\n// detrimental to the aesthetics of an article.\nexport const DEK_SELECTORS = ['.entry-summary'];\n\n// CLEAN DATE PUBLISHED CONSTANTS\nexport const MS_DATE_STRING = /^\\d{13}$/i;\nexport const SEC_DATE_STRING = /^\\d{10}$/i;\nexport const CLEAN_DATE_STRING_RE = /^\\s*published\\s*:?\\s*(.*)/i;\nexport const TIME_MERIDIAN_SPACE_RE = /(.*\\d)(am|pm)(.*)/i;\nexport const TIME_MERIDIAN_DOTS_RE = /\\.m\\./i;\nexport const TIME_NOW_STRING = /^\\s*(just|right)?\\s*now\\s*/i;\nconst timeUnits = [\n 'seconds?',\n 'minutes?',\n 'hours?',\n 'days?',\n 'weeks?',\n 'months?',\n 'years?',\n];\nconst allTimeUnits = timeUnits.join('|');\nexport const TIME_AGO_STRING = new RegExp(\n `(\\\\d+)\\\\s+(${allTimeUnits})\\\\s+ago`,\n 'i'\n);\nconst months = [\n 'jan',\n 'feb',\n 'mar',\n 'apr',\n 'may',\n 'jun',\n 'jul',\n 'aug',\n 'sep',\n 'oct',\n 'nov',\n 'dec',\n];\nconst allMonths = months.join('|');\nconst timestamp1 = '[0-9]{1,2}:[0-9]{2,2}( ?[ap].?m.?)?';\nconst timestamp2 = '[0-9]{1,2}[/-][0-9]{1,2}[/-][0-9]{2,4}';\nconst timestamp3 = '-[0-9]{3,4}$';\nexport const SPLIT_DATE_STRING = new RegExp(\n `(${timestamp1})|(${timestamp2})|(${timestamp3})|([0-9]{1,4})|(${allMonths})`,\n 'ig'\n);\n\n// 2016-11-22T08:57-500\n// Check if datetime string has an offset at the end\nexport const TIME_WITH_OFFSET_RE = /-\\d{3,4}$/;\n\n// CLEAN TITLE CONSTANTS\n// A regular expression that will match separating characters on a\n// title, that usually denote breadcrumbs or something similar.\nexport const TITLE_SPLITTERS_RE = /(: | - | \\| )/g;\n\nexport const DOMAIN_ENDINGS_RE = new RegExp('.com$|.net$|.org$|.co.uk$', 'g');\n","import { normalizeSpaces } from 'utils/text';\nimport { CLEAN_AUTHOR_RE } from './constants';\n\n// Take an author string (like 'By David Smith ') and clean it to\n// just the name(s): 'David Smith'.\nexport default function cleanAuthor(author) {\n return normalizeSpaces(author.replace(CLEAN_AUTHOR_RE, '$2').trim());\n}\n","import validUrl from 'valid-url';\n\nexport default function clean(leadImageUrl) {\n leadImageUrl = leadImageUrl.trim();\n if (validUrl.isWebUri(leadImageUrl)) {\n return leadImageUrl;\n }\n\n return null;\n}\n","import { stripTags } from 'utils/dom';\nimport { excerptContent, normalizeSpaces } from 'utils/text';\n\nimport { TEXT_LINK_RE } from './constants';\n\n// Take a dek HTML fragment, and return the cleaned version of it.\n// Return None if the dek wasn't good enough.\nexport default function cleanDek(dek, { $, excerpt }) {\n // Sanity check that we didn't get too short or long of a dek.\n if (dek.length > 1000 || dek.length < 5) return null;\n\n // Check that dek isn't the same as excerpt\n if (excerpt && excerptContent(excerpt, 10) === excerptContent(dek, 10))\n return null;\n\n const dekText = stripTags(dek, $);\n\n // Plain text links shouldn't exist in the dek. If we have some, it's\n // not a good dek - bail.\n if (TEXT_LINK_RE.test(dekText)) return null;\n\n return normalizeSpaces(dekText.trim());\n}\n","import moment from 'moment-timezone';\nimport parseFormat from 'moment-parseformat';\n// Is there a compelling reason to use moment here?\n// Mostly only being used for the isValid() method,\n// but could just check for 'Invalid Date' string.\n\nimport {\n MS_DATE_STRING,\n SEC_DATE_STRING,\n CLEAN_DATE_STRING_RE,\n SPLIT_DATE_STRING,\n TIME_AGO_STRING,\n TIME_NOW_STRING,\n TIME_MERIDIAN_SPACE_RE,\n TIME_MERIDIAN_DOTS_RE,\n TIME_WITH_OFFSET_RE,\n} from './constants';\n\nexport function cleanDateString(dateString) {\n return (dateString.match(SPLIT_DATE_STRING) || [])\n .join(' ')\n .replace(TIME_MERIDIAN_DOTS_RE, 'm')\n .replace(TIME_MERIDIAN_SPACE_RE, '$1 $2 $3')\n .replace(CLEAN_DATE_STRING_RE, '$1')\n .trim();\n}\n\nexport function createDate(dateString, timezone, format) {\n if (TIME_WITH_OFFSET_RE.test(dateString)) {\n return moment(new Date(dateString));\n }\n\n if (TIME_AGO_STRING.test(dateString)) {\n const fragments = TIME_AGO_STRING.exec(dateString);\n return moment().subtract(fragments[1], fragments[2]);\n }\n\n if (TIME_NOW_STRING.test(dateString)) {\n return moment();\n }\n\n return timezone\n ? moment.tz(dateString, format || parseFormat(dateString), timezone)\n : moment(dateString, format || parseFormat(dateString));\n}\n\n// Take a date published string, and hopefully return a date out of\n// it. Return none if we fail.\nexport default function cleanDatePublished(\n dateString,\n { timezone, format } = {}\n) {\n // If string is in milliseconds or seconds, convert to int and return\n if (MS_DATE_STRING.test(dateString)) {\n return new Date(parseInt(dateString, 10)).toISOString();\n }\n if (SEC_DATE_STRING.test(dateString)) {\n return new Date(parseInt(dateString, 10) * 1000).toISOString();\n }\n\n let date = createDate(dateString, timezone, format);\n\n if (!date.isValid()) {\n dateString = cleanDateString(dateString);\n date = createDate(dateString, timezone, format);\n }\n\n return date.isValid() ? date.toISOString() : null;\n}\n","import {\n cleanAttributes,\n cleanHeaders,\n cleanHOnes,\n cleanImages,\n cleanTags,\n removeEmpty,\n rewriteTopLevel,\n markToKeep,\n stripJunkTags,\n makeLinksAbsolute,\n} from 'utils/dom';\n\n// Clean our article content, returning a new, cleaned node.\nexport default function extractCleanNode(\n article,\n { $, cleanConditionally = true, title = '', url = '', defaultCleaner = true }\n) {\n // Rewrite the tag name to div if it's a top level node like body or\n // html to avoid later complications with multiple body tags.\n rewriteTopLevel(article, $);\n\n // Drop small images and spacer images\n // Only do this is defaultCleaner is set to true;\n // this can sometimes be too aggressive.\n if (defaultCleaner) cleanImages(article, $);\n\n // Make links absolute\n makeLinksAbsolute(article, $, url);\n\n // Mark elements to keep that would normally be removed.\n // E.g., stripJunkTags will remove iframes, so we're going to mark\n // YouTube/Vimeo videos as elements we want to keep.\n markToKeep(article, $, url);\n\n // Drop certain tags like <title>, etc\n // This is -mostly- for cleanliness, not security.\n stripJunkTags(article, $);\n\n // H1 tags are typically the article title, which should be extracted\n // by the title extractor instead. If there's less than 3 of them (<3),\n // strip them. Otherwise, turn 'em into H2s.\n cleanHOnes(article, $);\n\n // Clean headers\n cleanHeaders(article, $, title);\n\n // We used to clean UL's and OL's here, but it was leading to\n // too many in-article lists being removed. Consider a better\n // way to detect menus particularly and remove them.\n // Also optionally running, since it can be overly aggressive.\n if (defaultCleaner) cleanTags(article, $, cleanConditionally);\n\n // Remove empty paragraph nodes\n removeEmpty(article, $);\n\n // Remove unnecessary attributes\n cleanAttributes(article, $);\n\n return article;\n}\n","import { stripTags } from 'utils/dom';\nimport { normalizeSpaces } from 'utils/text';\n\nimport { TITLE_SPLITTERS_RE } from './constants';\nimport { resolveSplitTitle } from './index';\n\nexport default function cleanTitle(title, { url, $ }) {\n // If title has |, :, or - in it, see if\n // we can clean it up.\n if (TITLE_SPLITTERS_RE.test(title)) {\n title = resolveSplitTitle(title, url);\n }\n\n // Final sanity check that we didn't get a crazy title.\n // if (title.length > 150 || title.length < 15) {\n if (title.length > 150) {\n // If we did, return h1 from the document if it exists\n const h1 = $('h1');\n if (h1.length === 1) {\n title = h1.text();\n }\n }\n\n // strip any html tags in the title text\n return normalizeSpaces(stripTags(title, $).trim());\n}\n","import URL from 'url';\nimport wuzzy from 'wuzzy';\n\nimport { TITLE_SPLITTERS_RE, DOMAIN_ENDINGS_RE } from './constants';\n\nfunction extractBreadcrumbTitle(splitTitle, text) {\n // This must be a very breadcrumbed title, like:\n // The Best Gadgets on Earth : Bits : Blogs : NYTimes.com\n // NYTimes - Blogs - Bits - The Best Gadgets on Earth\n if (splitTitle.length >= 6) {\n // Look to see if we can find a breadcrumb splitter that happens\n // more than once. If we can, we'll be able to better pull out\n // the title.\n const termCounts = splitTitle.reduce((acc, titleText) => {\n acc[titleText] = acc[titleText] ? acc[titleText] + 1 : 1;\n return acc;\n }, {});\n\n const [maxTerm, termCount] = Reflect.ownKeys(termCounts).reduce(\n (acc, key) => {\n if (acc[1] < termCounts[key]) {\n return [key, termCounts[key]];\n }\n\n return acc;\n },\n [0, 0]\n );\n\n // We found a splitter that was used more than once, so it\n // is probably the breadcrumber. Split our title on that instead.\n // Note: max_term should be <= 4 characters, so that \" >> \"\n // will match, but nothing longer than that.\n if (termCount >= 2 && maxTerm.length <= 4) {\n splitTitle = text.split(maxTerm);\n }\n\n const splitEnds = [splitTitle[0], splitTitle.slice(-1)];\n const longestEnd = splitEnds.reduce(\n (acc, end) => (acc.length > end.length ? acc : end),\n ''\n );\n\n if (longestEnd.length > 10) {\n return longestEnd;\n }\n\n return text;\n }\n\n return null;\n}\n\nfunction cleanDomainFromTitle(splitTitle, url) {\n // Search the ends of the title, looking for bits that fuzzy match\n // the URL too closely. If one is found, discard it and return the\n // rest.\n //\n // Strip out the big TLDs - it just makes the matching a bit more\n // accurate. Not the end of the world if it doesn't strip right.\n const { host } = URL.parse(url);\n const nakedDomain = host.replace(DOMAIN_ENDINGS_RE, '');\n\n const startSlug = splitTitle[0].toLowerCase().replace(' ', '');\n const startSlugRatio = wuzzy.levenshtein(startSlug, nakedDomain);\n\n if (startSlugRatio > 0.4 && startSlug.length > 5) {\n return splitTitle.slice(2).join('');\n }\n\n const endSlug = splitTitle\n .slice(-1)[0]\n .toLowerCase()\n .replace(' ', '');\n const endSlugRatio = wuzzy.levenshtein(endSlug, nakedDomain);\n\n if (endSlugRatio > 0.4 && endSlug.length >= 5) {\n return splitTitle.slice(0, -2).join('');\n }\n\n return null;\n}\n\n// Given a title with separators in it (colons, dashes, etc),\n// resolve whether any of the segments should be removed.\nexport default function resolveSplitTitle(title, url = '') {\n // Splits while preserving splitters, like:\n // ['The New New York', ' - ', 'The Washington Post']\n const splitTitle = title.split(TITLE_SPLITTERS_RE);\n if (splitTitle.length === 1) {\n return title;\n }\n\n let newTitle = extractBreadcrumbTitle(splitTitle, title);\n if (newTitle) return newTitle;\n\n newTitle = cleanDomainFromTitle(splitTitle, url);\n if (newTitle) return newTitle;\n\n // Fuzzy ratio didn't find anything, so this title is probably legit.\n // Just return it all.\n return title;\n}\n","import cleanAuthor from './author';\nimport cleanImage from './lead-image-url';\nimport cleanDek from './dek';\nimport cleanDatePublished from './date-published';\nimport cleanContent from './content';\nimport cleanTitle from './title';\n\nconst Cleaners = {\n author: cleanAuthor,\n lead_image_url: cleanImage,\n dek: cleanDek,\n date_published: cleanDatePublished,\n content: cleanContent,\n title: cleanTitle,\n};\n\nexport default Cleaners;\n\nexport { cleanAuthor };\nexport { cleanImage };\nexport { cleanDek };\nexport { cleanDatePublished };\nexport { cleanContent };\nexport { cleanTitle };\nexport { default as resolveSplitTitle } from './resolve-split-title';\n","import { stripUnlikelyCandidates, convertToParagraphs } from 'utils/dom';\n\nimport { scoreContent, findTopCandidate } from './scoring';\n\n// Using a variety of scoring techniques, extract the content most\n// likely to be article text.\n//\n// If strip_unlikely_candidates is True, remove any elements that\n// match certain criteria first. (Like, does this element have a\n// classname of \"comment\")\n//\n// If weight_nodes is True, use classNames and IDs to determine the\n// worthiness of nodes.\n//\n// Returns a cheerio object $\nexport default function extractBestNode($, opts) {\n if (opts.stripUnlikelyCandidates) {\n $ = stripUnlikelyCandidates($);\n }\n\n $ = convertToParagraphs($);\n $ = scoreContent($, opts.weightNodes);\n const $topCandidate = findTopCandidate($);\n\n return $topCandidate;\n}\n","import cheerio from 'cheerio';\n\nimport { nodeIsSufficient } from 'utils/dom';\nimport { cleanContent } from 'cleaners';\nimport { normalizeSpaces } from 'utils/text';\n\nimport extractBestNode from './extract-best-node';\n\nconst GenericContentExtractor = {\n defaultOpts: {\n stripUnlikelyCandidates: true,\n weightNodes: true,\n cleanConditionally: true,\n },\n\n // Extract the content for this resource - initially, pass in our\n // most restrictive opts which will return the highest quality\n // content. On each failure, retry with slightly more lax opts.\n //\n // :param return_type: string. If \"node\", should return the content\n // as a cheerio node rather than as an HTML string.\n //\n // Opts:\n // stripUnlikelyCandidates: Remove any elements that match\n // non-article-like criteria first.(Like, does this element\n // have a classname of \"comment\")\n //\n // weightNodes: Modify an elements score based on whether it has\n // certain classNames or IDs. Examples: Subtract if a node has\n // a className of 'comment', Add if a node has an ID of\n // 'entry-content'.\n //\n // cleanConditionally: Clean the node to return of some\n // superfluous content. Things like forms, ads, etc.\n extract({ $, html, title, url }, opts) {\n opts = { ...this.defaultOpts, ...opts };\n\n $ = $ || cheerio.load(html);\n\n // Cascade through our extraction-specific opts in an ordered fashion,\n // turning them off as we try to extract content.\n let node = this.getContentNode($, title, url, opts);\n\n if (nodeIsSufficient(node)) {\n return this.cleanAndReturnNode(node, $);\n }\n\n // We didn't succeed on first pass, one by one disable our\n // extraction opts and try again.\n // eslint-disable-next-line no-restricted-syntax\n for (const key of Reflect.ownKeys(opts).filter(k => opts[k] === true)) {\n opts[key] = false;\n $ = cheerio.load(html);\n\n node = this.getContentNode($, title, url, opts);\n\n if (nodeIsSufficient(node)) {\n break;\n }\n }\n\n return this.cleanAndReturnNode(node, $);\n },\n\n // Get node given current options\n getContentNode($, title, url, opts) {\n return cleanContent(extractBestNode($, opts), {\n $,\n cleanConditionally: opts.cleanConditionally,\n title,\n url,\n });\n },\n\n // Once we got here, either we're at our last-resort node, or\n // we broke early. Make sure we at least have -something- before we\n // move forward.\n cleanAndReturnNode(node, $) {\n if (!node) {\n return null;\n }\n\n return normalizeSpaces($.html(node));\n },\n};\n\nexport default GenericContentExtractor;\n","// TODO: It would be great if we could merge the meta and selector lists into\n// a list of objects, because we could then rank them better. For example,\n// .hentry .entry-title is far better suited than <meta title>.\n\n// An ordered list of meta tag names that denote likely article titles. All\n// attributes should be lowercase for faster case-insensitive matching. From\n// most distinct to least distinct.\nexport const STRONG_TITLE_META_TAGS = [\n 'tweetmeme-title',\n 'dc.title',\n 'rbtitle',\n 'headline',\n 'title',\n];\n\n// og:title is weak because it typically contains context that we don't like,\n// for example the source site's name. Gotta get that brand into facebook!\nexport const WEAK_TITLE_META_TAGS = ['og:title'];\n\n// An ordered list of XPath Selectors to find likely article titles. From\n// most explicit to least explicit.\n//\n// Note - this does not use classes like CSS. This checks to see if the string\n// exists in the className, which is not as accurate as .className (which\n// splits on spaces/endlines), but for our purposes it's close enough. The\n// speed tradeoff is worth the accuracy hit.\nexport const STRONG_TITLE_SELECTORS = [\n '.hentry .entry-title',\n 'h1#articleHeader',\n 'h1.articleHeader',\n 'h1.article',\n '.instapaper_title',\n '#meebo-title',\n];\n\nexport const WEAK_TITLE_SELECTORS = [\n 'article h1',\n '#entry-title',\n '.entry-title',\n '#entryTitle',\n '#entrytitle',\n '.entryTitle',\n '.entrytitle',\n '#articleTitle',\n '.articleTitle',\n 'post post-title',\n 'h1.title',\n 'h2.article',\n 'h1',\n 'html head title',\n 'title',\n];\n","import { cleanTitle } from 'cleaners';\nimport { extractFromMeta, extractFromSelectors } from 'utils/dom';\n\nimport {\n STRONG_TITLE_META_TAGS,\n WEAK_TITLE_META_TAGS,\n STRONG_TITLE_SELECTORS,\n WEAK_TITLE_SELECTORS,\n} from './constants';\n\nconst GenericTitleExtractor = {\n extract({ $, url, metaCache }) {\n // First, check to see if we have a matching meta tag that we can make\n // use of that is strongly associated with the headline.\n let title;\n\n title = extractFromMeta($, STRONG_TITLE_META_TAGS, metaCache);\n if (title) return cleanTitle(title, { url, $ });\n\n // Second, look through our content selectors for the most likely\n // article title that is strongly associated with the headline.\n title = extractFromSelectors($, STRONG_TITLE_SELECTORS);\n if (title) return cleanTitle(title, { url, $ });\n\n // Third, check for weaker meta tags that may match.\n title = extractFromMeta($, WEAK_TITLE_META_TAGS, metaCache);\n if (title) return cleanTitle(title, { url, $ });\n\n // Last, look for weaker selector tags that may match.\n title = extractFromSelectors($, WEAK_TITLE_SELECTORS);\n if (title) return cleanTitle(title, { url, $ });\n\n // If no matches, return an empty string\n return '';\n },\n};\n\nexport default GenericTitleExtractor;\n","// An ordered list of meta tag names that denote likely article authors. All\n// attributes should be lowercase for faster case-insensitive matching. From\n// most distinct to least distinct.\n//\n// Note: \"author\" is too often the -developer- of the page, so it is not\n// added here.\nexport const AUTHOR_META_TAGS = [\n 'byl',\n 'clmst',\n 'dc.author',\n 'dcsext.author',\n 'dc.creator',\n 'rbauthors',\n 'authors',\n];\n\nexport const AUTHOR_MAX_LENGTH = 300;\n\n// An ordered list of XPath Selectors to find likely article authors. From\n// most explicit to least explicit.\n//\n// Note - this does not use classes like CSS. This checks to see if the string\n// exists in the className, which is not as accurate as .className (which\n// splits on spaces/endlines), but for our purposes it's close enough. The\n// speed tradeoff is worth the accuracy hit.\nexport const AUTHOR_SELECTORS = [\n '.entry .entry-author',\n '.author.vcard .fn',\n '.author .vcard .fn',\n '.byline.vcard .fn',\n '.byline .vcard .fn',\n '.byline .by .author',\n '.byline .by',\n '.byline .author',\n '.post-author.vcard',\n '.post-author .vcard',\n 'a[rel=author]',\n '#by_author',\n '.by_author',\n '#entryAuthor',\n '.entryAuthor',\n '.byline a[href*=author]',\n '#author .authorname',\n '.author .authorname',\n '#author',\n '.author',\n '.articleauthor',\n '.ArticleAuthor',\n '.byline',\n];\n\n// An ordered list of Selectors to find likely article authors, with\n// regular expression for content.\nconst bylineRe = /^[\\n\\s]*By/i;\nexport const BYLINE_SELECTORS_RE = [\n ['#byline', bylineRe],\n ['.byline', bylineRe],\n];\n","import { cleanAuthor } from 'cleaners';\nimport { extractFromMeta, extractFromSelectors } from 'utils/dom';\n\nimport {\n AUTHOR_META_TAGS,\n AUTHOR_MAX_LENGTH,\n AUTHOR_SELECTORS,\n BYLINE_SELECTORS_RE,\n} from './constants';\n\nconst GenericAuthorExtractor = {\n extract({ $, metaCache }) {\n let author;\n\n // First, check to see if we have a matching\n // meta tag that we can make use of.\n author = extractFromMeta($, AUTHOR_META_TAGS, metaCache);\n if (author && author.length < AUTHOR_MAX_LENGTH) {\n return cleanAuthor(author);\n }\n\n // Second, look through our selectors looking for potential authors.\n author = extractFromSelectors($, AUTHOR_SELECTORS, 2);\n if (author && author.length < AUTHOR_MAX_LENGTH) {\n return cleanAuthor(author);\n }\n\n // Last, use our looser regular-expression based selectors for\n // potential authors.\n // eslint-disable-next-line no-restricted-syntax\n for (const [selector, regex] of BYLINE_SELECTORS_RE) {\n const node = $(selector);\n if (node.length === 1) {\n const text = node.text();\n if (regex.test(text)) {\n return cleanAuthor(text);\n }\n }\n }\n\n return null;\n },\n};\n\nexport default GenericAuthorExtractor;\n","// An ordered list of meta tag names that denote\n// likely date published dates. All attributes\n// should be lowercase for faster case-insensitive matching.\n// From most distinct to least distinct.\nexport const DATE_PUBLISHED_META_TAGS = [\n 'article:published_time',\n 'displaydate',\n 'dc.date',\n 'dc.date.issued',\n 'rbpubdate',\n 'publish_date',\n 'pub_date',\n 'pagedate',\n 'pubdate',\n 'revision_date',\n 'doc_date',\n 'date_created',\n 'content_create_date',\n 'lastmodified',\n 'created',\n 'date',\n];\n\n// An ordered list of XPath Selectors to find\n// likely date published dates. From most explicit\n// to least explicit.\nexport const DATE_PUBLISHED_SELECTORS = [\n '.hentry .dtstamp.published',\n '.hentry .published',\n '.hentry .dtstamp.updated',\n '.hentry .updated',\n '.single .published',\n '.meta .published',\n '.meta .postDate',\n '.entry-date',\n '.byline .date',\n '.postmetadata .date',\n '.article_datetime',\n '.date-header',\n '.story-date',\n '.dateStamp',\n '#story .datetime',\n '.dateline',\n '.pubdate',\n];\n\n// An ordered list of compiled regular expressions to find likely date\n// published dates from the URL. These should always have the first\n// reference be a date string that is parseable by dateutil.parser.parse\nconst abbrevMonthsStr = '(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)';\nexport const DATE_PUBLISHED_URL_RES = [\n new RegExp('/(20\\\\d{2}/\\\\d{2}/\\\\d{2})/', 'i'),\n new RegExp('(20\\\\d{2}-[01]\\\\d-[0-3]\\\\d)', 'i'),\n new RegExp(`/(20\\\\d{2}/${abbrevMonthsStr}/[0-3]\\\\d)/`, 'i'),\n];\n","import { cleanDatePublished } from 'cleaners';\nimport { extractFromMeta, extractFromSelectors } from 'utils/dom';\nimport { extractFromUrl } from 'utils/text';\n\nimport {\n DATE_PUBLISHED_META_TAGS,\n DATE_PUBLISHED_SELECTORS,\n DATE_PUBLISHED_URL_RES,\n} from './constants';\n\nconst GenericDatePublishedExtractor = {\n extract({ $, url, metaCache }) {\n let datePublished;\n // First, check to see if we have a matching meta tag\n // that we can make use of.\n // Don't try cleaning tags from this string\n datePublished = extractFromMeta(\n $,\n DATE_PUBLISHED_META_TAGS,\n metaCache,\n false\n );\n if (datePublished) return cleanDatePublished(datePublished);\n\n // Second, look through our selectors looking for potential\n // date_published's.\n datePublished = extractFromSelectors($, DATE_PUBLISHED_SELECTORS);\n if (datePublished) return cleanDatePublished(datePublished);\n\n // Lastly, look to see if a dately string exists in the URL\n datePublished = extractFromUrl(url, DATE_PUBLISHED_URL_RES);\n if (datePublished) return cleanDatePublished(datePublished);\n\n return null;\n },\n};\n\nexport default GenericDatePublishedExtractor;\n","// Currently there is only one selector for\n// deks. We should simply return null here\n// until we have a more robust generic option.\n// Below is the original source for this, for reference.\nconst GenericDekExtractor = {\n extract() {\n return null;\n },\n};\n\nexport default GenericDekExtractor;\n","// An ordered list of meta tag names that denote likely article leading images.\n// All attributes should be lowercase for faster case-insensitive matching.\n// From most distinct to least distinct.\nexport const LEAD_IMAGE_URL_META_TAGS = [\n 'og:image',\n 'twitter:image',\n 'image_src',\n];\n\nexport const LEAD_IMAGE_URL_SELECTORS = ['link[rel=image_src]'];\n\nexport const POSITIVE_LEAD_IMAGE_URL_HINTS = [\n 'upload',\n 'wp-content',\n 'large',\n 'photo',\n 'wp-image',\n];\nexport const POSITIVE_LEAD_IMAGE_URL_HINTS_RE = new RegExp(\n POSITIVE_LEAD_IMAGE_URL_HINTS.join('|'),\n 'i'\n);\n\nexport const NEGATIVE_LEAD_IMAGE_URL_HINTS = [\n 'spacer',\n 'sprite',\n 'blank',\n 'throbber',\n 'gradient',\n 'tile',\n 'bg',\n 'background',\n 'icon',\n 'social',\n 'header',\n 'hdr',\n 'advert',\n 'spinner',\n 'loader',\n 'loading',\n 'default',\n 'rating',\n 'share',\n 'facebook',\n 'twitter',\n 'theme',\n 'promo',\n 'ads',\n 'wp-includes',\n];\nexport const NEGATIVE_LEAD_IMAGE_URL_HINTS_RE = new RegExp(\n NEGATIVE_LEAD_IMAGE_URL_HINTS.join('|'),\n 'i'\n);\n\nexport const GIF_RE = /\\.gif(\\?.*)?$/i;\nexport const JPG_RE = /\\.jpe?g(\\?.*)?$/i;\n","import {\n POSITIVE_LEAD_IMAGE_URL_HINTS_RE,\n NEGATIVE_LEAD_IMAGE_URL_HINTS_RE,\n GIF_RE,\n JPG_RE,\n} from './constants';\n\nimport { PHOTO_HINTS_RE } from '../content/scoring/constants';\n\nfunction getSig($node) {\n return `${$node.attr('class') || ''} ${$node.attr('id') || ''}`;\n}\n\n// Scores image urls based on a variety of heuristics.\nexport function scoreImageUrl(url) {\n url = url.trim();\n let score = 0;\n\n if (POSITIVE_LEAD_IMAGE_URL_HINTS_RE.test(url)) {\n score += 20;\n }\n\n if (NEGATIVE_LEAD_IMAGE_URL_HINTS_RE.test(url)) {\n score -= 20;\n }\n\n // TODO: We might want to consider removing this as\n // gifs are much more common/popular than they once were\n if (GIF_RE.test(url)) {\n score -= 10;\n }\n\n if (JPG_RE.test(url)) {\n score += 10;\n }\n\n // PNGs are neutral.\n\n return score;\n}\n\n// Alt attribute usually means non-presentational image.\nexport function scoreAttr($img) {\n if ($img.attr('alt')) {\n return 5;\n }\n\n return 0;\n}\n\n// Look through our parent and grandparent for figure-like\n// container elements, give a bonus if we find them\nexport function scoreByParents($img) {\n let score = 0;\n const $figParent = $img.parents('figure').first();\n\n if ($figParent.length === 1) {\n score += 25;\n }\n\n const $parent = $img.parent();\n let $gParent;\n if ($parent.length === 1) {\n $gParent = $parent.parent();\n }\n\n [$parent, $gParent].forEach($node => {\n if (PHOTO_HINTS_RE.test(getSig($node))) {\n score += 15;\n }\n });\n\n return score;\n}\n\n// Look at our immediate sibling and see if it looks like it's a\n// caption. Bonus if so.\nexport function scoreBySibling($img) {\n let score = 0;\n const $sibling = $img.next();\n const sibling = $sibling.get(0);\n\n if (sibling && sibling.tagName.toLowerCase() === 'figcaption') {\n score += 25;\n }\n\n if (PHOTO_HINTS_RE.test(getSig($sibling))) {\n score += 15;\n }\n\n return score;\n}\n\nexport function scoreByDimensions($img) {\n let score = 0;\n\n const width = parseFloat($img.attr('width'));\n const height = parseFloat($img.attr('height'));\n const src = $img.attr('src');\n\n // Penalty for skinny images\n if (width && width <= 50) {\n score -= 50;\n }\n\n // Penalty for short images\n if (height && height <= 50) {\n score -= 50;\n }\n\n if (width && height && !src.includes('sprite')) {\n const area = width * height;\n if (area < 5000) {\n // Smaller than 50 x 100\n score -= 100;\n } else {\n score += Math.round(area / 1000);\n }\n }\n\n return score;\n}\n\nexport function scoreByPosition($imgs, index) {\n return $imgs.length / 2 - index;\n}\n","import { extractFromMeta } from 'utils/dom';\nimport { cleanImage } from 'cleaners';\n\nimport {\n LEAD_IMAGE_URL_META_TAGS,\n LEAD_IMAGE_URL_SELECTORS,\n} from './constants';\n\nimport {\n scoreImageUrl,\n scoreAttr,\n scoreByParents,\n scoreBySibling,\n scoreByDimensions,\n scoreByPosition,\n} from './score-image';\n\n// Given a resource, try to find the lead image URL from within\n// it. Like content and next page extraction, uses a scoring system\n// to determine what the most likely image may be. Short circuits\n// on really probable things like og:image meta tags.\n//\n// Potential signals to still take advantage of:\n// * domain\n// * weird aspect ratio\nconst GenericLeadImageUrlExtractor = {\n extract({ $, content, metaCache, html }) {\n let cleanUrl;\n if (!$.browser && $('head').length === 0) {\n $('*')\n .first()\n .prepend(html);\n }\n\n // Check to see if we have a matching meta tag that we can make use of.\n // Moving this higher because common practice is now to use large\n // images on things like Open Graph or Twitter cards.\n // images usually have for things like Open Graph.\n const imageUrl = extractFromMeta(\n $,\n LEAD_IMAGE_URL_META_TAGS,\n metaCache,\n false\n );\n\n if (imageUrl) {\n cleanUrl = cleanImage(imageUrl);\n\n if (cleanUrl) return cleanUrl;\n }\n\n // Next, try to find the \"best\" image via the content.\n // We'd rather not have to fetch each image and check dimensions,\n // so try to do some analysis and determine them instead.\n const $content = $(content);\n const imgs = $('img', $content).toArray();\n const imgScores = {};\n\n imgs.forEach((img, index) => {\n const $img = $(img);\n const src = $img.attr('src');\n\n if (!src) return;\n\n let score = scoreImageUrl(src);\n score += scoreAttr($img);\n score += scoreByParents($img);\n score += scoreBySibling($img);\n score += scoreByDimensions($img);\n score += scoreByPosition(imgs, index);\n\n imgScores[src] = score;\n });\n\n const [topUrl, topScore] = Reflect.ownKeys(imgScores).reduce(\n (acc, key) => (imgScores[key] > acc[1] ? [key, imgScores[key]] : acc),\n [null, 0]\n );\n\n if (topScore > 0) {\n cleanUrl = cleanImage(topUrl);\n\n if (cleanUrl) return cleanUrl;\n }\n\n // If nothing else worked, check to see if there are any really\n // probable nodes in the doc, like <link rel=\"image_src\" />.\n // eslint-disable-next-line no-restricted-syntax\n for (const selector of LEAD_IMAGE_URL_SELECTORS) {\n const $node = $(selector).first();\n const src = $node.attr('src');\n if (src) {\n cleanUrl = cleanImage(src);\n if (cleanUrl) return cleanUrl;\n }\n\n const href = $node.attr('href');\n if (href) {\n cleanUrl = cleanImage(href);\n if (cleanUrl) return cleanUrl;\n }\n\n const value = $node.attr('value');\n if (value) {\n cleanUrl = cleanImage(value);\n if (cleanUrl) return cleanUrl;\n }\n }\n\n return null;\n },\n};\n\nexport default GenericLeadImageUrlExtractor;\n","import difflib from 'difflib';\n\nexport default function scoreSimilarity(score, articleUrl, href) {\n // Do this last and only if we have a real candidate, because it's\n // potentially expensive computationally. Compare the link to this\n // URL using difflib to get the % similarity of these URLs. On a\n // sliding scale, subtract points from this link based on\n // similarity.\n if (score > 0) {\n const similarity = new difflib.SequenceMatcher(\n null,\n articleUrl,\n href\n ).ratio();\n // Subtract .1 from diff_percent when calculating modifier,\n // which means that if it's less than 10% different, we give a\n // bonus instead. Ex:\n // 3% different = +17.5 points\n // 10% different = 0 points\n // 20% different = -25 points\n const diffPercent = 1.0 - similarity;\n const diffModifier = -(250 * (diffPercent - 0.2));\n return score + diffModifier;\n }\n\n return 0;\n}\n","import { IS_DIGIT_RE } from 'utils/text/constants';\n\nexport default function scoreLinkText(linkText, pageNum) {\n // If the link text can be parsed as a number, give it a minor\n // bonus, with a slight bias towards lower numbered pages. This is\n // so that pages that might not have 'next' in their text can still\n // get scored, and sorted properly by score.\n let score = 0;\n\n if (IS_DIGIT_RE.test(linkText.trim())) {\n const linkTextAsNum = parseInt(linkText, 10);\n // If it's the first page, we already got it on the first call.\n // Give it a negative score. Otherwise, up to page 10, give a\n // small bonus.\n if (linkTextAsNum < 2) {\n score = -30;\n } else {\n score = Math.max(0, 10 - linkTextAsNum);\n }\n\n // If it appears that the current page number is greater than\n // this links page number, it's a very bad sign. Give it a big\n // penalty.\n if (pageNum && pageNum >= linkTextAsNum) {\n score -= 50;\n }\n }\n\n return score;\n}\n","export default function scorePageInLink(pageNum, isWp) {\n // page in the link = bonus. Intentionally ignore wordpress because\n // their ?p=123 link style gets caught by this even though it means\n // separate documents entirely.\n if (pageNum && !isWp) {\n return 50;\n }\n\n return 0;\n}\n","export const DIGIT_RE = /\\d/;\n\n// A list of words that, if found in link text or URLs, likely mean that\n// this link is not a next page link.\nexport const EXTRANEOUS_LINK_HINTS = [\n 'print',\n 'archive',\n 'comment',\n 'discuss',\n 'e-mail',\n 'email',\n 'share',\n 'reply',\n 'all',\n 'login',\n 'sign',\n 'single',\n 'adx',\n 'entry-unrelated',\n];\nexport const EXTRANEOUS_LINK_HINTS_RE = new RegExp(\n EXTRANEOUS_LINK_HINTS.join('|'),\n 'i'\n);\n\n// Match any link text/classname/id that looks like it could mean the next\n// page. Things like: next, continue, >, >>, » but not >|, »| as those can\n// mean last page.\nexport const NEXT_LINK_TEXT_RE = new RegExp(\n '(next|weiter|continue|>([^|]|$)|»([^|]|$))',\n 'i'\n);\n\n// Match any link text/classname/id that looks like it is an end link: things\n// like \"first\", \"last\", \"end\", etc.\nexport const CAP_LINK_TEXT_RE = new RegExp('(first|last|end)', 'i');\n\n// Match any link text/classname/id that looks like it means the previous\n// page.\nexport const PREV_LINK_TEXT_RE = new RegExp('(prev|earl|old|new|<|«)', 'i');\n\n// Match any phrase that looks like it could be page, or paging, or pagination\nexport const PAGE_RE = new RegExp('pag(e|ing|inat)', 'i');\n","import { EXTRANEOUS_LINK_HINTS_RE } from '../constants';\n\nexport default function scoreExtraneousLinks(href) {\n // If the URL itself contains extraneous values, give a penalty.\n if (EXTRANEOUS_LINK_HINTS_RE.test(href)) {\n return -25;\n }\n\n return 0;\n}\n","import { range } from 'utils';\nimport {\n NEGATIVE_SCORE_RE,\n POSITIVE_SCORE_RE,\n PAGE_RE,\n} from 'utils/dom/constants';\nimport { EXTRANEOUS_LINK_HINTS_RE } from '../constants';\n\nfunction makeSig($link) {\n return `${$link.attr('class') || ''} ${$link.attr('id') || ''}`;\n}\n\nexport default function scoreByParents($link) {\n // If a parent node contains paging-like classname or id, give a\n // bonus. Additionally, if a parent_node contains bad content\n // (like 'sponsor'), give a penalty.\n let $parent = $link.parent();\n let positiveMatch = false;\n let negativeMatch = false;\n let score = 0;\n\n Array.from(range(0, 4)).forEach(() => {\n if ($parent.length === 0) {\n return;\n }\n\n const parentData = makeSig($parent, ' ');\n\n // If we have 'page' or 'paging' in our data, that's a good\n // sign. Add a bonus.\n if (!positiveMatch && PAGE_RE.test(parentData)) {\n positiveMatch = true;\n score += 25;\n }\n\n // If we have 'comment' or something in our data, and\n // we don't have something like 'content' as well, that's\n // a bad sign. Give a penalty.\n if (\n !negativeMatch &&\n NEGATIVE_SCORE_RE.test(parentData) &&\n EXTRANEOUS_LINK_HINTS_RE.test(parentData)\n ) {\n if (!POSITIVE_SCORE_RE.test(parentData)) {\n negativeMatch = true;\n score -= 25;\n }\n }\n\n $parent = $parent.parent();\n });\n\n return score;\n}\n","import { PREV_LINK_TEXT_RE } from '../constants';\n\nexport default function scorePrevLink(linkData) {\n // If the link has something like \"previous\", its definitely\n // an old link, skip it.\n if (PREV_LINK_TEXT_RE.test(linkData)) {\n return -200;\n }\n\n return 0;\n}\n","import URL from 'url';\n\nimport { DIGIT_RE, EXTRANEOUS_LINK_HINTS_RE } from '../constants';\n\nexport default function shouldScore(\n href,\n articleUrl,\n baseUrl,\n parsedUrl,\n linkText,\n previousUrls\n) {\n // skip if we've already fetched this url\n if (previousUrls.find(url => href === url) !== undefined) {\n return false;\n }\n\n // If we've already parsed this URL, or the URL matches the base\n // URL, or is empty, skip it.\n if (!href || href === articleUrl || href === baseUrl) {\n return false;\n }\n\n const { hostname } = parsedUrl;\n const { hostname: linkHost } = URL.parse(href);\n\n // Domain mismatch.\n if (linkHost !== hostname) {\n return false;\n }\n\n // If href doesn't contain a digit after removing the base URL,\n // it's certainly not the next page.\n const fragment = href.replace(baseUrl, '');\n if (!DIGIT_RE.test(fragment)) {\n return false;\n }\n\n // This link has extraneous content (like \"comment\") in its link\n // text, so we skip it.\n if (EXTRANEOUS_LINK_HINTS_RE.test(linkText)) {\n return false;\n }\n\n // Next page link text is never long, skip if it is too long.\n if (linkText.length > 25) {\n return false;\n }\n\n return true;\n}\n","export default function scoreBaseUrl(href, baseRegex) {\n // If the baseUrl isn't part of this URL, penalize this\n // link. It could still be the link, but the odds are lower.\n // Example:\n // http://www.actionscript.org/resources/articles/745/1/JavaScript-and-VBScript-Injection-in-ActionScript-3/Page1.html\n if (!baseRegex.test(href)) {\n return -25;\n }\n\n return 0;\n}\n","import { NEXT_LINK_TEXT_RE } from '../constants';\n\nexport default function scoreNextLinkText(linkData) {\n // Things like \"next\", \">>\", etc.\n if (NEXT_LINK_TEXT_RE.test(linkData)) {\n return 50;\n }\n\n return 0;\n}\n","import { NEXT_LINK_TEXT_RE, CAP_LINK_TEXT_RE } from '../constants';\n\nexport default function scoreCapLinks(linkData) {\n // Cap links are links like \"last\", etc.\n if (CAP_LINK_TEXT_RE.test(linkData)) {\n // If we found a link like \"last\", but we've already seen that\n // this link is also \"next\", it's fine. If it's not been\n // previously marked as \"next\", then it's probably bad.\n // Penalize.\n if (NEXT_LINK_TEXT_RE.test(linkData)) {\n return -65;\n }\n }\n\n return 0;\n}\n","import URL from 'url';\n\nimport { getAttrs, isWordpress } from 'utils/dom';\nimport { removeAnchor, pageNumFromUrl } from 'utils/text';\n\nimport {\n scoreSimilarity,\n scoreLinkText,\n scorePageInLink,\n scoreExtraneousLinks,\n scoreByParents,\n scorePrevLink,\n shouldScore,\n scoreBaseUrl,\n scoreCapLinks,\n scoreNextLinkText,\n} from './utils';\n\nexport function makeBaseRegex(baseUrl) {\n return new RegExp(`^${baseUrl}`, 'i');\n}\n\nfunction makeSig($link, linkText) {\n return `${linkText || $link.text()} ${$link.attr('class') || ''} ${$link.attr(\n 'id'\n ) || ''}`;\n}\n\nexport default function scoreLinks({\n links,\n articleUrl,\n baseUrl,\n parsedUrl,\n $,\n previousUrls = [],\n}) {\n parsedUrl = parsedUrl || URL.parse(articleUrl);\n const baseRegex = makeBaseRegex(baseUrl);\n const isWp = isWordpress($);\n\n // Loop through all links, looking for hints that they may be next-page\n // links. Things like having \"page\" in their textContent, className or\n // id, or being a child of a node with a page-y className or id.\n //\n // After we do that, assign each page a score, and pick the one that\n // looks most like the next page link, as long as its score is strong\n // enough to have decent confidence.\n const scoredPages = links.reduce((possiblePages, link) => {\n // Remove any anchor data since we don't do a good job\n // standardizing URLs (it's hard), we're going to do\n // some checking with and without a trailing slash\n const attrs = getAttrs(link);\n\n // if href is undefined, return\n if (!attrs.href) return possiblePages;\n\n const href = removeAnchor(attrs.href);\n const $link = $(link);\n const linkText = $link.text();\n\n if (\n !shouldScore(href, articleUrl, baseUrl, parsedUrl, linkText, previousUrls)\n ) {\n return possiblePages;\n }\n\n // ## PASSED THE FIRST-PASS TESTS. Start scoring. ##\n if (!possiblePages[href]) {\n possiblePages[href] = {\n score: 0,\n linkText,\n href,\n };\n } else {\n possiblePages[href].linkText = `${\n possiblePages[href].linkText\n }|${linkText}`;\n }\n\n const possiblePage = possiblePages[href];\n const linkData = makeSig($link, linkText);\n const pageNum = pageNumFromUrl(href);\n\n let score = scoreBaseUrl(href, baseRegex);\n score += scoreNextLinkText(linkData);\n score += scoreCapLinks(linkData);\n score += scorePrevLink(linkData);\n score += scoreByParents($link);\n score += scoreExtraneousLinks(href);\n score += scorePageInLink(pageNum, isWp);\n score += scoreLinkText(linkText, pageNum);\n score += scoreSimilarity(score, articleUrl, href);\n\n possiblePage.score = score;\n\n return possiblePages;\n }, {});\n\n return Reflect.ownKeys(scoredPages).length === 0 ? null : scoredPages;\n}\n","import URL from 'url';\n\nimport { articleBaseUrl, removeAnchor } from 'utils/text';\nimport scoreLinks from './scoring/score-links';\n\n// Looks for and returns next page url\n// for multi-page articles\nconst GenericNextPageUrlExtractor = {\n extract({ $, url, parsedUrl, previousUrls = [] }) {\n parsedUrl = parsedUrl || URL.parse(url);\n\n const articleUrl = removeAnchor(url);\n const baseUrl = articleBaseUrl(url, parsedUrl);\n\n const links = $('a[href]').toArray();\n\n const scoredLinks = scoreLinks({\n links,\n articleUrl,\n baseUrl,\n parsedUrl,\n $,\n previousUrls,\n });\n\n // If no links were scored, return null\n if (!scoredLinks) return null;\n\n // now that we've scored all possible pages,\n // find the biggest one.\n const topPage = Reflect.ownKeys(scoredLinks).reduce(\n (acc, link) => {\n const scoredLink = scoredLinks[link];\n return scoredLink.score > acc.score ? scoredLink : acc;\n },\n { score: -100 }\n );\n\n // If the score is less than 50, we're not confident enough to use it,\n // so we fail.\n if (topPage.score >= 50) {\n return topPage.href;\n }\n\n return null;\n },\n};\n\nexport default GenericNextPageUrlExtractor;\n","export const CANONICAL_META_SELECTORS = ['og:url'];\n","import URL from 'url';\nimport { extractFromMeta } from 'utils/dom';\n\nimport { CANONICAL_META_SELECTORS } from './constants';\n\nfunction parseDomain(url) {\n const parsedUrl = URL.parse(url);\n const { hostname } = parsedUrl;\n return hostname;\n}\n\nfunction result(url) {\n return {\n url,\n domain: parseDomain(url),\n };\n}\n\nconst GenericUrlExtractor = {\n extract({ $, url, metaCache }) {\n const $canonical = $('link[rel=canonical]');\n if ($canonical.length !== 0) {\n const href = $canonical.attr('href');\n if (href) {\n return result(href);\n }\n }\n\n const metaUrl = extractFromMeta($, CANONICAL_META_SELECTORS, metaCache);\n if (metaUrl) {\n return result(metaUrl);\n }\n\n return result(url);\n },\n};\n\nexport default GenericUrlExtractor;\n","export const EXCERPT_META_SELECTORS = ['og:description', 'twitter:description'];\n","import ellipsize from 'ellipsize';\n\nimport { extractFromMeta, stripTags } from 'utils/dom';\n\nimport { EXCERPT_META_SELECTORS } from './constants';\n\nexport function clean(content, $, maxLength = 200) {\n content = content.replace(/[\\s\\n]+/g, ' ').trim();\n return ellipsize(content, maxLength, { ellipse: '…' });\n}\n\nconst GenericExcerptExtractor = {\n extract({ $, content, metaCache }) {\n const excerpt = extractFromMeta($, EXCERPT_META_SELECTORS, metaCache);\n if (excerpt) {\n return clean(stripTags(excerpt, $));\n }\n // Fall back to excerpting from the extracted content\n const maxLength = 200;\n const shortContent = content.slice(0, maxLength * 5);\n return clean($(shortContent).text(), $, maxLength);\n },\n};\n\nexport default GenericExcerptExtractor;\n","import cheerio from 'cheerio';\n\nimport { normalizeSpaces } from 'utils/text';\n\nconst getWordCount = content => {\n const $ = cheerio.load(content);\n const $content = $('div').first();\n const text = normalizeSpaces($content.text());\n return text.split(/\\s/).length;\n};\n\nconst getWordCountAlt = content => {\n content = content.replace(/<[^>]*>/g, ' ');\n content = content.replace(/\\s+/g, ' ');\n content = content.trim();\n return content.split(' ').length;\n};\n\nconst GenericWordCountExtractor = {\n extract({ content }) {\n let count = getWordCount(content);\n if (count === 1) count = getWordCountAlt(content);\n return count;\n },\n};\n\nexport default GenericWordCountExtractor;\n","import cheerio from 'cheerio';\nimport stringDirection from 'string-direction';\n\nimport GenericContentExtractor from './content/extractor';\nimport GenericTitleExtractor from './title/extractor';\nimport GenericAuthorExtractor from './author/extractor';\nimport GenericDatePublishedExtractor from './date-published/extractor';\nimport GenericDekExtractor from './dek/extractor';\nimport GenericLeadImageUrlExtractor from './lead-image-url/extractor';\nimport GenericNextPageUrlExtractor from './next-page-url/extractor';\nimport GenericUrlExtractor from './url/extractor';\nimport GenericExcerptExtractor from './excerpt/extractor';\nimport GenericWordCountExtractor from './word-count/extractor';\n\nconst GenericExtractor = {\n // This extractor is the default for all domains\n domain: '*',\n title: GenericTitleExtractor.extract,\n date_published: GenericDatePublishedExtractor.extract,\n author: GenericAuthorExtractor.extract,\n content: GenericContentExtractor.extract.bind(GenericContentExtractor),\n lead_image_url: GenericLeadImageUrlExtractor.extract,\n dek: GenericDekExtractor.extract,\n next_page_url: GenericNextPageUrlExtractor.extract,\n url_and_domain: GenericUrlExtractor.extract,\n excerpt: GenericExcerptExtractor.extract,\n word_count: GenericWordCountExtractor.extract,\n direction: ({ title }) => stringDirection.getDirection(title),\n\n extract(options) {\n const { html, $ } = options;\n\n if (html && !$) {\n const loaded = cheerio.load(html);\n options.$ = loaded;\n }\n\n const title = this.title(options);\n const date_published = this.date_published(options);\n const author = this.author(options);\n const content = this.content({ ...options, title });\n const lead_image_url = this.lead_image_url({ ...options, content });\n const dek = this.dek({ ...options, content });\n const next_page_url = this.next_page_url(options);\n const excerpt = this.excerpt({ ...options, content });\n const word_count = this.word_count({ ...options, content });\n const direction = this.direction({ title });\n const { url, domain } = this.url_and_domain(options);\n\n return {\n title,\n author,\n date_published: date_published || null,\n dek,\n lead_image_url,\n content,\n next_page_url,\n url,\n domain,\n excerpt,\n word_count,\n direction,\n };\n },\n};\n\nexport default GenericExtractor;\n","import { MediumExtractor, BloggerExtractor } from './custom';\n\nconst Detectors = {\n 'meta[name=\"al:ios:app_name\"][value=\"Medium\"]': MediumExtractor,\n 'meta[name=\"generator\"][value=\"blogger\"]': BloggerExtractor,\n};\n\nexport default function detectByHtml($) {\n const selector = Reflect.ownKeys(Detectors).find(s => $(s).length > 0);\n\n return Detectors[selector];\n}\n","import URL from 'url';\n\nimport Extractors from './all';\nimport GenericExtractor from './generic';\nimport detectByHtml from './detect-by-html';\nimport { apiExtractors } from './add-extractor';\n\nexport default function getExtractor(url, parsedUrl, $) {\n parsedUrl = parsedUrl || URL.parse(url);\n const { hostname } = parsedUrl;\n const baseDomain = hostname\n .split('.')\n .slice(-2)\n .join('.');\n\n return (\n apiExtractors[hostname] ||\n apiExtractors[baseDomain] ||\n Extractors[hostname] ||\n Extractors[baseDomain] ||\n detectByHtml($) ||\n GenericExtractor\n );\n}\n","import Cleaners from 'cleaners';\nimport { convertNodeTo, makeLinksAbsolute } from 'utils/dom';\nimport GenericExtractor from './generic';\n\n// Remove elements by an array of selectors\nexport function cleanBySelectors($content, $, { clean }) {\n if (!clean) return $content;\n\n $(clean.join(','), $content).remove();\n\n return $content;\n}\n\n// Transform matching elements\nexport function transformElements($content, $, { transforms }) {\n if (!transforms) return $content;\n\n Reflect.ownKeys(transforms).forEach(key => {\n const $matches = $(key, $content);\n const value = transforms[key];\n\n // If value is a string, convert directly\n if (typeof value === 'string') {\n $matches.each((index, node) => {\n convertNodeTo($(node), $, transforms[key]);\n });\n } else if (typeof value === 'function') {\n // If value is function, apply function to node\n $matches.each((index, node) => {\n const result = value($(node), $);\n // If function returns a string, convert node to that value\n if (typeof result === 'string') {\n convertNodeTo($(node), $, result);\n }\n });\n }\n });\n\n return $content;\n}\n\nfunction findMatchingSelector($, selectors, extractHtml, allowMultiple) {\n return selectors.find(selector => {\n if (Array.isArray(selector)) {\n if (extractHtml) {\n return selector.reduce((acc, s) => acc && $(s).length > 0, true);\n }\n\n const [s, attr] = selector;\n return (\n (allowMultiple || (!allowMultiple && $(s).length === 1)) &&\n $(s).attr(attr) &&\n $(s)\n .attr(attr)\n .trim() !== ''\n );\n }\n\n return (\n (allowMultiple || (!allowMultiple && $(selector).length === 1)) &&\n $(selector)\n .text()\n .trim() !== ''\n );\n });\n}\n\nexport function select(opts) {\n const { $, type, extractionOpts, extractHtml = false } = opts;\n // Skip if there's not extraction for this type\n if (!extractionOpts) return null;\n\n // If a string is hardcoded for a type (e.g., Wikipedia\n // contributors), return the string\n if (typeof extractionOpts === 'string') return extractionOpts;\n\n const { selectors, defaultCleaner = true, allowMultiple } = extractionOpts;\n\n const overrideAllowMultiple = type === 'lead_image_url' || allowMultiple;\n\n const matchingSelector = findMatchingSelector(\n $,\n selectors,\n extractHtml,\n overrideAllowMultiple\n );\n\n if (!matchingSelector) return null;\n\n function transformAndClean($node) {\n makeLinksAbsolute($node, $, opts.url || '');\n cleanBySelectors($node, $, extractionOpts);\n transformElements($node, $, extractionOpts);\n return $node;\n }\n\n function selectHtml() {\n // If the selector type requests html as its return type\n // transform and clean the element with provided selectors\n let $content;\n\n // If matching selector is an array, we're considering this a\n // multi-match selection, which allows the parser to choose several\n // selectors to include in the result. Note that all selectors in the\n // array must match in order for this selector to trigger\n if (Array.isArray(matchingSelector)) {\n $content = $(matchingSelector.join(','));\n const $wrapper = $('<div></div>');\n $content.each((_, element) => {\n $wrapper.append(element);\n });\n\n $content = $wrapper;\n } else {\n $content = $(matchingSelector);\n }\n\n // Wrap in div so transformation can take place on root element\n $content.wrap($('<div></div>'));\n $content = $content.parent();\n $content = transformAndClean($content);\n if (Cleaners[type]) {\n Cleaners[type]($content, { ...opts, defaultCleaner });\n }\n\n if (allowMultiple) {\n return $content\n .children()\n .toArray()\n .map(el => $.html($(el)));\n }\n\n return $.html($content);\n }\n\n if (extractHtml) {\n return selectHtml(matchingSelector);\n }\n\n let $match;\n let result;\n // if selector is an array (e.g., ['img', 'src']),\n // extract the attr\n if (Array.isArray(matchingSelector)) {\n const [selector, attr, transform] = matchingSelector;\n $match = $(selector);\n $match = transformAndClean($match);\n result = $match.map((_, el) => {\n const item = $(el)\n .attr(attr)\n .trim();\n return transform ? transform(item) : item;\n });\n } else {\n $match = $(matchingSelector);\n $match = transformAndClean($match);\n result = $match.map((_, el) =>\n $(el)\n .text()\n .trim()\n );\n }\n\n result =\n Array.isArray(result.toArray()) && allowMultiple\n ? result.toArray()\n : result[0];\n // Allow custom extractor to skip default cleaner\n // for this type; defaults to true\n if (defaultCleaner && Cleaners[type]) {\n return Cleaners[type](result, { ...opts, ...extractionOpts });\n }\n\n return result;\n}\n\nexport function selectExtendedTypes(extend, opts) {\n const results = {};\n Reflect.ownKeys(extend).forEach(t => {\n if (!results[t]) {\n results[t] = select({ ...opts, type: t, extractionOpts: extend[t] });\n }\n });\n return results;\n}\n\nfunction extractResult(opts) {\n const { type, extractor, fallback = true } = opts;\n\n const result = select({ ...opts, extractionOpts: extractor[type] });\n\n // If custom parser succeeds, return the result\n if (result) {\n return result;\n }\n\n // If nothing matches the selector, and fallback is enabled,\n // run the Generic extraction\n if (fallback) return GenericExtractor[type](opts);\n\n return null;\n}\n\nconst RootExtractor = {\n extract(extractor = GenericExtractor, opts) {\n const { contentOnly, extractedTitle } = opts;\n // This is the generic extractor. Run its extract method\n if (extractor.domain === '*') return extractor.extract(opts);\n\n opts = {\n ...opts,\n extractor,\n };\n\n if (contentOnly) {\n const content = extractResult({\n ...opts,\n type: 'content',\n extractHtml: true,\n title: extractedTitle,\n });\n return {\n content,\n };\n }\n const title = extractResult({ ...opts, type: 'title' });\n const date_published = extractResult({ ...opts, type: 'date_published' });\n const author = extractResult({ ...opts, type: 'author' });\n const next_page_url = extractResult({ ...opts, type: 'next_page_url' });\n const content = extractResult({\n ...opts,\n type: 'content',\n extractHtml: true,\n title,\n });\n const lead_image_url = extractResult({\n ...opts,\n type: 'lead_image_url',\n content,\n });\n const excerpt = extractResult({ ...opts, type: 'excerpt', content });\n const dek = extractResult({ ...opts, type: 'dek', content, excerpt });\n const word_count = extractResult({ ...opts, type: 'word_count', content });\n const direction = extractResult({ ...opts, type: 'direction', title });\n const { url, domain } = extractResult({\n ...opts,\n type: 'url_and_domain',\n }) || { url: null, domain: null };\n\n let extendedResults = {};\n if (extractor.extend) {\n extendedResults = selectExtendedTypes(extractor.extend, opts);\n }\n\n return {\n title,\n content,\n author,\n date_published,\n lead_image_url,\n dek,\n next_page_url,\n url,\n domain,\n excerpt,\n word_count,\n direction,\n ...extendedResults,\n };\n },\n};\n\nexport default RootExtractor;\n","import { removeAnchor } from 'utils/text';\nimport RootExtractor from 'extractors/root-extractor';\nimport GenericExtractor from 'extractors/generic';\nimport Resource from 'resource';\n\nexport default async function collectAllPages({\n next_page_url,\n html,\n $,\n metaCache,\n result,\n Extractor,\n title,\n url,\n}) {\n // At this point, we've fetched just the first page\n let pages = 1;\n const previousUrls = [removeAnchor(url)];\n // If we've gone over 26 pages, something has\n // likely gone wrong.\n while (next_page_url && pages < 26) {\n pages += 1;\n // eslint-disable-next-line no-await-in-loop\n $ = await Resource.create(next_page_url);\n html = $.html();\n\n const extractorOpts = {\n url: next_page_url,\n html,\n $,\n metaCache,\n extractedTitle: title,\n previousUrls,\n };\n\n const nextPageResult = RootExtractor.extract(Extractor, extractorOpts);\n\n previousUrls.push(next_page_url);\n result = {\n ...result,\n content: `${result.content}<hr><h4>Page ${pages}</h4>${\n nextPageResult.content\n }`,\n };\n\n // eslint-disable-next-line prefer-destructuring\n next_page_url = nextPageResult.next_page_url;\n }\n\n const word_count = GenericExtractor.word_count({\n content: `<div>${result.content}</div>`,\n });\n return {\n ...result,\n total_pages: pages,\n rendered_pages: pages,\n word_count,\n };\n}\n","import URL from 'url';\nimport cheerio from 'cheerio';\nimport TurndownService from 'turndown';\n\nimport Resource from 'resource';\nimport { validateUrl } from 'utils';\nimport addCustomExtractor from 'extractors/add-extractor';\nimport getExtractor from 'extractors/get-extractor';\nimport RootExtractor, { selectExtendedTypes } from 'extractors/root-extractor';\nimport collectAllPages from 'extractors/collect-all-pages';\n\nconst Parser = {\n async parse(url, { html, ...opts } = {}) {\n const {\n fetchAllPages = true,\n fallback = true,\n contentType = 'html',\n headers = {},\n extend,\n customExtractor,\n } = opts;\n\n // if no url was passed and this is the browser version,\n // set url to window.location.href and load the html\n // from the current page\n if (!url && cheerio.browser) {\n url = window.location.href; // eslint-disable-line no-undef\n html = html || cheerio.html();\n }\n\n const parsedUrl = URL.parse(url);\n\n if (!validateUrl(parsedUrl)) {\n return {\n error: true,\n message:\n 'The url parameter passed does not look like a valid URL. Please check your URL and try again.',\n };\n }\n\n const $ = await Resource.create(url, html, parsedUrl, headers);\n\n // If we found an error creating the resource, return that error\n if ($.failed) {\n return $;\n }\n\n // Add custom extractor via cli.\n if (customExtractor) {\n addCustomExtractor(customExtractor);\n }\n\n const Extractor = getExtractor(url, parsedUrl, $);\n // console.log(`Using extractor for ${Extractor.domain}`);\n\n // if html still has not been set (i.e., url passed to Parser.parse),\n // set html from the response of Resource.create\n if (!html) {\n html = $.html();\n }\n\n // Cached value of every meta name in our document.\n // Used when extracting title/author/date_published/dek\n const metaCache = $('meta')\n .map((_, node) => $(node).attr('name'))\n .toArray();\n\n let extendedTypes = {};\n if (extend) {\n extendedTypes = selectExtendedTypes(extend, { $, url, html });\n }\n\n let result = RootExtractor.extract(Extractor, {\n url,\n html,\n $,\n metaCache,\n parsedUrl,\n fallback,\n contentType,\n });\n\n const { title, next_page_url } = result;\n\n // Fetch more pages if next_page_url found\n if (fetchAllPages && next_page_url) {\n result = await collectAllPages({\n Extractor,\n next_page_url,\n html,\n $,\n metaCache,\n result,\n title,\n url,\n });\n } else {\n result = {\n ...result,\n total_pages: 1,\n rendered_pages: 1,\n };\n }\n\n if (contentType === 'markdown') {\n const turndownService = new TurndownService();\n result.content = turndownService.turndown(result.content);\n } else if (contentType === 'text') {\n result.content = $.text($(result.content));\n }\n\n return { ...result, ...extendedTypes };\n },\n\n browser: !!cheerio.browser,\n\n // A convenience method for getting a resource\n // to work with, e.g., for custom extractor generator\n fetchResource(url) {\n return Resource.create(url);\n },\n\n addExtractor(extractor) {\n return addCustomExtractor(extractor);\n },\n};\n\nexport default Parser;\n"],"names":["NORMALIZE_RE","normalizeSpaces","text","replace","trim","extractFromUrl","url","regexList","matchRe","find","re","test","exec","PAGE_IN_HREF_RE","RegExp","HAS_ALPHA_RE","IS_ALPHA_RE","IS_DIGIT_RE","ENCODING_RE","DEFAULT_ENCODING","pageNumFromUrl","matches","match","pageNum","removeAnchor","split","isGoodSegment","segment","index","firstSegmentHasLetters","goodSegment","length","toLowerCase","articleBaseUrl","parsed","parsedUrl","URL","parse","protocol","host","path","cleanedSegments","reverse","reduce","acc","rawSegment","includes","possibleSegment","fileExt","push","join","SENTENCE_END_RE","hasSentenceEnd","excerptContent","content","words","slice","getEncoding","str","encoding","iconv","encodingExists","REQUEST_HEADERS","cheerio","browser","FETCH_TIMEOUT","BAD_CONTENT_TYPES","BAD_CONTENT_TYPES_RE","MAX_CONTENT_LENGTH","get","options","resolve","reject","request","err","response","body","validateResponse","parseNon200","statusMessage","statusCode","Error","error","headers","contentType","contentLength","fetchResource","encodeURI","href","timeout","jar","gzip","followAllRedirects","window","followRedirect","message","convertMetaProp","$","from","to","each","_","node","$node","value","attr","removeAttr","normalizeMetaTags","SPACER_RE","KEEP_CLASS","KEEP_SELECTORS","STRIP_OUTPUT_TAGS","WHITELIST_ATTRS","WHITELIST_ATTRS_RE","CLEAN_CONDITIONALLY_TAGS","HEADER_TAGS","HEADER_TAG_LIST","UNLIKELY_CANDIDATES_BLACKLIST","UNLIKELY_CANDIDATES_WHITELIST","DIV_TO_P_BLOCK_TAGS","POSITIVE_SCORE_HINTS","POSITIVE_SCORE_RE","NEGATIVE_SCORE_HINTS","NEGATIVE_SCORE_RE","IS_WP_SELECTOR","PAGE_RE","BLOCK_LEVEL_TAGS","BLOCK_LEVEL_TAGS_RE","candidatesBlacklist","CANDIDATES_BLACKLIST","candidatesWhitelist","CANDIDATES_WHITELIST","stripUnlikelyCandidates","not","classes","id","classAndId","remove","brsToPs","collapsing","element","$element","nextElement","next","tagName","paragraphize","br","sibling","nextSibling","p","appendTo","replaceWith","convertDivs","div","$div","convertible","children","convertNodeTo","convertSpans","span","$span","parents","convertToParagraphs","tag","attrs","getAttrs","attribString","map","key","html","contents","cleanForHeight","$img","height","width","removeSpacers","cleanImages","$article","img","markToKeep","article","tags","hostname","addClass","stripJunkTags","cleanHOnes","$hOnes","removeAllButWhitelist","setAttrs","removeClass","cleanAttributes","parent","removeEmpty","$p","NON_TOP_CANDIDATE_TAGS","NON_TOP_CANDIDATE_TAGS_RE","HNEWS_CONTENT_SELECTORS","PHOTO_HINTS","PHOTO_HINTS_RE","READABILITY_ASSET","PARAGRAPH_SCORE_TAGS","CHILD_CONTENT_TAGS","BAD_TAGS","getWeight","score","getScore","scoreCommas","idkRe","scoreLength","textLength","chunks","lengthBonus","Math","min","max","scoreParagraph","setScore","addScore","amount","getOrInitScore","e","addToParent","weightNodes","scoreNode","addScoreTo","scorePs","$parent","rawScore","scoreContent","forEach","parentSelector","childSelector","mergeSiblings","$candidate","topScore","siblingScoreThreshold","wrappingDiv","$sibling","siblingScore","append","contentBonus","density","linkDensity","newScore","siblingContent","siblingContentLength","first","findTopCandidate","removeUnlessContent","weight","hasClass","pCount","inputCount","imgCount","nodeIsList","previousNode","prev","scriptCount","cleanTags","cleanHeaders","title","header","$header","prevAll","rewriteTopLevel","absolutize","rootUrl","baseUrl","absoluteUrl","setAttr","absolutizeSet","$content","urlSet","srcset","candidates","absoluteCandidates","candidate","parts","absoluteUrlSet","makeLinksAbsolute","totalTextLength","linkText","linkLength","extractFromMeta","metaNames","cachedNames","foundNames","filter","name","indexOf","type","nodes","values","toArray","metaValue","stripTags","isGoodNode","maxChildren","withinComment","extractFromSelectors","selectors","textOnly","selector","cleanText","commentParent","nodeClass","undefined","nodeIsSufficient","isWordpress","attribs","attributes","val","setAttribute","removeAttribute","IS_LINK","IMAGE_RE","IS_IMAGE","IS_SRCSET","TAGS_TO_REMOVE","convertLazyLoadedImages","extractSrcFromJSON","JSON","src","existingSrc","isComment","cleanComments","root","clean","Resource","create","preparedResponse","validResponse","result","alreadyDecoded","failed","generateDoc","encodeDoc","load","decodedContent","decode","contentTypeSelector","metaContentType","properEncoding","range","start","end","validateUrl","merge","extractor","domains","domain","mergeSupportedDomains","supportedDomains","apiExtractors","addExtractor","BloggerExtractor","transforms","noscript","author","date_published","NYMagExtractor","h1","$children","dek","WikipediaExtractor","defaultCleaner","prepend","TwitterExtractor","tweets","$tweetContainer","s","NYTimesExtractor","lead_image_url","next_page_url","excerpt","TheAtlanticExtractor","NewYorkerExtractor","timezone","WiredExtractor","MSNExtractor","YahooExtractor","BuzzfeedExtractor","h2","has","WikiaExtractor","LittleThingsExtractor","PoliticoExtractor","DeadspinExtractor","youtubeId","BroadwayWorldExtractor","ApartmentTherapyExtractor","data","sources","MediumExtractor","$text","iframe","ytRe","thumb","decodeURIComponent","$caption","empty","figure","WwwTmzComExtractor","WwwWashingtonpostComExtractor","WwwHuffingtonpostComExtractor","NewrepublicComExtractor","MoneyCnnComExtractor","WwwThevergeComExtractor","WwwCnnComExtractor","WwwAolComExtractor","WwwYoutubeComExtractor","videoId","description","WwwTheguardianComExtractor","WwwSbnationComExtractor","WwwBloombergComExtractor","WwwBustleComExtractor","WwwNprOrgExtractor","WwwRecodeNetExtractor","QzComExtractor","WwwDmagazineComExtractor","format","WwwReutersComExtractor","MashableComExtractor","WwwChicagotribuneComExtractor","WwwVoxComExtractor","imgHtml","NewsNationalgeographicComExtractor","$imgSrc","WwwNationalgeographicComExtractor","$imageParent","$dataAttrContainer","imgPath1","imgPath2","WwwLatimesComExtractor","$figure","PagesixComExtractor","ThefederalistpapersOrgExtractor","WwwCbssportsComExtractor","WwwMsnbcComExtractor","WwwThepoliticalinsiderComExtractor","WwwMentalflossComExtractor","AbcnewsGoComExtractor","WwwNydailynewsComExtractor","WwwCnbcComExtractor","WwwPopsugarComExtractor","ObserverComExtractor","PeopleComExtractor","WwwUsmagazineComExtractor","WwwRollingstoneComExtractor","twofortysevensportsComExtractor","UproxxComExtractor","WwwEonlineComExtractor","WwwMiamiheraldComExtractor","WwwRefinery29ComExtractor","WwwMacrumorsComExtractor","WwwAndroidcentralComExtractor","WwwSiComExtractor","WwwRawstoryComExtractor","WwwCnetComExtractor","WwwTodayComExtractor","WwwAlComExtractor","WwwThepennyhoarderComExtractor","WwwWesternjournalismComExtractor","WwwAmericanowComExtractor","ScienceflyComExtractor","HellogigglesComExtractor","ThoughtcatalogComExtractor","WwwInquisitrComExtractor","WwwNbcnewsComExtractor","FortuneComExtractor","WwwLinkedinComExtractor","ObamawhitehouseArchivesGovExtractor","WwwOpposingviewsComExtractor","WwwProspectmagazineCoUkExtractor","ForwardComExtractor","WwwQdailyComExtractor","GothamistComExtractor","WwwFoolComExtractor","WwwSlateComExtractor","IciRadioCanadaCaExtractor","WwwFortinetComExtractor","WwwFastcompanyComExtractor","BlisterreviewComExtractor","figcaption","NewsMynaviJpExtractor","ClinicaltrialsGovExtractor","GithubComExtractor","WwwRedditComExtractor","bgImg","css","OtrsComExtractor","WwwOssnewsJpExtractor","BuzzapJpExtractor","WwwAsahiComExtractor","WwwSanwaCoJpExtractor","WwwElecomCoJpExtractor","table","ScanNetsecurityNeJpExtractor","JvndbJvnJpExtractor","GeniusComExtractor","res","json","song","release_date","album","cover_art_url","WwwJnsaOrgExtractor","PhpspotOrgExtractor","WwwInfoqComExtractor","WwwMoongiftJpExtractor","WwwItmediaCoJpExtractor","WwwPublickey1JpExtractor","TakagihiromitsuJpExtractor","BookwalkerJpExtractor","WwwYomiuriCoJpExtractor","JapanCnetComExtractor","DeadlineComExtractor","innerHtml","WwwGizmodoJpExtractor","GetnewsJpExtractor","WwwLifehackerJpExtractor","SectIijAdJpExtractor","WwwOreillyCoJpExtractor","WwwIpaGoJpExtractor","WeeklyAsciiJpExtractor","TechlogIijAdJpExtractor","WiredJpExtractor","dataOriginal","JapanZdnetComExtractor","WwwRbbtodayComExtractor","WwwLemondeFrExtractor","WwwPhoronixComExtractor","PitchforkComExtractor","extend","BiorxivOrgExtractor","EpaperZeitDeExtractor","byline","linkbox","WwwLadbibleComExtractor","TimesofindiaIndiatimesComExtractor","reporter","MaTtiasBeExtractor","after","ul","PastebinComExtractor","ol","li","WwwAbendblattDeExtractor","o","n","i","r","charCodeAt","String","fromCharCode","WwwGrueneDeExtractor","WwwEngadgetComExtractor","ArstechnicaComExtractor","before","WwwNdtvComExtractor","SpektrumExtractor","PostlightComExtractor","WwwInvestmentexecutiveComExtractor","WwwCbcCaExtractor","CustomExtractors","CLEAN_AUTHOR_RE","TEXT_LINK_RE","MS_DATE_STRING","SEC_DATE_STRING","CLEAN_DATE_STRING_RE","TIME_MERIDIAN_SPACE_RE","TIME_MERIDIAN_DOTS_RE","TIME_NOW_STRING","timeUnits","allTimeUnits","TIME_AGO_STRING","months","allMonths","timestamp1","timestamp2","timestamp3","SPLIT_DATE_STRING","TIME_WITH_OFFSET_RE","TITLE_SPLITTERS_RE","DOMAIN_ENDINGS_RE","cleanAuthor","leadImageUrl","validUrl","isWebUri","cleanDek","dekText","cleanDateString","dateString","createDate","moment","Date","fragments","subtract","tz","parseFormat","cleanDatePublished","toISOString","date","isValid","extractCleanNode","cleanConditionally","cleanTitle","resolveSplitTitle","extractBreadcrumbTitle","splitTitle","termCounts","titleText","maxTerm","termCount","splitEnds","longestEnd","cleanDomainFromTitle","nakedDomain","startSlug","startSlugRatio","wuzzy","levenshtein","endSlug","endSlugRatio","newTitle","Cleaners","cleanImage","cleanContent","extractBestNode","opts","$topCandidate","GenericContentExtractor","defaultOpts","extract","getContentNode","cleanAndReturnNode","k","STRONG_TITLE_META_TAGS","WEAK_TITLE_META_TAGS","STRONG_TITLE_SELECTORS","WEAK_TITLE_SELECTORS","GenericTitleExtractor","metaCache","AUTHOR_META_TAGS","AUTHOR_MAX_LENGTH","AUTHOR_SELECTORS","bylineRe","BYLINE_SELECTORS_RE","GenericAuthorExtractor","regex","DATE_PUBLISHED_META_TAGS","DATE_PUBLISHED_SELECTORS","abbrevMonthsStr","DATE_PUBLISHED_URL_RES","GenericDatePublishedExtractor","datePublished","GenericDekExtractor","LEAD_IMAGE_URL_META_TAGS","LEAD_IMAGE_URL_SELECTORS","POSITIVE_LEAD_IMAGE_URL_HINTS","POSITIVE_LEAD_IMAGE_URL_HINTS_RE","NEGATIVE_LEAD_IMAGE_URL_HINTS","NEGATIVE_LEAD_IMAGE_URL_HINTS_RE","GIF_RE","JPG_RE","getSig","scoreImageUrl","scoreAttr","scoreByParents","$figParent","$gParent","scoreBySibling","scoreByDimensions","area","round","scoreByPosition","$imgs","GenericLeadImageUrlExtractor","cleanUrl","imageUrl","imgs","imgScores","topUrl","scoreSimilarity","articleUrl","similarity","difflib","SequenceMatcher","ratio","diffPercent","diffModifier","scoreLinkText","linkTextAsNum","scorePageInLink","isWp","DIGIT_RE","EXTRANEOUS_LINK_HINTS","EXTRANEOUS_LINK_HINTS_RE","NEXT_LINK_TEXT_RE","CAP_LINK_TEXT_RE","PREV_LINK_TEXT_RE","scoreExtraneousLinks","makeSig","$link","positiveMatch","negativeMatch","parentData","scorePrevLink","linkData","shouldScore","previousUrls","linkHost","fragment","scoreBaseUrl","baseRegex","scoreNextLinkText","scoreCapLinks","makeBaseRegex","scoreLinks","links","scoredPages","possiblePages","link","possiblePage","GenericNextPageUrlExtractor","scoredLinks","topPage","scoredLink","CANONICAL_META_SELECTORS","parseDomain","GenericUrlExtractor","$canonical","metaUrl","EXCERPT_META_SELECTORS","maxLength","ellipsize","ellipse","GenericExcerptExtractor","shortContent","getWordCount","getWordCountAlt","GenericWordCountExtractor","count","GenericExtractor","bind","url_and_domain","word_count","direction","stringDirection","getDirection","loaded","Detectors","detectByHtml","getExtractor","baseDomain","Extractors","cleanBySelectors","transformElements","$matches","findMatchingSelector","extractHtml","allowMultiple","select","extractionOpts","overrideAllowMultiple","matchingSelector","transformAndClean","selectHtml","$wrapper","wrap","el","$match","transform","item","selectExtendedTypes","results","t","extractResult","fallback","RootExtractor","contentOnly","extractedTitle","extendedResults","collectAllPages","Extractor","pages","extractorOpts","nextPageResult","total_pages","rendered_pages","Parser","fetchAllPages","customExtractor","location","addCustomExtractor","extendedTypes","turndownService","TurndownService","turndown"],"mappings":"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"} \ No newline at end of file