diff --git a/package-lock.json b/package-lock.json index afeb2e7a90..7e4873697e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,62 +13,25 @@ } }, "@babel/compat-data": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", - "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "semver": "^5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.14.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", - "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001135", - "electron-to-chromium": "^1.3.571", - "escalade": "^3.1.0", - "node-releases": "^1.1.61" - } - }, - "caniuse-lite": { - "version": "1.0.30001148", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz", - "integrity": "sha512-E66qcd0KMKZHNJQt9hiLZGE3J4zuTqE1OnU53miEVtylFbwOEmeA5OsRu90noZful+XGSQOni1aT2tiqu/9yYw==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.578", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz", - "integrity": "sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q==", - "dev": true - }, - "node-releases": { - "version": "1.1.61", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", - "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==", - "dev": true - } - } + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.1.tgz", + "integrity": "sha512-725AQupWJZ8ba0jbKceeFblZTY90McUBWMwHhkFQ9q1zKPJ95GUktljFcgcsIVwRnTnRKlcYzfiNImg5G9m6ZQ==", + "dev": true }, "@babel/core": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", - "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", "dev": true, "requires": { "@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/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.5", - "@babel/types": "^7.11.5", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -97,12 +60,12 @@ } }, "@babel/generator": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", - "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", + "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", "dev": true, "requires": { - "@babel/types": "^7.11.5", + "@babel/types": "^7.12.1", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -137,26 +100,25 @@ } }, "@babel/helper-builder-react-jsx-experimental": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz", - "integrity": "sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw==", + "version": "7.12.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz", + "integrity": "sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/types": "^7.11.5" + "@babel/helper-module-imports": "^7.12.1", + "@babel/types": "^7.12.1" } }, "@babel/helper-compilation-targets": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", - "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.1.tgz", + "integrity": "sha512-jtBEif7jsPwP27GPHs06v4WBV0KrE8a/P7n0N0sSvHn2hwUCYnolP/CLmz51IzAW4NlN+HuoBtb9QcwnRo9F/g==", "dev": true, "requires": { - "@babel/compat-data": "^7.10.4", + "@babel/compat-data": "^7.12.1", + "@babel/helper-validator-option": "^7.12.1", "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", "semver": "^5.5.0" }, "dependencies": { @@ -179,42 +141,41 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.578", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz", - "integrity": "sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q==", + "version": "1.3.582", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.582.tgz", + "integrity": "sha512-0nCJ7cSqnkMC+kUuPs0YgklFHraWGl/xHqtZWWtOeVtyi+YqkoAOMGuZQad43DscXCQI/yizcTa3u6B5r+BLww==", "dev": true }, "node-releases": { - "version": "1.1.61", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", - "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==", + "version": "1.1.64", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.64.tgz", + "integrity": "sha512-Iec8O9166/x2HRMJyLLLWkd0sFFLrFNy+Xf+JQfSQsdBJzPcHpNl3JQ9gD4j+aJxmCa25jNsIbM4bmACtSbkSg==", "dev": true } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", - "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", "dev": true, "requires": { "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-member-expression-to-functions": "^7.12.1", "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", "@babel/helper-split-export-declaration": "^7.10.4" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", - "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", + "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.0" + "regexpu-core": "^4.7.1" } }, "@babel/helper-define-map": { @@ -229,12 +190,12 @@ } }, "@babel/helper-explode-assignable-expression": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz", - "integrity": "sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.1" } }, "@babel/helper-function-name": { @@ -267,34 +228,36 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", - "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz", + "integrity": "sha512-ZeC1TlMSvikvJNy1v/wPIazCu3NdOwgYZLIkmIyAsGhqkNpiDoQQRmaCK8YP4Pq3GPTLPV9WXaPCJKvx06JxKA==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-transforms": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", - "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", "@babel/template": "^7.10.4", - "@babel/types": "^7.11.0", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, @@ -323,46 +286,44 @@ } }, "@babel/helper-remap-async-to-generator": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz", - "integrity": "sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-wrap-function": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.1" } }, "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz", + "integrity": "sha512-zJjTvtNJnCFsCXVi5rUInstLd/EIVNmIKA1Q9ynESmMBWPWd+7sdR+G4/wdu+Mppfep0XLyG2m7EBPvjCeFyrw==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1" } }, "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.1" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", - "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { @@ -379,10 +340,16 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" }, + "@babel/helper-validator-option": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", + "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==", + "dev": true + }, "@babel/helper-wrap-function": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", - "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", "dev": true, "requires": { "@babel/helper-function-name": "^7.10.4", @@ -392,14 +359,14 @@ } }, "@babel/helpers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.1.tgz", + "integrity": "sha512-9JoDSBGoWtmbay98efmT2+mySkwjzeFeAL9BuWNoVQpkPFQF8SIIFUfY5os9u8wVzglzoiPRSW7cuJmBDUt43g==", "dev": true, "requires": { "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1" } }, "@babel/highlight": { @@ -441,36 +408,36 @@ } }, "@babel/parser": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", - "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz", + "integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", - "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", - "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-create-class-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", - "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -478,9 +445,9 @@ } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", - "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -488,9 +455,9 @@ } }, "@babel/plugin-proposal-json-strings": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", - "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -498,9 +465,9 @@ } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", - "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -508,9 +475,9 @@ } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", - "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -518,9 +485,9 @@ } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", - "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz", + "integrity": "sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -528,20 +495,20 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", - "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" + "@babel/plugin-transform-parameters": "^7.12.1" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", - "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -549,33 +516,33 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", - "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", - "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-create-class-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", - "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-create-regexp-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, @@ -598,9 +565,9 @@ } }, "@babel/plugin-syntax-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -643,9 +610,9 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -706,56 +673,56 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", - "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", - "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", - "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-module-imports": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4" + "@babel/helper-remap-async-to-generator": "^7.12.1" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", - "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz", - "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-classes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", - "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", @@ -763,52 +730,52 @@ "@babel/helper-function-name": "^7.10.4", "@babel/helper-optimise-call-expression": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", "@babel/helper-split-export-declaration": "^7.10.4", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", - "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-destructuring": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", - "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-create-regexp-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", - "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", - "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", "dev": true, "requires": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", @@ -816,18 +783,18 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", - "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", - "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", "dev": true, "requires": { "@babel/helper-function-name": "^7.10.4", @@ -835,180 +802,178 @@ } }, "@babel/plugin-transform-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", - "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", - "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", - "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-module-transforms": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", - "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", - "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-module-transforms": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", - "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", - "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.1" } }, "@babel/plugin-transform-new-target": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", - "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-object-super": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", - "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4" + "@babel/helper-replace-supers": "^7.12.1" } }, "@babel/plugin-transform-parameters": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", - "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-property-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", - "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-constant-elements": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz", - "integrity": "sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.1.tgz", + "integrity": "sha512-KOHd0tIRLoER+J+8f9DblZDa1fLGPwaaN1DI1TVHuQFOpjHV22C3CUB3obeC4fexHY9nx+fH0hQNvLFFfA1mxA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", - "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz", + "integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", - "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.1.tgz", + "integrity": "sha512-RmKejwnT0T0QzQUzcbP5p1VWlpnP8QHtdhEtLG55ZDQnJNalbF3eeDyu3dnGKvGzFIQiBzFhBYTwvv435p9Xpw==", "dev": true, "requires": { "@babel/helper-builder-react-jsx": "^7.10.4", - "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/plugin-syntax-jsx": "^7.12.1" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz", - "integrity": "sha512-cImAmIlKJ84sDmpQzm4/0q/2xrXlDezQoixy3qoz1NJeZL/8PRon6xZtluvr4H4FzwlDGI5tCcFupMnXGtr+qw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.1.tgz", + "integrity": "sha512-IilcGWdN1yNgEGOrB96jbTplRh+V2Pz1EoEwsKsHfX1a/L40cUYuD71Zepa7C+ujv7kJIxnDftWeZbKNEqZjCQ==", "dev": true, "requires": { - "@babel/helper-builder-react-jsx-experimental": "^7.11.5", + "@babel/helper-builder-react-jsx-experimental": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/plugin-syntax-jsx": "^7.12.1" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", - "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz", + "integrity": "sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz", - "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz", + "integrity": "sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", - "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", + "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", @@ -1016,58 +981,58 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", - "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", - "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-runtime": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.5.tgz", - "integrity": "sha512-9aIoee+EhjySZ6vY5hnLjigHzunBlscx9ANKutkeWTJTx6m5Rbq6Ic01tLvO54lSusR+BxV7u4UDdCmXv5aagg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-module-imports": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", "resolve": "^1.8.1", "semver": "^5.5.1" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", - "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", - "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", - "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz", + "integrity": "sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", @@ -1075,40 +1040,39 @@ } }, "@babel/plugin-transform-template-literals": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", - "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", - "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", + "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", - "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", - "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-create-regexp-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, @@ -1134,30 +1098,31 @@ } }, "@babel/preset-env": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz", - "integrity": "sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", + "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", "dev": true, "requires": { - "@babel/compat-data": "^7.11.0", - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "^7.10.4", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-proposal-export-namespace-from": "^7.10.4", - "@babel/plugin-proposal-json-strings": "^7.10.4", - "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", - "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.11.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.11.0", - "@babel/plugin-proposal-private-methods": "^7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-class-properties": "^7.12.1", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.0", @@ -1167,78 +1132,43 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.10.4", - "@babel/plugin-transform-arrow-functions": "^7.10.4", - "@babel/plugin-transform-async-to-generator": "^7.10.4", - "@babel/plugin-transform-block-scoped-functions": "^7.10.4", - "@babel/plugin-transform-block-scoping": "^7.10.4", - "@babel/plugin-transform-classes": "^7.10.4", - "@babel/plugin-transform-computed-properties": "^7.10.4", - "@babel/plugin-transform-destructuring": "^7.10.4", - "@babel/plugin-transform-dotall-regex": "^7.10.4", - "@babel/plugin-transform-duplicate-keys": "^7.10.4", - "@babel/plugin-transform-exponentiation-operator": "^7.10.4", - "@babel/plugin-transform-for-of": "^7.10.4", - "@babel/plugin-transform-function-name": "^7.10.4", - "@babel/plugin-transform-literals": "^7.10.4", - "@babel/plugin-transform-member-expression-literals": "^7.10.4", - "@babel/plugin-transform-modules-amd": "^7.10.4", - "@babel/plugin-transform-modules-commonjs": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.4", - "@babel/plugin-transform-modules-umd": "^7.10.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", - "@babel/plugin-transform-new-target": "^7.10.4", - "@babel/plugin-transform-object-super": "^7.10.4", - "@babel/plugin-transform-parameters": "^7.10.4", - "@babel/plugin-transform-property-literals": "^7.10.4", - "@babel/plugin-transform-regenerator": "^7.10.4", - "@babel/plugin-transform-reserved-words": "^7.10.4", - "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.11.0", - "@babel/plugin-transform-sticky-regex": "^7.10.4", - "@babel/plugin-transform-template-literals": "^7.10.4", - "@babel/plugin-transform-typeof-symbol": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.10.4", - "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.11.5", - "browserslist": "^4.12.0", + "@babel/types": "^7.12.1", "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", "semver": "^5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.14.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", - "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001135", - "electron-to-chromium": "^1.3.571", - "escalade": "^3.1.0", - "node-releases": "^1.1.61" - } - }, - "caniuse-lite": { - "version": "1.0.30001148", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz", - "integrity": "sha512-E66qcd0KMKZHNJQt9hiLZGE3J4zuTqE1OnU53miEVtylFbwOEmeA5OsRu90noZful+XGSQOni1aT2tiqu/9yYw==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.578", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz", - "integrity": "sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q==", - "dev": true - }, - "node-releases": { - "version": "1.1.61", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", - "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==", - "dev": true - } } }, "@babel/preset-modules": { @@ -1255,32 +1185,32 @@ } }, "@babel/preset-react": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", - "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.1.tgz", + "integrity": "sha512-euCExymHCi0qB9u5fKw7rvlw7AZSjw/NaB9h7EkdTt5+yHRrXdiRTh7fkG3uBPpJg82CqLfp1LHLqWGSCrab+g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-react-display-name": "^7.10.4", - "@babel/plugin-transform-react-jsx": "^7.10.4", - "@babel/plugin-transform-react-jsx-development": "^7.10.4", - "@babel/plugin-transform-react-jsx-self": "^7.10.4", - "@babel/plugin-transform-react-jsx-source": "^7.10.4", - "@babel/plugin-transform-react-pure-annotations": "^7.10.4" + "@babel/plugin-transform-react-display-name": "^7.12.1", + "@babel/plugin-transform-react-jsx": "^7.12.1", + "@babel/plugin-transform-react-jsx-development": "^7.12.1", + "@babel/plugin-transform-react-jsx-self": "^7.12.1", + "@babel/plugin-transform-react-jsx-source": "^7.12.1", + "@babel/plugin-transform-react-pure-annotations": "^7.12.1" } }, "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", + "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz", - "integrity": "sha512-qh5IR+8VgFz83VBa6OkaET6uN/mJOhHONuy3m1sgF0CV6mXdPSEBdA7e1eUbVvyNtANjMbg22JUv71BaDXLY6A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.1.tgz", + "integrity": "sha512-umhPIcMrlBZ2aTWlWjUseW9LjQKxi1dpFlQS8DzsxB//5K+u6GLTC/JliPKHsd5kJVPIU6X/Hy0YvWOYPcMxBw==", "dev": true, "requires": { "core-js-pure": "^3.0.0", @@ -1299,17 +1229,17 @@ } }, "@babel/traverse": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", - "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", + "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.5", + "@babel/generator": "^7.12.1", "@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", + "@babel/parser": "^7.12.1", + "@babel/types": "^7.12.1", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" @@ -1333,9 +1263,9 @@ } }, "@babel/types": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", - "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", + "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "requires": { "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", @@ -2698,9 +2628,9 @@ "dev": true }, "@types/react": { - "version": "16.9.52", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.52.tgz", - "integrity": "sha512-EHRjmnxiNivwhGdMh9sz1Yw9AUxTSZFxKqdBWAAzyZx3sufWwx6ogqHYh/WB1m/I4ZpjkoZLExF5QTy2ekVi/Q==", + "version": "16.9.53", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.53.tgz", + "integrity": "sha512-4nW60Sd4L7+WMXH1D6jCdVftuW7j4Za6zdp6tJ33Rqv0nk1ZAmQKML9ZLD4H0dehA3FZxXR/GM8gXplf82oNGw==", "requires": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -2797,9 +2727,9 @@ } }, "@types/yargs": { - "version": "15.0.8", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.8.tgz", - "integrity": "sha512-b0BYzFUzBpOhPjpl1wtAHU994jBeKF4TKVlT7ssFv44T617XNcPdRoG4AzHLVshLzlrF7i3lTelH7UbuNYV58Q==", + "version": "15.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.9.tgz", + "integrity": "sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -3105,15 +3035,15 @@ } }, "@wordpress/annotations": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/annotations/-/annotations-1.22.0.tgz", - "integrity": "sha512-exSdlYgy7cMDeK37nPsD3w6wiavbR8sr4ejA3YZgf3XmC2lrW90cbtKfOCK8p+6GeE/hBdC9U2uthI2LttMbKg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/annotations/-/annotations-1.23.0.tgz", + "integrity": "sha512-9EDXA2G7QAwtJVoF5KbuKK+8DqCwgXXtbD0VxayJH3BHQetrgt2c2//G9tNlliM+lla+pjomqNlSnyPntO3XnQ==", "requires": { "@babel/runtime": "^7.11.2", - "@wordpress/data": "^4.24.0", + "@wordpress/data": "^4.25.0", "@wordpress/hooks": "^2.10.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/rich-text": "^3.22.0", + "@wordpress/rich-text": "^3.23.0", "lodash": "^4.17.19", "rememo": "^3.0.0", "uuid": "^7.0.2" @@ -3177,73 +3107,74 @@ } }, "@wordpress/base-styles": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-3.1.0.tgz", - "integrity": "sha512-+HR6Cw0E95IHLixWmDCy54kMCmPxTxwAx7UTkJY/9YvOZyK8Nu3plWbX4c/6MhsASJ9RVFVhJPSJWleQ8bDEkQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-3.2.0.tgz", + "integrity": "sha512-Ru6vp8CoBSUcge4ihScwMzf27q5BCl8WyQrVsxOcy8TeOz3cgGBaHMKspZaE0nH2MotYAhep+YDMzfbrJj81TA==", "dev": true }, "@wordpress/blob": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-2.10.0.tgz", - "integrity": "sha512-XGR0gQHP7m+2nS2j5bPHQk3ttgsewANWauqAVH07nIIK/EgI8Wa2TBWsmgFzGivpJKr+Q5lgyz7Y9VUOpZec7g==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-2.11.0.tgz", + "integrity": "sha512-U+70YDqjaZjp5TQHrbmSrpfmERWAbqUSkgoQnXYQY+6iNsy56xiKlEBhBEuMhrXq5GjDCia+dcMkYE74M+f2Tg==", "requires": { "@babel/runtime": "^7.11.2" } }, "@wordpress/block-directory": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-1.16.1.tgz", - "integrity": "sha512-7nj3H5zjRtWh8bnz4xI47D2C9G5JQd9yUtaswX3Td1YOvXJYXm22H6/4512yxei60g+cuKt5Ya4kJK+mVlLNdw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-1.17.0.tgz", + "integrity": "sha512-3QGw7HeoouyxIAM9ERWPqwYcZ80klvIRiSburGc0jPiEn5RXRnjsJixAMDJafePTNYXEvSb2IlzKkdetoHY1hw==", "requires": { + "@wordpress/a11y": "^2.13.0", "@wordpress/api-fetch": "^3.20.0", - "@wordpress/block-editor": "^5.0.1", - "@wordpress/blocks": "^6.23.0", - "@wordpress/components": "^11.0.0", - "@wordpress/compose": "^3.21.0", - "@wordpress/data": "^4.24.0", - "@wordpress/data-controls": "^1.18.0", - "@wordpress/edit-post": "^3.24.1", + "@wordpress/block-editor": "^5.1.0", + "@wordpress/blocks": "^6.24.0", + "@wordpress/components": "^11.1.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/data": "^4.25.0", + "@wordpress/data-controls": "^1.19.0", + "@wordpress/edit-post": "^3.25.0", "@wordpress/element": "^2.18.0", "@wordpress/hooks": "^2.10.0", "@wordpress/html-entities": "^2.9.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/icons": "^2.7.0", - "@wordpress/notices": "^2.10.0", - "@wordpress/plugins": "^2.22.0", + "@wordpress/icons": "^2.8.0", + "@wordpress/notices": "^2.11.0", + "@wordpress/plugins": "^2.23.0", "@wordpress/url": "^2.19.0", "lodash": "^4.17.19" } }, "@wordpress/block-editor": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-5.0.1.tgz", - "integrity": "sha512-K94zyEVPfF9ztB4Y+yyQAVVW52nv3gnANyRmWm7MXmy2TFHN8VilhCWE4ZgAOwrcAj19tCo5fJff6Rlp1TCQqA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-5.1.0.tgz", + "integrity": "sha512-gOnJ5k1TlUH75IUUn3aLqgK6FAeSUZAQyRukNpVjxatz9mTBbK59PZO8do0nDdx/gEOjWKtMlcta4/r8DqW5rw==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/a11y": "^2.13.0", - "@wordpress/blob": "^2.10.0", - "@wordpress/blocks": "^6.23.0", - "@wordpress/components": "^11.0.0", - "@wordpress/compose": "^3.21.0", - "@wordpress/data": "^4.24.0", + "@wordpress/blob": "^2.11.0", + "@wordpress/blocks": "^6.24.0", + "@wordpress/components": "^11.1.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/data": "^4.25.0", "@wordpress/deprecated": "^2.10.0", "@wordpress/dom": "^2.15.0", "@wordpress/element": "^2.18.0", "@wordpress/hooks": "^2.10.0", "@wordpress/html-entities": "^2.9.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/icons": "^2.7.0", + "@wordpress/icons": "^2.8.0", "@wordpress/is-shallow-equal": "^2.3.0", - "@wordpress/keyboard-shortcuts": "^1.11.0", + "@wordpress/keyboard-shortcuts": "^1.12.0", "@wordpress/keycodes": "^2.16.0", - "@wordpress/notices": "^2.10.0", - "@wordpress/rich-text": "^3.22.0", + "@wordpress/notices": "^2.11.0", + "@wordpress/rich-text": "^3.23.0", "@wordpress/shortcode": "^2.11.0", "@wordpress/token-list": "^1.13.0", "@wordpress/url": "^2.19.0", - "@wordpress/viewport": "^2.23.0", + "@wordpress/viewport": "^2.24.0", "@wordpress/warning": "^1.3.0", - "@wordpress/wordcount": "^2.12.0", + "@wordpress/wordcount": "^2.13.0", "classnames": "^2.2.5", "css-mediaquery": "^0.1.2", "diff": "^4.0.2", @@ -3270,44 +3201,46 @@ } }, "@wordpress/block-library": { - "version": "2.25.1", - "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-2.25.1.tgz", - "integrity": "sha512-v+LJdUXoZopna4Xs1jJphO9V9fr+YAX1GunAdmfp6L1KOFd08EN9g4JL2q/sCKQkKCn1fCaef6ZRh8kTvcWDhA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-2.26.0.tgz", + "integrity": "sha512-FeLOJMKmSFVYnKQ7/7YwG/AhHKvzCQOq+nqayjo52HgOma8tCfWI7lPgTM8P9VJq1fj/tf4A4jcyAJX/0DMEOA==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/a11y": "^2.13.0", "@wordpress/api-fetch": "^3.20.0", "@wordpress/autop": "^2.10.0", - "@wordpress/blob": "^2.10.0", - "@wordpress/block-editor": "^5.0.1", - "@wordpress/blocks": "^6.23.0", - "@wordpress/components": "^11.0.0", - "@wordpress/compose": "^3.21.0", - "@wordpress/core-data": "^2.23.0", - "@wordpress/data": "^4.24.0", + "@wordpress/blob": "^2.11.0", + "@wordpress/block-editor": "^5.1.0", + "@wordpress/blocks": "^6.24.0", + "@wordpress/components": "^11.1.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/core-data": "^2.24.0", + "@wordpress/data": "^4.25.0", "@wordpress/date": "^3.12.0", "@wordpress/deprecated": "^2.10.0", "@wordpress/dom": "^2.15.0", - "@wordpress/editor": "^9.23.1", + "@wordpress/editor": "^9.24.0", "@wordpress/element": "^2.18.0", "@wordpress/escape-html": "^1.10.0", "@wordpress/hooks": "^2.10.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/icons": "^2.7.0", + "@wordpress/icons": "^2.8.0", "@wordpress/is-shallow-equal": "^2.3.0", "@wordpress/keycodes": "^2.16.0", - "@wordpress/notices": "^2.10.0", - "@wordpress/primitives": "^1.9.0", - "@wordpress/rich-text": "^3.22.0", - "@wordpress/server-side-render": "^1.18.0", + "@wordpress/notices": "^2.11.0", + "@wordpress/primitives": "^1.10.0", + "@wordpress/reusable-blocks": "^1.0.0", + "@wordpress/rich-text": "^3.23.0", + "@wordpress/server-side-render": "^1.19.0", "@wordpress/url": "^2.19.0", - "@wordpress/viewport": "^2.23.0", + "@wordpress/viewport": "^2.24.0", "classnames": "^2.2.5", "fast-average-color": "4.3.0", "lodash": "^4.17.19", "memize": "^1.1.0", "moment": "^2.22.1", "react-easy-crop": "^3.0.0", + "reakit": "1.1.0", "tinycolor2": "^1.4.1" } }, @@ -3320,23 +3253,23 @@ } }, "@wordpress/blocks": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-6.23.0.tgz", - "integrity": "sha512-3SxJpXW1exSxhhfRraIFJJGSdQOfHkk0wCJW4afE4urs8VlfcKDnu/Bdtm7lLcbs77dR3wpiT7mE9qWU4K+yeA==", + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-6.24.0.tgz", + "integrity": "sha512-LXpCbYHscC+nAJY+ZIFZ/bs+PGYQHuKqD9Q0KDLTc9auIztN0mVEmlDllNNzo6hoMA6IdS7akAfgGXK6MuTh5w==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/autop": "^2.10.0", - "@wordpress/blob": "^2.10.0", + "@wordpress/blob": "^2.11.0", "@wordpress/block-serialization-default-parser": "^3.8.0", - "@wordpress/compose": "^3.21.0", - "@wordpress/data": "^4.24.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/data": "^4.25.0", "@wordpress/deprecated": "^2.10.0", "@wordpress/dom": "^2.15.0", "@wordpress/element": "^2.18.0", "@wordpress/hooks": "^2.10.0", "@wordpress/html-entities": "^2.9.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/icons": "^2.7.0", + "@wordpress/icons": "^2.8.0", "@wordpress/is-shallow-equal": "^2.3.0", "@wordpress/shortcode": "^2.11.0", "hpq": "^1.3.0", @@ -3362,9 +3295,9 @@ "dev": true }, "@wordpress/components": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-11.0.0.tgz", - "integrity": "sha512-DAtGJoV0FcfdbO/POmbtbBpMpnvt4j8ffxPmaKD/XiO0A9FfyVKy3h2lrJ/g6/P2kyzaaS+LJbCyy186+PNQoA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-11.1.0.tgz", + "integrity": "sha512-R9/jHbp5UWsyLXIchl1z/Gx5IJVhhlqZbYHgBzSA/3rdSmXBr8nb7roVwMrJQ1CRkJc8g1V3FLkOsiU1dB6WyQ==", "requires": { "@babel/runtime": "^7.11.2", "@emotion/core": "^10.0.22", @@ -3372,18 +3305,18 @@ "@emotion/native": "^10.0.22", "@emotion/styled": "^10.0.23", "@wordpress/a11y": "^2.13.0", - "@wordpress/compose": "^3.21.0", + "@wordpress/compose": "^3.22.0", "@wordpress/date": "^3.12.0", "@wordpress/deprecated": "^2.10.0", "@wordpress/dom": "^2.15.0", "@wordpress/element": "^2.18.0", "@wordpress/hooks": "^2.10.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/icons": "^2.7.0", + "@wordpress/icons": "^2.8.0", "@wordpress/is-shallow-equal": "^2.3.0", "@wordpress/keycodes": "^2.16.0", - "@wordpress/primitives": "^1.9.0", - "@wordpress/rich-text": "^3.22.0", + "@wordpress/primitives": "^1.10.0", + "@wordpress/rich-text": "^3.23.0", "@wordpress/warning": "^1.3.0", "classnames": "^2.2.5", "dom-scroll-into-view": "^1.2.1", @@ -3412,9 +3345,9 @@ } }, "@wordpress/compose": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-3.21.0.tgz", - "integrity": "sha512-GoFe2jwVdo6fU6MuDgI59cXwp8DyH1IpLNKSYGqeaDm69ky1cnMQXKV9mFQ8USZbYRn1f5LYV1Dg4IRsqSGqCw==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-3.22.0.tgz", + "integrity": "sha512-y+CbfHLUveOHFPJyHFaYuJ3xE9AJGOVSnZOq4sxFNOI7XKxEkwUl+2LV9yEShXyDtBRDPx5nlIzU4uPdYJQtjg==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/element": "^2.18.0", @@ -3423,19 +3356,20 @@ "clipboard": "^2.0.1", "lodash": "^4.17.19", "mousetrap": "^1.6.5", - "react-resize-aware": "^3.0.1" + "react-resize-aware": "^3.0.1", + "use-memo-one": "^1.1.1" } }, "@wordpress/core-data": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-2.23.0.tgz", - "integrity": "sha512-TiC5i6URDMxBuI8QfF0huu/CTcR/Lp35cKjNZUY4hrS+50kfU+zX7eZi1YawdqzedxK1iVtbT2t+/vGTdxBlaA==", + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-2.24.0.tgz", + "integrity": "sha512-bbKcRgO47oYos19lidZLCpsydRX+o6GxR8auFwgExAxOrQShb6p6ph3HNRs76gruLC3BieHg/thzBsKOl6IuOQ==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/api-fetch": "^3.20.0", - "@wordpress/blocks": "^6.23.0", - "@wordpress/data": "^4.24.0", - "@wordpress/data-controls": "^1.18.0", + "@wordpress/blocks": "^6.24.0", + "@wordpress/data": "^4.25.0", + "@wordpress/data-controls": "^1.19.0", "@wordpress/deprecated": "^2.10.0", "@wordpress/element": "^2.18.0", "@wordpress/i18n": "^3.16.0", @@ -3456,12 +3390,12 @@ } }, "@wordpress/data": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-4.24.0.tgz", - "integrity": "sha512-QlM+dmHLJJROCYIve5sCARt9BDL6eP6VF2IWnYYjJ5yHMlTf6lKp5fyWdGcInY0HmPigLduSTcfgbLUIG3b//Q==", + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-4.25.0.tgz", + "integrity": "sha512-p2vk3e+zPHTZvlc8d53l95uBQRhgE0ukV0KfJyENgwavpLbWouGUZtaBc4qhIG+43JQMTQGsEGxiDdCaoNaf8Q==", "requires": { "@babel/runtime": "^7.11.2", - "@wordpress/compose": "^3.21.0", + "@wordpress/compose": "^3.22.0", "@wordpress/deprecated": "^2.10.0", "@wordpress/element": "^2.18.0", "@wordpress/is-shallow-equal": "^2.3.0", @@ -3477,12 +3411,12 @@ } }, "@wordpress/data-controls": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@wordpress/data-controls/-/data-controls-1.18.0.tgz", - "integrity": "sha512-3K9H5woLSop6PYM1GfUIE1gM/PMMuGwaeLfxGbY76JZ6YVCH64K7aWbT8LUlbe9U7sOxrPbWx+asC+yccLHcJQ==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@wordpress/data-controls/-/data-controls-1.19.0.tgz", + "integrity": "sha512-70Iy4xcxBkEbY+85WHdAt/Lh4qil+OG17D1RenHlyGw0IThN2T3x4ZAgWTB/kdzZtEfUkHhZgIp8eSnW/g7/VA==", "requires": { "@wordpress/api-fetch": "^3.20.0", - "@wordpress/data": "^4.24.0" + "@wordpress/data": "^4.25.0" } }, "@wordpress/date": { @@ -3533,9 +3467,9 @@ } }, "@wordpress/e2e-test-utils": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils/-/e2e-test-utils-4.14.0.tgz", - "integrity": "sha512-hA4zyxnxQqELtTj2KG1oC3r+RhUGqyKZyju7JYohi6nM9TaQZMNt1yf/X7ibKx62r0o99yWz8Yv9pYR62Xtk1w==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils/-/e2e-test-utils-4.15.0.tgz", + "integrity": "sha512-mCOlNDX/yERd7hIAFB+y9x56iCQ2XyDZkWNlQNMYRH0+EdrQ5H5zE7MSxzycideIC7grxKw/j4RcuyxUdSWGDw==", "dev": true, "requires": { "@babel/runtime": "^7.11.2", @@ -3554,35 +3488,36 @@ } }, "@wordpress/edit-post": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-3.24.1.tgz", - "integrity": "sha512-Ou7dJkO34wHdP8XsjZdSm+7at1xWhHNxlgi+psfYjfIotTddU9nRlWxRqmTOCIYEBHZqbef/srhU0fbTtBsNDQ==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-3.25.0.tgz", + "integrity": "sha512-JenpXuCrNNSDy9oVwNZte0JCphfT1BbE2cav7kafqzwDECf8emD+ZGKi37jDJSRvungG3snYCN5YVBE3ZaWATQ==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/a11y": "^2.13.0", "@wordpress/api-fetch": "^3.20.0", - "@wordpress/block-editor": "^5.0.1", - "@wordpress/block-library": "^2.25.1", - "@wordpress/blocks": "^6.23.0", - "@wordpress/components": "^11.0.0", - "@wordpress/compose": "^3.21.0", - "@wordpress/core-data": "^2.23.0", - "@wordpress/data": "^4.24.0", - "@wordpress/data-controls": "^1.18.0", - "@wordpress/editor": "^9.23.1", + "@wordpress/block-editor": "^5.1.0", + "@wordpress/block-library": "^2.26.0", + "@wordpress/blocks": "^6.24.0", + "@wordpress/components": "^11.1.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/core-data": "^2.24.0", + "@wordpress/data": "^4.25.0", + "@wordpress/data-controls": "^1.19.0", + "@wordpress/editor": "^9.24.0", "@wordpress/element": "^2.18.0", "@wordpress/hooks": "^2.10.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/icons": "^2.7.0", - "@wordpress/interface": "^0.9.0", - "@wordpress/keyboard-shortcuts": "^1.11.0", + "@wordpress/icons": "^2.8.0", + "@wordpress/interface": "^0.10.0", + "@wordpress/keyboard-shortcuts": "^1.12.0", "@wordpress/keycodes": "^2.16.0", - "@wordpress/media-utils": "^1.17.0", - "@wordpress/notices": "^2.10.0", - "@wordpress/plugins": "^2.22.0", - "@wordpress/primitives": "^1.9.0", + "@wordpress/media-utils": "^1.18.0", + "@wordpress/notices": "^2.11.0", + "@wordpress/plugins": "^2.23.0", + "@wordpress/primitives": "^1.10.0", + "@wordpress/reusable-blocks": "^1.0.0", "@wordpress/url": "^2.19.0", - "@wordpress/viewport": "^2.23.0", + "@wordpress/viewport": "^2.24.0", "@wordpress/warning": "^1.3.0", "classnames": "^2.2.5", "lodash": "^4.17.19", @@ -3592,38 +3527,39 @@ } }, "@wordpress/editor": { - "version": "9.23.1", - "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-9.23.1.tgz", - "integrity": "sha512-GDMc9t2zRJIWB79x/bJHOuOvH5XmLSFzqGWJ+1cDY/f3qpmj2WnVctBqSZ2VaBmNRIhr13cXADpyC5vVT4XZFg==", + "version": "9.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-9.24.0.tgz", + "integrity": "sha512-J/vMS2KDh442JJEzDMGPU9XBSdfOytvRzO13zXuAx1F048TuUHFatJcjjxTWaDI2vTUBnPaH5GvHFTd2Qme4uA==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/api-fetch": "^3.20.0", "@wordpress/autop": "^2.10.0", - "@wordpress/blob": "^2.10.0", - "@wordpress/block-editor": "^5.0.1", - "@wordpress/blocks": "^6.23.0", - "@wordpress/components": "^11.0.0", - "@wordpress/compose": "^3.21.0", - "@wordpress/core-data": "^2.23.0", - "@wordpress/data": "^4.24.0", - "@wordpress/data-controls": "^1.18.0", + "@wordpress/blob": "^2.11.0", + "@wordpress/block-editor": "^5.1.0", + "@wordpress/blocks": "^6.24.0", + "@wordpress/components": "^11.1.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/core-data": "^2.24.0", + "@wordpress/data": "^4.25.0", + "@wordpress/data-controls": "^1.19.0", "@wordpress/date": "^3.12.0", "@wordpress/deprecated": "^2.10.0", "@wordpress/element": "^2.18.0", "@wordpress/hooks": "^2.10.0", "@wordpress/html-entities": "^2.9.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/icons": "^2.7.0", + "@wordpress/icons": "^2.8.0", "@wordpress/is-shallow-equal": "^2.3.0", - "@wordpress/keyboard-shortcuts": "^1.11.0", + "@wordpress/keyboard-shortcuts": "^1.12.0", "@wordpress/keycodes": "^2.16.0", - "@wordpress/media-utils": "^1.17.0", - "@wordpress/notices": "^2.10.0", - "@wordpress/rich-text": "^3.22.0", - "@wordpress/server-side-render": "^1.18.0", + "@wordpress/media-utils": "^1.18.0", + "@wordpress/notices": "^2.11.0", + "@wordpress/reusable-blocks": "^1.0.0", + "@wordpress/rich-text": "^3.23.0", + "@wordpress/server-side-render": "^1.19.0", "@wordpress/url": "^2.19.0", - "@wordpress/viewport": "^2.23.0", - "@wordpress/wordcount": "^2.12.0", + "@wordpress/viewport": "^2.24.0", + "@wordpress/wordcount": "^2.13.0", "classnames": "^2.2.5", "lodash": "^4.17.19", "memize": "^1.1.0", @@ -3645,38 +3581,6 @@ "lodash": "^4.17.19", "react": "^16.13.1", "react-dom": "^16.13.1" - }, - "dependencies": { - "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } } }, "@wordpress/escape-html": { @@ -3751,21 +3655,22 @@ } }, "@wordpress/format-library": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/@wordpress/format-library/-/format-library-1.24.1.tgz", - "integrity": "sha512-371xIXta5vSevtkIvTODe4N7fN11Y/UbR6As6qySiszkr8HfepLnx/eMYZBtnRmIYlQCB2ROlcPuPPido4FECQ==", + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/@wordpress/format-library/-/format-library-1.25.0.tgz", + "integrity": "sha512-+J1i7cZiJDuypOodaZmTvCJZbRKiErVs3Kaw2eh0YtLfbTR7vuBOLk3DDSIYvtcyn9zAUbcas5SdOYJTP6j4tQ==", "requires": { "@babel/runtime": "^7.11.2", - "@wordpress/block-editor": "^5.0.1", - "@wordpress/components": "^11.0.0", - "@wordpress/data": "^4.24.0", + "@wordpress/block-editor": "^5.1.0", + "@wordpress/components": "^11.1.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/data": "^4.25.0", "@wordpress/dom": "^2.15.0", "@wordpress/element": "^2.18.0", "@wordpress/html-entities": "^2.9.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/icons": "^2.7.0", + "@wordpress/icons": "^2.8.0", "@wordpress/keycodes": "^2.16.0", - "@wordpress/rich-text": "^3.22.0", + "@wordpress/rich-text": "^3.23.0", "@wordpress/url": "^2.19.0", "lodash": "^4.17.19" } @@ -3800,27 +3705,27 @@ } }, "@wordpress/icons": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-2.7.0.tgz", - "integrity": "sha512-UnFoieW6dZjYOpQTU+cIdoDTU2NNMiBQ5nUFP1RnNcNcwEiXVrhLqJS9ZXsy+mECeR0K1wT3UUUN7rTiMtITGw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-2.8.0.tgz", + "integrity": "sha512-ZhQXXzNqcDh0JRY/Ro7iePjTDD8FnZ5W8ze8NKg9da9I24QwL5mWCJezt8ZhBo0wxnD+Lk3kKKMYA6P+lh6qWg==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/element": "^2.18.0", - "@wordpress/primitives": "^1.9.0" + "@wordpress/primitives": "^1.10.0" } }, "@wordpress/interface": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@wordpress/interface/-/interface-0.9.0.tgz", - "integrity": "sha512-elB1x8+wVAlHJqw+dsspQlJ+Ooon76bAdcpHIAc26AM06y1tXwiMWgGJXQ5XkGnsucF1U6MduvESsZZ6LdVnRA==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/interface/-/interface-0.10.0.tgz", + "integrity": "sha512-nIRzycdXcNlnnry3hDHeLEGuwoMXn51vcu7m+mk5IBr2vKpBrFsJoLEk9Wn9emtxbcRjVRlNf/yiUgQY+RHW7g==", "requires": { "@babel/runtime": "^7.11.2", - "@wordpress/components": "^11.0.0", - "@wordpress/data": "^4.24.0", + "@wordpress/components": "^11.1.0", + "@wordpress/data": "^4.25.0", "@wordpress/element": "^2.18.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/icons": "^2.7.0", - "@wordpress/plugins": "^2.22.0", + "@wordpress/icons": "^2.8.0", + "@wordpress/plugins": "^2.23.0", "classnames": "^2.2.5", "lodash": "^4.17.19" } @@ -3859,13 +3764,13 @@ } }, "@wordpress/keyboard-shortcuts": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-1.11.0.tgz", - "integrity": "sha512-tBpvBrpjOx+qhMtnOPNls7b5uMpCxu0DiSfTNirCsbNq9G7Ifv59nsyOjERENSufWZxTxly/Y3kU/yZDlPzkuQ==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-1.12.0.tgz", + "integrity": "sha512-PvELYvMdcvDvJ3TL0KMmR3zIiUY35mpDArOuDjQF+8mPdEIGzl8DDvW+r/uKkWhUYXgIR8tj3/4ddrRPD96lyQ==", "requires": { "@babel/runtime": "^7.11.2", - "@wordpress/compose": "^3.21.0", - "@wordpress/data": "^4.24.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/data": "^4.25.0", "@wordpress/element": "^2.18.0", "@wordpress/keycodes": "^2.16.0", "lodash": "^4.17.19", @@ -3893,40 +3798,40 @@ } }, "@wordpress/list-reusable-blocks": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@wordpress/list-reusable-blocks/-/list-reusable-blocks-1.23.0.tgz", - "integrity": "sha512-pF3FoRiKWMigYbdEKUY7q48sOPEual40wNqH4wCQeYGrdMh52Ls6SnYjytnp1LwNv1sNqsSXqoggqzndFE0i3w==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/list-reusable-blocks/-/list-reusable-blocks-1.24.0.tgz", + "integrity": "sha512-vo5FGMtv6UnEjeDg+tXkrqcbM00NMopmZlntr6dhdpORoamplPdUx/mfBhK/nGCs8b01+i6feQn3BmQbLCRsQg==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/api-fetch": "^3.20.0", - "@wordpress/components": "^11.0.0", - "@wordpress/compose": "^3.21.0", + "@wordpress/components": "^11.1.0", + "@wordpress/compose": "^3.22.0", "@wordpress/element": "^2.18.0", "@wordpress/i18n": "^3.16.0", "lodash": "^4.17.19" } }, "@wordpress/media-utils": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@wordpress/media-utils/-/media-utils-1.17.0.tgz", - "integrity": "sha512-KOTxCjToePY7Jnc3SP2sP3WC2Bkrr8VTryt3xVMQj0pCUhwoI0CmlrrgmuBYQDu3VzaBOCERObylKYfoGO059w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@wordpress/media-utils/-/media-utils-1.18.0.tgz", + "integrity": "sha512-ap7Fi5QOH3bJdEZilAI/6jgbOVLgYEPbqKsn5li/EPYSTVuR2phWER48FJPOTGtiE+cbvRd4KN0PJAzEvaxCOQ==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/api-fetch": "^3.20.0", - "@wordpress/blob": "^2.10.0", + "@wordpress/blob": "^2.11.0", "@wordpress/element": "^2.18.0", "@wordpress/i18n": "^3.16.0", "lodash": "^4.17.19" } }, "@wordpress/notices": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-2.10.0.tgz", - "integrity": "sha512-nqX1V7P2dY6upedzKoCsxEHLE7PiUXulkUsJsbfgE07iwonhCGA4mp6uQaua+yIotaU9IEOzfD3Tj3fwE3JkOA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-2.11.0.tgz", + "integrity": "sha512-O7X48mt0FfVu7rWaN2UizeGqPx/+6SpEDf7zrT73eflhLCEwTiNaeE6mKw1dgY1STnoO8OwCUvvI2iz000lIgw==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/a11y": "^2.13.0", - "@wordpress/data": "^4.24.0", + "@wordpress/data": "^4.25.0", "lodash": "^4.17.19" } }, @@ -3937,45 +3842,155 @@ "dev": true }, "@wordpress/nux": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/nux/-/nux-3.22.0.tgz", - "integrity": "sha512-AS0rU36l7lcF6plQwEX7DtBl3Fh+PuWDsJaNk+bCk+vHxlgN3JcYGqHxpT4w8Np7Qrt8rdoERvACN4kxdYEATg==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/nux/-/nux-3.23.0.tgz", + "integrity": "sha512-CnEvhuQi2phiq7ftsAxiPgWrbbu7cU1tAnDrVyCfblhFwUF77ESr9xJCcU80GKqXPWhPDLbokbe81ESAeBso8Q==", "requires": { "@babel/runtime": "^7.11.2", - "@wordpress/components": "^11.0.0", - "@wordpress/compose": "^3.21.0", - "@wordpress/data": "^4.24.0", + "@wordpress/components": "^11.1.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/data": "^4.25.0", "@wordpress/deprecated": "^2.10.0", "@wordpress/element": "^2.18.0", "@wordpress/i18n": "^3.16.0", - "@wordpress/icons": "^2.7.0", + "@wordpress/icons": "^2.8.0", "lodash": "^4.17.19", "rememo": "^3.0.0" } }, "@wordpress/plugins": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/plugins/-/plugins-2.22.0.tgz", - "integrity": "sha512-VcKRdd3bH3r+n8xpMl61Ur9Tff6By+MP9QEnaE4Zc+lBzwDy72Qa5XD8k6ONLFw9rpEXKOiQSo1520MtUvqh4g==", + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/plugins/-/plugins-2.23.0.tgz", + "integrity": "sha512-lkh/8yLrPWFRmAXCkC4EcMYUYZqlJ2y8HItaBrZSyOZmsc/dNXcr819EeNlfPMNy7g8e/AzB8bCm9Hjx5/qlYg==", "requires": { "@babel/runtime": "^7.11.2", - "@wordpress/compose": "^3.21.0", + "@wordpress/compose": "^3.22.0", "@wordpress/element": "^2.18.0", "@wordpress/hooks": "^2.10.0", - "@wordpress/icons": "^2.7.0", + "@wordpress/icons": "^2.8.0", "lodash": "^4.17.19" } }, "@wordpress/postcss-plugins-preset": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-1.5.0.tgz", - "integrity": "sha512-+BXrkyxDRm8p0KFSGmm5dA9f0FuhbndsYLZW6aCF0jeEYL/65W5bYrdJpXd6zgsKUiU6OvfdxTvxIRdDCJ9hmg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-1.5.1.tgz", + "integrity": "sha512-E1TT0/79NXNbmcQJdtQpLn10ugkQNRw9P74piWgKvloUS+Yh7yvP6hfYF95HPFWDvB6Z9ycvGH5n/5TVjIDrrQ==", "dev": true, "requires": { - "@wordpress/base-styles": "^3.1.0", + "@wordpress/base-styles": "^3.2.0", "@wordpress/postcss-themes": "^2.6.0", - "autoprefixer": "^9.4.5", - "postcss-custom-properties": "^9.1.1" + "autoprefixer": "^9.8.6", + "postcss-custom-properties": "^10.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "browserslist": { + "version": "4.14.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", + "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001135", + "electron-to-chromium": "^1.3.571", + "escalade": "^3.1.0", + "node-releases": "^1.1.61" + } + }, + "caniuse-lite": { + "version": "1.0.30001148", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz", + "integrity": "sha512-E66qcd0KMKZHNJQt9hiLZGE3J4zuTqE1OnU53miEVtylFbwOEmeA5OsRu90noZful+XGSQOni1aT2tiqu/9yYw==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "electron-to-chromium": { + "version": "1.3.582", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.582.tgz", + "integrity": "sha512-0nCJ7cSqnkMC+kUuPs0YgklFHraWGl/xHqtZWWtOeVtyi+YqkoAOMGuZQad43DscXCQI/yizcTa3u6B5r+BLww==", + "dev": true + }, + "node-releases": { + "version": "1.1.64", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.64.tgz", + "integrity": "sha512-Iec8O9166/x2HRMJyLLLWkd0sFFLrFNy+Xf+JQfSQsdBJzPcHpNl3JQ9gD4j+aJxmCa25jNsIbM4bmACtSbkSg==", + "dev": true + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@wordpress/postcss-themes": { @@ -4053,9 +4068,9 @@ "dev": true }, "@wordpress/primitives": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-1.9.0.tgz", - "integrity": "sha512-dbYivYpHunYMTXBlY5Mxy/YSBY2RbMV+Z3/MgdkZJMkGL1k+C5/JFAsHSt8Y1UyvWR3lZnWpH+MeF+oq04TWYg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-1.10.0.tgz", + "integrity": "sha512-C1drc//1dEFf7eMVfuk9Z11X9VzFgKHBA8J3yAj5fxJffbATYfzHCLgERcZQIUsnn8GUL4VScNbmRf6+8i2rhw==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/element": "^2.18.0", @@ -4081,14 +4096,32 @@ "rungen": "^0.3.2" } }, + "@wordpress/reusable-blocks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-1.0.0.tgz", + "integrity": "sha512-gj9/3VqIVxZUDeGl4wqa9T6nRnWtdhqcNSBFA2GAKj8iqnre7+s77eJmuGQRACRRiPKoE3YNfo1nWpjQg9gjkw==", + "requires": { + "@wordpress/block-editor": "^5.1.0", + "@wordpress/blocks": "^6.24.0", + "@wordpress/components": "^11.1.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/core-data": "^2.24.0", + "@wordpress/data": "^4.25.0", + "@wordpress/element": "^2.18.0", + "@wordpress/i18n": "^3.16.0", + "@wordpress/icons": "^2.8.0", + "@wordpress/notices": "^2.11.0", + "lodash": "^4.17.19" + } + }, "@wordpress/rich-text": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-3.22.0.tgz", - "integrity": "sha512-Bch6yyE3EckctjUZ5oS/X5VjmHP2JqO4tzrcgD1abHET7LeZIVUg7cXFnz+4byOVvkrgFtuQl+Tk6CINyLpKMQ==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-3.23.0.tgz", + "integrity": "sha512-y8pzvFqsWppmmByk76sYNgzsZaStCNAkBLH2SJwbdbX+e+pLFi0vQmsjPSoUvWsfzfAg/vt8Pm2KcfQ2rTMxuQ==", "requires": { "@babel/runtime": "^7.11.2", - "@wordpress/compose": "^3.21.0", - "@wordpress/data": "^4.24.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/data": "^4.25.0", "@wordpress/deprecated": "^2.10.0", "@wordpress/element": "^2.18.0", "@wordpress/escape-html": "^1.10.0", @@ -4101,9 +4134,9 @@ } }, "@wordpress/scripts": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-12.3.0.tgz", - "integrity": "sha512-FKwM2rQldgnHEf+PX/tv7wQAU462geu7R+TkvdHmDSPR6LN3tU+Osm7e6yc4Vk4NXsLNtJW6bnbTcV9ZAt9EeQ==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-12.4.0.tgz", + "integrity": "sha512-eVQYu9DyDm1Ld2IdrdPs2JFSUVItUONFwDBVOqfJtYRIoQo8T7mUf4L5HnDXcrsQBoYlZ9e6XwAsTLuZvtbvvg==", "dev": true, "requires": { "@svgr/webpack": "^5.2.0", @@ -4112,7 +4145,7 @@ "@wordpress/eslint-plugin": "^7.3.0", "@wordpress/jest-preset-default": "^6.4.0", "@wordpress/npm-package-json-lint-config": "^3.1.0", - "@wordpress/postcss-plugins-preset": "^1.5.0", + "@wordpress/postcss-plugins-preset": "^1.5.1", "@wordpress/prettier-config": "^0.4.0", "babel-jest": "^25.3.0", "babel-loader": "^8.1.0", @@ -4494,14 +4527,14 @@ } }, "@wordpress/server-side-render": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-1.18.0.tgz", - "integrity": "sha512-1LFeKjTBml4daW8CavMasxOXHgit9ZDwrSi8Xs/cND7s0dShrGyS8Nxt/D8Urb9PsRgOFWAOfBlCSb74d+tTjg==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-1.19.0.tgz", + "integrity": "sha512-QZDUu2ZLuMcZm4Lu6QRDYCgTsYPpr9JIw1FUrC9tAz75X3nSLgQ328+OkJknGnR7Ias94Eh6saxWxslR2ckmnQ==", "requires": { "@babel/runtime": "^7.11.2", "@wordpress/api-fetch": "^3.20.0", - "@wordpress/components": "^11.0.0", - "@wordpress/data": "^4.24.0", + "@wordpress/components": "^11.1.0", + "@wordpress/data": "^4.25.0", "@wordpress/deprecated": "^2.10.0", "@wordpress/element": "^2.18.0", "@wordpress/i18n": "^3.16.0", @@ -4540,13 +4573,13 @@ } }, "@wordpress/viewport": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/@wordpress/viewport/-/viewport-2.23.0.tgz", - "integrity": "sha512-dn0hKaJYJBxm71w/at92anfriqpxrZDcCLiKfheTs9ZobE8s4nzgDZbwe/xGLvjxg1c4iO2lDCACDsQybBiFpw==", + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/viewport/-/viewport-2.24.0.tgz", + "integrity": "sha512-JaJ7BVGDQJ8jzcus5XXu5Kb2m4B0lMG0J4FS2Yu/foZXOzfPCciPrJ/xo84gttL1SUwUKG5CkI9BOkQQq6npmw==", "requires": { "@babel/runtime": "^7.11.2", - "@wordpress/compose": "^3.21.0", - "@wordpress/data": "^4.24.0", + "@wordpress/compose": "^3.22.0", + "@wordpress/data": "^4.25.0", "lodash": "^4.17.19" } }, @@ -4556,9 +4589,9 @@ "integrity": "sha512-xwvgwqugc3zQawSPMMA09knAgap7IGgp0PxTXpFqizGFRIohoXFWERnPBZT0VsSCovqYS0ADcH+ZZgQ+BKAzLA==" }, "@wordpress/wordcount": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-2.12.0.tgz", - "integrity": "sha512-Urr+ejQBs4lcDlRsza9RefYY/jzFdoFxzeEHxR88Umb2zFnKmfuW47KeD3kRNEFomlxrdLEc7UpJedbYyZ/C+g==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-2.13.0.tgz", + "integrity": "sha512-pml9Nc+/eICxCijQjtiJ1gCv0Z4uzWwFxEQe9XKbo5wd0LTq57NkaudxvoUgwAzS/s+60tpWgWPgR1n8S0rWOQ==", "requires": { "@babel/runtime": "^7.11.2", "lodash": "^4.17.19" @@ -5702,11 +5735,12 @@ }, "dependencies": { "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", "dev": true, "requires": { + "is-core-module": "^2.0.0", "path-parse": "^1.0.6" } } @@ -5917,10 +5951,11 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", "requires": { + "is-core-module": "^2.0.0", "path-parse": "^1.0.6" } } @@ -7790,15 +7825,15 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.578", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz", - "integrity": "sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q==", + "version": "1.3.582", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.582.tgz", + "integrity": "sha512-0nCJ7cSqnkMC+kUuPs0YgklFHraWGl/xHqtZWWtOeVtyi+YqkoAOMGuZQad43DscXCQI/yizcTa3u6B5r+BLww==", "dev": true }, "node-releases": { - "version": "1.1.61", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", - "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==", + "version": "1.1.64", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.64.tgz", + "integrity": "sha512-Iec8O9166/x2HRMJyLLLWkd0sFFLrFNy+Xf+JQfSQsdBJzPcHpNl3JQ9gD4j+aJxmCa25jNsIbM4bmACtSbkSg==", "dev": true }, "semver": { @@ -9878,9 +9913,9 @@ } }, "escalade": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.0.tgz", - "integrity": "sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-html": { @@ -10146,9 +10181,9 @@ } }, "eslint-config-prettier": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.12.0.tgz", - "integrity": "sha512-9jWPlFlgNwRUYVoujvWTQ1aMO8o6648r+K7qU7K5Jmkbyqav1fuEZC0COYpGBxyiAJb65Ra9hrmFx19xRGwXWw==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.13.0.tgz", + "integrity": "sha512-LcT0i0LSmnzqK2t764pyIt7kKH2AuuqKRTtJTdddWxOiUja9HdG5GXBVF2gmCTvVYWVsTu8J2MhJLVGRh+pj8w==", "dev": true, "requires": { "get-stdin": "^6.0.0" @@ -10164,9 +10199,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "30.6.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.6.4.tgz", - "integrity": "sha512-aDTsAkKwyMsIYtytjH5zPtv+LkbCORN6oy/T4L40ssU5pgXWRSs0ULyJb6e4p2jT8y5nmG3IgpawYarL4tKunw==", + "version": "30.7.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.7.3.tgz", + "integrity": "sha512-slzJeKrm3vXabRYcFBpbUgWgdnATN9rNOFAr7IhmkxmR9Vk/6qN1c/IdvTqVSEctDRQ08chR+Lvk8fRayXgYZg==", "dev": true, "requires": { "comment-parser": "^0.7.6", @@ -10237,9 +10272,9 @@ }, "dependencies": { "emoji-regex": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz", - "integrity": "sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.1.1.tgz", + "integrity": "sha512-AaWyDiNO9rbtMIcGl7tdxMcNu8SOLaDLxmQEFT5JhgKufOJzPPkYmgN2QwqTgw4doWMZZQttC6sUWVQjb+1VdA==", "dev": true } } @@ -10387,11 +10422,12 @@ } }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", "dev": true, "requires": { + "is-core-module": "^2.0.0", "path-parse": "^1.0.6" } } @@ -14572,15 +14608,6 @@ } } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -14700,6 +14727,14 @@ "rgba-regex": "^1.0.0" } }, + "is-core-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", + "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", + "requires": { + "has": "^1.0.3" + } + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -14985,13 +15020,10 @@ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" }, "is-url-superb": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-3.0.0.tgz", - "integrity": "sha512-3faQP+wHCGDQT1qReM5zCPx2mxoal6DzbzquFlCYJLWyy4WPTved33ea2xFbX37z4NoriEwZGIYhFtx8RUB5wQ==", - "dev": true, - "requires": { - "url-regex": "^5.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", + "dev": true }, "is-utf8": { "version": "0.2.1", @@ -16106,11 +16138,12 @@ } }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", "dev": true, "requires": { + "is-core-module": "^2.0.0", "path-parse": "^1.0.6" } }, @@ -17019,15 +17052,6 @@ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "requires": { - "leven": "^3.1.0" - } - }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -17694,9 +17718,9 @@ } }, "unist-util-visit-parents": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz", - "integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -19965,13 +19989,13 @@ } }, "postcss-custom-properties": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-9.2.0.tgz", - "integrity": "sha512-IFRV7LwapFkNa3MtvFpw+MEhgyUpaVZ62VlR5EM0AbmnGbNhU9qIE8u02vgUbl1gLkHK6sterEavamVPOwdE8g==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-10.0.0.tgz", + "integrity": "sha512-55BPj5FudpCiPZzBaO+MOeqmwMDa+nV9/0QBJBfhZjYg6D9hE+rW9lpMBLTJoF4OTXnS5Po4yM1nMlgkPbCxFg==", "dev": true, "requires": { "postcss": "^7.0.17", - "postcss-values-parser": "^3.0.5" + "postcss-values-parser": "^4.0.0" } }, "postcss-discard-comments": { @@ -20594,15 +20618,14 @@ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" }, "postcss-values-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-3.2.1.tgz", - "integrity": "sha512-SQ7/88VE9LhJh9gc27/hqnSU/aZaREVJcRVccXBmajgP2RkjdJzNyH/a9GCVMI5nsRhT0jC5HpUMwfkz81DVVg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-4.0.0.tgz", + "integrity": "sha512-R9x2D87FcbhwXUmoCXJR85M1BLII5suXRuXibGYyBJ7lVDEpRIdKZh4+8q5S+/+A4m0IoG1U5tFw39asyhX/Hw==", "dev": true, "requires": { "color-name": "^1.1.4", - "is-url-superb": "^3.0.0", - "postcss": "^7.0.5", - "url-regex": "^5.0.0" + "is-url-superb": "^4.0.0", + "postcss": "^7.0.5" }, "dependencies": { "color-name": { @@ -21085,9 +21108,9 @@ } }, "re-resizable": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.6.1.tgz", - "integrity": "sha512-ttWVasZ9X7c0ir0+4YK47tkmm9EAFssW07YLkeLzG5HCOuFgFAlSVzMlzAH0h3i6hDShQCHHJecVx5rk+snoFA==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.7.0.tgz", + "integrity": "sha512-uBrV59SZgxmZunL7MWoSnEKEfQW+GfevJqWqnA0slTe54Xbdfn1SgvUCP/C7Ak3hHkz3dSHN8xwpyapdx2Sgrw==", "requires": { "fast-memoize": "^2.5.1" } @@ -21153,9 +21176,9 @@ } }, "react-easy-crop": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-3.2.0.tgz", - "integrity": "sha512-eh95jzu/XUFg8RNI45GhTTgfgHAK+J+fh9YBdfeiKxwluERW0FhJ+rh4TcuLL8seK7ol68w1M246Q5sylfTlCA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-3.2.1.tgz", + "integrity": "sha512-5igouY5tKFckQHdKl5fDq2uT3dq6cEC/V+a2OvgVs6Hh9LxeE7vQvrAoOHsHzH7CnlSnen+KW3Mb4HkQs9qr2A==", "requires": { "tslib": "2.0.1" }, @@ -21233,27 +21256,15 @@ } }, "react-test-renderer": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.13.1.tgz", - "integrity": "sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ==", + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz", + "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==", "dev": true, "requires": { "object-assign": "^4.1.1", "prop-types": "^15.6.2", "react-is": "^16.8.6", "scheduler": "^0.19.1" - }, - "dependencies": { - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } } }, "react-transition-group": { @@ -21794,9 +21805,9 @@ } }, "unist-util-visit-parents": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz", - "integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -23020,9 +23031,9 @@ "dev": true }, "simple-html-tokenizer": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/simple-html-tokenizer/-/simple-html-tokenizer-0.5.9.tgz", - "integrity": "sha512-w/3FEDN94r4JQ9WoYrIr8RqDIPZdyNkdpbK9glFady1CAEyD97XWCv8HFetQO21w81e7h7Nh59iYTyG1mUJftg==" + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/simple-html-tokenizer/-/simple-html-tokenizer-0.5.10.tgz", + "integrity": "sha512-1DHMUmvUOGuUZ9/+cX/+hOhWhRD5dEw6lodn8WuV+T+cQ31hhBcCu1dcDsNotowi4mMaNhrLyKoS+DtB81HdDA==" }, "simple-swizzle": { "version": "0.2.2", @@ -24204,16 +24215,14 @@ } }, "stringify-entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.1.tgz", - "integrity": "sha512-Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", + "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==", "dev": true, "requires": { "character-entities-html4": "^1.0.0", "character-entities-legacy": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.2", - "is-hexadecimal": "^1.0.0" + "xtend": "^4.0.0" } }, "strip-ansi": { @@ -24461,9 +24470,9 @@ } }, "electron-to-chromium": { - "version": "1.3.578", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz", - "integrity": "sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q==", + "version": "1.3.582", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.582.tgz", + "integrity": "sha512-0nCJ7cSqnkMC+kUuPs0YgklFHraWGl/xHqtZWWtOeVtyi+YqkoAOMGuZQad43DscXCQI/yizcTa3u6B5r+BLww==", "dev": true }, "emoji-regex": { @@ -24633,9 +24642,9 @@ "dev": true }, "node-releases": { - "version": "1.1.61", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", - "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==", + "version": "1.1.64", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.64.tgz", + "integrity": "sha512-Iec8O9166/x2HRMJyLLLWkd0sFFLrFNy+Xf+JQfSQsdBJzPcHpNl3JQ9gD4j+aJxmCa25jNsIbM4bmACtSbkSg==", "dev": true }, "p-locate": { @@ -25456,12 +25465,6 @@ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" }, - "tlds": { - "version": "1.211.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.211.0.tgz", - "integrity": "sha512-xo3HkJ8cmluINOK9ziKNeDcNjQibPNeVAlGfwgyhvxrBv1ZFqs74DcnffKaemHcOI8tNgQ+pB7G8GbcmZENKoA==", - "dev": true - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -26168,24 +26171,6 @@ "prepend-http": "^1.0.1" } }, - "url-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-5.0.0.tgz", - "integrity": "sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g==", - "dev": true, - "requires": { - "ip-regex": "^4.1.0", - "tlds": "^1.203.0" - }, - "dependencies": { - "ip-regex": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.2.0.tgz", - "integrity": "sha512-n5cDDeTWWRwK1EBoWwRti+8nP4NbytBBY0pldmnIkq6Z55KNFmWofh4rl9dPZpj+U/nVq7gweR3ylrvMt4YZ5A==", - "dev": true - } - } - }, "url-to-options": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", diff --git a/package.json b/package.json index ab775e77cf..476a31304f 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,9 @@ "devDependencies": { "@wordpress/custom-templated-path-webpack-plugin": "1.7.0", "@wordpress/dependency-extraction-webpack-plugin": "2.8.0", - "@wordpress/e2e-test-utils": "4.14.0", + "@wordpress/e2e-test-utils": "4.15.0", "@wordpress/library-export-default-webpack-plugin": "1.9.0", - "@wordpress/scripts": "12.3.0", + "@wordpress/scripts": "12.4.0", "autoprefixer": "9.6.2", "chalk": "4.1.0", "check-node-version": "4.0.1", @@ -80,52 +80,53 @@ "dependencies": { "@babel/polyfill": "7.10.1", "@wordpress/a11y": "2.13.0", - "@wordpress/annotations": "1.22.0", + "@wordpress/annotations": "1.23.0", "@wordpress/api-fetch": "3.20.0", "@wordpress/autop": "2.10.0", - "@wordpress/blob": "2.10.0", - "@wordpress/block-directory": "1.16.1", - "@wordpress/block-editor": "5.0.1", - "@wordpress/block-library": "2.25.1", + "@wordpress/blob": "2.11.0", + "@wordpress/block-directory": "1.17.0", + "@wordpress/block-editor": "5.1.0", + "@wordpress/block-library": "2.26.0", "@wordpress/block-serialization-default-parser": "3.8.0", - "@wordpress/blocks": "6.23.0", - "@wordpress/components": "11.0.0", - "@wordpress/compose": "3.21.0", - "@wordpress/core-data": "2.23.0", - "@wordpress/data": "4.24.0", - "@wordpress/data-controls": "1.18.0", + "@wordpress/blocks": "6.24.0", + "@wordpress/components": "11.1.0", + "@wordpress/compose": "3.22.0", + "@wordpress/core-data": "2.24.0", + "@wordpress/data": "4.25.0", + "@wordpress/data-controls": "1.19.0", "@wordpress/date": "3.12.0", "@wordpress/deprecated": "2.10.0", "@wordpress/dom": "2.15.0", "@wordpress/dom-ready": "2.11.0", - "@wordpress/edit-post": "3.24.1", - "@wordpress/editor": "9.23.1", + "@wordpress/edit-post": "3.25.0", + "@wordpress/editor": "9.24.0", "@wordpress/element": "2.18.0", "@wordpress/escape-html": "1.10.0", - "@wordpress/format-library": "1.24.1", + "@wordpress/format-library": "1.25.0", "@wordpress/hooks": "2.10.0", "@wordpress/html-entities": "2.9.0", "@wordpress/i18n": "3.16.0", - "@wordpress/icons": "2.7.0", + "@wordpress/icons": "2.8.0", "@wordpress/is-shallow-equal": "2.3.0", - "@wordpress/keyboard-shortcuts": "1.11.0", + "@wordpress/keyboard-shortcuts": "1.12.0", "@wordpress/keycodes": "2.16.0", - "@wordpress/list-reusable-blocks": "1.23.0", - "@wordpress/media-utils": "1.17.0", - "@wordpress/notices": "2.10.0", - "@wordpress/nux": "3.22.0", - "@wordpress/plugins": "2.22.0", - "@wordpress/primitives": "1.9.0", + "@wordpress/list-reusable-blocks": "1.24.0", + "@wordpress/media-utils": "1.18.0", + "@wordpress/notices": "2.11.0", + "@wordpress/nux": "3.23.0", + "@wordpress/plugins": "2.23.0", + "@wordpress/primitives": "1.10.0", "@wordpress/priority-queue": "1.9.0", "@wordpress/redux-routine": "3.12.0", - "@wordpress/rich-text": "3.22.0", - "@wordpress/server-side-render": "1.18.0", + "@wordpress/reusable-blocks": "1.0.0", + "@wordpress/rich-text": "3.23.0", + "@wordpress/server-side-render": "1.19.0", "@wordpress/shortcode": "2.11.0", "@wordpress/token-list": "1.13.0", "@wordpress/url": "2.19.0", - "@wordpress/viewport": "2.23.0", + "@wordpress/viewport": "2.24.0", "@wordpress/warning": "1.3.0", - "@wordpress/wordcount": "2.12.0", + "@wordpress/wordcount": "2.13.0", "backbone": "1.4.0", "clipboard": "2.0.6", "core-js-url-browser": "3.6.4", diff --git a/src/wp-includes/assets/script-loader-packages.php b/src/wp-includes/assets/script-loader-packages.php index f887a09920..afbdb3a349 100644 --- a/src/wp-includes/assets/script-loader-packages.php +++ b/src/wp-includes/assets/script-loader-packages.php @@ -1 +1 @@ - array('dependencies' => array('wp-dom-ready', 'wp-i18n', 'wp-polyfill'), 'version' => '6d98587879c8c19080b1e3a855e946be'), 'annotations.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text'), 'version' => '6f5dba93cfcc859a12384d6500bbdb6a'), 'api-fetch.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => 'd38d8020fb8b03594fb705059bd02d08'), 'autop.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'e3a7061e1087f5cf077a68aeaf0ea714'), 'blob.js' => array('dependencies' => array('wp-polyfill'), 'version' => '27195f29e36179999f6e1fa7d1f079b3'), 'block-directory.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-data-controls', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives'), 'version' => '48cdfe01e7d468f66bf1f31667b83ac6'), 'block-editor.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-blob', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-shortcode', 'wp-token-list', 'wp-url', 'wp-viewport', 'wp-warning', 'wp-wordcount'), 'version' => '503c5ca4a090284e4d04aa16b31dfdec'), 'block-library.js' => array('dependencies' => array('lodash', 'moment', 'react', 'wp-api-fetch', 'wp-autop', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport'), 'version' => '21b8a23eb77869fdc13df5b86d7b922f'), 'block-serialization-default-parser.js' => array('dependencies' => array('wp-polyfill'), 'version' => '27585bbfe083d705c915c21bf47047df'), 'blocks.js' => array('dependencies' => array('lodash', 'wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-primitives', 'wp-shortcode'), 'version' => '7ba861a0b2e8f76fc7a1f4c7a3a59de1'), 'components.js' => array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-a11y', 'wp-compose', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-warning'), 'version' => '57a23fbc83c860f0547e814cff74072a'), 'compose.js' => array('dependencies' => array('lodash', 'react', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue'), 'version' => '980168910efaf01ea313952dd1af8fbd'), 'core-data.js' => array('dependencies' => array('lodash', 'wp-blocks', 'wp-data', 'wp-data-controls', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-url'), 'version' => '7159cab2b2ec3870267c3549595864a6'), 'data.js' => array('dependencies' => array('lodash', 'react', 'wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-redux-routine'), 'version' => '18c22155dc4bce9be5fb2d823c738095'), 'data-controls.js' => array('dependencies' => array('wp-api-fetch', 'wp-data', 'wp-polyfill'), 'version' => '6cb5c91c1427296ea7f52a6349c6f179'), 'date.js' => array('dependencies' => array('moment', 'wp-polyfill'), 'version' => 'c9122f4b8a25a58b47487ad81ddf4742'), 'deprecated.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => '26aefabb46263ab5dac6d7f6c63b664c'), 'dom.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'eedd920647fd959208dfb7bbf9caeadb'), 'dom-ready.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'a6586b64552c9c6924b8093e9ef4f74e'), 'edit-post.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-url', 'wp-viewport', 'wp-warning'), 'version' => '4b53e762718f21b20f2b2c6875f540cc'), 'editor.js' => array('dependencies' => array('lodash', 'react', 'wp-api-fetch', 'wp-autop', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-date', 'wp-deprecated', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport', 'wp-wordcount'), 'version' => 'a4ddebb6f88e9e6d0426288f757fc839'), 'element.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '00b4616d8d8e497fed5efc56819a4f99'), 'escape-html.js' => array('dependencies' => array('wp-polyfill'), 'version' => '11a9ed20aa0e5b49a24e416455d2311e'), 'format-library.js' => array('dependencies' => array('lodash', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-dom', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => 'c72d237e7ca6aae466e7be3d79adfdd0'), 'hooks.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'd3b8b40265078ab4bf9a60e4be8c928e'), 'html-entities.js' => array('dependencies' => array('wp-polyfill'), 'version' => '5f0f2fc8f6cde41ab343549aa0b50183'), 'i18n.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'd3a3d3210bfb2ca7ef6bdba31c413250'), 'is-shallow-equal.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'b2327d0572e72da49f9e26cc3a53de34'), 'keyboard-shortcuts.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-keycodes', 'wp-polyfill'), 'version' => '7439dba3888f064b1174470f8c90d789'), 'keycodes.js' => array('dependencies' => array('lodash', 'wp-i18n', 'wp-polyfill'), 'version' => '576dca936dbe58003338160c3c5c3ca0'), 'list-reusable-blocks.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '8306352fbf4b1a62d2f99b32e4bcf9db'), 'media-utils.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '6ef5a273eb0a450c2545eaaedb952c9c'), 'notices.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-polyfill'), 'version' => '59e33e2f12d7375fbb59033060e3755c'), 'nux.js' => array('dependencies' => array('lodash', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => 'c6425ef5696f295c5bebd738baf59fdf'), 'plugins.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill', 'wp-primitives'), 'version' => 'bf7037b87ab1db074706fa8565c2ba5f'), 'primitives.js' => array('dependencies' => array('wp-element', 'wp-polyfill'), 'version' => '47f496b20b6a5895b5ca5f40e85b0e62'), 'priority-queue.js' => array('dependencies' => array('wp-polyfill'), 'version' => '61fc9b8c45afe763799612e733d04e5d'), 'redux-routine.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'caae3879a1870fe55d4d6c91882b4aec'), 'rich-text.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-escape-html', 'wp-keycodes', 'wp-polyfill'), 'version' => '895e31f6df6a5ec8a679b93d71bd2175'), 'server-side-render.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '356e2911f80386235087cbc8a30b0b79'), 'shortcode.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '0f4a8551daa990e80114889793034ff6'), 'token-list.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '8c1de0af2850ea512bf7ee4ea8a6af09'), 'url.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '5cfad922551470f0d04552a83d5e7eb4'), 'viewport.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => 'de07809632bb717b3bef9fb526a17f20'), 'warning.js' => array('dependencies' => array('wp-polyfill'), 'version' => '202ac16e99afe7c33c257b248625a947'), 'wordcount.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'ababa914c8610cc872482756daceab10')); \ No newline at end of file + array('dependencies' => array('wp-dom-ready', 'wp-i18n', 'wp-polyfill'), 'version' => '6d98587879c8c19080b1e3a855e946be'), 'annotations.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text'), 'version' => '7e632871049335586b0d9c3057baedbb'), 'api-fetch.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '9d28f58ef7c5024b312e65bc2ddfe4fc'), 'autop.js' => array('dependencies' => array('wp-polyfill'), 'version' => '46344923664714dbd8b729a8e45156f8'), 'blob.js' => array('dependencies' => array('wp-polyfill'), 'version' => '72222aa8da2b1686a4f3ff592e15ff3b'), 'block-directory.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-data-controls', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives'), 'version' => '2d8c506d0b1125c6089e00a3f9a9e66b'), 'block-editor.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-blob', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-shortcode', 'wp-token-list', 'wp-url', 'wp-viewport', 'wp-warning', 'wp-wordcount'), 'version' => 'f38e4e437fbc76ea0523efa54c3f0142'), 'block-library.js' => array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-api-fetch', 'wp-autop', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport'), 'version' => '4c93bab329c0a9eb65f95a4f041558f0'), 'block-serialization-default-parser.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'd0f9ebaf5c46ca058852005b47bcf613'), 'blocks.js' => array('dependencies' => array('lodash', 'wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-primitives', 'wp-shortcode'), 'version' => '6d53fd5f4dc83f94b522df3bcf339b40'), 'components.js' => array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-a11y', 'wp-compose', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-warning'), 'version' => '3b1e263cbcd5d3caae3bcf3700a56d4a'), 'compose.js' => array('dependencies' => array('lodash', 'react', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue'), 'version' => 'd87491e5ab841d917c5cd68dc712c6c7'), 'core-data.js' => array('dependencies' => array('lodash', 'wp-blocks', 'wp-data', 'wp-data-controls', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-url'), 'version' => '0325109ea620cf70abf527065f33a339'), 'data.js' => array('dependencies' => array('lodash', 'react', 'wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-redux-routine'), 'version' => '3bab2780d3e6f8ae03ebd668f52f02ea'), 'data-controls.js' => array('dependencies' => array('wp-api-fetch', 'wp-data', 'wp-polyfill'), 'version' => 'a65b10ed093076b98cfe778869208b37'), 'date.js' => array('dependencies' => array('moment', 'wp-polyfill'), 'version' => 'c9122f4b8a25a58b47487ad81ddf4742'), 'deprecated.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => '26aefabb46263ab5dac6d7f6c63b664c'), 'dom.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'eedd920647fd959208dfb7bbf9caeadb'), 'dom-ready.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'a6586b64552c9c6924b8093e9ef4f74e'), 'edit-post.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-warning'), 'version' => '4b1dfb6cbbf88c70a2d2b24adb6897a7'), 'editor.js' => array('dependencies' => array('lodash', 'react', 'wp-api-fetch', 'wp-autop', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-date', 'wp-deprecated', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport', 'wp-wordcount'), 'version' => 'acb202d7e29953d65cf4abeafeb129eb'), 'element.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '2484bb1f7768590fd1dfb077e0385200'), 'escape-html.js' => array('dependencies' => array('wp-polyfill'), 'version' => '11a9ed20aa0e5b49a24e416455d2311e'), 'format-library.js' => array('dependencies' => array('lodash', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-dom', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => '667d82cc8bcf9a37fe5a94ec7629630d'), 'hooks.js' => array('dependencies' => array('wp-polyfill'), 'version' => '76a5722c079a12ec8a42dcb3874d9d66'), 'html-entities.js' => array('dependencies' => array('wp-polyfill'), 'version' => '5f0f2fc8f6cde41ab343549aa0b50183'), 'i18n.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'd3a3d3210bfb2ca7ef6bdba31c413250'), 'is-shallow-equal.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'b2327d0572e72da49f9e26cc3a53de34'), 'keyboard-shortcuts.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-keycodes', 'wp-polyfill'), 'version' => '8b3c847079e8b235728aa35e166fea56'), 'keycodes.js' => array('dependencies' => array('lodash', 'wp-i18n', 'wp-polyfill'), 'version' => '3b63bf025b7879801d724528993b5e26'), 'list-reusable-blocks.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '4e8778ead4480c03445841853d780e5f'), 'media-utils.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'f4636ec124360459db25b3ff26ba3277'), 'notices.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-polyfill'), 'version' => '690f3b4a52a09f1f621918c762a10272'), 'nux.js' => array('dependencies' => array('lodash', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '10dc58ff29dacce89f56870934a48659'), 'plugins.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill', 'wp-primitives'), 'version' => 'b26cb9a7d97012f662da22943ee99c1d'), 'primitives.js' => array('dependencies' => array('wp-element', 'wp-polyfill'), 'version' => '893b0eee5573b5b435e1065d3b3aa11d'), 'priority-queue.js' => array('dependencies' => array('wp-polyfill'), 'version' => '61fc9b8c45afe763799612e733d04e5d'), 'redux-routine.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'caae3879a1870fe55d4d6c91882b4aec'), 'reusable-blocks.js' => array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives'), 'version' => '903185c108d2d75af4a1ff4d4aa5f6a0'), 'rich-text.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-escape-html', 'wp-keycodes', 'wp-polyfill'), 'version' => '7cade08c6b011628652e2a80f80663eb'), 'server-side-render.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '5b41896d723f96d6f10f75440d86378a'), 'shortcode.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '0f4a8551daa990e80114889793034ff6'), 'token-list.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '8c1de0af2850ea512bf7ee4ea8a6af09'), 'url.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '5cfad922551470f0d04552a83d5e7eb4'), 'viewport.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => '7fa6a8ee86592080d7dc3c2319c0aa82'), 'warning.js' => array('dependencies' => array('wp-polyfill'), 'version' => '202ac16e99afe7c33c257b248625a947'), 'wordcount.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '8134af8a132c0ab063d74d2151f21e31')); \ No newline at end of file diff --git a/src/wp-includes/block-supports/align.php b/src/wp-includes/block-supports/align.php index 52392c76ef..d81663d5c4 100644 --- a/src/wp-includes/block-supports/align.php +++ b/src/wp-includes/block-supports/align.php @@ -8,6 +8,8 @@ /** * Registers the align block attribute for block types that support it. * + * @access private + * * @param WP_Block_Type $block_type Block Type. */ function wp_register_alignment_support( $block_type ) { @@ -33,13 +35,15 @@ function wp_register_alignment_support( $block_type ) { * Add CSS classes for block alignment to the incoming attributes array. * This will be applied to the block markup in the front-end. * - * @param array $attributes Comprehensive list of attributes to be applied. - * @param array $block_attributes Block attributes. + * @access private + * * @param WP_Block_Type $block_type Block Type. + * @param array $block_attributes Block attributes. * * @return array Block alignment CSS classes and inline styles. */ -function wp_apply_alignment_support( $attributes, $block_attributes, $block_type ) { +function wp_apply_alignment_support( $block_type, $block_attributes ) { + $attributes = array(); $has_align_support = false; if ( property_exists( $block_type, 'supports' ) ) { $has_align_support = wp_array_get( $block_type->supports, array( 'align' ), false ); @@ -48,9 +52,18 @@ function wp_apply_alignment_support( $attributes, $block_attributes, $block_type $has_block_alignment = array_key_exists( 'align', $block_attributes ); if ( $has_block_alignment ) { - $attributes['css_classes'][] = sprintf( 'align%s', $block_attributes['align'] ); + $attributes['class'] = sprintf( 'align%s', $block_attributes['align'] ); } } return $attributes; } + +// Register the block support. +WP_Block_Supports::get_instance()->register( + 'align', + array( + 'register_attribute' => 'wp_register_alignment_support', + 'apply' => 'wp_apply_alignment_support', + ) +); diff --git a/src/wp-includes/block-supports/colors.php b/src/wp-includes/block-supports/colors.php index 76c0d48b6a..71cbcec64b 100644 --- a/src/wp-includes/block-supports/colors.php +++ b/src/wp-includes/block-supports/colors.php @@ -8,6 +8,8 @@ /** * Registers the style and colors block attributes for block types that support it. * + * @access private + * * @param WP_Block_Type $block_type Block Type. */ function wp_register_colors_support( $block_type ) { @@ -53,18 +55,21 @@ function wp_register_colors_support( $block_type ) { * Add CSS classes and inline styles for colors to the incoming attributes array. * This will be applied to the block markup in the front-end. * - * @param array $attributes Comprehensive list of attributes to be applied. - * @param array $block_attributes Block attributes. + * @access private + * * @param WP_Block_Type $block_type Block type. +* @param array $block_attributes Block attributes. * * @return array Colors CSS classes and inline styles. */ -function wp_apply_colors_support( $attributes, $block_attributes, $block_type ) { +function wp_apply_colors_support( $block_type, $block_attributes ) { $color_support = wp_array_get( $block_type->supports, array( '__experimentalColor' ), false ); $has_text_colors_support = true === $color_support || ( is_array( $color_support ) && wp_array_get( $color_support, array( 'text' ), true ) ); $has_background_colors_support = true === $color_support || ( is_array( $color_support ) && wp_array_get( $color_support, array( 'background' ), true ) ); $has_link_colors_support = wp_array_get( $color_support, array( 'linkColor' ), false ); $has_gradients_support = wp_array_get( $color_support, array( 'gradients' ), false ); + $classes = array(); + $styles = array(); // Text Colors. // Check support for text colors. @@ -74,13 +79,13 @@ function wp_apply_colors_support( $attributes, $block_attributes, $block_type ) // Apply required generic class. if ( $has_custom_text_color || $has_named_text_color ) { - $attributes['css_classes'][] = 'has-text-color'; + $classes[] = 'has-text-color'; } // Apply color class or inline style. if ( $has_named_text_color ) { - $attributes['css_classes'][] = sprintf( 'has-%s-color', $block_attributes['textColor'] ); + $classes[] = sprintf( 'has-%s-color', $block_attributes['textColor'] ); } elseif ( $has_custom_text_color ) { - $attributes['inline_styles'][] = sprintf( 'color: %s;', $block_attributes['style']['color']['text'] ); + $styles[] = sprintf( 'color: %s;', $block_attributes['style']['color']['text'] ); } } @@ -89,15 +94,15 @@ function wp_apply_colors_support( $attributes, $block_attributes, $block_type ) $has_link_color = isset( $block_attributes['style']['color']['link'] ); // Apply required class and style. if ( $has_link_color ) { - $attributes['css_classes'][] = 'has-link-color'; + $classes[] = 'has-link-color'; // If link is a named color. if ( strpos( $block_attributes['style']['color']['link'], 'var:preset|color|' ) !== false ) { // Get the name from the string and add proper styles. - $index_to_splice = strrpos( $block_attributes['style']['color']['link'], '|' ) + 1; - $link_color_name = substr( $block_attributes['style']['color']['link'], $index_to_splice ); - $attributes['inline_styles'][] = sprintf( '--wp--style--color--link:var(--wp--preset--color--%s);', $link_color_name ); + $index_to_splice = strrpos( $block_attributes['style']['color']['link'], '|' ) + 1; + $link_color_name = substr( $block_attributes['style']['color']['link'], $index_to_splice ); + $styles[] = sprintf( '--wp--style--color--link: var(--wp--preset--color--%s);', $link_color_name ); } else { - $attributes['inline_styles'][] = sprintf( '--wp--style--color--link: %s;', $block_attributes['style']['color']['link'] ); + $styles[] = sprintf( '--wp--style--color--link: %s;', $block_attributes['style']['color']['link'] ); } } } @@ -109,13 +114,13 @@ function wp_apply_colors_support( $attributes, $block_attributes, $block_type ) // Apply required background class. if ( $has_custom_background_color || $has_named_background_color ) { - $attributes['css_classes'][] = 'has-background'; + $classes[] = 'has-background'; } // Apply background color classes or styles. if ( $has_named_background_color ) { - $attributes['css_classes'][] = sprintf( 'has-%s-background-color', $block_attributes['backgroundColor'] ); + $classes[] = sprintf( 'has-%s-background-color', $block_attributes['backgroundColor'] ); } elseif ( $has_custom_background_color ) { - $attributes['inline_styles'][] = sprintf( 'background-color: %s;', $block_attributes['style']['color']['background'] ); + $styles[] = sprintf( 'background-color: %s;', $block_attributes['style']['color']['background'] ); } } @@ -125,15 +130,32 @@ function wp_apply_colors_support( $attributes, $block_attributes, $block_type ) $has_custom_gradient = isset( $block_attributes['style']['color']['gradient'] ); if ( $has_named_gradient || $has_custom_gradient ) { - $attributes['css_classes'][] = 'has-background'; + $classes[] = 'has-background'; } // Apply required background class. if ( $has_named_gradient ) { - $attributes['css_classes'][] = sprintf( 'has-%s-gradient-background', $block_attributes['gradient'] ); + $classes[] = sprintf( 'has-%s-gradient-background', $block_attributes['gradient'] ); } elseif ( $has_custom_gradient ) { - $attributes['inline_styles'][] = sprintf( 'background: %s;', $block_attributes['style']['color']['gradient'] ); + $styles[] = sprintf( 'background: %s;', $block_attributes['style']['color']['gradient'] ); } } + $attributes = array(); + if ( ! empty( $classes ) ) { + $attributes['class'] = implode( ' ', $classes ); + } + if ( ! empty( $styles ) ) { + $attributes['style'] = implode( ' ', $styles ); + } + return $attributes; } + +// Register the block support. +WP_Block_Supports::get_instance()->register( + 'colors', + array( + 'register_attribute' => 'wp_register_colors_support', + 'apply' => 'wp_apply_colors_support', + ) +); diff --git a/src/wp-includes/block-supports/custom-classname.php b/src/wp-includes/block-supports/custom-classname.php index 33d90e76fd..7d45738afa 100644 --- a/src/wp-includes/block-supports/custom-classname.php +++ b/src/wp-includes/block-supports/custom-classname.php @@ -8,6 +8,8 @@ /** * Registers the custom classname block attribute for block types that support it. * + * @access private + * * @param WP_Block_Type $block_type Block Type. */ function wp_register_custom_classname_support( $block_type ) { @@ -31,14 +33,16 @@ function wp_register_custom_classname_support( $block_type ) { /** * Add the custom classnames to the output. * - * @param array $attributes Comprehensive list of attributes to be applied. - * @param array $block_attributes Block attributes. + * @access private + * * @param WP_Block_Type $block_type Block Type. + * @param array $block_attributes Block attributes. * * @return array Block CSS classes and inline styles. */ -function wp_apply_custom_classname_support( $attributes, $block_attributes, $block_type ) { +function wp_apply_custom_classname_support( $block_type, $block_attributes ) { $has_custom_classname_support = true; + $attributes = array(); if ( property_exists( $block_type, 'supports' ) ) { $has_custom_classname_support = wp_array_get( $block_type->supports, array( 'customClassName' ), true ); } @@ -46,9 +50,18 @@ function wp_apply_custom_classname_support( $attributes, $block_attributes, $blo $has_custom_classnames = array_key_exists( 'className', $block_attributes ); if ( $has_custom_classnames ) { - $attributes['css_classes'][] = $block_attributes['className']; + $attributes['class'] = $block_attributes['className']; } } return $attributes; } + +// Register the block support. +WP_Block_Supports::get_instance()->register( + 'custom-classname', + array( + 'register_attribute' => 'wp_register_custom_classname_support', + 'apply' => 'wp_apply_custom_classname_support', + ) +); diff --git a/src/wp-includes/block-supports/generated-classname.php b/src/wp-includes/block-supports/generated-classname.php index c510bb094b..5bb1a14ae7 100644 --- a/src/wp-includes/block-supports/generated-classname.php +++ b/src/wp-includes/block-supports/generated-classname.php @@ -8,6 +8,8 @@ /** * Get the generated classname from a given block name. * + * @access private + * * @param string $block_name Block Name. * @return string Generated classname. */ @@ -34,14 +36,16 @@ function wp_get_block_default_classname( $block_name ) { /** * Add the generated classnames to the output. * - * @param array $attributes Comprehensive list of attributes to be applied. - * @param array $block_attributes Block attributes. + * @access private + * * @param WP_Block_Type $block_type Block Type. + * @param array $block_attributes Block attributes. * * @return array Block CSS classes and inline styles. */ -function wp_apply_generated_classname_support( $attributes, $block_attributes, $block_type ) { +function wp_apply_generated_classname_support( $block_type, $block_attributes ) { $has_generated_classname_support = true; + $attributes = array(); if ( property_exists( $block_type, 'supports' ) ) { $has_generated_classname_support = wp_array_get( $block_type->supports, array( 'className' ), true ); } @@ -49,9 +53,17 @@ function wp_apply_generated_classname_support( $attributes, $block_attributes, $ $block_classname = wp_get_block_default_classname( $block_type->name ); if ( $block_classname ) { - $attributes['css_classes'][] = $block_classname; + $attributes['class'] = $block_classname; } } return $attributes; } + +// Register the block support. +WP_Block_Supports::get_instance()->register( + 'generated-classname', + array( + 'apply' => 'wp_apply_generated_classname_support', + ) +); diff --git a/src/wp-includes/block-supports/index.php b/src/wp-includes/block-supports/index.php deleted file mode 100644 index e66807c5b1..0000000000 --- a/src/wp-includes/block-supports/index.php +++ /dev/null @@ -1,137 +0,0 @@ -get_all_registered(); - // Ideally we need a hook to extend the block registration - // instead of mutating the block type. - foreach ( $registered_block_types as $block_type ) { - wp_register_alignment_support( $block_type ); - wp_register_colors_support( $block_type ); - wp_register_typography_support( $block_type ); - wp_register_custom_classname_support( $block_type ); - } -} - -add_action( 'init', 'wp_register_block_supports', 21 ); - -/** - * Filters the frontend output of blocks and apply the block support flags transformations. - * - * @param string $block_content rendered block content. - * @param array $block block object. - * @return string filtered block content. - */ -function wp_apply_block_supports( $block_content, $block ) { - if ( ! isset( $block['attrs'] ) ) { - return $block_content; - } - - $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] ); - // If no render_callback, assume styles have been previously handled. - if ( ! $block_type || ! $block_type->render_callback ) { - return $block_content; - } - - $attributes = array(); - $attributes = wp_apply_generated_classname_support( $attributes, $block['attrs'], $block_type ); - $attributes = wp_apply_colors_support( $attributes, $block['attrs'], $block_type ); - $attributes = wp_apply_typography_support( $attributes, $block['attrs'], $block_type ); - $attributes = wp_apply_alignment_support( $attributes, $block['attrs'], $block_type ); - $attributes = wp_apply_custom_classname_support( $attributes, $block['attrs'], $block_type ); - - if ( ! count( $attributes ) ) { - return $block_content; - } - - $dom = new DOMDocument( '1.0', 'utf-8' ); - - // Suppress DOMDocument::loadHTML warnings from polluting the front-end. - $previous = libxml_use_internal_errors( true ); - - // We need to wrap the block in order to handle UTF-8 properly. - $wrapped_block_html = - '' - . $block_content - . ''; - - $success = $dom->loadHTML( $wrapped_block_html, LIBXML_HTML_NODEFDTD | LIBXML_COMPACT ); - - // Clear errors and reset the use_errors setting. - libxml_clear_errors(); - libxml_use_internal_errors( $previous ); - - if ( ! $success ) { - return $block_content; - } - - // Structure is like ``, so body is the `lastChild` of our document. - $body_element = $dom->documentElement->lastChild; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase - - $xpath = new DOMXPath( $dom ); - $block_root = $xpath->query( './*', $body_element )[0]; - - // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase - if ( empty( $block_root ) ) { - return $block_content; - } - - // Merge and dedupe new and existing classes and styles. - $current_classes = explode( ' ', trim( $block_root->getAttribute( 'class' ) ) ); - $classes_to_add = array_key_exists( 'css_classes', $attributes ) ? $attributes['css_classes'] : array(); - $new_classes = array_unique( array_filter( array_merge( $current_classes, $classes_to_add ) ) ); - - $current_styles = preg_split( '/\s*;\s*/', trim( $block_root->getAttribute( 'style' ) ) ); - $styles_to_add = array_key_exists( 'inline_styles', $attributes ) ? $attributes['inline_styles'] : array(); - $new_styles = array_unique( array_map( 'wp_normalize_css_rule', array_filter( array_merge( $current_styles, $styles_to_add ) ) ) ); - - // Apply new styles and classes. - if ( ! empty( $new_classes ) ) { - // `DOMElement::setAttribute` handles attribute value escaping. - $block_root->setAttribute( 'class', implode( ' ', $new_classes ) ); - } - - if ( ! empty( $new_styles ) ) { - // `DOMElement::setAttribute` handles attribute value escaping. - $block_root->setAttribute( 'style', implode( '; ', $new_styles ) . ';' ); - } - - // Avoid using `$dom->saveHtml( $node )` because the node results may not produce consistent - // whitespace for PHP < 7.3. Saving the root HTML `$dom->saveHtml()` prevents this behavior. - $full_html = $dom->saveHtml(); - - // Find the open/close tags. The open tag needs to be adjusted so we get inside the tag - // and not the tag itself. - $start = strpos( $full_html, '', 0 ) + strlen( '' ); - $end = strpos( $full_html, '', $start ); - return trim( substr( $full_html, $start, $end - $start ) ); -} -add_filter( 'render_block', 'wp_apply_block_supports', 10, 2 ); - -/** - * Normalizes spacing in a string representing a CSS rule - * - * @example - * 'color :red;' becomes 'color:red' - * - * @param string $css_rule_string CSS rule. - * @return string Normalized CSS rule. - */ -function wp_normalize_css_rule( $css_rule_string ) { - return trim( implode( ': ', preg_split( '/\s*:\s*/', $css_rule_string, 2 ) ), ';' ); -} diff --git a/src/wp-includes/block-supports/typography.php b/src/wp-includes/block-supports/typography.php index d2dd4e74f7..3fbfd2f068 100644 --- a/src/wp-includes/block-supports/typography.php +++ b/src/wp-includes/block-supports/typography.php @@ -8,6 +8,8 @@ /** * Registers the style and typography block attributes for block types that support it. * + * @access private + * * @param WP_Block_Type $block_type Block Type. */ function wp_register_typography_support( $block_type ) { @@ -16,11 +18,6 @@ function wp_register_typography_support( $block_type ) { $has_font_size_support = wp_array_get( $block_type->supports, array( '__experimentalFontSize' ), false ); } - $has_font_style_support = false; - if ( property_exists( $block_type, 'supports' ) ) { - $has_font_style_support = wp_array_get( $block_type->supports, array( '__experimentalFontStyle' ), false ); - } - $has_line_height_support = false; if ( property_exists( $block_type, 'supports' ) ) { $has_line_height_support = wp_array_get( $block_type->supports, array( '__experimentalLineHeight' ), false ); @@ -30,7 +27,7 @@ function wp_register_typography_support( $block_type ) { $block_type->attributes = array(); } - if ( ( $has_font_size_support || $has_font_style_support || $has_line_height_support ) && ! array_key_exists( 'style', $block_type->attributes ) ) { + if ( ( $has_font_size_support || $has_line_height_support ) && ! array_key_exists( 'style', $block_type->attributes ) ) { $block_type->attributes['style'] = array( 'type' => 'object', ); @@ -47,26 +44,24 @@ function wp_register_typography_support( $block_type ) { * Add CSS classes and inline styles for font sizes to the incoming attributes array. * This will be applied to the block markup in the front-end. * - * @param array $attributes Comprehensive list of attributes to be applied. - * @param array $block_attributes Block attributes. + * @access private + * * @param WP_Block_Type $block_type Block type. + * @param array $block_attributes Block attributes. * * @return array Font size CSS classes and inline styles. */ -function wp_apply_typography_support( $attributes, $block_attributes, $block_type ) { +function wp_apply_typography_support( $block_type, $block_attributes ) { $has_font_size_support = false; + $classes = array(); + $styles = array(); if ( property_exists( $block_type, 'supports' ) ) { - $has_font_size_support = wp_array_get( $block_type->supports, array( '__experimentalFontSize' ), false ); - } - - $has_font_style_support = false; - if ( property_exists( $block_type, 'supports' ) ) { - $has_font_style_support = wp_array_get( $block_type->supports, array( '__experimentalFontStyle' ), false ); + $has_font_size_support = wp_array_get( $block_type->supports, array( 'fontSize' ), false ); } $has_line_height_support = false; if ( property_exists( $block_type, 'supports' ) ) { - $has_line_height_support = wp_array_get( $block_type->supports, array( '__experimentalLineHeight' ), false ); + $has_line_height_support = wp_array_get( $block_type->supports, array( 'lineHeight' ), false ); } // Font Size. @@ -76,35 +71,9 @@ function wp_apply_typography_support( $attributes, $block_attributes, $block_typ // Apply required class or style. if ( $has_named_font_size ) { - $attributes['css_classes'][] = sprintf( 'has-%s-font-size', $block_attributes['fontSize'] ); + $classes[] = sprintf( 'has-%s-font-size', $block_attributes['fontSize'] ); } elseif ( $has_custom_font_size ) { - $attributes['inline_styles'][] = sprintf( 'font-size: %spx;', $block_attributes['style']['typography']['fontSize'] ); - } - } - - // Font Styles e.g. bold, italic, underline & strikethrough. - if ( $has_font_style_support ) { - $has_font_styles = isset( $block_attributes['style']['typography']['fontStyles'] ); - - // Apply required CSS classes. - if ( $has_font_styles ) { - $attributes['css_classes'][] = 'has-font-style'; - - // CSS class names chosen to be more explicit than generic `has--font-style`. - $font_style_classes = array( - 'bold' => 'has-bold-font-weight', - 'italic' => 'has-italic-font-style', - 'underline' => 'has-underline-text-decoration', - 'strikethrough' => 'has-strikethrough-text-decoration', - ); - - $style_selections = $block_attributes['style']['typography']['fontStyles']; - - foreach ( $style_selections as $style => $turned_on ) { - if ( $turned_on ) { - $attributes['css_classes'][] = $font_style_classes[ $style ]; - } - } + $styles[] = sprintf( 'font-size: %spx;', $block_attributes['style']['typography']['fontSize'] ); } } @@ -113,9 +82,25 @@ function wp_apply_typography_support( $attributes, $block_attributes, $block_typ $has_line_height = isset( $block_attributes['style']['typography']['lineHeight'] ); // Add the style (no classes for line-height). if ( $has_line_height ) { - $attributes['inline_styles'][] = sprintf( 'line-height: %s;', $block_attributes['style']['typography']['lineHeight'] ); + $styles[] = sprintf( 'line-height: %s;', $block_attributes['style']['typography']['lineHeight'] ); } } + $attributes = array(); + if ( ! empty( $classes ) ) { + $attributes['class'] = implode( ' ', $classes ); + } + if ( ! empty( $styles ) ) { + $attributes['style'] = implode( ' ', $styles ); + } + return $attributes; } + +WP_Block_Supports::get_instance()->register( + 'typography', + array( + 'register_attribute' => 'wp_register_typography_support', + 'apply' => 'wp_apply_typography_support', + ) +); diff --git a/src/wp-includes/blocks.php b/src/wp-includes/blocks.php index f6e023c67f..206e7d3991 100644 --- a/src/wp-includes/blocks.php +++ b/src/wp-includes/blocks.php @@ -647,19 +647,33 @@ function _excerpt_render_inner_columns_blocks( $columns, $allowed_blocks ) { return $output; } +/** + * Block currently being parsed. + * + * @type array +*/ +global $current_parsed_block; + +$current_parsed_block = array( + 'blockName' => null, + 'attributes' => null, +); + /** * Renders a single block into a HTML string. * * @since 5.0.0 * - * @global WP_Post $post The post to edit. - * @global WP_Query $wp_query WordPress Query object. + * @global array $current_parsed_block Block currently being parsed. + * @global WP_Post $post The post to edit. + * @global WP_Query $wp_query WordPress Query object. + * @global WP_Query $wp_query WordPress Query object. * * @param array $parsed_block A single parsed block object. * @return string String of rendered HTML. */ function render_block( $parsed_block ) { - global $post, $wp_query; + global $post, $wp_query, $current_parsed_block; /** * Allows render_block() to be short-circuited, by returning a non-null value. @@ -674,6 +688,8 @@ function render_block( $parsed_block ) { return $pre_render; } + $current_parsed_block = $parsed_block; + $source_block = $parsed_block; /** diff --git a/src/wp-includes/blocks/archives.php b/src/wp-includes/blocks/archives.php index 3b7b2d1d39..04e7e4957c 100644 --- a/src/wp-includes/blocks/archives.php +++ b/src/wp-includes/blocks/archives.php @@ -97,9 +97,11 @@ function render_block_core_archives( $attributes ) { ); } + $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classnames ) ); + return sprintf( - '', - $classnames, + '', + $wrapper_attributes, $archives ); } diff --git a/src/wp-includes/blocks/archives/block.json b/src/wp-includes/blocks/archives/block.json index 14a9451e1b..7be2a90e41 100644 --- a/src/wp-includes/blocks/archives/block.json +++ b/src/wp-includes/blocks/archives/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/archives", "category": "widgets", "attributes": { diff --git a/src/wp-includes/blocks/audio/block.json b/src/wp-includes/blocks/audio/block.json index 30b165e51c..a077767932 100644 --- a/src/wp-includes/blocks/audio/block.json +++ b/src/wp-includes/blocks/audio/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/audio", "category": "media", "attributes": { @@ -37,7 +38,6 @@ }, "supports": { "anchor": true, - "align": true, - "lightBlockWrapper": true + "align": true } } diff --git a/src/wp-includes/blocks/block/block.json b/src/wp-includes/blocks/block/block.json index c6a21217ae..97afcca2e5 100644 --- a/src/wp-includes/blocks/block/block.json +++ b/src/wp-includes/blocks/block/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/block", "category": "reusable", "attributes": { diff --git a/src/wp-includes/blocks/button/block.json b/src/wp-includes/blocks/button/block.json index 4e44f9d876..b0cff94836 100644 --- a/src/wp-includes/blocks/button/block.json +++ b/src/wp-includes/blocks/button/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/button", "category": "design", "parent": [ @@ -58,6 +59,6 @@ "align": true, "alignWide": false, "reusable": false, - "lightBlockWrapper": true + "__experimentalSelector": ".wp-block-button > a" } } diff --git a/src/wp-includes/blocks/buttons/block.json b/src/wp-includes/blocks/buttons/block.json index ce5c22427a..a1e4c33c2e 100644 --- a/src/wp-includes/blocks/buttons/block.json +++ b/src/wp-includes/blocks/buttons/block.json @@ -1,10 +1,10 @@ { + "apiVersion": 2, "name": "core/buttons", "category": "design", "supports": { "anchor": true, "align": true, - "alignWide": false, - "lightBlockWrapper": true + "alignWide": false } } diff --git a/src/wp-includes/blocks/calendar.php b/src/wp-includes/blocks/calendar.php index 41968b4099..6e0c52886a 100644 --- a/src/wp-includes/blocks/calendar.php +++ b/src/wp-includes/blocks/calendar.php @@ -31,8 +31,10 @@ function render_block_core_calendar( $attributes ) { } } - $output = sprintf( - '
%1$s
', + $wrapper_attributes = get_block_wrapper_attributes(); + $output = sprintf( + '
%2$s
', + $wrapper_attributes, get_calendar( true, false ) ); diff --git a/src/wp-includes/blocks/calendar/block.json b/src/wp-includes/blocks/calendar/block.json index 698140a333..eb585dec70 100644 --- a/src/wp-includes/blocks/calendar/block.json +++ b/src/wp-includes/blocks/calendar/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/calendar", "category": "widgets", "attributes": { diff --git a/src/wp-includes/blocks/categories.php b/src/wp-includes/blocks/categories.php index 7a42daccc5..c820b7bd76 100644 --- a/src/wp-includes/blocks/categories.php +++ b/src/wp-includes/blocks/categories.php @@ -28,7 +28,7 @@ function render_block_core_categories( $attributes ) { $id = 'wp-block-categories-' . $block_id; $args['id'] = $id; $args['show_option_none'] = __( 'Select Category' ); - $wrapper_markup = '
%2$s
'; + $wrapper_markup = '
%2$s
'; $items_markup = wp_dropdown_categories( $args ); $type = 'dropdown'; @@ -42,16 +42,16 @@ function render_block_core_categories( $attributes ) { ); } } else { - $wrapper_markup = ''; + $wrapper_markup = ''; $items_markup = wp_list_categories( $args ); $type = 'list'; } - $class = "wp-block-categories-{$type}"; + $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => "wp-block-categories-{$type}" ) ); return sprintf( $wrapper_markup, - esc_attr( $class ), + $wrapper_attributes, $items_markup ); } diff --git a/src/wp-includes/blocks/categories/block.json b/src/wp-includes/blocks/categories/block.json index d4fee5e064..be8e9d1c21 100644 --- a/src/wp-includes/blocks/categories/block.json +++ b/src/wp-includes/blocks/categories/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/categories", "category": "widgets", "attributes": { diff --git a/src/wp-includes/blocks/classic/block.json b/src/wp-includes/blocks/classic/block.json index 63d2c9f37e..0ee6ba171b 100644 --- a/src/wp-includes/blocks/classic/block.json +++ b/src/wp-includes/blocks/classic/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/freeform", "category": "text", "attributes": { diff --git a/src/wp-includes/blocks/code/block.json b/src/wp-includes/blocks/code/block.json index 9b3916f146..d9f37ed061 100644 --- a/src/wp-includes/blocks/code/block.json +++ b/src/wp-includes/blocks/code/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/code", "category": "text", "attributes": { @@ -9,7 +10,6 @@ } }, "supports": { - "anchor": true, - "lightBlockWrapper": true + "anchor": true } } diff --git a/src/wp-includes/blocks/column/block.json b/src/wp-includes/blocks/column/block.json index bc8d16aa96..02c2084dab 100644 --- a/src/wp-includes/blocks/column/block.json +++ b/src/wp-includes/blocks/column/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/column", "category": "text", "parent": [ @@ -9,15 +10,15 @@ "type": "string" }, "width": { - "type": "number", - "min": 0, - "max": 100 + "type": "string" + }, + "templateLock": { + "type": "string" } }, "supports": { "anchor": true, "reusable": false, - "html": false, - "lightBlockWrapper": true + "html": false } } diff --git a/src/wp-includes/blocks/columns/block.json b/src/wp-includes/blocks/columns/block.json index 0a84a4a35d..0cc93b718a 100644 --- a/src/wp-includes/blocks/columns/block.json +++ b/src/wp-includes/blocks/columns/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/columns", "category": "design", "attributes": { @@ -13,10 +14,9 @@ "full" ], "html": false, - "lightBlockWrapper": true, - "__experimentalColor": { + "color": { "gradients": true, - "linkColor": true + "link": true } } } diff --git a/src/wp-includes/blocks/embed/block.json b/src/wp-includes/blocks/embed/block.json index 34d8838770..3f6531af57 100644 --- a/src/wp-includes/blocks/embed/block.json +++ b/src/wp-includes/blocks/embed/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/embed", "category": "embed", "attributes": { diff --git a/src/wp-includes/blocks/file/block.json b/src/wp-includes/blocks/file/block.json index c19ba5f714..230942f76a 100644 --- a/src/wp-includes/blocks/file/block.json +++ b/src/wp-includes/blocks/file/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/file", "category": "media", "attributes": { diff --git a/src/wp-includes/blocks/group/block.json b/src/wp-includes/blocks/group/block.json index a2d0cc083a..6014985192 100644 --- a/src/wp-includes/blocks/group/block.json +++ b/src/wp-includes/blocks/group/block.json @@ -1,10 +1,14 @@ { + "apiVersion": 2, "name": "core/group", "category": "design", "attributes": { "tagName": { "type": "string", "default": "div" + }, + "templateLock": { + "type": "string" } }, "supports": { @@ -14,11 +18,12 @@ ], "anchor": true, "html": false, - "lightBlockWrapper": true, - "__experimentalColor": { + "color": { "gradients": true, - "linkColor": true + "link": true }, - "__experimentalPadding": true + "spacing": { + "padding": true + } } } diff --git a/src/wp-includes/blocks/heading/block.json b/src/wp-includes/blocks/heading/block.json index fd03a4487e..e1dd4b78db 100644 --- a/src/wp-includes/blocks/heading/block.json +++ b/src/wp-includes/blocks/heading/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/heading", "category": "text", "attributes": { @@ -20,14 +21,14 @@ } }, "supports": { + "align": [ "wide", "full" ], "anchor": true, "className": false, - "lightBlockWrapper": true, - "__experimentalColor": { - "linkColor": true + "color": { + "link": true }, - "__experimentalFontSize": true, - "__experimentalLineHeight": true, + "fontSize": true, + "lineHeight": true, "__experimentalSelector": { "core/heading/h1": "h1", "core/heading/h2": "h2", diff --git a/src/wp-includes/blocks/html/block.json b/src/wp-includes/blocks/html/block.json index b9624b4b3e..13aa611346 100644 --- a/src/wp-includes/blocks/html/block.json +++ b/src/wp-includes/blocks/html/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/html", "category": "widgets", "attributes": { diff --git a/src/wp-includes/blocks/image/block.json b/src/wp-includes/blocks/image/block.json index 798210cbd5..ec80dc4c9e 100644 --- a/src/wp-includes/blocks/image/block.json +++ b/src/wp-includes/blocks/image/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/image", "category": "media", "attributes": { @@ -70,7 +71,6 @@ } }, "supports": { - "anchor": true, - "lightBlockWrapper": true + "anchor": true } } diff --git a/src/wp-includes/blocks/latest-comments.php b/src/wp-includes/blocks/latest-comments.php index 448677066c..555a125c4a 100644 --- a/src/wp-includes/blocks/latest-comments.php +++ b/src/wp-includes/blocks/latest-comments.php @@ -129,15 +129,15 @@ function render_block_core_latest_comments( $attributes = array() ) { if ( empty( $comments ) ) { $classnames[] = 'no-comments'; } - $class = esc_attr( implode( ' ', $classnames ) ); + $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); return ! empty( $comments ) ? sprintf( - '
    %2$s
', - $class, + '
    %2$s
', + $wrapper_attributes, $list_items_markup ) : sprintf( - '
%2$s
', - $class, + '
%2$s
', + $wrapper_attributes, __( 'No comments to show.' ) ); } diff --git a/src/wp-includes/blocks/latest-comments/block.json b/src/wp-includes/blocks/latest-comments/block.json index dd208ee726..8ad73394cd 100644 --- a/src/wp-includes/blocks/latest-comments/block.json +++ b/src/wp-includes/blocks/latest-comments/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/latest-comments", "category": "widgets", "attributes": { diff --git a/src/wp-includes/blocks/latest-posts.php b/src/wp-includes/blocks/latest-posts.php index 8486b05b6b..a43646edd7 100644 --- a/src/wp-includes/blocks/latest-posts.php +++ b/src/wp-includes/blocks/latest-posts.php @@ -171,9 +171,11 @@ function render_block_core_latest_posts( $attributes ) { $class .= ' has-author'; } + $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $class ) ); + return sprintf( - '', - esc_attr( $class ), + '', + $wrapper_attributes, $list_items_markup ); } diff --git a/src/wp-includes/blocks/list/block.json b/src/wp-includes/blocks/list/block.json index 3fa10c51a1..848c017842 100644 --- a/src/wp-includes/blocks/list/block.json +++ b/src/wp-includes/blocks/list/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/list", "category": "text", "attributes": { @@ -27,10 +28,9 @@ "supports": { "anchor": true, "className": false, - "__experimentalColor": { + "color": { "gradients": true }, - "__unstablePasteTextInline": true, - "lightBlockWrapper": true + "__unstablePasteTextInline": true } } diff --git a/src/wp-includes/blocks/media-text/block.json b/src/wp-includes/blocks/media-text/block.json index 9911c4d35e..e88b1b1d1b 100644 --- a/src/wp-includes/blocks/media-text/block.json +++ b/src/wp-includes/blocks/media-text/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/media-text", "category": "media", "attributes": { @@ -84,10 +85,9 @@ "anchor": true, "align": [ "wide", "full" ], "html": false, - "lightBlockWrapper": true, - "__experimentalColor": { + "color": { "gradients": true, - "linkColor": true + "link": true } } } diff --git a/src/wp-includes/blocks/missing/block.json b/src/wp-includes/blocks/missing/block.json index 57a246966d..f60bb8c9da 100644 --- a/src/wp-includes/blocks/missing/block.json +++ b/src/wp-includes/blocks/missing/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/missing", "category": "text", "attributes": { diff --git a/src/wp-includes/blocks/more/block.json b/src/wp-includes/blocks/more/block.json index 7697b06ac4..4279443517 100644 --- a/src/wp-includes/blocks/more/block.json +++ b/src/wp-includes/blocks/more/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/more", "category": "design", "attributes": { diff --git a/src/wp-includes/blocks/nextpage/block.json b/src/wp-includes/blocks/nextpage/block.json index ed9293b2a9..2236627dbb 100644 --- a/src/wp-includes/blocks/nextpage/block.json +++ b/src/wp-includes/blocks/nextpage/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/nextpage", "category": "design", "parent": [ "core/post-content" ], diff --git a/src/wp-includes/blocks/paragraph/block.json b/src/wp-includes/blocks/paragraph/block.json index 91d8ad357f..44118c165c 100644 --- a/src/wp-includes/blocks/paragraph/block.json +++ b/src/wp-includes/blocks/paragraph/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/paragraph", "category": "text", "attributes": { @@ -29,12 +30,11 @@ "supports": { "anchor": true, "className": false, - "lightBlockWrapper": true, - "__experimentalColor": { - "linkColor": true + "color": { + "link": true }, - "__experimentalFontSize": true, - "__experimentalLineHeight": true, + "fontSize": true, + "lineHeight": true, "__experimentalSelector": "p", "__unstablePasteTextInline": true } diff --git a/src/wp-includes/blocks/preformatted/block.json b/src/wp-includes/blocks/preformatted/block.json index 4eb99004f7..d235d33ccf 100644 --- a/src/wp-includes/blocks/preformatted/block.json +++ b/src/wp-includes/blocks/preformatted/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/preformatted", "category": "text", "attributes": { @@ -11,7 +12,6 @@ } }, "supports": { - "anchor": true, - "lightBlockWrapper": true + "anchor": true } } diff --git a/src/wp-includes/blocks/pullquote/block.json b/src/wp-includes/blocks/pullquote/block.json index 7591b123f8..fa49196bec 100644 --- a/src/wp-includes/blocks/pullquote/block.json +++ b/src/wp-includes/blocks/pullquote/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/pullquote", "category": "text", "attributes": { diff --git a/src/wp-includes/blocks/quote/block.json b/src/wp-includes/blocks/quote/block.json index a03b93b0db..9de3a338c9 100644 --- a/src/wp-includes/blocks/quote/block.json +++ b/src/wp-includes/blocks/quote/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/quote", "category": "text", "attributes": { @@ -20,7 +21,6 @@ } }, "supports": { - "anchor": true, - "lightBlockWrapper": true + "anchor": true } } diff --git a/src/wp-includes/blocks/rss.php b/src/wp-includes/blocks/rss.php index a3dbd0d431..b0a31bf2bb 100644 --- a/src/wp-includes/blocks/rss.php +++ b/src/wp-includes/blocks/rss.php @@ -87,8 +87,9 @@ function render_block_core_rss( $attributes ) { if ( isset( $attributes['columns'] ) && 'grid' === $attributes['blockLayout'] ) { $classnames[] = 'columns-' . $attributes['columns']; } + $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); - return sprintf( '', esc_attr( implode( ' ', $classnames ) ), $list_items ); + return sprintf( '', $wrapper_attributes, $list_items ); } /** diff --git a/src/wp-includes/blocks/rss/block.json b/src/wp-includes/blocks/rss/block.json index 88ad78c596..49555c41cb 100644 --- a/src/wp-includes/blocks/rss/block.json +++ b/src/wp-includes/blocks/rss/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/rss", "category": "widgets", "attributes": { diff --git a/src/wp-includes/blocks/search.php b/src/wp-includes/blocks/search.php index 08c8652839..36607188ff 100644 --- a/src/wp-includes/blocks/search.php +++ b/src/wp-includes/blocks/search.php @@ -65,20 +65,22 @@ function render_block_core_search( $attributes ) { if ( $show_button ) { $button_internal_markup = ''; + $button_classes = ''; if ( ! $use_icon_button ) { if ( ! empty( $attributes['buttonText'] ) ) { $button_internal_markup = $attributes['buttonText']; } } else { + $button_classes .= 'has-icon'; $button_internal_markup = - ' + ' '; } $button_markup = sprintf( - '', + '', $button_internal_markup ); } @@ -89,16 +91,17 @@ function render_block_core_search( $attributes ) { } } - $field_markup = sprintf( + $field_markup = sprintf( '
%s
', $width_styles, $input_markup . $button_markup ); + $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classnames ) ); return sprintf( - '', + '
%s
', esc_url( home_url( '/' ) ), - $classnames, + $wrapper_attributes, $label_markup . $field_markup ); } diff --git a/src/wp-includes/blocks/search/block.json b/src/wp-includes/blocks/search/block.json index 92de1d6f02..d57ba7fd9c 100644 --- a/src/wp-includes/blocks/search/block.json +++ b/src/wp-includes/blocks/search/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/search", "category": "widgets", "attributes": { @@ -6,7 +7,7 @@ "type": "string" }, "showLabel": { - "type": "bool", + "type": "boolean", "default": true }, "placeholder": { @@ -27,13 +28,12 @@ "default": "button-outside" }, "buttonUseIcon": { - "type": "bool", + "type": "boolean", "default": false } }, "supports": { "align": [ "left", "center", "right" ], - "html": false, - "lightBlockWrapper": true + "html": false } } diff --git a/src/wp-includes/blocks/separator/block.json b/src/wp-includes/blocks/separator/block.json index 52a05abf93..3cf6ae1b50 100644 --- a/src/wp-includes/blocks/separator/block.json +++ b/src/wp-includes/blocks/separator/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/separator", "category": "design", "attributes": { @@ -10,6 +11,7 @@ } }, "supports": { - "anchor": true + "anchor": true, + "align": ["center","wide","full"] } } diff --git a/src/wp-includes/blocks/shortcode/block.json b/src/wp-includes/blocks/shortcode/block.json index 31a2d34896..8c41976373 100644 --- a/src/wp-includes/blocks/shortcode/block.json +++ b/src/wp-includes/blocks/shortcode/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/shortcode", "category": "widgets", "attributes": { diff --git a/src/wp-includes/blocks/social-link.php b/src/wp-includes/blocks/social-link.php index d5168e95c1..f2320da312 100644 --- a/src/wp-includes/blocks/social-link.php +++ b/src/wp-includes/blocks/social-link.php @@ -32,8 +32,10 @@ function render_block_core_social_link( $attributes, $content, $block ) { $attribute = 'rel="noopener nofollow" target="_blank"'; } - $icon = block_core_social_link_get_icon( $service ); - return ''; + $icon = block_core_social_link_get_icon( $service ); + $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => 'wp-social-link wp-social-link-' . $service . $class_name ) ); + + return '
  • ' . $icon . '
  • '; } /** diff --git a/src/wp-includes/blocks/social-link/block.json b/src/wp-includes/blocks/social-link/block.json index 5539298ec3..0b9072548b 100644 --- a/src/wp-includes/blocks/social-link/block.json +++ b/src/wp-includes/blocks/social-link/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/social-link", "category": "widgets", "parent": [ @@ -20,7 +21,6 @@ ], "supports": { "reusable": false, - "html": false, - "lightBlockWrapper": true + "html": false } } diff --git a/src/wp-includes/blocks/social-links/block.json b/src/wp-includes/blocks/social-links/block.json index 46a31ce065..d0ed132031 100644 --- a/src/wp-includes/blocks/social-links/block.json +++ b/src/wp-includes/blocks/social-links/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/social-links", "category": "widgets", "attributes": { @@ -16,7 +17,6 @@ "center", "right" ], - "lightBlockWrapper": true, "anchor": true } } diff --git a/src/wp-includes/blocks/spacer/block.json b/src/wp-includes/blocks/spacer/block.json index 7ea6c98944..9882f53dfa 100644 --- a/src/wp-includes/blocks/spacer/block.json +++ b/src/wp-includes/blocks/spacer/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/spacer", "category": "design", "attributes": { diff --git a/src/wp-includes/blocks/subhead/block.json b/src/wp-includes/blocks/subhead/block.json index b79fdf6a8f..6fe2bf287f 100644 --- a/src/wp-includes/blocks/subhead/block.json +++ b/src/wp-includes/blocks/subhead/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/subhead", "category": "text", "attributes": { diff --git a/src/wp-includes/blocks/table/block.json b/src/wp-includes/blocks/table/block.json index 9b031f56e5..3e94d2abf5 100644 --- a/src/wp-includes/blocks/table/block.json +++ b/src/wp-includes/blocks/table/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/table", "category": "text", "attributes": { @@ -123,6 +124,7 @@ }, "supports": { "anchor": true, - "align": true + "align": true, + "__experimentalSelector": ".wp-block-button > table" } } diff --git a/src/wp-includes/blocks/tag-cloud.php b/src/wp-includes/blocks/tag-cloud.php index f417b786c4..cdebc92271 100644 --- a/src/wp-includes/blocks/tag-cloud.php +++ b/src/wp-includes/blocks/tag-cloud.php @@ -31,8 +31,11 @@ function render_block_core_tag_cloud( $attributes ) { ); } + $wrapper_attributes = get_block_wrapper_attributes(); + return sprintf( - '

    %1$s

    ', + '

    %2$s

    ', + $wrapper_attributes, $tag_cloud ); } diff --git a/src/wp-includes/blocks/tag-cloud/block.json b/src/wp-includes/blocks/tag-cloud/block.json index 7116bb43dd..3ec21ed276 100644 --- a/src/wp-includes/blocks/tag-cloud/block.json +++ b/src/wp-includes/blocks/tag-cloud/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/tag-cloud", "category": "widgets", "attributes": { diff --git a/src/wp-includes/blocks/text-columns/block.json b/src/wp-includes/blocks/text-columns/block.json index 32f1651d40..5cfe5e4712 100644 --- a/src/wp-includes/blocks/text-columns/block.json +++ b/src/wp-includes/blocks/text-columns/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/text-columns", "icon": "columns", "category": "design", diff --git a/src/wp-includes/blocks/verse/block.json b/src/wp-includes/blocks/verse/block.json index 57084b270b..eec9404d7a 100644 --- a/src/wp-includes/blocks/verse/block.json +++ b/src/wp-includes/blocks/verse/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/verse", "category": "text", "attributes": { @@ -14,7 +15,6 @@ } }, "supports": { - "anchor": true, - "lightBlockWrapper": true + "anchor": true } } diff --git a/src/wp-includes/blocks/video/block.json b/src/wp-includes/blocks/video/block.json index f35e400362..e2b7eab175 100644 --- a/src/wp-includes/blocks/video/block.json +++ b/src/wp-includes/blocks/video/block.json @@ -1,4 +1,5 @@ { + "apiVersion": 2, "name": "core/video", "category": "media", "attributes": { @@ -59,11 +60,17 @@ "source": "attribute", "selector": "video", "attribute": "playsinline" + }, + "tracks": { + "type": "array", + "items": { + "type": "object" + }, + "default": [] } }, "supports": { "anchor": true, - "align": true, - "lightBlockWrapper": true + "align": true } } diff --git a/src/wp-includes/class-wp-block-supports.php b/src/wp-includes/class-wp-block-supports.php new file mode 100644 index 0000000000..7bec60b85d --- /dev/null +++ b/src/wp-includes/class-wp-block-supports.php @@ -0,0 +1,211 @@ +register_attributes(); + } + + /** + * Registers a block support. + * + * @since 5.6.0 + * + * @param string $block_support_name Block support name. + * @param array $block_support_config Array containing the properties of the block support. + */ + public function register( $block_support_name, $block_support_config ) { + $this->block_supports[ $block_support_name ] = array_merge( + $block_support_config, + array( 'name' => $block_support_name ) + ); + } + + + /** + * Generates an array of HTML attributes, such as classes, by applying to + * the given block all of the features that the block supports. + * + * @since 5.6.0 + * + * @param array $parsed_block Block as parsed from content. + * @return array Array of HTML attributes. + */ + public function apply_block_supports( $parsed_block ) { + $block_attributes = $parsed_block['attrs']; + $block_type = WP_Block_Type_Registry::get_instance()->get_registered( + $parsed_block['blockName'] + ); + + // If no render_callback, assume styles have been previously handled. + if ( ! $block_type || empty( $block_type ) ) { + return array(); + } + + $output = array(); + foreach ( $this->block_supports as $name => $block_support_config ) { + if ( ! isset( $block_support_config['apply'] ) ) { + continue; + } + + $new_attributes = call_user_func( + $block_support_config['apply'], + $block_type, + $block_attributes + ); + + if ( ! empty( $new_attributes ) ) { + foreach ( $new_attributes as $attribute_name => $attribute_value ) { + if ( empty( $output[ $attribute_name ] ) ) { + $output[ $attribute_name ] = $attribute_value; + } else { + $output[ $attribute_name ] .= " $attribute_value"; + } + } + } + } + + return $output; + } + + /** + * Registers the block attributes required by the different block supports. + * + * @since 5.6.0 + */ + private function register_attributes() { + $block_registry = WP_Block_Type_Registry::get_instance(); + $registered_block_types = $block_registry->get_all_registered(); + foreach ( $registered_block_types as $block_type ) { + if ( ! property_exists( $block_type, 'supports' ) ) { + continue; + } + if ( ! $block_type->attributes ) { + $block_type->attributes = array(); + } + + foreach ( $this->block_supports as $name => $block_support_config ) { + if ( ! isset( $block_support_config['register_attribute'] ) ) { + continue; + } + + call_user_func( + $block_support_config['register_attribute'], + $block_type + ); + } + } + } +} + +/** + * Generates a string of attributes by applying to the current block being + * rendered all of the features that the block supports. + * + * @since 5.6.0 + * + * @global array $current_parsed_block Block currently being parsed. + * + * @param array $extra_attributes Optional. Extra attributes to render on the block wrapper. + * + * @return string String of HTML classes. + */ +function get_block_wrapper_attributes( $extra_attributes = array() ) { + global $current_parsed_block; + $new_attributes = WP_Block_Supports::get_instance()->apply_block_supports( $current_parsed_block ); + + if ( empty( $new_attributes ) && empty( $extra_attributes ) ) { + return ''; + } + + // This is hardcoded on purpose. + // We only support a fixed list of attributes. + $attributes_to_merge = array( 'style', 'class' ); + $attributes = array(); + foreach ( $attributes_to_merge as $attribute_name ) { + if ( empty( $new_attributes[ $attribute_name ] ) && empty( $extra_attributes[ $attribute_name ] ) ) { + continue; + } + + if ( empty( $new_attributes[ $attribute_name ] ) ) { + $attributes[ $attribute_name ] = $extra_attributes[ $attribute_name ]; + continue; + } + + if ( empty( $extra_attributes[ $attribute_name ] ) ) { + $attributes[ $attribute_name ] = $new_attributes[ $attribute_name ]; + continue; + } + + $attributes[ $attribute_name ] = $extra_attributes[ $attribute_name ] . ' ' . $new_attributes[ $attribute_name ]; + } + + foreach ( $extra_attributes as $attribute_name => $value ) { + if ( ! in_array( $attribute_name, $attributes_to_merge, true ) ) { + $attributes[ $attribute_name ] = $value; + } + } + + if ( empty( $attributes ) ) { + return ''; + } + + $normalized_attributes = array(); + foreach ( $attributes as $key => $value ) { + $normalized_attributes[] = $key . '="' . esc_attr( $value ) . '"'; + } + + return implode( ' ', $normalized_attributes ); +} + diff --git a/src/wp-includes/class-wp-block.php b/src/wp-includes/class-wp-block.php index 325ca6e65c..135bad0d33 100644 --- a/src/wp-includes/class-wp-block.php +++ b/src/wp-includes/class-wp-block.php @@ -192,7 +192,7 @@ class WP_Block { * @return string Rendered block output. */ public function render( $options = array() ) { - global $post; + global $post, $current_parsed_block; $options = wp_parse_args( $options, array( @@ -206,9 +206,14 @@ class WP_Block { if ( ! $options['dynamic'] || empty( $this->block_type->skip_inner_blocks ) ) { $index = 0; foreach ( $this->inner_content as $chunk ) { - $block_content .= is_string( $chunk ) ? - $chunk : - $this->inner_blocks[ $index++ ]->render(); + if ( is_string( $chunk ) ) { + $block_content .= $chunk; + } else { + $parent_parsed_block = $current_parsed_block; + $current_parsed_block = $this->inner_blocks[ $index ]->parsed_block; + $block_content .= $this->inner_blocks[ $index++ ]->render(); + $current_parsed_block = $parent_parsed_block; + } } } diff --git a/src/wp-includes/default-filters.php b/src/wp-includes/default-filters.php index 32727445dc..96ef7d82eb 100644 --- a/src/wp-includes/default-filters.php +++ b/src/wp-includes/default-filters.php @@ -305,6 +305,7 @@ add_action( 'template_redirect', 'wp_shortlink_header', 11, 0 ); add_action( 'wp_print_footer_scripts', '_wp_footer_scripts' ); add_action( 'init', '_register_core_block_patterns_and_categories' ); add_action( 'init', 'check_theme_switched', 99 ); +add_action( 'init', array( 'WP_Block_Supports', 'init' ), 22 ); add_action( 'after_switch_theme', '_wp_menus_changed' ); add_action( 'after_switch_theme', '_wp_sidebars_changed' ); add_action( 'wp_print_styles', 'print_emoji_styles' ); diff --git a/src/wp-settings.php b/src/wp-settings.php index c636ffb937..71868ecc89 100644 --- a/src/wp-settings.php +++ b/src/wp-settings.php @@ -292,7 +292,12 @@ require ABSPATH . WPINC . '/class-wp-block-parser.php'; require ABSPATH . WPINC . '/blocks.php'; require ABSPATH . WPINC . '/blocks/index.php'; require ABSPATH . WPINC . '/block-patterns.php'; -require ABSPATH . WPINC . '/block-supports/index.php'; +require ABSPATH . WPINC . '/class-wp-block-supports.php'; +require ABSPATH . WPINC . '/block-supports/align.php'; +require ABSPATH . WPINC . '/block-supports/colors.php'; +require ABSPATH . WPINC . '/block-supports/custom-classname.php'; +require ABSPATH . WPINC . '/block-supports/generated-classname.php'; +require ABSPATH . WPINC . '/block-supports/typography.php'; $GLOBALS['wp_embed'] = new WP_Embed(); diff --git a/tests/phpunit/data/blocks/fixtures/core__archives.server.html b/tests/phpunit/data/blocks/fixtures/core__archives.server.html index 19e64659ef..0eea15c010 100644 --- a/tests/phpunit/data/blocks/fixtures/core__archives.server.html +++ b/tests/phpunit/data/blocks/fixtures/core__archives.server.html @@ -1 +1 @@ -
    No archives to show.
    \ No newline at end of file +
    No archives to show.
    \ No newline at end of file diff --git a/tests/phpunit/data/blocks/fixtures/core__archives__showPostCounts.server.html b/tests/phpunit/data/blocks/fixtures/core__archives__showPostCounts.server.html index 19e64659ef..0eea15c010 100644 --- a/tests/phpunit/data/blocks/fixtures/core__archives__showPostCounts.server.html +++ b/tests/phpunit/data/blocks/fixtures/core__archives__showPostCounts.server.html @@ -1 +1 @@ -
    No archives to show.
    \ No newline at end of file +
    No archives to show.
    \ No newline at end of file diff --git a/tests/phpunit/includes/bootstrap.php b/tests/phpunit/includes/bootstrap.php index 5c03c46d58..1e316c7ba1 100644 --- a/tests/phpunit/includes/bootstrap.php +++ b/tests/phpunit/includes/bootstrap.php @@ -171,6 +171,7 @@ require __DIR__ . '/testcase-rest-controller.php'; require __DIR__ . '/testcase-rest-post-type-controller.php'; require __DIR__ . '/testcase-xmlrpc.php'; require __DIR__ . '/testcase-ajax.php'; +require __DIR__ . '/testcase-block-supports.php'; require __DIR__ . '/testcase-canonical.php'; require __DIR__ . '/testcase-xml.php'; require __DIR__ . '/exceptions.php'; diff --git a/tests/phpunit/includes/testcase-block-supports.php b/tests/phpunit/includes/testcase-block-supports.php new file mode 100644 index 0000000000..b5ed1310bc --- /dev/null +++ b/tests/phpunit/includes/testcase-block-supports.php @@ -0,0 +1,777 @@ +registered_block_names ) ) { + $block_name = array_pop( $this->registered_block_names ); + unregister_block_type( $block_name ); + } + } + + /** + * Registers a block type. + * + * @param string|WP_Block_Type $name Block type name including namespace, or alternatively a + * complete WP_Block_Type instance. In case a WP_Block_Type + * is provided, the $args parameter will be ignored. + * @param array $args { + * Optional. Array of block type arguments. Any arguments may be defined, however the + * ones described below are supported by default. Default empty array. + * + * @type callable $render_callback Callback used to render blocks of this block type. + * } + */ + protected function register_block_type( $name, $args ) { + register_block_type( $name, $args ); + + $this->registered_block_names[] = $name; + } + + /** + * Retrieves attribute such as 'class' or 'style' from the rendered block string. + * + * @param string $attribute Name of attribute to get. + * @param string $block String of rendered block to check. + */ + private function get_attribute_from_block( $attribute, $block ) { + $start_index = strpos( $block, $attribute . '="' ) + strlen( $attribute ) + 2; + $split_arr = substr( $block, $start_index ); + $end_index = strpos( $split_arr, '"' ); + return substr( $split_arr, 0, $end_index ); + } + + /** + * Retrieves block content from the rendered block string + * (i.e. what's wrapped by the block wrapper `
    `). + * + * @param string $block String of rendered block to check. + */ + private function get_content_from_block( $block ) { + $start_index = strpos( $block, '>' ) + 1; // First occurrence of '>'. + $split_arr = substr( $block, $start_index ); + $end_index = strrpos( $split_arr, '<' ); // Last occurrence of '<'. + return substr( $split_arr, 0, $end_index ); // String between first '>' and last '<'. + } + + /** + * Block content to test with (i.e. what's wrapped by the block wrapper `
    `). + * + * @var string + */ + const BLOCK_CONTENT = ' +

    Test

    +

    äöü

    +

    ß

    +

    系の家庭に

    +

    Example <p>Test!</p>

    + '; + + /** + * Returns the rendered output for the current block. + * + * @param array $block Block to render. + */ + private function render_example_block( $block ) { + global $current_parsed_block; + $current_parsed_block = $block; + $wrapper_attributes = get_block_wrapper_attributes( + array( + 'class' => 'foo-bar-class', + 'style' => 'test: style;', + ) + ); + return '
    ' . self::BLOCK_CONTENT . '
    '; + } + + /** + * Runs assertions that the rendered output has expected class/style attrs. + * + * @param array $block Block to render. + * @param string $expected_classes Expected output class attr string. + * @param string $expected_styles Expected output styles attr string. + */ + private function assert_styles_and_classes_match( $block, $expected_classes, $expected_styles ) { + $styled_block = $this->render_example_block( $block ); + $class_list = $this->get_attribute_from_block( 'class', $styled_block ); + $style_list = $this->get_attribute_from_block( 'style', $styled_block ); + + $this->assertEquals( $expected_classes, $class_list ); + $this->assertEquals( $expected_styles, $style_list ); + } + + /** + * Runs assertions that the rendered output has expected content and class/style attrs. + * + * @param array $block Block to render. + * @param string $expected_classes Expected output class attr string. + * @param string $expected_styles Expected output styles attr string. + */ + private function assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ) { + $styled_block = $this->render_example_block( $block ); + + // Ensure blocks to not add extra whitespace. + $this->assertEquals( $styled_block, trim( $styled_block ) ); + + $content = $this->get_content_from_block( $styled_block ); + $class_list = $this->get_attribute_from_block( 'class', $styled_block ); + $style_list = $this->get_attribute_from_block( 'style', $styled_block ); + + $this->assertEquals( self::BLOCK_CONTENT, $content ); + $this->assertEqualSets( + explode( ' ', $expected_classes ), + explode( ' ', $class_list ) + ); + $this->assertEquals( + array_map( 'trim', explode( ';', $expected_styles ) ), + array_map( 'trim', explode( ';', $style_list ) ) + ); + } + + /** + * Tests color support for named color support for named colors. + */ + function test_named_color_support() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'color' => true, + ), + 'render_callback' => true, + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'textColor' => 'red', + 'backgroundColor' => 'black', + // The following should not be applied (subcatagories of color support). + 'gradient' => 'some-gradient', + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example has-text-color has-red-color has-background has-black-background-color'; + $expected_styles = 'test: style;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests color support for custom colors. + */ + function test_custom_color_support() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'color' => true, + ), + 'render_callback' => true, + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'style' => array( + 'color' => array( + 'text' => '#000', + 'background' => '#fff', + // The following should not be applied (subcatagories of color support). + 'gradient' => 'some-gradient', + 'style' => array( 'color' => array( 'link' => '#fff' ) ), + ), + ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_styles = 'test: style; color: #000; background-color: #fff;'; + $expected_classes = 'foo-bar-class wp-block-example has-text-color has-background'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests link color support for named colors. + */ + function test_named_link_color_support() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'color' => array( + 'link' => true, + ), + ), + 'render_callback' => true, + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'style' => array( 'color' => array( 'link' => 'var:preset|color|red' ) ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example has-link-color'; + $expected_styles = 'test: style; --wp--style--color--link: var(--wp--preset--color--red);'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests link color support for custom colors. + */ + function test_custom_link_color_support() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'color' => array( + 'link' => true, + ), + ), + 'render_callback' => true, + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'style' => array( 'color' => array( 'link' => '#fff' ) ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example has-link-color'; + $expected_styles = 'test: style; --wp--style--color--link: #fff;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests gradient color support for named gradients. + */ + function test_named_gradient_support() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'color' => array( + 'gradients' => true, + ), + ), + 'render_callback' => true, + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'gradient' => 'red', + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example has-background has-red-gradient-background'; + $expected_styles = 'test: style;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests gradient color support for custom gradients. + */ + function test_custom_gradient_support() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'color' => array( + 'gradients' => true, + ), + ), + 'render_callback' => true, + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'style' => array( 'color' => array( 'gradient' => 'some-gradient-style' ) ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example has-background'; + $expected_styles = 'test: style; background: some-gradient-style;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests that style attributes for colors are not applied without the support flag. + */ + function test_color_unsupported() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array(), + 'render_callback' => true, + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'textColor' => 'red', + 'backgroundColor' => 'black', + 'style' => array( + 'color' => array( + 'text' => '#000', + 'background' => '#fff', + 'link' => '#ggg', + 'gradient' => 'some-gradient', + ), + ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example'; + $expected_styles = 'test: style;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests support for named font sizes. + */ + function test_named_font_size() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'fontSize' => true, + ), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'fontSize' => 'large', + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example has-large-font-size'; + $expected_styles = 'test: style;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests support for custom font sizes. + */ + function test_custom_font_size() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'fontSize' => true, + ), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'style' => array( 'typography' => array( 'fontSize' => '10' ) ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example'; + $expected_styles = 'test: style; font-size: 10px;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests that font size attributes are not applied without support flag. + */ + function test_font_size_unsupported() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array(), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'fontSize' => 'large', + 'style' => array( 'typography' => array( 'fontSize' => '10' ) ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example'; + $expected_styles = 'test: style;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests line height support. + */ + function test_line_height() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'lineHeight' => true, + ), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'style' => array( 'typography' => array( 'lineHeight' => '10' ) ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example'; + $expected_styles = 'test: style; line-height: 10;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests line height not applied without support flag. + */ + function test_line_height_unsupported() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array(), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'style' => array( 'typography' => array( 'lineHeight' => '10' ) ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example'; + $expected_styles = 'test: style;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests support for block alignment. + */ + function test_block_alignment() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'align' => true, + ), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'align' => 'wide', + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example alignwide'; + $expected_styles = 'test: style;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests block alignment requires support to be added. + */ + function test_block_alignment_unsupported() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array(), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'align' => 'wide', + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example'; + $expected_styles = 'test: style;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests all support flags together to ensure they work together as expected. + */ + function test_all_supported() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'color' => array( + 'gradients' => true, + 'link' => true, + ), + 'fontSize' => true, + 'lineHeight' => true, + 'align' => true, + ), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'align' => 'wide', + 'style' => array( + 'color' => array( + 'text' => '#000', + 'background' => '#fff', + 'style' => array( 'color' => array( 'link' => '#fff' ) ), + ), + 'typography' => array( + 'lineHeight' => '20', + 'fontSize' => '10', + ), + ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example has-text-color has-background alignwide'; + $expected_styles = 'test: style; color: #000; background-color: #fff; font-size: 10px; line-height: 20;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests that only styles for the supported flag are added. + * Verify one support enabled does not imply multiple supports enabled. + */ + function test_one_supported() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'fontSize' => true, + ), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'align' => 'wide', + 'style' => array( + 'color' => array( + 'text' => '#000', + 'background' => '#fff', + 'gradient' => 'some-gradient', + 'style' => array( 'color' => array( 'link' => '#fff' ) ), + ), + 'typography' => array( + 'lineHeight' => '20', + 'fontSize' => '10', + ), + ), + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_classes = 'foo-bar-class wp-block-example'; + $expected_styles = 'test: style; font-size: 10px;'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests custom classname server-side block support. + */ + function test_custom_classnames_support() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array(), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'className' => 'my-custom-classname', + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_styles = 'test: style;'; + $expected_classes = 'foo-bar-class wp-block-example my-custom-classname'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests custom classname server-side block support opt-out. + */ + function test_custom_classnames_support_opt_out() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'customClassName' => false, + ), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array( + 'className' => 'my-custom-classname', + ), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_styles = 'test: style;'; + $expected_classes = 'foo-bar-class wp-block-example'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Tests generated classname server-side block support opt-out. + */ + function test_generatted_classnames_support_opt_out() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array( + 'className' => false, + ), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array(), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + $expected_styles = 'test: style;'; + $expected_classes = 'foo-bar-class'; + + $this->assert_content_and_styles_and_classes_match( $block, $expected_classes, $expected_styles ); + } + + /** + * Ensures libxml_internal_errors is being used instead of @ warning suppression + */ + public function test_render_block_suppresses_warnings_without_at_suppression() { + $block_type_settings = array( + 'attributes' => array(), + 'supports' => array(), + ); + $this->register_block_type( 'core/example', $block_type_settings ); + + $block = array( + 'blockName' => 'core/example', + 'attrs' => array(), + 'innerBlock' => array(), + 'innerContent' => array(), + 'innerHTML' => array(), + ); + + // Custom error handler's see Warnings even if they are suppressed by the @ symbol. + $errors = array(); + set_error_handler( + function ( $errno = 0, $errstr = '' ) use ( &$errors ) { + $errors[] = $errstr; + return false; + } + ); + + // HTML5 elements like